Протокол управляющих сообщений Интернета (ICMP) является сетевым протоколом для сети Интернет-протокола (IP). ICMP передает управляющую информацию о состоянии самой сети, а не данные приложения. IP-сеть требует ICMP для правильной работы.
ICMP-сообщения — это особый тип IP-сообщения, отличного от TCP и UDP.
На практике наиболее известным примером обмена сообщениями ICMP является утилита ping, которая использует ICMP для проверки реагирования удаленных хостов и измерения общего времени прохождения тестовых сообщений. ICMP также поддерживает другие утилиты, такие как traceroute, которые идентифицируют промежуточные устройства маршрутизации («прыжки») на пути между данным источником и пунктом назначения.
ICMP против ICMPv6
Первоначальное определение ICMP поддерживало сети Internet Protocol версии 4 (IPv4). IPv6 включает в себя пересмотренную форму протокола, обычно называемого ICMPv6, чтобы отличать его от исходного ICMP (иногда называемого ICMPv4).
Типы сообщений ICMP и форматы сообщений
Сообщения ICMP содержат данные, необходимые для работы и администрирования компьютерной сети. Протокол сообщает о таких условиях, как не отвечающие устройства, ошибки передачи и проблемы перегрузки сети.
Как и другие протоколы семейства IP, ICMP определяет заголовок сообщения. Заголовок содержит четыре поля в следующей последовательности:
- Тип (8 бит)
- Код (8 бит)
- Контрольная сумма (16 бит)
- Данные ICMP (32 бита)
ICMP определяет список определенных типов сообщений и присваивает уникальный номер каждому. Как показано в таблице ниже, ICMPv4 и ICMPv6 предоставляют некоторые распространенные типы сообщений (но часто с разными номерами), а также некоторые сообщения, уникальные для каждого. (Общие типы сообщений также могут незначительно отличаться по поведению в разных версиях IP).
129 | Эхо Ответить | Сообщение отправлено в ответ на эхо-запрос (см. Ниже) | |
3 | 1 | Пункт назначения недоступен | Отправляется в ответ на невозможность доставки IP-сообщения по любой из разных причин. |
4 | — | Источник гасит | Устройство может отправить это сообщение обратно отправителю, который генерирует входящий трафик с большей скоростью, чем его можно обработать. (Заменено другими методами.) |
5 | 137 | Перенаправить сообщение | Устройства маршрутизации могут генерировать этот метод, если они обнаруживают изменение в запрошенном маршруте для IP-сообщения, который должен быть изменен. |
8 | 128 | Эхо-запрос | Сообщение, отправленное утилитами ping для проверки реакции целевого устройства. |
11 | 3 | Превышено время | Маршрутизаторы сгенерировали это сообщение, когда входящие данные достигли своего предела числа переходов. Используется traceroute. |
12 | — | Параметр Проблема | Генерируется, когда устройство обнаруживает поврежденные или отсутствующие данные во входящем IP-сообщении. |
13, 14 | — | Отметка времени (запрос, ответ) | Предназначен для синхронизации часов между двумя устройствами через IPv4 (заменен другими более надежными методами). |
— | 2 | Слишком большой пакет | Маршрутизаторы генерируют это сообщение при получении сообщения, которое не может быть перенаправлено к месту назначения из-за превышения ограничения длины. |
Общие типы сообщений ICMP
Протокол заполняет поля данных Code и ICMP в зависимости от типа сообщения, выбранного для обмена дополнительной информацией. Например, сообщение «Адресат недоступен» может иметь много разных значений кода в зависимости от характера ошибки.