Краткие теоретические сведения. Traceroute — это служебная компьютерная программа, предназначенная для определения маршрутов следования данных в сетях TCP/IP

Traceroute — это служебная компьютерная программа, предназначенная для определения маршрутов следования данных в сетях TCP/IP. Traceroute основана на протоколе ICMP.

Программа traceroute выполняет отправку данных указанному узлу сети, при этом отображая сведения о всех промежуточных маршрутизаторах, через которые прошли данные на пути к целевому узлу. В случае проблем при доставке данных до какого-либо узла программа позволяет определить, на каком именно участке сети возникли неполадки. Здесь хочется отметить, что программа работает только в направлении от источника пакетов и является весьма грубым инструментом для выявления неполадок в сети. В силу особенностей работы протоколов маршрутизации в сети Интернет, обратные маршруты часто не совпадают с прямыми, причем это справедливо для всех промежуточных узлов в трейсе. Поэтому, ICMP ответ от каждого промежуточного узла может идти своим собственным маршрутом, затеряться или прийти с большой задержкой, хотя в реальности с пакетами которые адресованы конечному узлу этого не происходит. Кроме того, на промежуточных маршрутизаторах часто стоит ограничение числа ответов ICMP в единицу времени, что приводит к появлению ложных потерь.

Traceroute входит в поставку большинства современных сетевых операционных систем. В системах Microsoft Windows эта программа носит название tracert, а в системах GNU/Linux, Cisco IOS и Mac OS — traceroute

Для определения промежуточных маршрутизаторов traceroute отправляет серию (обычно три) пакетов данных целевому узлу, при этом каждый раз увеличивая на 1 значение поля TTL («время жизни»). Это поле обычно указывает максимальное количество маршрутизаторов, которое может быть пройдено пакетом. Первая серия пакетов отправляется с TTL, равным 1, и поэтому первый же маршрутизатор возвращает обратно сообщение ICMP, указывающее на невозможность доставки данных. Traceroute фиксирует адрес маршрутизатора, а также время между отправкой пакета и получением ответа (эти сведения выводятся на монитор компьютера). Затем traceroute повторяет отправку серии пакетов, но уже с TTL, равным 2, что позволяет первому маршрутизатору пропустить их дальше.

Процесс повторяется до тех пор, пока при определённом значении TTL пакет не достигнет целевого узла. При получении ответа от этого узла процесс трассировки считается завершённым.

На оконечном хосте IP-дейтаграмма с TTL = 1 не отбрасывается и не вызывает ICMP-сообщения типа срок истёк, а должна быть отдана приложению. Достижение пункта назначения определяется следующим образом: отсылаемые traceroute дейтаграммы содержат UDP-пакет с таким номером UDP-порта адресата (превышающим 30 000), что он заведомо не используется на адресуемом хосте. В пункте назначения UDP-модуль, получая подобные дейтаграммы, возвращает ICMP-сообщения об ошибке «порт недоступен». Таким образом, чтобы узнать о завершении работы, программе traceroute достаточно обнаружить, что поступило ICMP-сообщение об ошибке этого типа.

Вызов утилиты traceroute в командной строке Windows:

C:\Documents and Settings\<имя пользователя>tracert www.mail.ru

Трассировка маршрута к www.mail.ru [91.198.174.2] с максимальным числом прыжков 30:

1 1 ms <1 ms <1 ms vpn4.kras.gldn [10.10.1.14]

2 2 ms <1 ms <1 ms C7604-BRAS4-FTTB.ranetka.ru [80.255.150.41]

3 1 ms 1 ms 4 ms C76-External.ranetka.ru [80.255.128.162]

4 1 ms <1 ms <1 ms pe-l.Krasnoyarsk.gldn.net [195.239.173.37]

5 79 ms 79 ms 98 ms cat01.Stockholm.gldn.net [194.186.157.62]

6 131 ms 131 ms 132 ms ams-ix.2ge-2-1.br1-knams.mail.org [195.69.145.176]

7 131 ms 131 ms 131 ms te-8-2.csw1-esams.mail.org [91.198.174.254]

8 133 ms 134 ms 133 ms mail.org [91.198.174.2]

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

Команда traceroute работает путем установки поля времени жизни (числа

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

приращение поля времени жизни позволяет пакету пройти на один шлюз

дальше.

Команда traceroute посылает для каждого значения поля времени жизни

три пакета. Если промежуточный шлюз распределяет трафик по нескольким маршрутам, то эти пакеты могут возвращаться разными машинами. В этом случае на печать выводятся они все. Некоторые системы не посылают уведомлений о пакетах, время жизни которых истекло, а некоторые посылают уведомления, которые поступают обратно на машину-источник только после того, как истекло время их ожидания командой traceroute. Эти шлюзы обозначаются рядом звездочек. Даже если конкретный шлюз определить нельзя, traceroute чаще всего сможет увидеть следующие за ним узлы маршрута.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: