Сообщения об ошибках 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–15 IPv4
5 Перенаправление 0–3 IPv4
11 Время превышено 0–1 IPv4
12 Проблема с параметром 0 -2 IPv4
4 Источник Quench (устарело) NA IPv4
1 Пункт назначения недоступен 0–8 IPv6
2 Пакет слишком большой 0 IPv6
3 Время превышено 0–1 IPv6
4 Проблема с параметром 0–10 IPv6

Давайте подробно обсудим сообщения об ошибках 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 обнаружен неопознанный параметр IPv6 IPv6
3 Первый фрагмент IPv6 имеет неполную цепочку заголовков IPv6 IPv6
4 Ошибка заголовка верхнего уровня SR IPv6
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 и их формат. Если вам понравился этот урок, не забудьте поделиться им с друзьями через любимый социальный канал.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка / 5. Количество оценок:

Оценок пока нет. Поставьте оценку первым.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *