IP multicast — это метод отправки датаграмм Интернет-протокола (IP) группе заинтересованных получателей в одной передаче. Это специфическая для IP форма multicast , используемая для потокового мультимедиа и других сетевых приложений. Она использует специально зарезервированные блоки адресов multicast в IPv4 и IPv6 .
Протоколы, связанные с многоадресной IP-рассылкой, включают протокол управления группами Интернета , многоадресную рассылку, независимую от протокола , и регистрацию многоадресной VLAN . IGMP-отслеживание используется для управления многоадресным трафиком IP в сетях уровня 2 .
Многоадресная IP-рассылка описана в RFC 1112. Многоадресная IP-рассылка была впервые стандартизирована в 1986 году. [1] Ее спецификации были расширены в RFC 4604 для включения управления группами и в RFC 5771 для включения административно ограниченных адресов.
IP multicast — это метод для связи в режиме реального времени «один ко многим» и «многие ко многим» через IP-инфраструктуру в сети. Он масштабируется до большего количества получателей, не требуя ни предварительного знания личности получателя, ни предварительного знания количества получателей. Multicast эффективно использует сетевую инфраструктуру, требуя от источника отправки пакета только один раз, даже если его необходимо доставить большому количеству получателей. Узлы в сети (обычно сетевые коммутаторы и маршрутизаторы ) заботятся о репликации пакета для достижения нескольких получателей, так что сообщения отправляются по каждому каналу сети только один раз.
Наиболее распространенным протоколом транспортного уровня для использования многоадресной адресации является протокол пользовательских датаграмм (UDP). По своей природе UDP не является надежным — сообщения могут быть потеряны или доставлены не по порядку. Надежные многоадресные протоколы, такие как Pragmatic General Multicast (PGM), были разработаны для добавления обнаружения потерь и повторной передачи поверх многоадресной IP-рассылки.
Ключевые концепции многоадресной IP-рассылки включают групповой адрес многоадресной IP-рассылки, [2] дерево распределения многоадресной рассылки и создание дерева, управляемое получателем. [3]
IP-адрес многоадресной группы используется источниками и получателями для отправки и получения многоадресных сообщений. Источники используют групповой адрес в качестве IP-адреса назначения в своих пакетах данных. Получатели используют этот групповой адрес, чтобы сообщить сети, что они заинтересованы в получении пакетов, отправленных в эту группу. Например, если некоторый контент связан с группой 239.1.1.1 , источник отправит пакеты данных, предназначенные для 239.1.1.1 . Получатели этого контента сообщат сети, что они заинтересованы в получении пакетов данных, отправленных в группу 239.1.1.1 . Получатель присоединяется к 239.1.1.1 . Протокол, который обычно используется получателями для присоединения к группе, называется протоколом управления группами Интернета (IGMP). [4]
С протоколами маршрутизации на основе общих деревьев, как только получатели присоединяются к определенной группе многоадресной IP-рассылки, для этой группы создается дерево многоадресной рассылки. Наиболее широко используемый для этого протокол — независимая от протокола многоадресная рассылка (PIM). Он устанавливает деревья многоадресной рассылки таким образом, что пакеты данных от отправителей в группу многоадресной рассылки достигают всех получателей, которые присоединились к группе. Существуют различные варианты реализации PIM: разреженный режим (SM), плотный режим (DM), многоадресная рассылка, зависящая от источника (SSM) и двунаправленный режим (Bidir или режим разреженной-плотной рассылки, SDM). Из них PIM-SM является наиболее широко используемым по состоянию на 2006 год [обновлять]; [ требуется ссылка ] SSM и Bidir — более простые и масштабируемые варианты, разработанные в последнее время и набирающие популярность. [ требуется ссылка ]
Работа многоадресной IP-рассылки не требует активного источника, чтобы знать о получателях группы. Построение дерева многоадресной рассылки управляется получателем и инициируется сетевыми узлами, которые находятся близко к получателям. Многоадресная IP-рассылка масштабируется до большой популяции получателей. Модель многоадресной IP-рассылки была описана архитектором Интернета Дэйвом Кларком следующим образом: «Вы помещаете пакеты на одном конце, и сеть вступает в сговор, чтобы доставить их любому, кто попросит». [5]
IP multicast создает информацию о состоянии для каждого дерева распределения multicast в сети. Если маршрутизатор является частью 1000 деревьев multicast, у него есть 1000 записей маршрутизации и пересылки multicast. С другой стороны, маршрутизатор multicast не должен знать, как достичь всех других деревьев multicast в Интернете. Ему нужно знать только о деревьях multicast, для которых у него есть нисходящие приемники. Это ключ к масштабированию услуг multicast-адресации. Напротив, маршрутизатор unicast должен знать, как достичь всех других адресов unicast в Интернете, даже если он делает это, используя только маршрут по умолчанию. По этой причине агрегация является ключом к масштабированию маршрутизации unicast. Кроме того, существуют основные маршрутизаторы, которые переносят маршруты сотнями тысяч, поскольку они содержат таблицу маршрутизации Интернета.
Каждый хост, который хочет быть принимающим членом группы многоадресной рассылки (т.е. получать данные, соответствующие определенному адресу многоадресной рассылки), должен использовать IGMP для присоединения. Соседние маршрутизаторы также используют этот протокол для связи.
При одноадресной маршрутизации каждый маршрутизатор проверяет адрес назначения входящего пакета и ищет его в таблице, чтобы определить, какой интерфейс использовать, чтобы пакет приблизился к месту назначения. Адрес источника не имеет значения для маршрутизатора. Однако при многоадресной маршрутизации адрес источника (который является простым адресом одноадресной рассылки) используется для определения направления потока данных. Источник многоадресного трафика считается восходящим. Маршрутизатор определяет, какие интерфейсы нисходящего потока являются пунктами назначения для этой многоадресной группы (адрес назначения), и отправляет пакет через соответствующие интерфейсы. Термин « пересылка по обратному пути» используется для описания этой концепции маршрутизации пакетов от источника, а не к месту назначения.
Может произойти ряд ошибок, если пакеты, предназначенные для одноадресной рассылки, случайно отправляются на многоадресный адрес; в частности, отправка ICMP-пакетов на многоадресный адрес использовалась в контексте DoS-атак как способ усиления пакетов.
В локальной сети многоадресная доставка контролируется протоколами IGMP (в сети IPv4 ) и MLD (в сети IPv6 ); внутри домена маршрутизации используются PIM или MOSPF ; между доменами маршрутизации используются междоменные протоколы многоадресной маршрутизации, такие как MBGP .
Ниже приведены некоторые распространенные протоколы доставки и маршрутизации, используемые для многоадресной рассылки:
Пакеты Unicast доставляются определенному получателю в подсети Ethernet или IEEE 802.3 путем установки определенного MAC-адреса уровня 2 в адресе пакета Ethernet. Широковещательные пакеты используют широковещательный MAC-адрес FF:FF:FF:FF:FF:FF .
Пакеты многоадресной рассылки IPv4 доставляются с использованием диапазона MAC-адресов Ethernet от 01:00:5E:00:00:00 до 01:00:5E:7F:FF:FF (с OUI, принадлежащим IANA ). Этот диапазон имеет 23 бита доступного адресного пространства. Первый октет (01) включает бит широковещательной/многоадресной рассылки. Нижние 23 бита 28-битного IP-адреса многоадресной рассылки отображаются в 23 бита доступного адресного пространства Ethernet. Это означает, что существует неоднозначность в доставке пакетов. Если два хоста в одной подсети подписаны на разные группы многоадресной рассылки, адреса которых отличаются только в первых 5 битах, пакеты Ethernet для обеих групп многоадресной рассылки будут доставлены обоим хостам, требуя от сетевого программного обеспечения на хостах отбрасывать ненужные пакеты. [6]
Для многоадресных адресов IPv6 MAC-адрес Ethernet получается путем объединения четырех младших октетов с MAC-адресом 33:33:00:00:00:00 , так что, например, адрес IPv6 ff02:dead:beef::1:3 будет отображаться в MAC-адрес Ethernet 33:33:00:01:00:03 . [7] Если коммутатор не понимает многоадресные адреса, он будет рассылать этот трафик всем членам локальной сети; в этом случае сетевая карта системы (или операционная система) должна фильтровать пакеты, отправляемые в многоадресные группы, на которые они не подписаны.
Существуют коммутаторы, которые прослушивают трафик IGMP и ведут таблицу состояний, в которой сетевые системы подписаны на заданную группу многоадресной рассылки. Затем эта таблица используется для пересылки трафика, предназначенного для заданной группы, только ограниченному набору хостов (портов). Этот процесс прослушивания трафика IGMP называется IGMP snooping .
Кроме того, некоторые коммутаторы с возможностями уровня 3 могут выступать в качестве IGMP-запросчика. В сетях, где нет маршрутизатора, который мог бы выступать в качестве многоадресного маршрутизатора, коммутатор с включенным IGMP-запросчиком может использоваться для генерации необходимых сообщений IGMP, чтобы заставить пользователей подписаться на многоадресный трафик.
Беспроводная сеть 802.11 использует тот же диапазон MAC-адресов, что и проводной Ethernet, для сопоставления IP-адресов многоадресной рассылки. Однако беспроводная сеть 802.11 обрабатывает многоадресный трафик по-разному, в зависимости от конфигурации сообщения индикации доставки трафика (DTIM) и настроек интервала маяка . Если ни одна станция в базовом наборе услуг не находится в режиме энергосбережения, многоадресные пакеты отправляются немедленно по прибытии. Если в режиме энергосбережения находится одна или несколько станций, точки доступа доставляют многоадресный трафик только после каждого интервала DTIM и передают на одной из поддерживаемых скоростей в базовом наборе скоростей. В большинстве беспроводных точек доступа настройка по умолчанию для этого интервала составляет либо 102,4 мс [ нужна цитата ] (интервал маяка = 100 мс, DTIM = 1) или 204,8 мс [ нужна цитата ] (интервал маяка = 100 мс, DTIM = 2), а скорость передачи составляет либо 1 Мбит/с, либо 6 Мбит/с [ нужна цитата ] в зависимости от рабочего диапазона и режима защиты. Настройки интервала DTIM и маяка можно настроить для улучшения производительности многоадресной передачи в беспроводных сетях. [8]
В отличие от Ethernet, большая часть трафика в 802.11 отправляется надежно с использованием ACK и NACK, чтобы радиопомехи не вызывали невыносимо высокие потери пакетов. Однако многоадресные пакеты отправляются один раз и не подтверждаются, поэтому они подвержены гораздо более высоким показателям потерь. Существуют различные методы решения этой проблемы, такие как выбор многократной одноадресной многоадресной передачи данных каждому клиенту или запрос ACK от каждого клиента. [9] Некоторые методы требуют только модификации точки доступа и поддерживаются некоторыми устройствами корпоративного класса, в то время как другие усовершенствования потребуют модификации клиентов и, следовательно, не получили широкого распространения.
IP multicast — это метод интернет-коммуникации, при котором один пакет данных может быть передан от отправителя и реплицирован на набор получателей. Методы репликации в некоторой степени зависят от среды, используемой для передачи данных. Передача multicast по собственной широковещательной среде, такой как Ethernet или спутниковая связь, автоматически позволяет получать пакет данных всеми получателями, напрямую подключенными к среде. Напротив, передача multicast по среде, которая является точкой-точкой или точкой-многоточкой, требует репликации пакета для каждого соединения. Процесс репликации должен происходить оптимальным образом, когда в сети построено дерево распределения. Пакет может быть реплицирован на каждой из ветвей дерева. Это смягчает требование к отправителю реплицировать пакет один раз для каждого получателя.
Использование IPsec в качестве канала связи требует установления соединения точка-точка. Обычно безопасность требуется от отправителя к получателю, что подразумевает, что отправитель должен реплицировать пакет на каждом из защищенных соединений - по одному для каждого получателя. По мере роста числа получателей отправитель должен масштабироваться, реплицируя пакет каждому из получателей. Нагрузка обработки, возложенная на отправителя, может быть высокой, что ограничивает масштабируемость отправителя. Для безопасной передачи многоадресной рассылки требовался новый метод, и это называлось Secure Multicast или Multicast Security.
Internet Engineering Task Force ( IETF ) создала новый протокол Интернета (IP) для безопасной передачи многоадресного трафика через пакетную сеть. Определение протокола было разработано в рабочей группе Multicast Security Workgroup и привело к нескольким запросам на комментарии (RFC), которые теперь используются в качестве стандартов для защиты многоадресного трафика IP. Протокол позволял отправителю шифровать многоадресный пакет и пересылать его в пакетную сеть по оптимальному дереву распределения. Пакет может быть реплицирован в оптимальных местах в сети и доставлен всем получателям. Получатели способны расшифровывать пакет и пересылать его в защищенной сетевой среде. Отправитель многоадресного пакета не знает потенциальных получателей; поэтому создание парных ключей шифрования (по одному для каждого получателя) невозможно. Отправитель должен шифровать пакеты с помощью общего ключа, который все законные получатели используют для расшифровки пакетов. Безопасность системы основана на возможности контролировать распределение ключей только этим законным получателям. Для этого IETF создал протокол Group Domain of Interpretation (GDOI), определенный в RFC 6407. Протокол позволяет отправителю и получателю присоединиться к серверу ключей, где политики и ключи шифруются и распространяются среди членов защищенной многоадресной группы. Сервер ключей может аутентифицировать и авторизовать отправителей и получателей в определенной группе, где общий ключ используется для шифрования и дешифрования трафика между членами группы.
Multicast по своей природе не является механизмом, ориентированным на соединение, поэтому такие протоколы, как TCP , который позволяет повторно передавать пропущенные пакеты, не подходят. Для таких приложений, как потоковое аудио и видео, случайные потери пакетов не являются проблемой. Но для распространения критически важных данных требуется механизм для запроса повторной передачи.
Одной из таких схем, предложенной Cisco, является PGM (первоначально Pretty Good Multicasting, но измененная по причинам товарного знака на Pragmatic General Multicast ), [ требуется ссылка ] задокументированная в RFC 3208. В этой схеме пакеты multicast имеют порядковые номера, и когда пакет пропущен, получатель может запросить, чтобы пакет был повторно передан другим членам группы Multicast, игнорируя заменяющие данные, если они не нужны. Расширенная версия, PGM-CC, попыталась сделать IP Multicasting более «дружественным 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), заявили, что отсутствие действительно масштабируемого протокола Secure Reliable IP Multicast, такого как предлагаемый Secure Multicast for Advanced Repeating of Television (SMART), затруднило внедрение IP Multicast в междоменную маршрутизацию. Отсутствие широко распространенной системы, которая имеет уровень безопасности AES и масштабируемую надежность, не позволило транслировать в общедоступном Интернете трансляции спортивных мероприятий (например, Суперкубка) и/или срочных новостных событий. [ необходима цитата ]
Надежные протоколы многоадресной IP-рассылки, такие как PGM и SMART, являются экспериментальными; единственным протоколом отслеживания стандартов является NORM (версия отслеживания стандартов RFC 3941 указана в RFC 5401, версия отслеживания стандартов RFC 3940 указана в RFC 5740).
Поскольку multicast — это другой режим передачи, нежели unicast, то только протоколы, разработанные для multicast, могут быть разумно использованы с multicast. Большинство существующих прикладных протоколов, использующих multicast, работают поверх User Datagram Protocol (UDP).
Во многих приложениях протокол Real-time Transport Protocol (RTP) используется для кадрирования мультимедийного контента через многоадресную рассылку; протокол Resource Reservation Protocol (RSVP) может использоваться для резервирования полосы пропускания в сети, поддерживающей многоадресную рассылку. Многоадресная DNS (mDNS) может использоваться для разрешения доменных или хостовых имен без выделенного DNS-сервера с помощью многоадресной рассылки.
IP multicast широко используется на предприятиях, коммерческих фондовых биржах и в сетях доставки мультимедийного контента. Обычное использование IP multicast на предприятиях — это приложения IPTV , такие как распространение телевидения в прямом эфире и транслируемые по телевидению собрания компаний. [ необходима цитата ]
В индустрии гостеприимства IP-мультикаст стал обычным явлением для распространения IPTV в отелях, а в секторе розничной торговли IP-мультикаст теперь широко используется для распространения телевидения и видеорекламы.
Операторы платного телевидения и некоторые учебные заведения со значительным студенческим жильем на территории кампуса развернули многоадресную IP-рассылку для доставки одностороннего потокового мультимедиа, такого как высокоскоростное видео, большим группам получателей. Кроме того, были некоторые случаи использования аудио- и видеоконференций с использованием многоадресных технологий. Они гораздо менее распространены и чаще всего относятся к научно-исследовательским и образовательным учреждениям, которые часто имеют большую степень сетевой пропускной способности для обработки запросов. [ требуется цитата ] Некоторые технические конференции и совещания передаются с использованием многоадресной IP-рассылки. До недавнего времени [ когда? ] многие сессии на собраниях IETF проводились с использованием многоадресной рассылки. [ требуется цитата ]
Другое применение многоадресной рассылки в кампусных и коммерческих сетях — распространение файлов, в частности, для доставки образов операционной системы и обновлений на удаленные хосты. Ключевым преимуществом многоадресных загрузочных образов по сравнению с одноадресными загрузочными образами является значительно более низкое использование полосы пропускания сети.
IP-многоадресная передача также нашла применение в финансовом секторе для таких приложений, как биржевые тикеры и системы гудков и криков . [ необходима цитата ]
Большие требования к состоянию маршрутизаторов делают приложения, использующие большое количество деревьев, неспособными работать при использовании многоадресной IP-рассылки. Возьмем в качестве примера информацию о присутствии , где каждому человеку необходимо хранить по крайней мере одно дерево своих подписчиков, если не несколько. Пока не было продемонстрировано ни одного механизма, который позволил бы масштабировать модель многоадресной IP-рассылки до миллионов отправителей и миллионов многоадресных групп, и, таким образом, пока невозможно сделать полностью общие многоадресные приложения практичными. [ необходима цитата ]
RFC 3170 ( Приложения IP Multicast: Проблемы и решения ) содержит обзор проблем развертывания.
Многоадресная IP-трансляция была впервые разработана Стивом Дирингом во время его учебы в Стэнфордском университете, за что он получил премию IEEE Internet Award. [10]
MBONE был долгосрочным экспериментальным подходом к обеспечению многоадресной передачи между сайтами посредством использования туннелей. Хотя MBONE больше не работает, вновь появился интерес к туннелированию многоадресного трафика, чтобы сделать эту услугу доступной широкому кругу конечных пользователей .
CastGate был попыткой исследовательской группы ETRO-TELE в Брюссельском свободном университете внедрить многоадресную IP-рассылку в Интернете. [11]
Хотя многоадресная передача могла бы позволить пользователю Интернета получать богатый медиаконтент и другой контент, не создавая большой нагрузки на сеть, она все еще была недоступна большинству пользователей Интернета. Проект CastGate пытался исправить это, позволяя конечным пользователям подключаться через автоматически настроенный IP-туннель по сетям, которые изначально не поддерживали многоадресную передачу IP. Идея заключалась в том, что если больше пользователей будут иметь возможность многоадресной передачи, больше поставщиков контента увидят преимущество потоковой передачи контента через многоадресную передачу. Надежда была в том, что если достаточное количество поставщиков контента и пользователей будут использовать эту услугу, то больше поставщиков интернет-услуг включат многоадресную передачу IP изначально для своих клиентов. [11]
CastGate поставляла программный клиент для Microsoft Windows и Linux для подключения к туннельной сети CastGate. Она также поставляла инструменты для добавления туннельных серверов и инструменты для получения объявлений Session Announcement Protocol из многоадресной сети с видео- и аудиопотоками. [12]
Проект поддерживал веб-сайт до 2007 года. [12]
Начиная с 2005 года [13] BBC начала поощрять британских интернет-провайдеров внедрять многоадресные адресные сервисы в своих сетях, предоставляя BBC Radio с более высоким качеством [ 14] , чем доступно через их одноадресные адресные сервисы. Это также было поддержано различными коммерческими радиосетями, включая BBC , GCap Media , EMAP и Virgin Radio . [15]
Немецкие общественные вещатели ARD [16] и ZDF, а также франко-германская сеть Arte предлагают свою телевизионную программу в многоадресном режиме на нескольких сетях. Австрийский интернет-провайдер Telekom Austria предлагает своим клиентам цифровой абонентской линии (DSL) телевизионную приставку, которая использует многоадресную адресацию для приема теле- и радиопередач. В Германии T-Home, бренд Deutsche Telekom , предлагает аналогичную услугу.