Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В вычислении , tracerouteи tracertэто компьютерная сеть диагностические команд для отображения возможных маршрутов (пути) и измерений транзитных задержек пакетов через в интернете - протоколе сети (IP). История маршрута записывается как время прохождения пакетов, полученных от каждого последующего хоста (удаленного узла) в маршруте (пути); сумма среднего времени в каждом из хмеля является мерой общего времени , затраченного для установления соединения. Traceroute продолжается, если все (обычно три) отправленные пакеты не теряются более двух раз; тогда соединение теряется и маршрут не может быть оценен. пинг, с другой стороны, вычисляет только окончательное время обратного пути от точки назначения.

Для Интернет-протокола версии 6 (IPv6) инструмент иногда имеет имена [1] и . [2]traceroute6tracert6

Реализации [ править ]

Команда traceroute доступна на многих современных операционных системах . В Unix-подобных системах, таких как FreeBSD , macOS и Linux, он доступен как инструмент командной строки. Traceroute также доступен графически в macOS из пакета сетевых утилит .

Microsoft Windows и ReactOS предоставляют программу с именем, tracertкоторая выполняет ту же функцию отслеживания маршрута. Операционные системы на базе Windows NT также предоставляют PathPing с аналогичными функциями. Версия ReactOS была разработана Гедом Мерфи и находится под лицензией GPL . [3]

В Unix-подобных операционных системах traceroute по умолчанию отправляет последовательность пакетов протокола пользовательских дейтаграмм (UDP) с номерами портов назначения в диапазоне от 33434 до 33534; реализации traceroute, поставляемые с Linux , [4] FreeBSD , [5] NetBSD , [6] OpenBSD , [7] DragonFly BSD , [8] и macOS, включают возможность использования пакетов ICMP Echo Request ( -I ) или любых произвольный протокол ( -P ), такой как UDP, TCP с использованием пакетов TCP SYN или ICMP.[9]

В Windows tracert отправляет пакеты ICMP Echo Request, а не UDP-пакеты, которые traceroute отправляет по умолчанию. [10]

Значение времени жизни (TTL), также известное как предел перехода , используется при определении промежуточных маршрутизаторов, которые проходят по направлению к месту назначения. Traceroute отправляет пакеты со значениями TTL, которые постепенно увеличиваются от пакета к пакету, начиная со значения TTL, равного единице. Маршрутизаторы уменьшают значения TTL пакетов на единицу при маршрутизации и отбрасывают пакеты, значение TTL которых достигло нуля, возвращая сообщение об ошибке ICMP ICMP Time Exceeded . [9]Для первого набора пакетов первый маршрутизатор получает пакет, уменьшает значение TTL и отбрасывает пакет, поскольку тогда он имеет нулевое значение TTL. Маршрутизатор отправляет сообщение ICMP Time Exceeded обратно источнику. Следующему набору пакетов присваивается значение TTL, равное двум, поэтому первый маршрутизатор пересылает пакеты, но второй маршрутизатор отбрасывает их и отвечает ICMP Time Exceeded. Действуя таким образом, traceroute использует возвращенные сообщения ICMP Time Exceeded для создания списка маршрутизаторов, которые проходят пакеты, пока пункт назначения не будет достигнут, и возвращает сообщение ICMP Destination Unreachable, если используются пакеты UDP, или сообщение ICMP Echo Reply, если ICMP Echo сообщения используются. [9]

Значения отметок времени, возвращаемые для каждого маршрутизатора на пути, представляют собой значения задержки ( задержки ), обычно измеряемые в миллисекундах для каждого пакета.

Отправитель ожидает ответа в течение указанного количества секунд. Если пакет не подтвержден в течение ожидаемого интервала, отображается звездочка. Интернет-протокол не требует, чтобы пакеты шли по одному и тому же маршруту к определенному месту назначения, поэтому перечисленные хосты могут быть хостами, которые прошли другие пакеты. Если узел на узле №N не отвечает, переход пропускается в выходных данных.

Если сеть имеет брандмауэр и работает как с Windows, так и с Unix-подобными системами, для работы traceroute и получения ответов через межсетевой экран необходимо включить более одного протокола.

Некоторые реализации traceroute используют пакеты TCP, например tcptraceroute и traceroute четвертого уровня (lft). PathPing - это утилита, представленная в Windows NT, которая сочетает в себе функции ping и traceroute. MTR - это расширенная версия ICMP traceroute, доступная для Unix-подобных и Windows систем. Все различные реализации traceroute полагаются на пакеты ICMP Time Exceeded (тип 11), отправляемые источнику.

В Linux tracepath - это утилита, похожая на traceroute, но с той лишь разницей, что не требует прав суперпользователя . [11]

Реализация traceroute Cisco также использует последовательность дейтаграмм UDP , каждая с увеличивающимися значениями TTL , до недопустимого номера порта на удаленном хосте; по умолчанию используется UDP-порт 33434. Расширенная версия этой команды (известная как расширенная команда traceroute ) может изменять номер порта назначения, используемый для зондирующих сообщений UDP. [12]

Использование [ править ]

Адреса маршрутизаторов можно накладывать на карты их физического расположения. В этом примере показан запрос из Новой Зеландии на IP-адрес в Массачусетсе, который проходит по маршруту, проходящему через Европу .

Большинство реализаций включают в себя как минимум опции для указания количества запросов, отправляемых на один переход, времени ожидания ответа, ограничения переходов и используемого порта. Вызов traceroute без заданных параметров отображает список доступных параметров, в то время как man traceroute предоставляет более подробную информацию, включая отображаемые флаги ошибок. Пример в Linux:

$ traceroute -w 3 -q 1 -m 16 example.com

В приведенном выше примере выбранные параметры: ждать три секунды (вместо пяти), отправлять только один запрос на каждый прыжок (вместо трех), ограничить максимальное количество прыжков до 16, прежде чем отказаться (вместо 30), с example.com в качестве последнего хоста.

Traceroute может использоваться для определения неправильных определений таблиц маршрутизации или брандмауэров, которые могут блокировать трафик ICMP или UDP с высоким портом в Unix ping на сайт. [ пояснить ] Правильный ответ traceroute не гарантирует возможности подключения для приложений, поскольку брандмауэр может разрешать пакеты ICMP, но не разрешать пакеты других протоколов.

Traceroute также используется тестировщиками на проникновение для сбора информации о сетевой инфраструктуре и диапазонах IP-адресов вокруг данного хоста.

Его также можно использовать при загрузке данных, и если для одного и того же фрагмента данных доступно несколько зеркал, каждое зеркало можно отследить, чтобы понять, какое зеркало будет самым быстрым в использовании.

Истоки [ править ]

На странице руководства по traceroute указано, что исходная программа traceroute была написана Ван Якобсоном в 1987 году по предложению Стива Диринга с особенно убедительными предложениями или исправлениями от К. Филипа Вуда, Тима Сивера и Кена Адельмана. Автор пинг программы, Майк Муусс , государства на своем сайте , что трассировка была написана с использованием поддержки ядра ICMP , что он ранее кодированным для того, чтобы сырые сокетами ICMP , когда он первым написал программу звона. [13]

Ограничения [ править ]

Ограничения Traceroute [14] хорошо известны и должны приниматься во внимание при использовании инструмента. Например, traceroute обнаруживает пути не на уровне маршрутизатора, а на уровне интерфейса. Другое ограничение появляется, когда маршрутизаторы не отвечают на зонды или когда маршрутизаторы имеют ограничение на ответы ICMP. [15] При наличии балансировки нагрузки трафика traceroute может указывать путь, который на самом деле не существует; Чтобы свести к минимуму эту проблему, существует модификация traceroute под названием Paris-traceroute [16], которая поддерживает идентификатор потока зондов, чтобы избежать балансировки нагрузки.

См. Также [ править ]

  • Сервер Looking Glass
  • MTR (программное обеспечение)  - компьютерное программное обеспечение, которое объединяет функциональность программ traceroute и ping в едином инструменте сетевой диагностики.
  • netsniff-ng  - набор сетевых инструментов Linux с утилитой traceroute для автономной системы
  • PathPing  - сетевая утилита Windows NT, которая сочетает в себе функции ping и traceroute (или tracert).

Ссылки [ править ]

  1. ^ https://linux.die.net/man/8/traceroute6
  2. ^ https://linux.die.net/man/8/tracert6
  3. ^ tracert.cpp на GitHub
  4. ^ traceroute(8)  -  Руководство программиста Linux - Администрирование и привилегированные команды
  5. ^ traceroute(8)  -  Руководство администратора системы FreeBSD
  6. ^ traceroute(8)  -  Руководство администратора системы NetBSD
  7. ^ traceroute(8)  -  Руководство администратора системы OpenBSD
  8. ^ traceroute(8)  -  Руководство по обслуживанию и эксплуатации системы DragonFly BSD
  9. ^ a b c Комер, Дуглас (2004). Компьютерная сеть и Интернет с Интернет-приложениями . Pearson Education, Inc., стр. 360–362. ISBN 978-0131433519.
  10. ^ "Tracert" . Документы Microsoft . Проверено 11 декабря 2020 года .
  11. ^ "tracepath (8) - справочная страница Linux" . linux.die.net . Проверено 21 июня 2015 .
  12. ^ «Понимание команд Ping и Traceroute» . Программное обеспечение Cisco IOS Release 12.1 Mainline . cisco.com. 2006-11-29 . Проверено 8 декабря 2013 .
  13. ^ История программы PING
  14. Рэй Бельвиль (3 марта 2017 г.). «Объяснение ограничений Traceroute» .
  15. ^ Marchetta, P .; Montieri, A .; Persico, V .; Pescapé, A .; Кунья, Í; Кац-Бассетт, Э. (июнь 2016 г.). «Как и насколько traceroute сбивает наше понимание сетевых путей». Международный симпозиум IEEE по локальным и городским сетям (LANMAN) 2016 г . : 1–7. DOI : 10.1109 / lanman.2016.7548847 . ISBN 978-1-4673-9882-4.
  16. ^ "Paris Traceroute" . paris-traceroute.net . Проверено 10 июня 2017 .

Дальнейшее чтение [ править ]

  • Фриш, Элин (2001). Карманный справочник команд Windows 2000 . О'Рейли . ISBN 978-0-596-00148-3.
  • Станек, Уильям Р. (2008). Карманный консультант администратора командной строки Windows, 2-е издание . Microsoft Press . ISBN 978-0735622623.
  • Барретт, Дэниел Дж. (2012). Карманное руководство по терминалу Macintosh: командуйте своим Mac . О'Рейли . ISBN 978-1449328986.

Внешние ссылки [ править ]

  • RFC 1393 : Traceroute с использованием IP Option Internet RFC
  • Как работает traceroute - InetDaemon
  • Tracert  - Справочник по командной строке Windows XP