Пиринговая многоадресная передача во Flash 10.1

Многоадресная (групповая) передача является одним из свойств Flash Player 10.1 и позволяет распространять объекты NetStream в пиринговой сети. Это может быть аудио, видео или даже чистый поток данных (AMF3). Поток данных может быть весьма удобным для игр, он гораздо лучше подходит для таких целей, как например, пересылка в реальном времени позиций и направлений, чем использование отсылки сообщений (постинг), поскольку постинг больше оптимизирован для значительного количества адресантов, посылающих что-либо, например, для чатов.

Различие между одноадресной и многоадресной передачей

Одноадресная передача

Одноадресная передача (Unicast) просто доставляет потоки с сервера на клиенты. Для этого вы можете использовать Flash Media Server и протоколы TCP, такие как RTMP/T/S/E или HTTP. Однако одноадресная передача заставляет вас тратить много ресурсов, так, например, поток 1 мБ/с, отосланный на 1000 клиентов, даёт 1 Гб трафика с сервера, что является обременительным для процессора и сети.

Пиринговая многоадресная передача во Flash 10.1

Многоадресная передача на прикладном уровне

Иногда называемая пиринговой многоадресной передачей (Application Level Multicast), является оптимизированным распределением потоков между узлами пиринговой сети. Она является очень эффективной, поскольку поток распределяется между узлами. Вы можете передавать поток как с клиента, так и с FMS (со следующей версии).

Пиринговая многоадресная передача во Flash 10.1

Нативная многоадресная IP передача

Здесь распространение по сети проходит без использования пирингового соединения, а при помощи сетевых возможностей маршрутизации. Такая передача работает, главным образом, во внутренних, корпоративных сетях, в сетях VPN или LAN, — в основном, в закрытых сетях, имеющих соответствующие возможности. Вы можете совмещать нативную многоадресную IP передачу с многоадресной передачей на прикладном уровне, чтобы получать комбинированное решение, называемое соединённой многоадресной передачей (Multicast Fusion). Это свойство требует Flash Media Server (версия следующего поколения). Это свойство будет рассматриваться, когда будет доступен новый FMS.

Пиринговая многоадресная передача во Flash 10.1

Создание многоадресной передачи во Flash

Попробуем создать два приложения, где одно будет приёмником, а другое – источником.

Присоединившись к Cirrus или FMS, вам нужно установить NetStream, так же, как и NetGroup (http://www.flashrealtime.com/simple-chat-p2p-netgroup-rtmfp/)

В данном примере группа называется “myGroup/multicastOne”, а передаваемый поток — “multicast”. Вы можете дать такие имена, какие захотите.
Приложение источника
Приложение приёмника

Внимание: Для того, чтобы передавать потоки из Flash Media Live Encoder, понадобится Flash Media Server новой версии, которая пока недоступна.

Распределение пакетов в многоадресной передаче

Многоадресная передача во Flash оптимизирована. Она работает так, что вам не нужно передавать далее по направлению движения весь поток, который вы получили. Вы можете делать это, но лучше передать дальше только несколько порций данных, которые соответствуют возможностям вашей сети. Большинство обыкновенных линий DSL обеспечивают примерно скорость в 8 Мб/с на закачку данных и 1 Мб/с на выгрузку, или больше, то есть могут получать данные со скоростью 2 Мб/с, но распространять в лучшем случае только со скоростью 1 Мб/с, поэтому для дальнейшего распространения вам потребуется больше узлов, которые бы могли объединять пакеты вместе.

Многоадресная передача во Flash является системой проталкивания и извлечения (Pull/Push system). Извлечение (Pull) обеспечивает доставку данных узлам. Проталкивание (Push) оптимизирует сеть, уменьшает задержки и создаёт множественные связующие деревья. Если бы использовалось только извлечение, то задержка потока реального времени на самом отдалённом узле была бы слишком большой.