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

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

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

Ходатайство маршрутизатора и извещение

Как мы обсуждали в разделе, посвященном сообщению переназначения, хост, который хочет послать данные хосту на другой сети, должен знать адрес маршрутизаторов, соединенных с его собственной сетью. Также хост должен знать, являются ли маршрутизаторы действующими и исправными. Ходатайство маршрутизатора и сообщения извещения маршрутизатора могут помочь в этой ситуации. Хост может передать широковещательно (или пакетами, рассылаемыми по многим адресам) сообщение ходатайства маршрутизатора. Маршрутизатор или маршрутизаторы, которые получают сообщение ходатайства, широковещательно передают информацию о маршрутизации, используя сообщения извещения маршрутизатора. Маршрутизатор может также периодически посылать сообщения извещения маршрутизатора, даже если никакой хост не ходатайствовал об этом. Заметим, что, когда маршрутизатор посылает извещение, он демонстрирует не только свою собственную активность и исправность, но также и исправность всех маршрутизаторов на сети, о которых он знает. Формат сообщения ходатайства маршрутизатора совпадает с общим форматом, поле тип равно "10", код - "0".

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

Формат сообщения о связях маршрутизатора

Рис. 6.13. Формат сообщения о связях маршрутизатора

Предпочтение адреса используется для выбора маршрутизатора, который назначается по умолчанию. Если уровень предпочтения адреса нулевой, то маршрутизатор можно назначить как выбираемый по умолчанию. Если уровень предпочтения адреса – 8000000016, то этот маршрутизатор никогда не должен выбираться по умолчанию.

Контрольная сумма

В ICMP контрольная сумма вычисляется по полному сообщению (заголовок и данные).

Вычисление контрольной суммы

Передатчик выполняет следующие шаги, используя арифметику дополнения единицами:

  1. Поле контрольной суммы устанавливается на ноль.
  2. Вычисляется сумма всех слов на 16 бит (заголовок и данные).
  3. Сумма дополняется, чтобы получить контрольную сумму.
  4. Контрольная сумма сохраняется в поле контрольной суммы.

Испытание контрольной суммы

Приемник выполняет следующие шаги, используя арифметику дополнения единицами:

  1. Вычисляется сумма всех слов (заголовок и данные).
  2. Сумма дополняется.
  3. Если результат, полученный в шаге 2, — 16 нулей, сообщение принято; иначе — оно удаляется.

Алгоритмы работы модулей блок-схемы ICMP

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

Блок-схема модулей ICMP

Рис. 6.14. Блок-схема модулей ICMP

Основные алгоритмы работы модулей ICMP даны на рис. 6.15., рис. 6.16.

Алгоритм работы модуля ввода ICMP

увеличить изображение
Рис. 6.15. Алгоритм работы модуля ввода ICMP
Алгоритм работы модуля вывода ICMP

увеличить изображение
Рис. 6.16. Алгоритм работы модуля вывода ICMP

Входной модуль

Входной модуль обрабатывает все полученные ICMP-сообщения. Он вызывается, когда ICMP-пакет доставлен к нему от уровня IP. Если полученный пакет — запрос или ходатайство, модуль создает ответ или извещение и отсылает его.

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

Модуль вывода

Модуль вывода отвечает за создание запроса ходатайства или сообщения об ошибках, которые нужны протоколам более высокого уровня или протоколам IP. Модуль получает запрос от IP, UDP или TCP, чтобы послать одно из ICMP-сообщений об ошибках. Если запрос от IP, модуль вывода должен сначала проверить, что запрос разрешен. Напомним, что ICMP-сообщение не может быть создано для четырех ситуаций: для пакета IP, несущего сообщение об ошибках ICMP; для фрагментированного пакета IP; для пакетов IP, рассылаемых по многим адресам; или для пакета IP, имеющего адрес IP 0.0.0.0 или 127.X.Y.Z. Алгоритм работы модуля показан на рис.6.16.

Можно отметить, что модуль вывода (оператор 1 на рис. 6.16) может также получить запрос от прикладной программы, чтобы послать один из запросов ICMP или сообщений ходатайства.

< Лекция 5 || Лекция 6: 123456 || Лекция 7 >
Илья Сидоркин
Илья Сидоркин
Как получить диплом?
Наталья Шульга
Наталья Шульга
Здравствуйте. Актуален ли данный курс?
Антон Соколов
Антон Соколов
Россия, Санкт-Петербург