Введение в Multicast

Типы адресов и транспортных потоков

В IP-сетях используется три типа адресации для связи между узлами:

  • Unicast - Одноадресная адресация используется, когда один узел хочет отправить трафик другому определенному узлу (один одному). Каждому узлу требуется свой уникальный IP адрес для этого типа трафика.
  • Broadcast - Широковещательная адресация используется, когда узел хочет отправить трафик всем узлам в данной подсети (один всем). Каждая подсеть имеет свой широковещательный IP адрес. Трафик, предназначенный широковещательному адресу обычно не распространяется маршрутизатором. Некоторые типы широковещательного трафика (например, DHCP) нуждается в пересылке в другие части сети.
  • Multicast - Многоадресная адресация используется, когда узел хочет связаться с группой узлов, заинтересованных в определенном трафике. Существуют различные типы multicast приложений, таких где один узел отправляет трафик определенному числу заинтересованных получателей (один многим), в других приложениях трафик пересылается между всеми заинтересованными узлами (многие многим).

Более поздний тип адресации, используемый в IP-сетях - это Anycast адресация. Концепция anycast адресации заключается в том, что группа получателей имеет одни и те же адреса. Когда трафик должен быть доставлен anycast адресам, он доставляется ближайшему члену группы. Примером использования anycast адресов может служить Domain Name System (DNS). В multicast также используется особенность, называемая Anycast RP. Преимущество anycast адресации заключается в очень быстрой сходимости в случае, когда c одним из членов группы теряется связь.

Multicast - единственный поток данных от сервера необходим для достижения всех заинтересованных клиентов.

Преимущества и недостатки Multicast

Использование multicast приложений дает ряд преимуществ по сравнению с наиболее используемыми unicast приложениями. Unicast приложения должны слать дублированные потоки трафика для связи с различными узлами. Такое дублирование приводит к неэффективному использованию ресурсов на исходном узле, а также в сети. Multicast приложения являются гораздо более эффективными для источника трафика, т.к он шлет трафик только один раз. С точки зрения ресурсов сети, приложения multicast также более эффективны, потому что единственный поток направляется через часть сети. Сеть обычно повторяет multicast трафик только в маршрутизаторах, расположенных ближе к потребителям.

Еще одним важным преимуществом multicast приложений является умение связываться с заинтересованными узлами, про которых источник ничего не знает. В сети используются различные протоколы многоадресной передачи для доставки трафика от источника к потребителю без необходимости источнику знать о потребителях.

Основным недостатком multicast приложений является то, что в качестве базового трафика применяется протокол User Datagram Protocol(UDP). Другими словами, потоки multicast трафика используют механизм ненадежной best-effort доставки, по сравнению с большинством unicast приложений, использующих надежную транспортную доставку TCP.

Multicast приложения также усложняют реализацию class of service(CoS) в сети, т.к. трафик как правило чувствителен к джиттеру и задержкам. Некоторые инструменты CoS, например weighted random early detection(WRED), плохо работают с UDP трафиком

Multicast приложения также усложняют сеть, т.к. multicast протоколы должны быть развернуты в сети. Использование multicast в сети представляет собой компромисс между более эффективным использованием ресурсов плоскости forwarding (полоса пропускания) и увеличением использования ресурсов control плоскости для отслеживания информации о состоянии многоадресной пересылки.

Компоненты Multicast

Источник - источником multicast может быть любое устройство, которое порождает IP multicast пакеты.

Multicast IP пакет - любой IP пакет, предназначенный групповому multicast адресу. Этот пакет должен иметь unicast адрес источника. Как правило, multicast пакет использует UDP, Real-Time Transport Protocol(RTP) или оба из них в качестве транспортного протокола. Не существует гарантии, что пакеты будут получены всеми членами группы. Был разработан протокол Pragmatic General Multicast(PGM) для обнаружения потерь и возможности повторной передачи multicast.

Групповые адреса - IP адреса из диапазона 224/4

Потребители - любой узел, который заинтересован в получении пакетов multicast. Потребители используют протокол IGMP для информирования напрямую присоединенного маршрутизатора о своем желании принимать multicast.

Designated router(DR) - ближайший к источнику маршрутизатор, который направляет multicast пакеты в сеть. Если к источнику присоединены два и более маршрутизатора, только один из них становится DR на основании выборного алгоритма в используемом протоколе маршрутизации multicast.

Group membership protocol - используется потребителями для информирования напрямую присоединенного маршрутизатора о своем желании принимать пакеты для одного или нескольких multicast групповых адресов. То есть узел информирует маршрутизатор о своем желании вступать в multicast группу. IGMP используется узлами и маршрутизаторами IP версии 4(IPv4).

Multicast routing protocol - используется между маршрутизаторами для построения и поддержания транспортного дерева multicast между источником и потребителем. Два наиболее применяемых протокола маршрутизации multicast - Protocol Independent Multicast(PIM) и Distance Vector Multicast Routing Protocol(DVMRP).

Сервисные модели

Any-source multicast(ASM) - эта модель была разработана в первоначальной спецификации для multicast в RFC 1112. Модель поддерживает как "один-многим" приложения, например Internet Protocol Television(IPTV), так и приложения "многие-многим", например видеоконференции. ASM получил свое название из-за возможности потребителей присоединяться к группе без указания источника, из которого они хотят получать трафик, поэтому они принимают его из любого источника.

Source-specific multicast(SSM) - потребитель указывает источник, от которого он хочет получать трафик. Он также может указать от каких источников он не хочет получать трафик. Таким образом, для работы SSM источник информации должны быть известен. SSM делает развертывание multicast менее сложной, а также облегчает распределение групповых адресов.

Режимы распределения

Dense mode - в этом режиме трафик направляется во все участки сети (так называемый flooding). Участки сети, не заинтересованные в получении трафика отправляют сообщения prune своим соседним маршрутизаторам, сообщая им - не слать трафик. В случае, если потребитель подписывается после отправки prune, маршрутизатор отправляет graft сообщение, сообщая, что трафик должен слаться опять.

Sparse mode - в этом режиме трафик направляется только в участки сети с заинтересованными потребителями. Маршрутизаторы отправляют сообщения join, выражая готовность принимать трафик. Если потребитель больше не заинтересован, маршрутизатор шлет сообщение prune соседу, сообщая остановить пересылку трафика.

Дерево распределения

В multicast пересылке путь между источником и потребителем называется tree (дерево). Источник - это корень дерева. Дерево разрастается в сеть, и концы его ветвей - это потребители (или листья). Источник является upstream-ом (отдающий услугу в сеть), а потребители - downstream-ом (принимающий услугу из сети). Ветви дерева создаются, когда потребители присоединяются и отпадает, когда потребители отписываются.

В случае с shared tree RP считается upstream-ом и корнем дерева.

Source tree или shortest-path tree (SPT) - путь прохождения трафика от определенного источника вплоть до ближайшего к потребителю маршрутизатора. Source tree - кратчайший путь между источником и потребителем и может быть использован только в случае, когда ближайший к потребителю маршрутизатор знает об источнике. Маршрутизаторы хранят путь прохождения от источника к потребителю в следующем виде: S,G (S запятая G). S отображает адрес источника, а G отображает групповой адрес.

В dense mode всегда используется source tree. Кратчайший путь между источником и любым маршрутизатором в сети всегда вычисляется через flooding процесс. Та часть сети, которая не имеет потребителей, обрезает дерево распределения. В результате дерево от источника разрастается в части сети, в которых имеются актуальные потребители.

В sparse mode source tree используется после того, как маршрутизатор потребителя узнает об источнике. Для присоединения к дереву кратчайших путей, происходит обмен S,G join сообщениями. В случае, если потребитель уже не заинтересован в получении трафика от источника, граничный с потребителем маршрутизатор шлет S,G prune сообщения.

Shared tree или rendezvous point tree - используется в случае, если источник не известен (source tree не может быть построено). В модели ASM потребители подписываются на групповой адрес, используя IGMP. В запросе подписки они не указывают источник. Маршрутизаторы должны построить дерево к неизвестному источнику. Решением этой проблемы является некое место встречи источников и потребителей в сети. Эта точка встречи называется rendezvous point (RP). Дерево, построенное от потребителя к RP в сети называется shared tree (общее для всех источников). Маршрутизаторы хранят путь от маршрутизатора потребителя к RP в виде: *,G. Где * означает любой источник и G - это групповой адрес.

Как только источник начинает слать трафик, ближайший к источнику маршрутизатор направляет трафик к RP и оттуда он может быть отправлен потребителю. Все маршрутизаторы в сети должны договориться о том, какой маршрутизатор является RP, поэтому источник и потребители могут соединиться в сети. Преимуществом использования shared tree является то, что генерируется обычно меньше информации о состоянии сети, так как нет необходимости создать уникальное дерево от источника для каждого сеанса в сети. Недостаток заключается в том, что путь между источником и приемником через shared tree зачастую является не оптимальным. Эта проблема особенно актуальна для чувствительного к задержкам трафика.

Для функционирования multicast маршрутизации, во всей сети между источником и потребителем должен поддерживаться multicast. Это обеспечивается развертыванием multicast протоколов, таких как IGMP или PIM. В Интернете, где различные административные домены соединяются через различных сервисных провайдеров, сети часто не оконеченны для multicast приложений, что ограничивает использование многоадресных приложений через Интернет.

Автоматическое multicast туннелирование

Одним из механизмов, облегчающих развертывание multicast приложений в Интернете является Automatic Multicast Tunneling (AMT). Этот механизм позволяет прохождение multicast через одноадресные островки, соединяясь с помощью автоматического туннеля для транспортировки multicast трафика. Это позволяет подключать поставщиков услуг, контент-провайдеров и их клиентов к участию в предоставлении multicast трафика, даже если у них имеются разрывы для multicast в сети. AMT позволяет любому узлу получать multicast.




Яндекс.Метрика

Поиск

Статистика


Онлайн всего: 1
Гостей: 1
Пользователей: 0