Хотя IP не является надёжным протоколом, набор протоколов TCP/IP обеспечивает отправку сообщений даже в случае возникновения каких-либо ошибок. Эти сообщения отправляются с помощью ICMP-сервисов. Назначение таких сообщений — предоставлять отзывы о проблемах, связанных с обработкой IP-пакетов в определённых условиях, а не повышать надёжность протокола IP. Из соображений безопасности ICMP-сообщения не обязательны, а часто даже не разрешаются в рамках сети.

ICMP может использоваться как с IPv4, так и с IPv6. ICMPv4 — это протокол обмена сообщениями для IPv4. Протокол ICMPv6 предоставляет те же сервисы для IPv6, но при этом включает в себя дополнительные функциональные возможности. В рамках данного курса термин ICMP будет использоваться для обозначения как ICMPv4, так и ICMPv6.

Существует множество типов ICMP-сообщений, а также причин их отправки. Рассмотрим некоторые наиболее распространённые сообщения.

ICMP-сообщения, общие для ICMPv4 и ICMPv6, включают в себя:

Подтверждение узла

Эхо-запрос по протоколу ICMP можно использовать, чтобы определить, функционирует ли узел. Локальный узел отправляет узлу эхо-запрос ICMP. Если узел доступен, узел назначения отправляет эхо-ответ. На рисунке нажмите кнопку «Воспроизведение», чтобы посмотреть анимационное представление, иллюстрирующее принцип работы эхо-запроса и эхо-ответа ICMP. Такое использование эхо-запросов по протоколу ICMP заложено в основу служебной программы проверки связи.

Назначение или услуга недоступны

Когда узел или шлюз получает пакет, который не может доставить, он может использовать ICMP-сообщение «Назначение недоступно», чтобы сообщить источнику о том, что назначение или услуга для них недоступны. Такое сообщение содержит код, сообщающий, что пакет не может быть доставлен.

Коды о недоступном назначении для ICMPv4 включают в себя:

Примечание. За исключением некоторых различий, протокол ICMPv6 обладает схожими кодами для сообщений о недоступном назначении.

Истечение времени

Сообщение ICMPv4 об истечении времени используется маршрутизатором для указания на то, что пакет переслать невозможно, поскольку значение в поле «Время жизни» (TTL) пакета было изменено на 0. Если маршрутизатор получает пакет и изменяет значение в поле «Время жизни» (TTL) IPv4-пакета на ноль, он отбрасывает пакет и отправляет в узел источника сообщение об истечении времени.

Также протокол ICMPv6 отправляет сообщение об истечении времени в том случае, если маршрутизатор не может переслать пакет IPv6 ввиду того, что пакет истек. В протоколе IPv6 поле «Время жизни» (TTL) отсутствует. Для указания на то, что срок жизни пакета истёк, им используется поле «Ограничение перехода».

Переадресация маршрутов

Маршрутизатор может использовать сообщение переадресации ICMP, чтобы сообщить узлам в сети, что для определённого назначения доступен лучший маршрут. Это сообщение может использоваться только в том случае, если узел источника находится в той же физической сети, что и шлюзы.

Оба протокола ICMPv4 и ICMPv6 используют сообщения переадресации маршрута.