Короткий ответ
ping проверяет базовую доступность хоста и измеряет задержку (RTT) и потери пакетов с помощью ICMP Echo Request/Reply; traceroute показывает маршрут (список промежуточных узлов-роутеров) от локального хоста до цели и задержку на каждом хопе.
Как это работает подробнее
ping отправляет ICMP-пакеты напрямую до цели и ждёт ответа, измеряя время туда-обратно; traceroute последовательно отправляет пакеты с постепенно увеличивающимся TTL (1, 2, 3, ...), благодаря чему каждый промежуточный маршрутизатор по пути отбрасывает пакет с истёкшим TTL и присылает ICMP-ответ Time Exceeded, раскрывая себя как один из хопов маршрута.
Пример кода
commands.sh
ping -c 4 example.com
traceroute example.comЧто использовать на практике
- Практика. ping используют как первый быстрый тест «жив ли хост», а traceroute — когда ping проходит с большими задержками или не проходит вовсе, чтобы понять, на каком именно участке сети возникает проблема; стоит помнить, что многие узлы и файрволы намеренно блокируют ICMP, что может давать ложное впечатление о недоступности хоста.
Подводные камни
- Риск. Частая ошибка — делать вывод «сеть недоступна» только по неотвечающему ping, не учитывая, что сам сервис может прекрасно работать по TCP/HTTP, просто ICMP заблокирован политикой безопасности где-то на пути.