ICMP
ICMP — сетевой протокол, который используется для диагностики, сообщений об ошибках или проблемах при передаче информации по сети. Работает на третьем уровне модели OSI.
Принцип работы
ICMP основан на протоколе IP и входит в стек TCP/IP. Сообщение об ошибке инкапсулируется в новый пакет с заголовком IP.
Один из примеров работы ICMP. При каждой передаче информации через сетевой узел (например, маршрутизатор) значение поля TTL в пакете данных уменьшается на 1. При достижении нулевого значения источнику возвращается ICMP-сообщение о превышении TTL.
Особенности
При создании ICMP-сообщений существует 3 правила:
- Если пакет ICMP был потерян при передаче, то новый не генерируется.
- Сообщение ICMP никогда не создается в ответ на широковещательные или групповые запросы. В противном случае может возникнуть перегрузка сетевого трафика («широковещательный шторм»).
- Если IP-пакет был поврежден при передаче, то ICMP-сообщение сразу отправляется источнику.
Также сообщения генерируется в автоматическом режиме, если:
- пакет не достиг точки назначения;
- сетевое оборудование не может перенаправлять пакеты с текущей скоростью;
- сетевое оборудование перенаправляется на другой маршрут, который более удобен, чем текущий, для достижения получателя.