Протокол управляющих сообщений Internet

Протокол управляющих сообщений Internet (Internet Control Messaging Protocol – ICMP) предназначен для передачи сообщений об ошибках. Он предоставляет устройствам, чаще всего хостам, информациюо результатах выполненных ими операций в процессе передачи данных по протоколу IP. Предположим, что предпринимается попытка подключения к удаленному хосту с помощью протокола Telnet. Пользователь вводит в приложении Telnet соответствующее имя хоста, а через несколько секунд получает ответ, что адресат недоступен – Destination Unreachable. Каким образом приложение Telnet могло определить, что адресат недоступен? Если бы маршрутизатор просто уничтожил пакет с запросом на установление соединения, то не было бы возможности определить действительную причину ошибки.

Именно для этой цели и служит ICMP. Приложение Telnet получает сообщение ICMP от маршрутизатора с указанием того, что адресат недоступен. Сообщение Destination Unreachable представляет собой лишь одно из сообщений многих типов, которые определены в протоколе ICMP. Полный список типов сообщений ICMP, которые предусмотрены в документе RFC 792, приведен в табл. 4.1.

Таблица 4.1. Коды и типы сообщений ICMP

Код ICMP Тип ICMP
  Echo Reply (Ответ эхо-повтора)
  Destination Unreachable (Адресат недоступен)
  Source Quench (Подавление источника)
  Redirect (Перенаправление)
  Echo Request (Запрос эхо-повтора)
  Time Exceeded (Превышение установленного времени)
  Parameter Problem (Ошибки при обработке параметра)
  Timestamp Request (Запрос временной отметки)
  Timestamp Reply (Ответ с временной отметкой)
  Information Request (Информационный запрос)
  Information Reply (Информационный ответ)

Запрос и ответ эхо-повтора ICMP. Сообщения эхо-повтора ICMP используются для диагностических целей в одном из наиболее широко применяемых в настоящее время сетевых приложений – в программе Ping.

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

Сообщение Destination Unreachable. Это сообщение применяется для передачи хосту указания на то, что получатель отправленного им пакета IP не был найден. Такая проблема может быть вызвана многими причинами, о которых можно узнать по дополнительному коду в сообщении Destination Unreachable. Для этого сообщения определено следующих шесть дополнительных кодов:

1. Network Unreachable (сеть недостижима). Этот код указывает, что от маршрутизаров в сети поступили сообщения о том, что они не могут найти путь для передачи пакета от отправителя к получателю. Иными словами, не исключено, что сеть в которой находится получатель, действительно существует, но маршрутизаторы не имеют информации о том, где она находится или как получить к ней доступ, поэтому они уничтожают пакет и передают отправителю такое сообщение;

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

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

4. Port Unreachable (порт недоступен). Согласно этому коду, требуемый протокол функционирует, но порт, который применяется для этого протокола, является недоступным. Дополнительная информация о портах приведена ниже в этой главе.

5. Unable to Fragment (фрагментация не может быть выполнена). С помощью этого кода передается информация о том, что в одном из маршрутизаторов по пути следования пакета возникла необходимость фрагментировать этот пакет. Это вызвано тем, что его размер превышает максимальный размер данных, принятых для протокола канального уровня. Однако такая операция не могла быть выполнена, поскольку в пакете установлен запрет фрагментации (Do not Fragment – DF).

6. Source Route Failed (маршрут, заданный отправителем, неприменим). Этот код позволяет хосту определить, что заданный им маршрут передачи пакета получателю является недействительным. Как правило, это сообщение не применяется, поскольку в протоколе IP обычно не предусматривается маршрутизация от отправителя.

Сообщение Source Quench (подавление источника). Сообщение Source Quench протокола ICMP является типичным примером уведомления о заторе. При значительной разнице между скоростью передачи данных и скоростью приема, буфер приемника начинает переполняться. В этом случае приемник отправляет передатчику, находящемуся на расстоянии одного транзитного перехода, сообщение Source Quench ICMP с требованием замедлить передачу. Основным недостатком такого механизма является то, что устройства обычно начинают отправлять сообщения Source Quench только после того, как в них начинается уничтожение пакетов, полученных от предыдущего устройства. Сообщения Source Quench могут вырабатываться любыми устройствами вдоль пути следования пакета, независимо от того, являются ли эти устройства маршрутизаторами или оконечными устройствами(хостами). Кроме того, на сообщение Source Quench может также ответить устройство вдоль пути следования (маршрутизатор или хост), но и в этом случае перечень возможных ответов зависит от конкретной реализации протокола ICMP.

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

Сообщение Time Exceeded (превышение установленного времени). Для передачи хосту информации о том, что пересылка отправленного им сообщения потребовала слишком много времени на пути к намеченному получателю, после достижения значения в поле TTL пакета IP хосту отправителя передается сообщение Time Exceeded. Поле TTL обычно применяется в программе trace route (версия этой программы, применяемаяв операционной системе Cisco, носит название trace, а в операционной системе Windows – tracert). Назначение программы trace route состоит в проверке каждого транзитного перехода на пути к указанному получателю. Такая информация позволяет узнать точный маршрут прохождения пакетов от отправителя к получателю. Эта информация имеет большое значение при поиске неисправностей в сети. В программе trace route задача проверки маршрута выполняется очень просто. Как указано выше после истечения времени, установленного в поле TTL, пакет уничтожается ихосту передается сообщение Time Exceeded протокола ICMP. В программе как раз и используется это поле, в котором по мере отправки очередных пакетов устанавливаются небольшие, но последовательно увеличивающиеся значения.

Программа trace route в первом пакете, передаваемом получателю, устанавливает значение TTL, равное 1. Первый маршрутизатор, стоящий на пути к месту назначения, получив такой пакет, уменьшает значение поля TTL на 1, которое становится равным 0. Поэтому такой пакет отбрасывается, а отправителю передается сообщение Time Exceeded. Для отправки такого сообщения в конфигурации маршрутизатора должна быть установлена опция отправки сообщений Time Exceeded. В следующем пакете программа trace route устанавливает значение TTL, равное 2, в третьем – 3 и т.д.

Сообщение Parameter Problem (ошибка при обработке параметра). Сообщение Parameter Problem передается отправителю в том случае, если устройство получателя не может определить, что означает один из параметров в заголовке IP и поэтому вынуждено отбросить пакет. Как правило, это сообщение передается только в том случае, если получателем обнаружены в пакете такие опции, которые он не может распознать.

Сообщения Timestamp Request (запрос отметки времени) и Timestamp Reply (ответ с отметкой времени). Сообщения Timestamp протокола ICMP позволяют проставить в пакете отметку времени (в миллисекундах после полуночи) с указанием того момента, когда отправитель послал сообщение, получатель принял это сообщение, а затем отправил его назад. Наиболее очевидный способ использования таких сообщений состоит в измерении задержки (определении того, какова продолжительность времени между отправкой сообщения по сети и получением ответа), но эти сообщения применяются также для синхронизации аппаратных часов.

Сообщения Information Request (информационный запрос) и Information Reply (информационный ответ). Сообщения ICMP типа Information применяются устройством для определения в какой сети оно находится. Устройство отправляет пакет IP, в котором в полях адрес отправителя и получателя находятся значения 0.0.0.0. Затем другое устройство (обычно маршрутизатор или сервер) в ответ передают сетевой адрес данной локальной сети, что позволяет отправителю первоначального сообщения определить, к какой сети он относится.

Дополнительная информация о протоколе ICMP приведена в документе RFC 792 (стандарт 5), который можно найти по адресу ftp://ftp.isi.edu/in-notes/rfс792.txt.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: