ICMP (англ.Internet Control Message Protocol — межсетевой протокол управляющих сообщений) — сетевой протокол, входящий в стек протоколов TCP/IP.
В основном ICMP используется для передачи сообщений об ошибках и других
исключительных ситуациях, возникших при передаче данных. Также на ICMP
возлагаются некоторые сервисные функции.
Протокол ICMP описан в RFC 792 (с дополнениями в RFC 950) и является стандартом Интернета (входит в стандарт STD 5 вместе с IP). Хотя формально ICMP использует IP (ICMP пакеты инкапсулируются в IP пакеты), он является неотъемлемой частью IP и обязателен при реализации стека TCP/IP. Текущая версия ICMP для IPv4 называется ICMPv4. В IPv6 существует аналогичный протокол ICMPv6.
Протокол ICMP не делает протокол IP средством надёжной доставки сообщений. Для этих целей существует TCP.
ICMP сообщения (тип 12) генерируются при нахождении ошибок в заголовке IP пакета (за исключением самих ICMP пакетов, дабы не привести к бесконечно растущему потоку ICMP сообщений об ICMP сообщениях).
ICMP сообщения (тип 3) генерируются маршрутизатором при отсутствии маршрута к адресату.
Утилита ping, служащая для проверки возможности доставки IP пакетов использует ICMP сообщения с типом 8 (эхо-запрос) и 0 (эхо-ответ).
Утилита traceroute, отображающая путь следования IP пакетов, использует ICMP сообщения с типом 11.