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]:
    • Response — сообщение обеспечивает маршрутизацию для нескольких групп;
    • Request — сообщение запрашивает маршрутизацию для нескольких групп;
    • Non-membership report — сообщение обеспечивает доклад о неучастии в группах;
    • 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 Количество адресов, массив групповых адресов, для которых отменяется запрет посылки дейтаграмм

Примечания[править | править исходный текст]