Distance Vector Multicast Routing Protocol

Distance Vector Multicast Routing Protocol (DVMRP — Протокол дистанционно-векторной многоадресной маршрутизации) — протокол маршрутизации групповых датаграмм для IP-сетей. Протокол предназначен для использования внутри автономных систем, то есть является протоколом внутридоменной маршрутизации.

Описание протокола DVMRP находится в RFC 1075.

Основные положения

Протокол DVMRP реализует метод RPF (Reverse Path Forwarding) с усечением (Prune)[1]. Когда маршрутизатор получает пакет, он пересылает его на все интерфейсы, кроме исходного. Если в зоне ответственности маршрутизатора нет членов мультикаст-группы, тогда маршрутизатор посылает обратно сообщение об исключении, отсекая ненужные (не имеющие членов) ветки дерева рассылки.

Структура датаграмм протокола

DVMRP использует сообщения протокола IGMP для обмена информацией с другими маршрутизаторами — поле протокола в IP-пакете заполняется значением 2[2].

Структура датаграмм протокола[2]:

+ 0—3 4—7 8—15 16—23 24—31
0 Версия Тип Код Контрольная сумма
32 Тело DVMRP-сообщения
  • Версия — текущее значение 1;
  • Тип — должно быть 3;
  • Код — определяет назначение пакета DVMRP[3]:
    • 1 = Response — сообщение обеспечивает маршрутизацию для нескольких групп;
    • 2 = Request — сообщение запрашивает маршрутизацию для нескольких групп;
    • 3 = Non-membership report — сообщение обеспечивает доклад о неучастии в группах;
    • 4 = Non-membership cancellation — сообщение отменяет предыдущий доклад о неучастии в группах;
  • Контрольная сумма — рассчитывается при передаче пакета и проверяется при получении; при расчёте контрольной суммы поле контрольной суммы принимается за ноль;
  • Тело сообщения — набор команд, выровненных по границе 16 бит:
    • код команды (8 бит);
    • данные (минимум 8 бит).
Команды
КомандаДанные
кодзначениеразмер (бит)наименованиезначение
0Пустая8игнорируются
2Тип адреса8family2 — IPv4
3Маска подсети8(+32)count, maskcount = 0 — нет поля mask, для следующих маршрутов используется маска сети назначения; 1 — есть поле mask, длина которого зависит от типа адреса
4Метрика8valueМетрика следующих пунктов назначения относительно маршрутизатора, посылающего команду
5Флаги8valueбит 7 — пункт назначения недоступен; бит 6 — скрываемый маршрут расщепления горизонта
6Бесконечность8valueЗначение метрики, считающееся бесконечностью
7Адрес назначения8+32×Ncount, address1, …, addressNКоличество адресов, массив адресов назначения; длина адреса зависит от его типа
8Запрашиваемые адреса назначения8+32×Ncount, address1, …, addressNКоличество адресов, массив адресов назначения, для которых запрашиваются маршруты; при count = 0 – запрашиваются все адреса
9Неучастие в группе8+(32+32)×Ncount, address1, time1, …, addressN, timeNКоличество элементов, массив из пар: групповой адрес, время действия; запрещает посылку датаграмм по указанным адресам на указанное время
10Отмена неучастия в группе8+32×Ncount, address1, …, addressNКоличество адресов, массив групповых адресов, для которых отменяется запрет посылки датаграмм

См. также

Примечания

  1. Групповая рассылка дейтаграмм (мультикастинг) (недоступная ссылка). Дата обращения: 14 марта 2010. Архивировано 20 апреля 2002 года.
  2. Протокол DVMRP (недоступная ссылка). Дата обращения: 14 марта 2010. Архивировано 28 апреля 2012 года.
  3. DVMRP: Distance Vector Multicast Routing Protocol (англ.) (недоступная ссылка). Дата обращения: 14 марта 2010. Архивировано 20 апреля 2012 года.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.