ICMP | это... Что такое ICMP? (original) (raw)
ICMP
Название: | Internet Control Message Protocol |
---|---|
Уровень (по модели OSI): | Сетевой |
Семейство: | TCP/IP |
Спецификация: | RFC 792 |
ICMP (англ. Internet Control Message Protocol — протокол межсетевых управляющих сообщений[1]) — сетевой протокол, входящий в стек протоколов TCP/IP. В основном ICMP используется для передачи сообщений об ошибках и других исключительных ситуациях, возникших при передаче данных, например, запрашиваемая услуга недоступна, или хост, или маршрутизатор не отвечают. Также на ICMP возлагаются некоторые сервисные функции.
Содержание
- 1 Технические подробности
- 2 Использование ICMP-сообщений
- 3 Формат пакета ICMP
- 4 Правила генерации ICMP-пакетов
- 5 См. также
- 6 Примечания
- 7 Ссылки
Технические подробности
Протокол ICMP описан в RFC 792 (с дополнениями в RFC 950) и является стандартом Интернета (входит в стандарт STD 5 вместе с IP). Хотя формально ICMP использует IP (ICMP-пакеты инкапсулируются в IP пакеты), он является неотъемлемой частью IP и обязателен при реализации стека TCP/IP. Текущая версия ICMP для IPv4 называется ICMPv4. В IPv6 существует аналогичный протокол ICMPv6.
ICMP-сообщение строится из IP-пакетов, сгенерировавших ICMP-ответ. IP инкапсулирует соответствующее ICMP-сообщение с новым заголовком IP (чтобы отправить ICMP-сообщение обратно отправителю) и передает полученные пакеты дальше.
Например, каждая машина (такая, как маршрутизатор), которая перенаправляет IP-пакеты, уменьшает Time to live (TTL) поля заголовка IP на единицу, если TTL достигает 0, ICMP-сообщение о превышении TTL отправляется на источник пакета.
Каждое ICMP-сообщение инкапсулируется непосредственно в пределах одного IP-пакета, и, таким образом, как и UDP, ICMP является ненадежным (надежным является TCP).
ICMP основан на протоколе IP. Его цели отличны от целей транспортных протоколов, таких как TCP и UDP: он, как правило, не используется для передачи и приема данных между конечными системами. ICMP не используется непосредственно в приложениях пользователей сети (исключение составляют инструменты Ping и Traceroute).
Использование ICMP-сообщений
ICMP-сообщения (тип 12) генерируются при нахождении ошибок в заголовке IP-пакета (за исключением самих ICMP-пакетов, дабы не привести к бесконечно растущему потоку ICMP-сообщений об ICMP-сообщениях).
ICMP-сообщения (тип 3) генерируются маршрутизатором при отсутствии маршрута к адресату.
Утилита Ping, служащая для проверки возможности доставки IP-пакетов использует ICMP-сообщения с типом 8 (эхо-запрос) и 0 (эхо-ответ).
Утилита Traceroute, отображающая путь следования IP-пакетов, использует ICMP-сообщения с типом 11.
ICMP-сообщения с типом 5 используются маршрутизаторами для обновления записей в таблице маршрутизации отправителя.
ICMP-сообщения с типом 4 используются получателем (или маршрутизатором) для управления скоростью отправки сообщений отправителем.
Формат пакета ICMP
Октет | 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 | Тип | Код | Контрольная сумма | |||||||||||||||||||||||||||||
… | Данные (формат зависит от значений полей «Код» и «Тип») |
Типы пакетов ICMP
Тип | Код | Сообщение | Данные (длина, бит) |
---|---|---|---|
0 | 0 | Эхо-ответ | Идентификатор (16) Номер последовательности (16) Данные (переменная) |
1, 2 | Зарезервировано | ||
3 | Адресат недоступен | Не используется (32) Заголовок IP, Начало исходной дейтаграммы (64) | |
0 | Сеть недостижима | ||
1 | Узел недостижим | ||
2 | Протокол недостижим | ||
3 | Порт недостижим | ||
4 | Необходима фрагментация, но установлен флаг ее запрета (DF) | ||
5 | Неверный маршрут от источника | ||
6 | Сеть назначения неизвестна | ||
7 | Узел назначения неизвестен | ||
8 | Узел источник изолирован | ||
9 | Сеть административно запрещена | ||
10 | Узел административно запрещён | ||
11 | Сеть недоступна для ToS | ||
12 | Узел недоступен для ToS | ||
13 | Коммуникации административно запрещены | ||
14 | Нарушение порядка предпочтения узлов | ||
15 | Активно отсечение порядка предпочтения | ||
4 | 0 | Сдерживание источника (отключение источника при переполнении очереди) | |
5 | Перенаправление | Адрес маршрутизатора (32) Заголовок IP, Начало исходной дейтаграммы (64) | |
0 | Перенаправление пакетов в сеть | ||
1 | Перенаправление пакетов к узлу | ||
2 | Перенаправление для каждого типа обслуживания (ToS) | ||
3 | Перенаправление пакета к узлу для каждого типа обслуживания | ||
6 | 0 | Альтернативный адрес узла | |
7 | Зарезервировано | ||
8 | 0 | Эхо-запрос | Идентификатор (16) Номер последовательности (16) Данные (переменная) |
9 | 0 | Объявление маршрутизатора | Количество адресов (8) Размер элемента (8) Срок действия (16) Адрес[1] (32) Предпочтительность[1] (32) … Адрес[N] (32) Предпочтительность[N] (32) |
10 | 0 | Запрос маршрутизатора | Не используется (32) |
11 | Время жизни дейтаграммы истекло | Не используется (32) Заголовок IP, Начало исходной дейтаграммы (64) | |
0 | Время жизни пакета (TTL) истекло при транспортировке | ||
1 | Время жизни пакета истекло при сборке фрагментов | ||
12 | Неверный параметр (проблема с параметрами дейтаграммы: ошибка в IP-заголовке или отсутствует необходимая опция) | ||
0 | Указатель говорит об ошибке | Указатель (8) Не используется (24) Заголовок IP, Начало исходной дейтаграммы (64) | |
1 | Отсутствует требуемая опция | Не используется (32) Заголовок IP, Начало исходной дейтаграммы (64) | |
2 | Некорректная длина | ||
13 | 0 | Запрос метки времени | Идентификатор (16) Номер последовательности (16) Начальное время (32) Время приёма (32) Время отправки (32) |
14 | 0 | Ответ с меткой времени | |
15 | 0 | Информационный запрос | Идентификатор (16) Номер последовательности (16) |
16 | 0 | Информационный ответ | |
17 | 0 | Запрос адресной маски | Идентификатор (16) Номер последовательности (16) Маска (32) |
18 | 0 | Отклик на запрос адресной маски | |
19 | Зарезервировано (для обеспечения безопасности) | ||
20—29 | Зарезервировано (для экспериментов на устойчивость к ошибкам) | ||
30 | Трассировка маршрута | Идентификатор (16) Не используется (16) Количество хопов исходящего пакета (16) Количество хопов возвращающегося пакета (16) Скорость линии связи (32) MTU линии связи (32) | |
0 | Исходящий пакет успешно отправлен | ||
1 | Путь для исходящего пакета не найден, пакет уничтожен | ||
31 | Ошибка преобразования датаграммы | Указатель (32) Заголовок IP и транспортного протокола исходной дейтаграммы | |
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 | Зарезервировано |
Правила генерации ICMP-пакетов
- При потере ICMP-пакета никогда не генерируется новый.
- ICMP-пакеты никогда не генерируются в ответ на IP-пакеты с широковещательным или групповым адресом, чтобы не вызывать перегрузку в сети (так называемый «широковещательный шторм»).
- При повреждении фрагментированного IP-пакета ICMP-сообщение отправляется только после получения первого повреждённого фрагмента, поскольку отправитель всё равно повторит передачу всего IP-пакета целиком.
См. также
Примечания
Ссылки
- RFC 792
- RFC 950
- RFC 1122 (дополнительные типы ICMP сообщений для существующих кодов)
- RFC 1393
- RFC 1256
- RFC 1475
- RFC 1812 (дополнительные типы ICMP сообщений для существующих кодов)
- RFC 4443 (ICMPv6)
- RFC 2463 (ICMPv6)
- RFC 1885 (ICMPv6)
- Навязывание хосту ложного маршрута с использованием протокола ICМР
Основные протоколы TCP/IP по уровням модели OSI (Список портов TCP и UDP) | |
---|---|
Физический | Ethernet • RS-232 • EIA-422 • RS-449 • RS-485 |
Канальный | Ethernet • PPPoE • PPP • L2F • 802.11 Wi-Fi • 802.16 WiMax • Token ring • ARCNET • FDDI • HDLC • SLIP • ATM • CAN • DTM • X.25 • Frame relay • SMDS • STP • ERPS |
Сетевой | IPv4 • IPv6 • IPsec • ICMP • IGMP • ARP • RARP • RIP2 • OSPF |
Транспортный | TCP • UDP • SCTP • DCCP • RDP/RUDP • RTP • GRE |
Сеансовый | ADSP • H.245 • iSNS • NetBIOS • PAP • RPC • L2TP • PPTP • RTCP • SMPP • SCP • ZIP • SDP |
Представления | XDR • SSL • TLS |
Прикладной | BGP • HTTP • HTTPS • DHCP • IRC • SNMP • DNS • DNSSEC • NNTP • XMPP • SIP • IPP • NTP • SNTP • Электронная почта (SMTP • POP3 • IMAP4) • Передача файлов (FTP • TFTP • SFTP) • Удалённый доступ (rlogin • Telnet • SSH • RDP) |
Другие прикладные | OSCAR • CDDB • Multicast FTP • Multisource FTP • BitTorrent • Gnutella • Skype |