статьиGNU Free Documentation License материалы взяты из Википедии Статья была изменена. Оригинал статьи.

ICMP

Материал из Энциклопедии в свободной энциклопедии
Перейти к: навигация, поиск
ICMP
Название:

Internet Control Message Protocol

Уровень (по модели OSI):

Сетевой

Семейство:

TCP/IP

Спецификация:

RFC 792

ICMP (англ. Internet Control Message Protocol в протокол межсетевых управляющих сообщений[1]) в сетевой протокол, входящий в стек протоколов 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-пакетов, сгенерировавших 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

Формат пакета ICMP
Бит 0в7 8в15 16в31
0 Тип Код Контрольная сумма
32 Содержание сообщения (зависит от значений полей «Код» и «Тип»)

[править] Типы пакетов ICMP (полный список)

  • 0 в Эхо-ответ
  • 1 в Зарезервировано
  • 2 в Зарезервировано
  • 3 в Адресат недоступен

код 0 в Сеть недостижима
код 1 в Узел недостижим
код 2 в Протокол недостижим
код 3 в Порт недостижим
код 4 в Необходима фрагментация, но установлен флаг ее запрета (DF)
код 5 в Неверный маршрут от источника
код 6 в Сеть назначения неизвестна
код 7 в Узел назначения неизвестен
код 8 в Узел источник изолирован
код 9 в Сеть административно запрещена
код 10 в Узел административно запрещен
код 11 в Сеть недоступна для ToS
код 12 в Узел недоступен для ToS
код 13 в Коммуникации административно запрещены
код 14 в Нарушение порядка предпочтения узлов
код 15 в Активно отсечение порядка предпочтения

  • 4 в Сдерживание источника (отключение источника при переполнении очереди)
  • 5 в Перенаправление

код 0 в Перенаправление пакетов в сеть
Код 1 в Перенаправление пакетов к узлу
Код 2 в Перенаправление для каждого типа обслуживания (TOS)
Код 3 в Перенаправление пакета к узлу для каждого типа обслуживания

  • 6 в Альтернативный адрес узла
  • 7 в Зарезервировано
  • 8 в Эхо-запрос
  • 9 в Объявление маршрутизатора (RFC-1256)

код 0 в Нормальное объявление маршрутизатора
код 16 в Не маршрутизировать обычный трафик

  • 10 в Запрос маршрутизатора (RFC-1256)
  • 11 в Превышение временного интервала (для дейтаграммы время жизни истекло)

код 0 в Время жизни пакета (TTL) истекло при транспортировке
код 1 в Время жизни пакета (время сборки фрагментов) истекло при дефрагментации

  • 12 в Неверный параметр (проблема с параметрами дейтаграммы: ошибка в IP-заголовке или отсутствует необходимая опция)

код 0 в Указатель говорит об ошибке
код 1 в Отсутствует требуемая опция
код 2 в Некорректная длина

  • 13 в Запрос метки времени
  • 14 в Ответ с меткой времени
  • 15 в Информационный запрос
  • 16 в Информационный ответ
  • 17 в Запрос адресной маски (RFC-950)
  • 18 в Отклик на запрос адресной маски (RFC-950)
  • 19 в Зарезервировано (для обеспечения безопасности)
  • 20-29 в Зарезервировано (для экспериментов на устойчивость к ошибкам)
  • 30 в Трассировка маршрута (RFC-1393)
  • 31 в Ошибка преобразования датаграммы (RFC-1475)
  • 32 в Перенаправление для мобильного узла
  • 33 в IPv6 Where-Are-You (где вы находитесь)
  • 34 в IPv6 I-Am-Here (я здесь)
  • 35 в Запрос перенаправления для мобильного узла
  • 36 в Отклик на запрос перенаправления для мобильного узла
  • 37 в Запрос доменного имени (Domain Name Request)
  • 38 в Ответ на запрос доменного имени (Domain Name Reply)
  • 39 в SKIP
  • 40 в Photuris

код 0 в Зарезервировано
код 1 в Неизвестный индекс параметров безопасности (Unkown Security Parameters Index)
код 2 в Параметры безопасности верны, но произошла ошибка аутентификации (Valid Security Parameters, but Authentication Failed)
код 3 в Параметры безопасности верны, но произошел сбой при расшифровке (Valid Security Parameters, but Decryption Failed)
код 4 в Требуется проверка подлинности (Need Authentication)
код 5 в Требуется авторизация (Need Authorization)

  • 41-255 в Зарезервировано

[править] Правила генерации ICMP-пакетов

  1. При потере ICMP-пакета никогда не генерируется новый.
  2. ICMP-пакеты никогда не генерируются в ответ на IP-пакеты с широковещательным или групповым адресом, чтобы не вызывать перегрузку в сети (так называемый "широковещательный шторм").
  3. При повреждении фрагментированного IP-пакета ICMP-сообщение отправляется только после получения первого повреждённого фрагмента, поскольку отправитель всё равно повторит передачу всего IP-пакета целиком.

[править] См. также

[править] Примечания

[править] Ссылки

Источник в «/w/index.php?title=ICMP&oldid=42586919»
Пространства имён

Варианты
Действия