Ответ
По умолчанию это зависит от ОС:
- В Linux/Unix стандартная утилита
tracerouteиспользует UDP-пакеты с порта назначения 33434 и увеличивает его для каждого следующего хопа. - В Windows утилита
tracertиспользует ICMP Echo Request пакеты (какping).
Практическое значение для DevOps: Различие важно, потому что сетевые политики безопасности (файрволы, ACL) могут по-разному обрабатывать UDP, ICMP и TCP трафик. Если маршрут не отображается, это может быть связано с блокировкой используемого по умолчанию протокола.
Альтернативы в Linux:
# Использовать ICMP (как Windows tracert)
traceroute -I google.com
# Использовать TCP (часто обходит фильтры, т.к. похоже на обычное соединение)
traceroute -T -p 80 google.com # Использует TCP SYN на порт 80
# Современная утилита mtr (My TraceRoute) предоставляет интерактивный мониторинг
mtr google.com
В средах, где важна диагностика сети (например, между Availability Zones или в гибридных облаках), я часто использую traceroute -T к известному открытому порту (например, 443), так как TCP-трафик реже блокируется полностью, чем ICMP или высокоуровневый UDP.