Все реализации traceroute полагаются на пакеты ICMP, отправляемые отправителю.
Эта программа пытается отследить маршрут, запустив тестовые пакеты UDP с небольшим ttl, а затем прослушивая ответ ICMP «превышено время» от шлюза.
Требуется выполнить простую трассировку в учебных целях:
traceroute google.com
Это дало мне среди других строк несколько строк, которые выглядят следующим образом
... 15 * * * 16 * * * 17 * * * ... few similar lines
Что это значит?
Все реализации traceroute полагаются на пакеты ICMP, отправляемые отправителю.
Эта программа пытается отследить маршрут, запустив тестовые пакеты UDP с небольшим ttl, а затем прослушивая ответ ICMP «превышено время» от шлюза.
Это показывает, что время ожидания сообщения ICMP «Превышено время» (истекло TTL) истекло.
Это может произойти в конце линии, если маршрутизация была в конечном итоге неудачной (возможно, конечный компьютер выключен), или в любой точке маршрута, если маршрутизатор на этом прыжке не генерирует ICMP-уведомления «Превышено время». Соблюдение TTL является обязательным, но уведомление отправителя о том, что пакет был отброшен из-за того, что TTL достигнет нуля, является необязательным.
Это означает, что время ожидания пакета истекло, по умолчанию время ожидания составляет 5 секунд, и если ответ не получен в это время, он показывает звездочку и переходит к следующему прыжку. Время ожидания может истечь из-за того, что маршрутизатор на этом прыжке блокирует трафик или из-за того, что не может найти маршрут к IP следующего перехода.
Вы можете использовать -w для увеличения периода ожидания.
-w waittime Set the time (in seconds) to wait for a response to a probe (default 5.0 sec).
Вы также можете попытаться использовать разные протоколы для переключения между UDP, ICMP и TCP, так как иногда маршрутизаторы блокируют один из них, но допускают протокол другого типа.
-I Use ICMP ECHO for probes -T Use TCP SYN for probes -U Use UDP datagrams for probes (it is default). Only UDP method is allowed for unprivileged users.