Протокол ICMP предназначен для передачи управляющих и диагностических сообщений. С его помощью передаются сообщения об ошибках, а также о возникновении ситуаций, требующих повышенного внимания. Протокол относится к сетевому уровню модели TCP/IP. Сообщения ICMP генерируются и обрабатываются протоколами сетевого (IP) и более высоких уровней (TCP или UDP). При появлении некоторых ICMP-сообщений генерируются сообщения об ошибках, которые передаются пользовательским процессам. ICMP-сообщения передаются внутри IP-дейтаграмм (рис. 4.27). [2]
Рис. 4.27 Инкапсуляция ICMP-сообщений в IP-дейтаграммы
Формат ICMP-сообщения показан на рис. 4.28. Заголовок ICMP включает 8 байт, но только первые 4 байта одинаковы для всех сообщений, остальные поля заголовка и тела сообщения определяются типом сообщения.
Рис. 4.28 Формат ICMP-сообщения
Поле контрольной суммы охватывает ICMP-сообщение целиком.
Тип сообщения определяется значением поля “Тип” заголовка. Некоторые типы ICMP-сообщений имеют внутреннюю детализацию (код), при этом конкретный вид сообщения определяется как типом, так и кодом сообщения. Подробнее с видами типов и кодов ICMP-сообщений можно ознакомиться в спецификации протокола ICMP RFC 792. [Электронный ресурс]. URL: http://tools.ietf.org/html/rfc792.