Wiki
Сеть

ping / ICMP — что это простыми словами

ping — простейшая утилита проверки "жив ли сервер" через ICMP echo. Показывает latency и loss. ICMP — служебный протокол IP, не TCP/UDP.

ping — утилита, отправляющая ICMP echo-request пакеты и ждущая echo-reply. Стандартная команда для "жив ли сервер": `ping example.com`. Выдаёт latency (RTT — round-trip time) и packet loss % при `-c N` пакетов.

ICMP (Internet Control Message Protocol) — служебный протокол IP-стека. Не TCP и не UDP — параллельный слой. Используется для: (1) echo-request/reply (ping), (2) error-messages (Destination Unreachable, Time Exceeded), (3) PMTU discovery (Fragmentation Needed), (4) redirect (роутер "попробуй другой gateway").

Практика: (1) не блокировать весь ICMP в firewall — ломает PMTU и troubleshooting. Разрешайте echo, Time Exceeded, Fragmentation Needed. (2) hosting-провайдеры иногда rate-limit ICMP — 100 % loss ping'a не значит, что сервер лёг (пробуйте telnet 22 или TCP-ping). (3) latency < 50 мс — норма для одного континента, > 200 мс — кросс-континент. Наш uplink Falkenstein ↔ Москва — 40-50 мс.

Альтернативы: (1) fping — быстрый ping множества хостов. (2) hping3 — TCP/UDP ping (если ICMP заблокирован). (3) mtr — ping + traceroute одновременно, лучший для диагностики.

Частые вопросы

Почему сервер "пингуется", но SSH не работает?
ICMP работает — а сервис нет. Проверьте `nc -zv host 22` или логи sshd.
"pinger не работает" — WWW ли лёг?
Не обязательно. Cloudflare/anycast часто rate-limit ICMP отдельно. Смотрите HTTP: `curl -I https://site.com`.

Смотрите также