2008-10-17 7 views
15

Кажется почти магическим. Что делает команда traceroute, чтобы отобразить весь путь к другому узлу в Интернете?Как работает traceroute?

+0

[Как работает трассировка работы?] (http://www.tek-tips.com/faqs.cfm?fid=381) – thijs 2008-10-17 08:39:23

ответ

22

Traceroute передает пакеты с небольшими значениями TTL (Time To Live). TTL - это поле заголовка IP, которое используется для предотвращения запуска пакетов в бесконечные циклы. Когда маршрутизатор, который обрабатывает пакет, вычитает один из TTL пакета. Пакет истекает, и он отбрасывается, когда TTL достигает нуля.

Traceroute отправляет сообщения ICMP Time Exceeded, (RFC 792), обратно к отправителю, когда это происходит. Используя небольшие значения TTL, пакеты быстро истекают, поэтому traceroute заставляет все маршрутизаторы вдоль пути пакета генерировать ICMP-сообщения, идентифицирующие маршрутизатор.

Например, TTL = 1 должна производить сообщение от первого маршрутизатора, TTL = 2 генерирует сообщение от второго маршрутизатора на пути, и так далее ...

+0

означает, что вы можете запустить traceroute из хопа 5, указав ttl = 5 – webly 2009-10-20 12:55:01

26

traceroute устанавливает поле TTL (Time To LIve) в 1 и увеличивает его для каждого прыжка. маршрутизаторы, получающие сообщение, уменьшают это значение, и когда он достигает 0, они отвечают на сообщение, что TTL достиг нулевого значения. С помощью этого ответа клиент узнал, кто находится между ними. сделайте это итеративно до вашего пункта назначения, и вы получили (по крайней мере один из них) маршрут