ICMP (Internet Control Message Protocol) - протокол, используемый для передачи сообщений о различных ошибках, возникших при передаче данных с помощью протокола IP.
Вряд ли вы встретите эту аббревиатуру в справке к какому-либо распространённому сетевому продукту для конечных пользователей вроде FTP-клиентов, мессенджеров или менеджеров закачек. Потому что протокол ICMP, будучи, на самом деле, одним из самых активно используемых и востребованных протоколов в современном Интернете, редко бывает нужен неспециалисту. И, тем не менее, знать о его существовании весьма полезно, потому что протокол это действительно важный и нужный.
Расшифровывается аббревиатура ICMP очень просто: это Internet Control Message Protocol, или, по-русски, межсетевой протокол управляющих сообщений. Часто можно встретить в русскоязычных источниках также название "протокол передачи команд и сообщений об ошибках", которое, не являясь точным переводом английского названия, тем не менее, замечательно отражает саму суть этого протокола. Нужен он, по замыслу своих создателей, именно для передачи сообщений об ошибках, которые, к сожалению, сопровождают любой процесс передачи данных. При этом ICMP использует для передачи этих сообщений протокол IP (ICMP-пакеты данных "оборачиваются" IP-пакетами), но ICMP является необходимой частью протокола IP.
Существование ICMP обусловлено тем, что протокол IP не обеспечивает абсолютно надёжную передачу данных, а потому необходима какая-то обратная связь протокола и отправителя, чтобы последний мог удостовериться в том, что отправленный пакет благополучно дошёл до адресата. Не стоит, однако, думать, что использование ICMP позволяет принципиально решить проблему надёжности передачи данных по IP. Протоколы, работающие поверх IP, должны иметь дополнительные механизмы контроля передачи данных, что записано в спецификации протокола ICMP. А ещё в этой спецификации написано следующее: "Чтобы проблемы с передачей сообщений [об ошибках] не вызывали появление новых сообщений, чтобы это, в свою очередь, не привело к лавинообразному росту количества сообщений, циркулирующих в Сети, констатируется, что нельзя посылать сообщения о сообщениях". Также сообщения об ошибках не посылаются по ICMP и в ряде других ситуаций - например, при широковещательной адресации пакетов.
Самое известное для широкого круга пользователей применение протокола ICMP на практике - это использование консольной утилиты ping, имеющейся почти во всех операционных системах. С её помощью можно узнать время, необходимое для отправки запроса и получения ответа от того или иного сетевого узла. Для этого используется как раз передача данных по протоколу ICMP.
Вадим СТАНКЕВИЧ
Горячие темы