Как работает traceroute?

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

Ответы

Ответ 1

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

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

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

Ответ 2

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