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 Тип адреса 8 family 2 — IPv4
3 Маска подсети 8(+32) count, mask count = 0 — нет поля mask, для следующих маршрутов используется маска сети назначения; 1 — есть поле mask, длина которого зависит от типа адреса
4 Метрика 8 value Метрика следующих пунктов назначения относительно маршрутизатора, посылающего команду
5 Флаги 8 value бит 7 — пункт назначения недоступен; бит 6 — скрываемый маршрут расщепления горизонта
6 Бесконечность 8 value Значение метрики, считающееся бесконечностью
7 Адрес назначения 8+32×N count, address1, …, addressN Количество адресов, массив адресов назначения; длина адреса зависит от его типа
8 Запрашиваемые адреса назначения 8+32×N count, address1, …, addressN Количество адресов, массив адресов назначения, для которых запрашиваются маршруты; при count = 0 – запрашиваются все адреса
9 Неучастие в группе 8+(32+32)×N count, address1, time1, …, addressN, timeN Количество элементов, массив из пар: групповой адрес, время действия; запрещает посылку датаграмм по указанным адресам на указанное время
10 Отмена неучастия в группе 8+32×N count, address1, …, addressN Количество адресов, массив групповых адресов, для которых отменяется запрет посылки датаграмм

См. такжеПравить

ПримечанияПравить

  1. Групповая рассылка дейтаграмм (мультикастинг) (недоступная ссылка). Дата обращения 14 марта 2010. Архивировано 20 апреля 2002 года.
  2. 1 2 Протокол DVMRP (недоступная ссылка). Дата обращения 14 марта 2010. Архивировано 28 апреля 2012 года.
  3. DVMRP: Distance Vector Multicast Routing Protocol (англ.) (недоступная ссылка). Дата обращения 14 марта 2010. Архивировано 20 апреля 2012 года.