Как ОС определяет значение TTL в исходящем пакете ICMP

#ping #ipv4 #ttl

#пинг-понг #ipv4 #ttl

Вопрос:

Я заметил, что когда я пингую разные сайты, исходящий ICMP имеет разные значения TTL, например:

 ping 8.8.8.8

Pinging 8.8.8.8 with 32 bytes of data:
Reply from 8.8.8.8: bytes=32 time=68ms TTL=116
Reply from 8.8.8.8: bytes=32 time=71ms TTL=116
Reply from 8.8.8.8: bytes=32 time=69ms TTL=116
Reply from 8.8.8.8: bytes=32 time=69ms TTL=116
 

в то время как

 ping 1.1.1.1

Pinging 1.1.1.1 with 32 bytes of data:
Reply from 1.1.1.1: bytes=32 time=94ms TTL=52
Reply from 1.1.1.1: bytes=32 time=89ms TTL=52
Reply from 1.1.1.1: bytes=32 time=87ms TTL=52
Reply from 1.1.1.1: bytes=32 time=92ms TTL=52
 

Итак, как ОС решает, что для 8.8.8.8 хорошо установить высокий TTL, тогда как для 1.1.1.1 подойдет более низкий TTL?

Комментарии:

1. Возможно, этот вопрос лучше подошел бы для другого сайта Stack Exchange?

Ответ №1:

TTL определяется удаленным хостом. Ping, который вы видите в командной строке, является ответом эха. Начальный TTL устанавливается операционной системой. Linux использует 64, Windows 128 и маршрутизаторы 255. Каждый переход уменьшает TTL как минимум на 1.

Например: если вы пингуете хост Linux и между ними 12 переходов, то TTL равен 64-12 = 52.

Комментарии:

1. Спасибо. Выглядит логично.