ICMP является дополнительным протоколом к IP (Internet Protocol). Как и IP, ICMP находится на сетевом уровне модели OSI .
ICMP предназначен для отправки контрольных и тестовых сообщений по IP-сетям.
В отличие от протоколов транспортного уровня TCP (Протокол управления передачей) и UDP (User Datagram Protocol), которые работают поверх IP, ICMP существует рядом с IP.
Возможность понимать ICMP является требованием для любого IP-совместимого сетевого устройства. Однако многие устройства безопасности, такие как брандмауэры, блокируют или отключают все или часть функций ICMP для целей безопасности.
Типы сообщений ICMP
ICMP работает, отправляя и получая ограниченное количество типов сообщений. Типы сообщений ICMP определены в IAMA ICMP Type Numbers.
Наиболее распространенными типами сообщений ICMP являются:
Type | Name |
---|---|
0 | Эхо-ответ |
3 | Адресат недоступен |
4 | Сдерживание источника |
5 | Перенаправление |
6 | Альтернативный адрес узла |
8 | Эхо-запрос |
9 | Объявление маршрутизатора |
10 | Запрос маршрутизатора |
11 | Время жизни дейтаграммы истекло |
12 | Неверный параметр |
13 | Запрос метки времени |
14 | Ответ с меткой времени |
15 | Информационный запрос |
16 | Информационный ответ |
17 | Запрос адресной маски |
18 | Отклик на запрос адресной маски |
30 | Трассировка маршрута |
ICMP Echo Request и Echo Reply
Двумя наиболее важными сообщениями ICMP являются Echo Request (8) и Echo Reply (0).
Echo Request и Echo Reply используются командой `ping` для проверки сетевого подключения.
Здесь мы используем команду `ping` для отправки трех 64-байтных сообщений ICMP Echo Request на www.freebsd.org и получения в ответ трех сообщений ответа Echo:
bash-2.05a $ ping -c 3 www.freebsd.org PING www.freebsd.org (216.136.204.117): 56 байтов данных 64 байт от 216.136.204.117: icmp_seq = 0 ttl = 55 раз = 63.708 мс 64 байта от 216.136.204.117: icmp_seq = 1 ttl = 55 раз = 62.725 мс 64 байт от 216.136.204.117: icmp_seq = 2 ttl = 55 раз = 62.618 мс - www.freebsd.org ping статистика - 3 переданных пакета, 3 полученных пакета, 0% потери пакетов мин. / авг / макс / stddev = 62.618 / 63.017 / 63.708 / 0.491 мс
Этот вывод говорит о том, что сетевое подключение к www.freebsd.org работает. Он также сообщает нам время, которое каждый пакет принял для возврата.
`ping` — чрезвычайно полезный инструмент для устранения неполадок в сети.
ICMP определен в RFC 792: Протокол сообщений управления через Интернет.