how/network
Ни один пакет не возвращается с маршрутом внутри. Чтобы увидеть путь - traceroute хитро эксплуатирует TTL: «убивает» пакеты на каждом хопе и собирает ICMP-ответы.
Когда сайт «медленно открывается» - где затык? У тебя? У провайдера? На магистрали? Без видимости пути это слепое гадание.
traceroute показывает каждый роутер на пути до целевого сервера
Решение - трюк с TTL. traceroute намеренно посылает пакеты,
которые умрут на нужном роутере, и собирает их «предсмертные
извещения» (ICMP time-exceeded). Каждое извещение приходит от
конкретного роутера - так строится список.
Нажми ▶ - посмотрим как 4 пакета с возрастающим TTL дают полный путь.
Между нами и google.com - несколько роутеров (обычно 8-15). Какие именно - мы не знаем, и обычные пакеты не отвечают на этот вопрос.
Ответ google.com приходит как «ответ от google.com», без
информации о промежуточных хопах. Нужен другой подход.
итого
Что важно запомнить:
traceroute-пробник имеет свой TTL -
1, 2, 3, 4... При TTL=N пакет умирает на N-ном роутере, тот шлёт
ICMP time-exceeded → traceroute узнаёт IP роутера + измеряет RTTtraceroute -I (ICMP) или
-T -p 443 (TCP к открытому порту)* * * на хопе = роутер не отвечает. Часто это
политика безопасности - роутер форвардит трафик, но молчит на
ICMP. Не значит что путь сломанЕсли хочется глубже - есть [[traceroute|расширенная статья]] с описанием mtr и tcptraceroute.