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]:
|
- Версия — текущее значение 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 | Количество адресов, массив групповых адресов, для которых отменяется запрет посылки датаграмм |
См. также
Примечания
- Групповая рассылка дейтаграмм (мультикастинг) (недоступная ссылка). Дата обращения: 14 марта 2010. Архивировано 20 апреля 2002 года.
- Протокол DVMRP (недоступная ссылка). Дата обращения: 14 марта 2010. Архивировано 28 апреля 2012 года.
- DVMRP: Distance Vector Multicast Routing Protocol (англ.) (недоступная ссылка). Дата обращения: 14 марта 2010. Архивировано 20 апреля 2012 года.