26-09-2023
Название: |
Internet Control Message Protocol |
---|---|
Уровень (по модели OSI): |
Сетевой |
Семейство: | |
Спецификация: |
RFC 792 |
ICMP (англ. Internet Control Message Protocol — протокол межсетевых управляющих сообщений[1]) — сетевой протокол, входящий в стек протоколов TCP/IP. В основном ICMP используется для передачи сообщений об ошибках и других исключительных ситуациях, возникших при передаче данных, например, запрашиваемая услуга недоступна, или хост, или маршрутизатор не отвечают. Также на ICMP возлагаются некоторые сервисные функции.
Протокол ICMP описан в ICMPv6.
ICMP-сообщение строится из IP-пакетов, сгенерировавших ICMP-ответ. IP инкапсулирует соответствующее ICMP-сообщение с новым заголовком IP (чтобы отправить ICMP-сообщение обратно отправителю) и передает полученные пакеты дальше.
Например, каждая машина (такая, как маршрутизатор), которая перенаправляет IP-пакеты, уменьшает Time to live (TTL) поля заголовка IP на единицу, если TTL достигает 0, ICMP-сообщение о превышении TTL отправляется на источник пакета.
ICMP основан на протоколе IP. Каждое ICMP-сообщение инкапсулируется непосредственно в пределах одного IP-пакета, и, таким образом, как и UDP и в отличие от TCP, ICMP является т. н. "ненадежным" (не контролирующим доставку и её правильность). В отличие от UDP, где реализация надёжности возложена на ПО прикладного уровня, ICMP (в силу специфики применения) обычно не нуждается в реализации надёжной доставки. Его цели отличны от целей транспортных протоколов, таких как TCP и UDP: он, как правило, не используется для передачи и приема данных между конечными системами. ICMP не используется непосредственно в приложениях пользователей сети (исключение составляют инструменты Ping и Traceroute). Тот же Ping, например, служит обычно как раз для проверки потерь IP-пакетов на маршруте.
ICMP-сообщения (тип 12) генерируются при нахождении ошибок в заголовке IP-пакета (за исключением самих ICMP-пакетов, дабы не привести к бесконечно растущему потоку ICMP-сообщений об ICMP-сообщениях).
ICMP-сообщения (тип 3) генерируются маршрутизатором при отсутствии маршрута к адресату.
Утилита Ping, служащая для проверки возможности доставки IP-пакетов, использует ICMP-сообщения с типом 8 (эхо-запрос) и 0 (эхо-ответ).
Утилита Traceroute, отображающая путь следования IP-пакетов, использует ICMP-сообщения с типом 11.
ICMP-сообщения с типом 5 используются маршрутизаторами для обновления записей в таблице маршрутизации отправителя.
ICMP-сообщения с типом 4 используются получателем (или маршрутизатором) для управления скоростью отправки сообщений отправителем.
Октет | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0—3 | Тип | Код | Контрольная сумма | |||||||||||||||||||||||||||||
… | Данные (формат зависит от значений полей «Код» и «Тип») |
Тип | Код | Сообщение | Данные (длина, бит) | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | Эхо-ответ |
|
||||||||||||||||||
1, 2 | Зарезервировано | ||||||||||||||||||||
3 | Адресат недоступен |
|
|||||||||||||||||||
0 | Сеть недостижима | ||||||||||||||||||||
1 | Узел недостижим | ||||||||||||||||||||
2 | Протокол недостижим | ||||||||||||||||||||
3 | Порт недостижим | ||||||||||||||||||||
4 | Необходима фрагментация, но установлен флаг ее запрета (DF) | ||||||||||||||||||||
5 | Неверный маршрут от источника | ||||||||||||||||||||
6 | Сеть назначения неизвестна | ||||||||||||||||||||
7 | Узел назначения неизвестен | ||||||||||||||||||||
8 | Узел источник изолирован | ||||||||||||||||||||
9 | Сеть административно запрещена | ||||||||||||||||||||
10 | Узел административно запрещён | ||||||||||||||||||||
11 | Сеть недоступна для ToS | ||||||||||||||||||||
12 | Узел недоступен для ToS | ||||||||||||||||||||
13 | Коммуникации административно запрещены | ||||||||||||||||||||
14 | Нарушение порядка предпочтения узлов | ||||||||||||||||||||
15 | Активно отсечение порядка предпочтения | ||||||||||||||||||||
4 | 0 | Сдерживание источника (отключение источника при переполнении очереди) | |||||||||||||||||||
5 | Перенаправление |
|
|||||||||||||||||||
0 | Перенаправление пакетов в сеть | ||||||||||||||||||||
1 | Перенаправление пакетов к узлу | ||||||||||||||||||||
2 | Перенаправление для каждого типа обслуживания (ToS) | ||||||||||||||||||||
3 | Перенаправление пакета к узлу для каждого типа обслуживания | ||||||||||||||||||||
6 | 0 | Альтернативный адрес узла | |||||||||||||||||||
7 | Зарезервировано | ||||||||||||||||||||
8 | 0 | Эхо-запрос |
|
||||||||||||||||||
9 | 0 | Объявление маршрутизатора |
|
||||||||||||||||||
10 | 0 | Запрос маршрутизатора |
|
||||||||||||||||||
11 | Время жизни дейтаграммы истекло |
|
|||||||||||||||||||
0 | Время жизни пакета (TTL) истекло при транспортировке | ||||||||||||||||||||
1 | Время жизни пакета истекло при сборке фрагментов | ||||||||||||||||||||
12 | Неверный параметр (проблема с параметрами дейтаграммы: ошибка в IP-заголовке или отсутствует необходимая опция) | ||||||||||||||||||||
0 | Указатель говорит об ошибке |
|
|||||||||||||||||||
1 | Отсутствует требуемая опция |
|
|||||||||||||||||||
2 | Некорректная длина | ||||||||||||||||||||
13 | 0 | Запрос метки времени |
|
||||||||||||||||||
14 | 0 | Ответ с меткой времени | |||||||||||||||||||
15 | 0 | Информационный запрос |
|
||||||||||||||||||
16 | 0 | Информационный ответ | |||||||||||||||||||
17 | 0 | Запрос адресной маски |
|
||||||||||||||||||
18 | 0 | Отклик на запрос адресной маски | |||||||||||||||||||
19 | Зарезервировано (для обеспечения безопасности) | ||||||||||||||||||||
20—29 | Зарезервировано (для экспериментов на устойчивость к ошибкам) | ||||||||||||||||||||
30 | Трассировка маршрута |
|
|||||||||||||||||||
0 | Исходящий пакет успешно отправлен | ||||||||||||||||||||
1 | Путь для исходящего пакета не найден, пакет уничтожен | ||||||||||||||||||||
31 | Ошибка преобразования датаграммы |
|
|||||||||||||||||||
0 | Неизвестная или неуказанная ошибка | ||||||||||||||||||||
1 | Невозможно конвертировать опцию | ||||||||||||||||||||
2 | Неизвестная обязательная опция | ||||||||||||||||||||
3 | Неподдерживаемая обязательная опция | ||||||||||||||||||||
4 | Неподдерживаемый транспортный протокол | ||||||||||||||||||||
5 | Превышена полная длина | ||||||||||||||||||||
6 | Превышена длина заголовка IP | ||||||||||||||||||||
7 | Номер транспортного протокола больше 255 | ||||||||||||||||||||
8 | Номер порта вне допустимого диапазона | ||||||||||||||||||||
9 | Превышена длина заголовка транспортного протокола | ||||||||||||||||||||
10 | Переход через границу 32 бит и установлен бит ACK | ||||||||||||||||||||
11 | Неизвестная обязательная опция транспортного протокола | ||||||||||||||||||||
32 | Перенаправление для мобильного узла | ||||||||||||||||||||
33 | IPv6 Where-Are-You (где вы находитесь) | ||||||||||||||||||||
34 | IPv6 I-Am-Here (я здесь) | ||||||||||||||||||||
35 | Запрос перенаправления для мобильного узла | ||||||||||||||||||||
36 | Отклик на запрос перенаправления для мобильного узла | ||||||||||||||||||||
37 | Запрос доменного имени | ||||||||||||||||||||
38 | Ответ на запрос доменного имени | ||||||||||||||||||||
39 | SKIP | ||||||||||||||||||||
40 | Photuris | ||||||||||||||||||||
0 | Зарезервировано | ||||||||||||||||||||
1 | Неизвестный индекс параметров безопасности | ||||||||||||||||||||
2 | Параметры безопасности верны, но произошла ошибка аутентификации | ||||||||||||||||||||
3 | Параметры безопасности верны, но произошел сбой при расшифровке | ||||||||||||||||||||
4 | Требуется проверка подлинности | ||||||||||||||||||||
5 | Требуется авторизация | ||||||||||||||||||||
41—255 | Зарезервировано |
Основные протоколы TCP/IP по уровням модели OSI (Список портов TCP и UDP) | |
---|---|
Физический | |
Канальный |
Ethernet • PPPoE • PPP • L2F • 802.11 Wi-Fi • 802.16 WiMax • Token ring • ARCNET • FDDI • HDLC • SLIP • ATM • CAN • DTM • X.25 • Frame relay • Shortest Path Bridging • SMDS • STP • ERPS |
Сетевой | |
Транспортный | |
Сеансовый | |
Представления | |
Прикладной | |
Другие прикладные |
Bitcoin • OSCAR • CDDB • Multicast FTP • Multisource FTP • BitTorrent • Gnutella • Skype |
ICMP.