Traceroute - Traceroute

трассировка
Команда .mw-parser-output .monospaced {font-family: monospace, monospace} команда traceroute
В трассировка команда
Оригинальный автор (ы)Ван Якобсон
изначальный выпуск1987; 33 года назад (1987)
ПлатформаUnix-подобный системы
ТипКоманда
Tracert
Разработчики)Microsoft, Авторы ReactOS
ПлатформаWindows, ReactOS
ТипКоманда
ЛицензияМайкрософт Виндоус: Проприетарный коммерческое программное обеспечение
ReactOS: Стандартная общественная лицензия GNU

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

За Интернет-протокол версии 6 (IPv6) инструмент иногда имеет имя traceroute6 или же tracert6.

Реализации

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

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

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

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

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

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

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

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

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

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

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

использование

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

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

$ traceroute -w 3 -q 116 example.com

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

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

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

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

Происхождение

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

Ограничения

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

Смотрите также

Рекомендации

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

дальнейшее чтение

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

внешняя ссылка