InternetControlMessageProtocol (ICMP, протокол контроля сообщений в сети Интернет) относится к протоколам Сетевого уровня, которые не переносят пользовательскую информацию, хотя его сообщения инкапсулируются IP- дейтаграммами. Протокол ICMP выполняет сразу две роли в стеке TCP/IP, а именно: обеспечивает выработку управляющих сообщений об ошибках, например, информирует систему-источник о том, что переданные данные не достигли места назначения, а также переносит сообщения-запросы и сообщения-ответы для диагностических программ. В качестве примера можно привести утилиту PING, входящую в любой набор протоколов TCP/IP, которая применяет есhо-сообщения протокола ICMP для того, чтобы определить, может ли конкретная система сети получать и передавать информацию.
Протокол ICMP, в соответствии с RFC 792, состоит из сообщений, заключенных в IP-пакеты со значением 1 в поле протокола и значением 0 для поля типа сервиса в заголовке.
Формат ICMP-сообщения
Сообщение протокола ICMP включает поля, описанные ниже.
Тип (Туре), 1 байт. Содержит код, идентифицирующий основную функцию сообщения.
|
|
Код (Code), 1 байт. Уточняет функцию сообщения в пределах конкретного типа.
Контрольная сумма (Checksum), 2 байта. Поле сохраняет в себе результат вычисления контрольной суммы всего ICMP-сообщения, включая поля кода, контрольной суммы и данных (при расчете используется значение поля контрольной суммы, равное 0).
Данные (Data), переменный размер. Содержит информацию, специфическую для каждого сообщения.