Distance Vector Multicast Routing Protocol (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 года.