27.2.2. Структура ICMP-пакета
27.2.2. Структура ICMP-пакета
Для лучшей диагностики ошибки вместе с ICMP-пакетом передается заголовок исходного пакета, вызвавшего ошибку. Также передается специальный указатель на позицию заголовка, позволяющий определить, что именно вызвала ошибку. В случае с неправильным номером порта указатель будет установлен на поле, содержащее номер порта. Благодаря этому система-источник может вычислить процесс и сокет, вызвавшие ошибку.
Структуры различных ICMP-пакетов отличаются друг от друга в зависимости от типа пакета. Например, пакет, сообщающий о недоступности адресата (Destination Unreachable Message), выглядит так:
Сообщение Destination Unreachable Message Таблица 27.6
Тип Код Контрольная сумма Не используется Интернет-заголовок плюс первые 64 бита оригинального сообщения (пакета)Что такое тип и код, вы уже знаете, с контрольной суммой тоже все ясно. А последнее поле необходимо, поскольку оно поможет идентифицировать процесс, вызвавший ошибку.
Точно такую же структуру имеют сообщение об истечении лимита времени (Time Exceeded Message) и сообщение об обрыве источника Source Quench Message (тип 4).
А вот сообщение о неверном параметре (например, указан неверный номер порта) выглядит уже по-другому (таблица 27.7).
Сообщение Parameter Problem Message Таблица 27.7
Тип Код Контрольная сумма Указатель Не используется Интернет-заголовок плюс первые 64 бита оригинального сообщения (пакета)Поле Указатель в сообщении о неверном параметре (Parameter Problem Message) указывает на то место в заголовке, которое вызвало ошибку.
Сообщение о переадресации (Redirect Message) имеет следующую структуру:
Сообщение Redirect Message Таблица 27.8
Тип Код Контрольная сумма Адрес шлюза Интернет-заголовок плюс первые 64 бита оригинального сообщений (пакета)Чтобы понять, что такое сообщение о переадресации, рассмотрим следующий пример. Система Б определяет, что посланный системой А пакет некорректен. Системе Б нужно отправить системе А сообщение об ошибке. Система Б определяет, что единственным маршрутом назад для данного пакета является маршрут через систему А. Тогда система Б посылает системе А два пакета: первый с сообщением о некорректном пакете, а второе — сообщение переадресации, докладывающее, что у системы А проблемы с таблицей маршрутизации, которая, возможно, содержит ошибку.
Сообщения типа эхо-запрос (ping, тип 8) и эхо-ответ (pong, тип 0) имеют следующую структуру:
Сообщения Echo или Echo Reply Message Таблица 27.9
Тип Код Контрольная сумма Идентификатор Последовательность ДанныеПоля Идентификатор и Последовательность могут использоваться источником эха для передачи вспомогательной информации. Например, идентификатор может использоваться как порт при использовании протоколов TCP/UDP для идентификации службы, а номер последовательности может увеличивается на единицу при отправке каждого запроса (то есть выступать в роли счетчика).
Данный текст является ознакомительным фрагментом.