Исходник программы, который показывает принцип трассировки маршрута
к WWW-адресу
Как это работает?
Для начала нужно вспомнить формат заголовка IP-пакета, точнее одно из его полей - TTL
(Time To Live).
Это восьмибитное поле задает максимальное число хопов (hop - "прыжок" - прохождение
дейтаграммы от одного маршрутизатора к другому) в течение которого пакет может находиться в
сети.
Каждый маршрутизатор, обрабатывающий эту дейтаграмму, выполняет операцию TTL=TTL-1.
Когда TTL становится равным нулю, маршрутизатор уничтожает пакет, отправителю высылается
ICMP-сообщение Time Exceeded.
Утилита посылает в направлении заданного хоста пакет с TTL=1, и ждет, от кого вернется
ответ "time exceeded".
Отвечающий записывается как первый хоп (результат первого шага на пути к цели).
Затем посылаются последовательно пакеты с TTL=2, 3, 4 и т.д. по порядку, пока при
некотором значении TTL пакет не достигнет цели и не получит от нее ответ.