Протокол ICMP (Internet Control Message Protocol, Протокол Управляющих Сообщений Интернет) является неотъемлемой частью IP-модуля. Он обеспечивает обратную связь в виде диагностических сообщений, посылаемых отправителю при невозможности доставки его дейтаграммы и в других случаях. ICMP стандартизован в RFC-792, дополнения — в RCF-950,1256.
ICMP-сообщения не порождаются при невозможности доставки:
Все ICMP-сообщения имеют IP-заголовок, значение поля “Protocol” равно 1. Данные дейтаграммы с ICMP-сообщением не передаются вверх по стеку протоколов для обработки, а обрабатываются IP-модулем.
После IP-заголовка следует 32-битное слово с полями “Тип”, “Код” и “Контрольная сумма”. Поля типа и кода определяют содержание ICMP-сообщения. Формат остальной части дейтаграммы зависит от вида сообщения. Контрольная сумма считается так же, как и в IP-заголовке, но в этом случае суммируется содержимое ICMP-сообщения, включая поля “Тип” и “Код”.
Таблица 2.5.1
Виды ICMP-сообщений
Тип
Код
Сообщение
0
0
Echo Reply (эхо-ответ)
3
Destination Unreachable (адресат недостижим по различным причинам):
0
Net Unreachable (сеть недоступна)
1
Host Unreachable (хост недоступен)
2
Protocol Unreachable (протокол недоступен)
3
Port Unreachable (порт недоступен)
4
DF=1 (необходима фрагментация, но она запрещена)
5
Source Route failed (невозможно выполнить опцию Source Route)
4
0
Source Quench (замедление источника)
5
Redirect (выбрать другой маршрутизатор для посылки дейтаграмм)
0
в данную сеть
1
на данный хост
2
в данную сеть с данным TOS
3
на данный хост с данным TOS
8
0
Echo Request (эхо-запрос)
9
0
Router Advertisement (объявление маршрутизатора)