Введение
Отправка датаграмм нескольким получателям
IP-мультикаст – это метод отправки интернет-протокольных (IP) датаграмм группе заинтересованных получателей в рамках одной передачи. Это IP-специфическая форма мультикаста, используемая для потоковой передачи мультимедиа и других сетевых приложений. Он использует специально зарезервированные блоки многоадресных IP-адресов в IPv4 и IPv6. Протоколы, связанные с IP-мультикастом, включают протокол управления группами в интернете (IGMP), протокол независимого мультикаста (PIM) и регистрацию мультикаста в VLAN. IGMP snooping используется для управления IP-мультикаст трафиком в сетях второго уровня. IP-мультикаст был впервые стандартизирован в 1986 году. Его спецификации были дополнены в 2001 году для включения управления группами и в 2008 году для включения административно-ограниченных адресов.
Техническое описание
IP-мультикаст – это технология для организации связи один-ко-многим и многие-ко-многим в режиме реального времени через IP-инфраструктуру сети. Она масштабируется для большого числа получателей, не требуя предварительного знания идентификаторов получателей или их количества. Мультикаст эффективно использует сетевую инфраструктуру, поскольку источник должен отправить пакет только один раз, даже если он предназначен для большого числа получателей. Узлы сети (как правило, сетевые коммутаторы и маршрутизаторы) обеспечивают репликацию пакета для доставки его множеству получателей, при этом сообщения передаются по каждой линии связи сети только один раз. Наиболее распространенным протоколом транспортного уровня для использования мультикаст-адресации является протокол пользовательских данных (UDP). По своей природе UDP не гарантирует надежность – сообщения могут быть потеряны или доставлены не по порядку. Для обеспечения надежности мультикаст-связи, например, для обнаружения потерь и повторной передачи данных, были разработаны протоколы, такие как Pragmatic General Multicast (PGM), работающие поверх IP-мультикаста. Ключевыми понятиями IP-мультикаста являются IP-адрес группы мультикаста, дерево распространения мультикаста и создание дерева, инициируемое получателями. IP-адрес группы мультикаста используется источниками и получателями для отправки и получения мультикаст-сообщений. Источники используют групповой адрес в качестве IP-адреса назначения в своих пакетах данных. Получатели используют этот групповой адрес, чтобы сообщить сети о своем интересе к получению пакетов, отправленных в эту группу. Например, если контент связан с группой , источник будет отправлять пакеты данных, предназначенные для получателей этого контента, которые, в свою очередь, сообщат сети о своем желании получать данные, отправленные в эту группу. Получатель присоединяется к группе. Протокол, обычно используемый получателями для присоединения к группе, называется протоколом управления группами в Интернете (IGMP). При использовании протоколов маршрутизации, основанных на общих деревьях, после присоединения получателей к определенной IP-группе мультикаста для этой группы строится дерево распространения мультикаста. Наиболее широко используемым протоколом для этого является Protocol Independent Multicast (PIM). Он настраивает деревья распространения мультикаста таким образом, чтобы пакеты данных от отправителей в группу мультикаста достигали всех получателей, присоединившихся к группе. Существуют различные реализации PIM: Sparse Mode (SM), Dense Mode (DM), source-specific multicast (SSM) и Bidirectional Mode (Bidir, или Sparse Dense Mode, SDM). На сегодняшний день (2006 год) наиболее широко используется PIM SM; SSM и Bidir – более простые и масштабируемые варианты, разработанные позднее и набирающие популярность. Для работы IP-мультикаста активному источнику не требуется знать о получателях группы. Построение мультикаст-дерева инициируется получателями и начинается узлами сети, расположенными вблизи получателей. IP-мультикаст масштабируется для большого числа получателей. Архитектор Интернета Дэйв Кларк описал модель IP-мультикаста следующим образом: «Вы помещаете пакеты в один конец, и сеть стремится доставить их всем, кто об этом попросит». IP-мультикаст создает информацию о состоянии для каждого дерева распространения мультикаста в сети. Если маршрутизатор является частью 1000 деревьев мультикаста, он хранит 1000 записей маршрутизации и пересылки мультикаста. С другой стороны, мультикаст-маршрутизатору не нужно знать, как достичь всех остальных деревьев мультикаста в Интернете. Ему достаточно знать только о деревьях мультикаста, для которых у него есть нисходящие получатели. Это является ключевым фактором масштабируемости мультикаст-сервисов. В отличие от этого, маршрутизатор unicast должен знать, как достичь всех остальных unicast-адресов в Интернете, даже если он использует для этого только маршрут по умолчанию. Поэтому агрегация является ключевым фактором масштабируемости unicast-маршрутизации. Кроме того, существуют магистральные маршрутизаторы, которые содержат сотни тысяч маршрутов, поскольку они содержат таблицу маршрутизации Интернета.
Доставка второго уровня
Пакеты Unicast доставляются конкретному получателю в подсети Ethernet или IEEE 802.3 путем установки конкретного MAC-адреса 2-го уровня в адрес пакета Ethernet. Пакеты широковещания используют широковещательный MAC-адрес. Пакеты IPv4 многоадресной рассылки доставляются с использованием диапазона MAC-адресов Ethernet (с OUI, принадлежащим IANA). Этот диапазон содержит 23 бита доступного адресного пространства. Первый октет (01) включает в себя бит широковещания/многоадресной рассылки. Нижние 23 бита 28-битного IP-адреса многоадресной рассылки отображаются в 23 бита доступного адресного пространства Ethernet. Это приводит к неоднозначности при доставке пакетов. Если два хоста в одной подсети подписаны на разные группы многоадресной рассылки, адреса которых отличаются только в первых 5 битах, пакеты Ethernet для обеих групп многоадресной рассылки будут доставлены обоим хостам, что потребует от сетевого программного обеспечения хостов отбрасывать ненужные пакеты. Для IPv6 многоадресных адресов MAC-адрес Ethernet формируется путем объединения (OR) четырех младших октетов с MAC-адресом, поэтому, например, IPv6-адрес будет сопоставлен с MAC-адресом Ethernet. Если коммутатор не поддерживает многоадресную рассылку, он будет пересылать этот трафик всем членам локальной сети; в этом случае сетевая карта системы (или операционная система) должна фильтровать пакеты, отправленные в группы многоадресной рассылки, на которые они не подписаны. Существуют коммутаторы, которые прослушивают трафик IGMP и поддерживают таблицу состояний, в которой указаны сетевые системы, подписанные на данную группу многоадресной рассылки. Эта таблица затем используется для пересылки трафика, предназначенного для данной группы, только ограниченному набору хостов (портов). Этот процесс прослушивания трафика IGMP называется IGMP snooping. Кроме того, некоторые коммутаторы с функциональностью 3-го уровня могут выступать в качестве IGMP-запрашивающего устройства. В сетях, где отсутствует маршрутизатор, выполняющий функцию маршрутизатора многоадресной рассылки, коммутатор с включенной функцией IGMP-запрашивающего устройства может использоваться для генерации необходимых сообщений IGMP, чтобы пользователи могли подписаться на трафик многоадресной рассылки.
IPv4 multicast packets are delivered using the Ethernet MAC address range through (with an OUI owned by the IANA). This range has 23 bits of available address space. The first octet (01) includes the broadcast/multicast bit. The lower 23 bits of the 28 bit multicast IP address are mapped into the 23 bits of available Ethernet address space. This means that there is ambiguity in delivering packets. If two hosts on the same subnet each subscribe to a different multicast group whose address differs only in the first 5 bits, Ethernet packets for both multicast groups will be delivered to both hosts, requiring the network software in the hosts to discard the unrequired packets. For IPv6 multicast addresses, the Ethernet MAC is derived by the four low order octets OR'ed with the MAC , so for example the IPv6 address would map to the Ethernet MAC address If a switch does not understand multicast addresses then it will flood that traffic to all the members of a LAN; in this case the system's network card (or operating system) has to filter the packets sent to multicast groups they are not subscribed to. There are switches that listen to IGMP traffic and maintain a state table of which network systems are subscribed to a given multicast group. This table is then used to forward traffic destined to a given group only to a limited set of hosts (ports). This process of listening to the IGMP traffic is called IGMP snooping. Additionally, some switches with layer 3 capabilities can act as an IGMP querier. In networks where there is no router present to act as a multicast router, a switch with IGMP snooping querier enabled can be used to generate the needed IGMP messages to get users to subscribe to multicast traffic.
Рассмотрение беспроводных устройств
Беспроводные сети 802.11 используют тот же диапазон MAC-адресов, что и проводной Ethernet, для сопоставления IP-адресов многоадресной рассылки. Однако беспроводная сеть 802.11 обрабатывает многоадресный трафик иначе, в зависимости от конфигурации сообщения индикации доставки трафика (DTIM) и настроек интервала маяка. Если в базовом наборе служб нет станций в режиме энергосбережения, пакеты многоадресной рассылки отправляются немедленно по мере поступления. Если одна или несколько станций находятся в режиме энергосбережения, точки доступа доставляют многоадресный трафик только после каждого интервала DTIM и передают на одной из поддерживаемых скоростей в базовом наборе скоростей. В большинстве беспроводных точек доступа конфигурация по умолчанию для этого интервала составляет 102,4 мс (интервал маяка = 100 мс, DTIM = 1) или 204,8 мс (интервал маяка = 100 мс, DTIM = 2), а скорость передачи данных составляет 1 Мбит/с или 6 Мбит/с, в зависимости от рабочей полосы и режима защиты. Настройки интервала DTIM и маяка можно настроить для повышения производительности многоадресной рассылки в беспроводных сетях. В отличие от Ethernet, большая часть трафика в 802.11 передается надежно с использованием подтверждений (ACK) и отрицательных подтверждений (NACK), чтобы радиопомехи не вызывали чрезмерно высоких потерь пакетов. Однако пакеты многоадресной рассылки отправляются один раз и не подтверждаются, поэтому они подвержены гораздо более высоким потерям. Существуют различные способы решения этой проблемы, например, выбор повторной одноадресной рассылки многоадресных данных каждому клиенту или запрос подтверждений от каждого клиента. Некоторые методы требуют только модификации на стороне точки доступа и поддерживаются в некоторых устройствах корпоративного класса, в то время как другие улучшения потребуют модификаций клиентов и, следовательно, не получили широкого распространения.
Безопасный мультикаст
IP-мультикаст — это метод интернет-коммуникации, при котором один пакет данных может быть передан от отправителя и реплицирован для набора получателей. Методы репликации в некоторой степени зависят от среды передачи данных. Передача мультикаста по среде с присущей широковещательной природой, такой как Ethernet или спутниковая линия связи, автоматически позволяет всем получателям, непосредственно подключенным к среде, принимать пакет данных. В отличие от этого, передача мультикаста по средам типа «точка-точка» или «точка-многоточка» требует репликации пакета для каждого соединения. Процесс репликации должен выполняться оптимально, с построением дерева распространения в сети. Пакет может реплицироваться в каждой ветви дерева, что снижает необходимость для отправителя реплицировать пакет отдельно для каждого получателя. Использование IPsec в качестве канала связи требует установления соединения типа «точка-точка». Как правило, требуется обеспечение безопасности от отправителя к получателю, что подразумевает репликацию пакета отправителем для каждого защищенного соединения, по одному для каждого получателя. С ростом числа получателей отправителю необходимо масштабироваться, реплицируя пакет для каждого из них. Это может создавать высокую нагрузку на процессор отправителя, что ограничивает его масштабируемость. Для безопасной передачи мультикаста потребовался новый метод, получивший название Secure Multicast или Multicast Security. Internet Engineering Task Force (IETF) разработала новый протокол IP для безопасной передачи мультикастного трафика по пакетной сети. Определение протокола было разработано в рабочей группе Multicast Security и привело к созданию нескольких документов Request for Comments (RFC), которые теперь используются в качестве стандартов для защиты IP-мультикастного трафика. Протокол позволяет отправителю шифровать пакет мультикаста и пересылать его в пакетную сеть по оптимальному дереву распространения. Пакет может реплицироваться в оптимальных точках сети и доставляться всем получателям. Получатели способны расшифровать пакет и пересылать его в защищенной сетевой среде. Отправитель мультикастного пакета не знает потенциальных получателей, поэтому создание парных ключей шифрования (по одному для каждого получателя) невозможно. Отправитель должен шифровать пакеты, используя общий ключ, который все легитимные получатели используют для расшифровки. Безопасность системы основана на возможности контролировать распространение ключей только среди легитимных получателей. Для этого IETF разработал протокол Group Domain of Interpretation (GDOI), определенный в RFC 6407. Протокол позволяет отправителю и получателю присоединиться к серверу ключей, где политики и ключи шифруются и распространяются среди членов защищенной группы мультикаста. Сервер ключей может аутентифицировать и авторизовать отправителей и получателей в определенную группу, где общий ключ используется для шифрования и дешифрования трафика между членами группы.
Надежная мультикаст
Мультикаст, по своей природе, не является механизмом, ориентированным на установление соединения, поэтому такие протоколы, как TCP, обеспечивающие повторную передачу потерянных пакетов, не подходят. Для приложений, таких как потоковое аудио и видео, случайная потеря пакета не критична. Однако для распространения важных данных требуется механизм запроса повторной передачи. Один из таких механизмов, предложенный компанией Cisco, – PGM (первоначально Pretty Good Multicasting, но измененный на Pragmatic General Multicast из-за товарных знаков), описанный в RFC 3208. В этом механизме мультимедийные пакеты имеют порядковые номера, и при потере пакета получатель может запросить его повторную рассылку другим участникам группы мультивещания, игнорируя заменяющие данные, если они не требуются. Расширенная версия, PGM CC, стремится сделать IP-мультикаст более "дружественным к TCP", снижая пропускную способность всей группы до уровня, доступного для наихудшего получателя. Другие два механизма, описанные в Internet Engineering Task Force (IETF), – это протокол NACK Oriented Reliable Multicast (NORM), описанный в RFC 5740 и RFC 5401, и протокол File Delivery over Unidirectional Transport (FLUTE), описанный в RFC 6726. Существуют как открытые, так и проприетарные реализации этих протоколов. Существуют и другие протоколы, такие как Scalable Reliable Multicast, определенные различными источниками. Эти протоколы различаются по методам обнаружения ошибок, механизмам восстановления ошибок, масштабируемости восстановления и базовым принципам надежности. Список надежных протоколов мультивещания из семинара ACM SIGCOMM Multicast, прошедшего 27 августа 1996 года, документирует ряд подходов к решению этой проблемы. Независимые группы, такие как Internet Protocol Multicast Standards Initiative (IPMSI), утверждают, что отсутствие действительно масштабируемого и безопасного протокола надежного IP-мультикаста, такого как предложенный Secure Multicast for Advanced Repeating of Television (SMART), препятствует внедрению IP-мультикаста в междоменной маршрутизации. Отсутствие широко распространенной системы с безопасностью уровня AES и масштабируемой надежностью не позволяет транслировать в открытом Интернете массовые мероприятия, такие как спортивные соревнования (например, Супер Боул) и/или срочные новости. Надежные протоколы IP-мультикаста, такие как PGM и SMART, являются экспериментальными; единственным протоколом, соответствующим стандартам, является NORM (ревизия стандартов RFC 3941 указана в RFC 5401, а ревизия стандартов RFC 3940 – в RFC 5740).
Протоколы на основе мультикаста
Поскольку мультикаст — это режим передачи, отличный от одноадресной (unicast), то для работы с мультикастом целесообразно использовать только протоколы, разработанные специально для него. Большинство существующих прикладных протоколов, использующих мультикаст, работают поверх протокола пользовательских датаграмм (UDP). Во многих приложениях для передачи мультимедийного контента по мультикасту используется протокол реального времени (RTP), а протокол резервирования ресурсов (RSVP) может применяться для резервирования полосы пропускания в сети, поддерживающей мультикаст-распространение. Multicast DNS (mDNS) позволяет разрешать доменные имена или имена хостов без выделенного DNS-сервера, используя мультикаст.
Развертывание
IP-мультикаст широко используется на предприятиях, коммерческих фондовых биржах и в сетях доставки мультимедийного контента. Распространенным применением IP-мультикаста на предприятиях являются приложения IPTV, такие как трансляция прямой трансляции телевидения и телевизионные корпоративные совещания. В сфере гостеприимства IP-мультикаст стал обычным способом распространения IPTV в отелях, а в розничной торговле он широко используется для телевизионного вещания и видеорекламы. Операторы платного телевидения и некоторые учебные заведения с большим количеством общежитий развернули IP-мультикаст для доставки одностороннего потокового мультимедиа, например, высокоскоростного видео, большому количеству приемников. Кроме того, существуют примеры использования аудио- и видеоконференций на основе технологий мультикаста. Они встречаются реже и чаще всего применяются в научно-исследовательских и образовательных учреждениях, которые обычно обладают большей пропускной способностью сети для удовлетворения потребностей. Некоторые технические конференции и совещания транслируются с использованием IP-мультикаста. До недавнего времени многие сессии на встречах IETF проводились с использованием мультикаста. Другое применение мультикаста в корпоративных и университетских сетях – это распространение файлов, особенно доставка образов операционных систем и обновлений на удаленные хосты. Ключевым преимуществом загрузочных образов мультикаста перед загрузочными образами уникаста является значительно меньшее использование полосы пропускания сети. IP-мультикаст также нашел применение в финансовом секторе для таких приложений, как биржевые ленты и системы мгновенного оповещения. Высокие требования к состоянию маршрутизаторов делают невозможным работу приложений, использующих большое количество деревьев, при использовании IP-мультикаста. В качестве примера можно привести информацию о присутствии, когда каждому пользователю необходимо поддерживать как минимум одно дерево своих подписчиков, а то и несколько. Пока не разработан механизм, позволяющий масштабировать модель IP-мультикаста до миллионов отправителей и миллионов групп мультикаста, и, следовательно, пока невозможно создать полностью работоспособные универсальные приложения мультикаста. RFC 3170 (IP Multicast Applications: Challenges & Solutions) содержит обзор проблем развертывания.
Разработка
IP-мультитрансляция была впервые разработана Стивом Дирингом во время работы в Стэнфордском университете, за что он получил премию IEEE Internet Award. MBONE представлял собой длительный экспериментальный подход к организации мультитрансляции между узлами посредством туннелей. Хотя MBONE больше не работает, наблюдается возрождение интереса к туннелированию мультикастного трафика с целью предоставления этой услуги широкому кругу пользователей.
КастГейт
CastGate была попыткой исследовательской группы ETRO TELE при Университете свободных исследований Брюсселя (Vrije Universiteit Brussel) внедрить IP-мультикаст в Интернет. Хотя мультикаст позволил бы пользователям Интернета получать мультимедийный контент и другие данные, не создавая высокой нагрузки на сеть, он оставался недоступным для большинства пользователей. Проект CastGate стремился решить эту проблему, предоставляя конечным пользователям возможность подключения через автоматически настроенный IP-туннель в сетях, не поддерживающих IP-мультикаст изначально. Предполагалось, что расширение числа пользователей с поддержкой мультикаста побудит больше поставщиков контента использовать потоковую передачу контента по мультикасту. Была надежда, что при достаточном количестве пользователей и поставщиков контента, использующих эту услугу, больше интернет-провайдеров начнут предоставлять IP-мультикаст своим клиентам нативно.
Коммерческое использование
Начиная с 2005 года, BBC стала стимулировать интернет-провайдеров в Великобритании к внедрению многоадресных (multicast) сервисов в своих сетях, предлагая BBC Radio в более высоком качестве, чем при использовании одноадресных (unicast) сервисов. Эту инициативу поддержали и различные коммерческие радиосети, включая BBC, GCap Media, EMAP и Virgin Radio. Немецкие общественные вещатели ARD и ZDF, а также франко-германская сеть Arte, предлагают свои телевизионные программы в многоадресном режиме через несколько сетей. Австрийский интернет-провайдер Telekom Austria предоставляет своим абонентам цифровой абонентской линии (DSL) ТВ-приставку, использующую многоадресную рассылку для приема телевизионных и радиопередач. В Германии аналогичную услугу предлагает T Home, бренд Deutsche Telekom.