Опубликован: 11.08.2008 | Уровень: специалист | Доступ: платный
Лекция 6:

Протокол управления сообщениями Интернета (ICMP)

< Лекция 5 || Лекция 6: 123456 || Лекция 7 >

Недостижимый пункт назначения

Когда маршрутизатор не может выбрать маршрут дейтаграмме или хост не может доставить дейтаграмму, она отклоняется, и маршрутизатор или хост посылает назад к хосту источника, который ввел дейтаграмму, сообщение "конечный пункт недостижим". Рис. 6.6. показывает формат сообщения "пункт назначения недостижим".

Формат cообщения "конечный пункт недостижим"

Рис. 6.6. Формат cообщения "конечный пункт недостижим"

Поле кода для этого типа определяет причину для удаления дейтаграммы.

  • Код 0. Сеть недостижима, возможно, из-за аппаратного отказа. Этот тип сообщения может быть сгенерирован только маршрутизатором.
  • Код 1. Хост недостижим. Это может также произойти из-за аппаратного отказа. Этот тип сообщения может быть сгенерирован только маршрутизатором.
  • Код 2. Протокол недостижим. Дейтаграмма IP может доставить данные, принадлежащие протоколам высокого уровня, например, TCP или OSPF (Open Shortest Path First). Если хост пункта назначения получает дейтаграмму, которую нужно доставить, например, к протоколу TCP, но протокол TCP не функционирует в настоящее время, посылается сообщение с кодом 2. Этот тип сообщения генерируется только хостом пункта назначения.
  • Код 3. Порт недостижим. Прикладная программа (процесс), для которой предназначена дейтаграмма, не функционирует в настоящее время.
  • Код 4. Фрагментация требуется, но установлено поле дейтаграммы D (не фрагментировать). Другими словами, передатчик дейтаграммы определил, что дейтаграмма не фрагментирована, но маршрутизация невозможна без фрагментации.
  • Код 5. Исходная маршрутизация не может быть достигнута. Другими словами, один или более маршрутизаторов, определенных в исходной опции маршрутизации, не могут быть пройдены.
  • Код 6. Сеть пункта назначения неизвестна. Он отличается от кода 0. В коде 0 маршрутизатор знает, что сеть пункта назначения существует, но она в настоящее время недостижима. При коде 6 маршрутизатор не имеет никакой информации о сети пункта назначения.
  • Код 7. Хост пункта назначения неизвестен. Он отличается от кода 1. В коде 1 маршрутизатор знает, что хост пункта назначения существует, но в данный момент он недостижим. При коде 7 маршрутизатор не подозревает о существовании хоста пункта назначения.
  • Код 8. Хост источника изолирован.
  • Код 9. Связь с сетью пункта назначения административно запрещена.
  • Код 10. Связь с хостом пункта назначения административно запрещена.
  • Код 11. Сеть недостижима для указанного типа обслуживания. Этот код отличается от кода 0. Здесь маршрутизатор может направить дейтаграмму по новому маршруту, если источник запрашивал доступный тип обслуживания.
  • Код 12. Хост недостижим для указанного типа обслуживания. Он отличается от кода 1. Здесь маршрутизатор может направить дейтаграмму "в обход", если источник запросил доступный тип обслуживания.
  • Код 13. Хост недостижим, потому что администратор поместил его в фильтр.
  • Код 14. Хост недостижим, потому что у хоста нарушен приоритет. Сообщение посылается маршрутизатором, чтобы указать, что запрошенный для пункта назначения приоритет не разрешается.
  • Код 15. Хост недостижим, потому что его приоритет был отключен. Это сообщение возникает, когда сетевые операторы присвоили минимальный приоритет для работы сети, но дейтаграмму посылали с приоритетом ниже этого значения.

Заметим, что не достижимые пунктом назначения сообщения могут быть созданы или маршрутизатором, или хостом пункта назначения. Код 2 и код 3 сообщения могут быть созданы только хостом пункта назначения; сообщения остающихся кодов могут быть созданы только маршрутизаторами.

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

Подавление источника

Протокол IP — протокол без установления соединения. Нет никакого обмена сообщениями между хостом источника, который производит дейтаграмму, маршрутизаторами, направляющими ее, и хостом пункта назначения, который ее обрабатывает. Одно из последствий этого — отсутствие управления потоком. IP не имеет механизма управления потоком. Отсутствие управления потоком может создать главную проблему работе IP в ситуации перегрузки. Хост-источник никогда не знает, не были ли маршрутизаторы или хост пункта назначения переполнены дейтаграммами. Хост-источник никогда не знает, не порождает ли он дейтаграммы быстрее, чем они могут быть отправлены маршрутизаторами или обработаны хостом пункта назначения. Отсутствие управления потоком может создать перегрузку в маршрутизаторах или хосте пункта назначения. Маршрутизатор или хост сделаны так, чтобы ограничивать размер очереди (буфера) для поступающих дейтаграмм, ждущих отправления (в случае маршрутизатора) или обработки (в случае хоста). Если дейтаграммы поступают намного быстрее, чем они могут быть отправлены или обработаны, очередь может переполниться. В этом случае маршрутизатор или хост не имеют никакого выбора, кроме как удалить некоторые из дейтаграмм.

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

Есть некоторые пункты, которые заслуживают более подробного пояснения.

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

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

В-третьих, перегрузка может быть создана связью либо "один к одному", либо "многие к одному". При связи "один к одному" единственный быстродействующий хост может создавать дейтаграммы быстрее, чем маршрутизатор или хост пункта назначения могут их обработать. В этом случае могут быть полезны сообщения подавления источника. Они дают источнику команду замедлиться. При связи "многие к одному" несколько источников создают дейтаграммы, которые должны быть обработаны маршрутизатором или хостом пункта назначения. В этом случае каждый источник может посылать дейтаграммы на различных скоростях, некоторые из них на низкой скорости, другие — на высокой. В такой ситуации сообщение подавления источника не может быть очень полезно. Маршрутизатор или хост пункта назначения не имеют никакой возможности узнать, какой источник является ответственным за перегрузку. Он может исключить дейтаграмму из очень медленного источника вместо того, чтобы отбросить дейтаграмму из источника, который фактически создал перегрузку.

Превышение времени

Сообщение о превышении времени генерируется в двух случаях.

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

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

В общем формате для сообщения "превышение времени" используются в поле тип значение "11", а в поле код - "0" или "1". Код 0 применяется, когда дейтаграмма удалена маршрутизатором из-за значения поля "времени жизни" равного нулю. Код 1 используется, когда удалены поступившие фрагменты дейтаграммы из-за того, что некоторые фрагменты не прибыли в пределах заданного срока.

В сообщении превышения времени код 0 используется только маршрутизаторами, чтобы показать, что значение поля времени жизни — ноль. Код 1 применяется только хостом пункта назначения, чтобы показать, что в пределах установленного времени не прибыли все фрагменты.

Проблемы параметров

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

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

В общем формате для сообщения "проблемы параметров" используются в поле тип значение "12", а в поле код - "0" или "1". Во втором байте вводится 8-битовое поле указателя.

Поле кода в этом случае определяет причину для отказа от дейтаграммы и показывает точно, что вышло из строя:

  • Код 0.Есть ошибка или неопределенность в одном из полей заголовка. В этом случае значение в поле указателя указывает на байт с проблемой. Например, если значение — ноль, то первый байт — недопустимое поле.
  • Код 1.Требуемая часть опции отсутствует. В этом случае указатель не используется.
< Лекция 5 || Лекция 6: 123456 || Лекция 7 >
Евгений Виноградов
Евгений Виноградов

Прошел экстерном экзамен по курсу перепордготовки "Информационная безопасность". Хочу получить диплом, но не вижу где оплатить? Ну и соответственно , как с получением бумажного документа?

Илья Сидоркин
Илья Сидоркин

Добрый день! Подскажите пожалуйста как и когда получить диплом, после сдичи и оплаты?????

Александр Гордеев
Александр Гордеев
Казахстан, Алматы, ТУРАН
Александр Даниленко
Александр Даниленко
Россия, Москва, 797, 1993