Сообщения об ошибках ICMP и их формат

Для сообщения об ошибках и контроля протокол IP использует ICMP. ICMP — это набор предопределенных сообщений, которые устройство с поддержкой IP может использовать для информирования другого устройства о конкретном состоянии. Например, всякий раз, когда маршрутизатору не удается переслать или доставить IP-пакет, он отправляет обратно источнику ICMP-сообщение, в котором объясняется, почему он не может переслать или доставить пакет.

Сообщения ICMP делятся на две категории: сообщения об ошибках ICMP и сообщения запроса или информации ICMP. В этом уроке мы обсудим сообщения об ошибках ICMP.

Формат сообщения об ошибке ICMP

Каждое сообщение об ошибке ICMP описывает отдельное сообщение об ошибке и требует индивидуального решения. Однако все сообщения об ошибках ICMP используют один и тот же формат сообщения об ошибке.

На следующем изображении показаны базовая структура и поля в формате сообщения об ошибке ICMP.

формат сообщения об ошибке ICMP

В следующей таблице перечислены поля сообщений об ошибках ICMP и приведено краткое описание каждого поля.

ПолеРазмер (в байтах)Описание
Тип сообщения1Укажите конкретное сообщение об ошибке ICMP или группу сообщений.
Код сообщения1Укажите конкретное сообщение в группе, если тип сообщения представляет группу.
Контрольная сумма2Подтвердите сообщение ICMP.
Оригинальные заголовки20 — 60Содержит полный заголовок неудачного IP-пакета.
Исходные данные8Содержит первые 64 бита ошибочного IP-пакета.

 

Без учета заголовка и данных ошибочного IP-пакета длина сообщения об ошибке ICMP составляет восемь байт. После включения этих полей общая длина пакета ICMP может составлять от 36 до 72 байт.

Поля типа и кода

Сообщения ICMP организованы по типам и кодам. Типы и коды представляют собой числовые значения. Каждый тип сообщения представляет собой одно сообщение или группу сообщений. Если тип представляет группу сообщений, используются значения кода. Каждое значение кода представляет сообщение в группе.

Поля типа и кода используются для указания точного отправляемого сообщения об ошибке ICMP. Оба поля имеют длину 8 бит.

Поле контрольной суммы

Поле контрольной суммы используется для проверки сообщений ICMP. Система-отправитель устанавливает значение поля контрольной суммы на 0 и выполняет простую операцию с контрольной суммой. После выполнения операции контрольной суммы отправляющая система помещает вычисленное значение контрольной суммы в поле контрольной суммы.

Принимающая система отменяет эту процедуру перед обработкой сообщения. Он устанавливает поле контрольной суммы значения в 0 и выполняет ту же операцию с контрольной суммой. После выполнения операции контрольной суммы результат сравнивается со значением, хранящимся в поле контрольной суммы. Если оба значения одинаковы, сообщение считается действительным. Все действительные сообщения обрабатываются, а недействительные отбрасываются.

Тело сообщения

Каждый IP-пакет состоит из двух полей: заголовка и данных. Протокол IP включает всю необходимую информацию в каждый IP-пакет, что позволяет ему достичь пункта назначения по любому доступному пути. Эта информация включается в поле заголовка IP-пакетов. Первые 64 бита поля данных содержат заголовок верхнего уровня. Он содержит поле номера порта источника и назначения, используемое уровнем TCP.

ICMP использует эту информацию, чтобы сообщить отправителю, какой IP-пакет не прошел. Поле тела сообщения об ошибке ICMP содержит два поля: исходный заголовок сообщения и исходные данные сообщения. Эти поля используются для включения заголовка и первых 64 битов поля данных ошибочного сообщения. Когда источник получает сообщение об ошибке ICMP, проверяя поле тела сообщения, он может определить, какой IP-пакет оказался неудачным.

Сообщения об ошибках ICMP

Сообщения об ошибках ICMP используются для сообщения о невременных проблемах доставки. ICMP предоставляет два набора сообщений об ошибках: один для IPv4, другой для IPv6. В следующей таблице перечислены все сообщения об ошибках ICMP.

 

 

Тип ICMP-сообщенияОписаниеКодыIP-версия
3Пункт назначения недоступен0–15IPv4
5Перенаправление0–3IPv4
11Время превышено0–1IPv4
12Проблема с параметром0 -2IPv4
4Источник Quench (устарело)NAIPv4
1Пункт назначения недоступен0–8IPv6
2Пакет слишком большой0IPv6
3Время превышено0–1IPv6
4Проблема с параметром0–10IPv6

 

Давайте подробно обсудим сообщения об ошибках ICMP.

 

Пункт назначения недоступен

Это сообщение об ошибке указывает на то, что целевой хост, сеть или номер порта, указанные в IP-пакете, недоступны. Это может произойти по множеству причин, таких как выходное устройство назначения не работает, промежуточный маршрутизатор не может найти путь для пересылки пакета, а брандмауэр настроен на блокировку соединений от источника пакета.

Как упоминалось ранее, если существует несколько причин конкретной ошибки, ICMP определяет их в подклассе или категории этого сообщения об ошибке. Сообщения в подкатегории называются кодами. ICMP определяет 16 возможных кодов IPv4 для этого сообщения об ошибке. Из них три устарели или непригодны для обычного использования.

В следующей таблице перечислены все коды сообщения об ошибке «Назначение IPv4 недоступно».

 

КодОписание
0Сеть недоступна
1Хост недоступен
2Протокол недоступен
3Порт недоступен
4Требуется фрагментация, и не было установлено значение «Фрагментация»
5Исходный маршрут не выполнен
6Сеть назначения неизвестна
7Хост назначения неизвестен
8Изолированный исходный хост (устарело)
9Связь с сетью назначения административно запрещена (устарело)
10Связь с целевым хостом запрещена административно (устарело)
11Сеть назначения недоступна для данного типа услуги
12Хост назначения недоступен для данного типа услуги
13Общение административно запрещено
14Нарушение приоритета хоста
15Действует ограничение приоритета

Для IPv6 IPCMP определяет девять кодов. Эти коды перечислены в следующей таблице.

 

КодОписание
0нет маршрута к месту назначения
1сообщение с пунктом назначения административно запрещено
2за пределами исходного адреса
3адрес недоступен
4порт недоступен
5исходный адрес не справился с политикой входящего/исходящего трафика
6отклонить маршрут до пункта назначения
7Ошибка в заголовке исходной маршрутизации
8Заголовки слишком длинные

Источник Закалка

Это сообщение указывает на то, что либо хост назначения, либо промежуточный маршрутизатор (или устройство) получает больше данных, чем может обработать. Если источник получает это сообщение об ошибке, он может снизить скорость передачи, чтобы решить эту проблему.

Эта ошибка чаще всего возникает, когда маршрутизатор подключает сеть с высокой пропускной способностью (например, локальную сеть) к сети с низкой пропускной способностью (например, коммутируемый доступ). В такой ситуации устройство-отправитель может передать больше данных, чем может передать устройство, работающее в сети с низкой пропускной способностью.

Этот тип сообщения об ошибке устарел.

Перенаправление

Это сообщение об ошибке используется, когда маршрутизатору необходимо сообщить отправителю, что ему следует использовать другой путь для определенного пункта назначения. Обычно это происходит, когда маршрутизатор знает более короткий путь к месту назначения.

Это сообщение об ошибке имеет четыре подтипа. Из них два износились. Ниже перечислены все подтипы и их значения.

 

КодЗначение
0Перенаправление для целевой сети (устарело)
1Перенаправление для целевого хоста
2Перенаправление для сети назначения на основе типа услуги (устарело)
3Перенаправление для целевого хоста в зависимости от типа услуги

 

Время превышено

Это сообщение указывает, что значение времени жизни дейтаграммы достигло нуля, но дейтаграмма еще не доставлена ​​в конечный пункт назначения. Система назначения также может отправить эту ошибку, если она не получила все фрагменты IP-дейтаграммы в течение отведенного времени.

Существует два подтипа этого сообщения об ошибке. Оба перечислены в следующей таблице.

 

КодЗначение
0Превышено время жизни в пути
1Превышено время сборки фрагмента

 

Проблема с параметром

Если устройство обнаруживает проблему, не описанную ни в одном типе сообщения ICMP, оно отправляет отправителю сообщение о проблеме с параметром. В сети IPv4 это обычно происходит, когда аргументы опции неверны. В IPv6 эта ошибка возникает, когда значение в поле заголовка выходит за пределы диапазона, либо один из параметров не распознан, либо значение в поле типа или кода недопустимо.

В большинстве случаев эта проблема связана с проблемами с параметрами IP или TCP. В следующей таблице перечислены сообщения кода ICMP, относящиеся к этой ошибке.

 

КодОписаниеIP-версия
0Указатель указывает на ошибкуIPv4
1Отсутствует обязательная опцияIPv4
2Неправильная длинаIPv4
0обнаружено ошибочное поле заголовкаIPv6
1обнаружен нераспознанный тип следующего заголовкаIPv6
2обнаружен неопознанный параметр IPv6IPv6
3Первый фрагмент IPv6 имеет неполную цепочку заголовков IPv6IPv6
4Ошибка заголовка верхнего уровня SRIPv6
5Неопознанный тип следующего заголовка, обнаруженный промежуточным узломIPv6
6Заголовок расширения слишком большойIPv6
7Цепочка расширенных заголовков слишком длиннаяIPv6
8Слишком много заголовков расширенийIPv6
9Слишком много опций в шапке расширенияIPv6
10Слишком большой вариантIPv6

 

Пакет слишком большой

Эта ошибка возникает, когда дейтаграмма слишком велика для сети, по которой она должна передаваться. Чтобы сообщить об этой проблеме, ICMP использует разные типы и коды сообщений в обеих версиях IP. В IPv4 используется сообщение о недостижимости пункта назначения с полем кода, равным 4. В IPv6 используется сообщение «слишком большой пакет», поле типа которого имеет значение 2.

Максимальный размер дейтаграммы, которую можно передать по сети, измеряется в MTU. Для успешной передачи данных источник должен обнаружить MTU. Обнаружение MTU предполагает получение информации о MTU удаленных сетей.

Это сообщение содержит поле, которое позволяет маршрутизаторам сообщить источнику о MTU сети, вызвавшей проблему. Как только источник узнает MTU, из-за которого произошла ошибка в его дейтаграмме, он может соответствующим образом скорректировать MTU.

Это все, что касается этого урока. В этом уроке мы обсудили сообщения об ошибках ICMP и их формат. Если вам понравился этот урок, не забудьте поделиться им с друзьями через любимый социальный канал.