ICMP
| Название: |
Internet Control Message Protocol |
|---|---|
| Уровень (по модели OSI): |
Сетевой |
| Семейство: | |
| Спецификация: |
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
| Бит | 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-пакетов
- При потере 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) | |
|---|---|
| Физический | |
| Канальный | |
| Сетевой | |
| Транспортный | |
| Сеансовый | |
| Представления | |
| Прикладной | |
| Другие прикладные | |
| Это заготовка статьи о компьютерных сетях. Вы можете помочь проекту, исправив и дополнив её. |

