Протокольно-независимая многоадресная рассылка.
Новые приложения на базе Web — цифровое телевидение, видеотелефония и видеоконференции по IP — уже готовы к старту. Им требуются протоколы для управления абонентами и эффективной маршрутизации данных. Проблемная группа проектирования Internet (Internet Engineering Task Force, IETF) выпустила переработанный стандарт протокольно-независимой многоадресной рассылки.
Приложения, задействующие стек протоколов TCP/IP, постоянно развиваются. Следующее поколение использует видео- и аудиоинформацию, передает курс акций в реальном времени, доставляет корпоративные сообщения, к примеру извеще-ния о собрании акционеров всем или только указанным сотрудникам, и поддерживает процессы удаленного обучения на базе Web (Interactive Video Distance Learning). Многоадресная рассылка по IP — возможность одновременной отправки пакетов IP нескольким станциям в одной логической группе — является важным компонентом таких приложений, как передача голоса по IP (Voice over IP, VoIP). Видеоконференции, в частности, предполагают доставку «картинки» сразу нескольким участникам. Когда многоадресная датаграмма IP с видеоинформацией передается целому ряду участников, это заметно экономит пропускную способность в сети и оптимизирует синхронизацию времени.
С этой целью используются разные протоколы: протокол управления группами в Internet (Internet Group Management Protocol, IGMP) служит для поиска в Internet различных хостов, объединенных в одну группу многоадресной рассылки, и управления ими (включение/исключение из группы). Разработанный компанией Cisco собственный протокол управления группами Cisco (Cisco Group Management Protocol, CGMP) позволяет коммутаторам из серии Catalyst проверить наличие клиентов многоадресной рассылки на портах маршрутизатора или коммутатора третьего уровня.
Протоколы многоадресной маршрутизации делятся на две категории в зависимости от плотности расположения членов группы — концентрированный (dense mode) и разреженный (sparse mode) режим. В первом случае предполагается, что почти весь многоадресный трафик направляется маршрутизатором дальше в локальную сеть. Например, директор предприятия хочет отправить сообщение всем сотрудникам главного управления. Пропускной способности должно быть достаточно для выполнения этой задачи, а протоколы используются следующие:
- протокольно-независимая много-адресная рассылка в концентрированном режиме (Protocol Independent Multicast - Dense Mode, PIM-DM, RFC 3973 от 1/2005);
- дистанционно-векторный протокол многоадресной маршрутизации (Distance Vector Multicast Routing Protocol, DVMPR, RFC 1075);
- многоадресная рассылка с первоочередным выбором кратчайших маршрутов (Multicast Open Shortest Path First, MOSPF, RFC 1584).
Разреженный режим предназначен для приложений, когда участники распределены по большой области (глобальной сети), многоадресный трафик обрабатывается небольшим количеством маршрутизаторов, а пропускная способность невелика. Для этого способа функционирования необходимы другие протоколы:
- протокол построения дерева от центра (Core-based Tree, CBT, RFC 2201);
- протокольно-независимая многоадресная рассылка в разреженном режиме (Protocol Independent Multicast - Sparse Mode, PIM-SM, RFC 2362).
Многоадресный трафик данных на четвертом (транспортном) уровне модели взаимодействия открытых систем использует протокол передачи дейтаграмм пользователя (User Datagram Protocol, UDP). Это означает, что последовательность и правильность данных не обеспечиваются.
ОДНОНАПРАВЛЕННАЯ ПЕРЕДАЧА ПРОТИВ МНОГОАДРЕСНОЙ
В сети с однонаправленным трафиком данных сервер отправляет копию пакета каждому клиенту, обладающему уникальным адресом. При больших объемах трафика данных пропускная способность должна быть соответствующим образом увеличена в расчете на каждого получателя. Сетевому администратору особое внимание следует уделить двум критериям: количеству абонентных соединений и числу однонаправленных передач. В случае широковещательной передачи приложение отправляет всем лишь одну копию пакета. Этот трафик данных либо блокируется на границе широковещательного домена (на третьем уровне), либо достигает всех узлов сети. Станции, которым широковещательный трафик не нужен, все равно его получают, поскольку все они пользуются широковещательными адресами (см. Рисунок 1).
Многоадресная рассылка — эффективный метод передачи больших объемов данных; при этом информацию получают лишь станции с соответствующим групповым адресом (см. Рисунок 2). За счет организации нескольких групп отправку можно выполнять избирательно, к примеру всем менеджерам предприятия. Когда клиентов становится больше, объем передаваемых данных при многоадресной рассылке не увеличивается.
АДРЕСАЦИЯ ПРИ МНОГОАДРЕСНОЙ РАССЫЛКЕ ПО IP
При многоадресной рассылке по IP группа хостов идентифицируется общим IP-адресом. Агентство по выделению имен и уникальных параметров протоколов Internet (Internet Assigned Numbers Authority, IANA) специфицировало групповые адреса IP как 32-разрядные адреса Internet класса D в числе «хорошо известных адресов». В локальной сети предлагается использовать 48-разрядный МАС-адрес. IANA зарезервировало для этого группу МАС-адресов. Код или префикс вендора (OUI) МАС-адреса лежит в интервале между 01:00:5е:00:00:00 и 01:00:5е:ff:ff:ff. Вторая часть группового адреса Ethernet берется из группового адреса IP. Отправитель многоадресных данных всегда указывает свой уникальный адрес, а кроме того, он не обязан быть членом группы многоадресной рассылки.
- Пример:
- IP-адрес = 224.1.10.10 класс D
- МАС-адрес: 0100.5Е04.0302
- Искомое: групповой МАС-адрес
- Результат: 0100.5Е01.0А0А
ПРИНЦИП ДЕЙСТВИЯ
Прежде всего сетевой администратор должен определить, какая станция в сети будет получать многоадресные данные и к какой группе ее отнести. Это можно проделать автоматически при помощи IGMP. На маршрутизаторе администратор активирует функцию многоадресной рассылки. Каждые 60 мс станциям из группы посылается запрос (относительно их желания получать много-адресный трафик). В случае IGMPv2 отвечает лишь одна станция из группы многоадресной рассылки (подавление ответа). Получив сообщение с запросом, станция устанавливает таймер обратного отсчета на случайное время от 0 до 10 с, после чего начинается обратный отсчет. Когда он заканчивается, станция посылает сообщение о членстве. Если последнее приходит до того, как закончился обратный отсчет, станция обнуляет счетчик. Для каждой группы ведется отдельный отсчет.
Если станция намерена присоединиться к группе многоадресной рассылки, запроса ждать не надо — при помощи соответствующего сообщения ей необходимо зарегистрироваться на станциях, предназначенных для многоадресной рассылки.
В случае IGMPv1 специальные функции для выхода из группы отсутствуют. Благодаря чтению сообщений с запросами маршрутизатор остается достаточно хорошо осведомленным о происходящем. В случае IGMPv2 станции отправляют сообщения о выходе из группы всем маршрутизаторам многоадресной рассылки 224.0.0.2. Эта функция сокращает время актуализации таблицы членов группы. Запись «TTL = 1» (Time to Live — время жизни) в заголовке IP предотвращает попадание сообщения с запросом в сеть, расположенную за маршрутизатором. В IGMPv1 в сообщении с запросом о членстве в группе от маршрутизатора групповой адрес устанавливается равным 0. Таким образом, маршрутизатор отправляет запрос всем хостам с групповым адресом 224.0.0.1.
IGMP
IGMPv1 (RFC 1112) использует формат кадра, изображенный на Рисунке 3. IGMPv2 (RFC 2236) дополняет первую версию, к примеру сообщениями о выходе из группы.
Для IGMPv2, наряду с общим запросом на групповой адрес 224.0.0.1, предусмотрен запрос к конкретной многоадресной группе. IGMPv2 «знает» четыре типа сообщений:
- 0х11 - запрос о членстве;
- 0х12 V1 - сообщение о членстве;
- 0х16 V2 - сообщение о членстве;
- 0х17 - сообщение о выходе.
IGMPv2 определяет метод выбора маршрутизатора в одной сети, который должен отправлять запросы: их посылает устройство с наименьшим IP-адресом. Все другие, увидев запрос от такого маршрутизатора, прекращают отправку сообщений. Если маршрутизатор IGMPv2 получает сообщение о выходе из группы, он сразу же отправляет сообщение с запросом, чтобы проверить, есть ли на этом интерфейсе хотя бы один активный член группы многоадресной рассылки.
Windows XP и некоторые операционные системы UNIX поддерживают IGMPv3 (RFC 3376 от 10/2002, см. Рисунок 4). В этой версии предопределенные группы хостов многоадресной рассылки (получателей) могут принимать данные от специализированных хостов (отправителей). На запрос IGMPv3 отвечают все машины в группе. Групповой адрес 224.0.0.22 был веден специально для маршрутизатора IGMPv3.
В версии IGMPv3 реализовано пять типов сообщений IGMP:
- 0х11 - запрос о членстве (модифицированный);
- 0х12V.1 - сообщение о членстве (RFC 1112);
- 0х16V.2 - сообщение о членстве (RFC 2236);
- 0х17 - сообщение о выходе (RFC 2236);
- 0x22V.3 - сообщение о членстве (новый).
МАРШРУТИЗАЦИЯ МНОГОАДРЕСНОГО ТРАФИКА
Для эффективной передачи многоадресного трафика маршрутизаторы формируют древовидную структуру без «петель» при помощи протоколов многоадресной маршрутизации. Она связывает все станции, относящиеся к одной группе. Сообщения достигают интерфейса на маршрутизаторе, лишь когда за ним имеются активные станции, заинтересованные в получении многоадресного трафика. Для построения древовидной структуры используются два базовых алгоритма: дерево распределения от отправителя и дерево совместного распределения.
Первый определяет для каждой группы кратчайший маршрут между отправителем и получателем (дерево кратчайшего пути — Shortest Path Tree, SPT). Тем самым данные поступают к получателю с минимальной задержкой. Метод с использованием дерева распределения от источника называется также продвижением данных по обратному маршруту (Reverse Path Forwarding, RPF). Тем самым уменьшается количество ненужного дублирования пакетов. Этот алгоритм реализован в протоколах DVMRP и MOSPF.
Метод дерева совместного распределения обеспечивает наименьшие накладные расходы при передаче. Он известен также как дерево точки встречи (Rendezvous Point Tree, RPT) или центрированное дерево (Center-specific Tree). Если в случае дерева распределения от отправителя для каждого отправителя (для каждой группы многоадресной рассылки) строится собственное дерево без «петель», в дереве совместного распределения одно общее дерево служит всем членам групп многоадресной рассылки. Его реализуют протоколы — CBT и PIM-SM.
PIM-SM был недавно переработан и вскоре выйдет в качестве RFC. Маршрутизаторы PIM периодически отправляют многоадресные приветственные сообщения для выявления соседних маршрутизаторов PIM. Маршрутизатор с большим адресом сетевого уровня (IP-адресом) служит в качестве выделенного маршрутизатора (Designated Router, DR). Приветственные сообщения посылаются как многоадресные сообщения с адресом 224.0.0.13. Поле времени задержки в опциях определяет, как долго эта информация действительна. Маршрутизаторы не отправляют подтверждения в ответ на приветственные сообщения. В отличие от других протоколов маршрутизации, к примеру DVMRP, получение такого сообщения не означает автоматически, что маршрутизатор включает интерфейс, на который оно поступило, в список интерфейсов многоадресной рассылки. PIM-SM использует «модель включения в явном виде»: получатель вниз по потоку сначала должен присоединиться к группе получателей многоадресных сообщений, чтобы впоследствии принять их.
Поля заголовка PIM-SM содержат следующую информацию:
- Ver означает версию PIM (4 бит);
- Type - обозначение специального управляющего сообщения (4 бит, см. Таблицу 1);
- Reserved задается равным нулю (8 бит);
- Checksum - 16-разрядное дополнение до единицы полного сообщения PIM, без части данных в сообщении регистрации (16 бит).
Таблица 1. IP-адреса для многоадресной рассылки класса D. |
Выделенный маршрутизатор отвечает за передачу многоадресных сообщений о присоединении и о выходе в точку встречи (Rendezvous Point, RP) для каждой группы. Точка встречи — это корень древовидной структуры совместного распределения. Ее конфигурация выполняется вручную или автоматически, как в случае оборудования Cisco. Маршрутизаторы отправляют сообщения о присоединении или выходе вышестоящим маршрутизаторам и точкам встречи. На основании сообщений о присоединении формируется древовидная структура без «петель» для соответствующей группы.
Таблица 2. Типы сообщений PIM-SMv2. |
Отправитель передает многоадресную информацию своему выделенному маршрутизатору. Тот упаковывает данные в регистрационное сообщение однонаправленной передачи и отправляет его на точку встречи для этой группы. Маршрутизатор RP распаковывает и направляет извлеченные данные нижестоящим членам в RPT. При помощи сообщения остановки регистрации RP информирует DR о получении многоадресных данных, после чего DR прекращает упаковку данных в регистрации сообщения и отправляет обычные многоадресные данные.
Вольфганг Шульте — независимый ав-тор. С ним можно связаться по адресу: mg@lanline.awi.de.
? AWi Verlag
Определение многоадресной рассылки
В пользовательском словаре Internet (RFC, 1983 г.) присутствует следующее определение многоадресной рассылки: «Пакет с особым конечным адресом для нескольких получателей, которым эта информация предназначена». Таким образом, многоадресная рассылка означает возможность сети или службы строить соединения сразу с несколькими подключенными участниками и отправлять сообщения целому ряду определенных получателей. При этом предусматривается возможность обращаться к ним посредством всего лишь одного IP-адреса (групповой адрес).