Networkの最近のブログ記事

RTMFP に関して Flash Player 10.1 からの大きな違いは "グループ" のサポートです。

Flash Player 10 では、(何らかの仕組みを構築しない限り) 配信したい全てのノード (Flash Player が実行されているマシン) に個別に接続する必要がありました。例えば、相手が 10 台なら 10 セッション、20 台なら 20 セッションという具合です。

これに対して、Flash Player 10.1 からは、複数のノードの集合、すなわち "グループ" に対して接続することができます。一旦グループに接続されれば、グループ内全てのノードに対して配信することができます。最近公開された Stratus ベータ 2 には、この変更にあわせグループへの仲介機能が追加されています。

さて、このグループは、ただのノードの集まりではありません。

グループは参加しているノード間で仮想のネットワーク (いわゆるオーバーレイネットワーク) を自律的に構築し、更に、経路情報の共有、最適な配信経路の判断、トポロジーの最適化等も行います。

難しいことは考えなくても、"グループ" が勝手に数千万ユーザー規模でも使える P2P ネットワークを構築してくれる (公称) ということです。お蔭で RTMFP アプリケーションの使い道もずいぶん広がったように思います。

グループが構成する仮想ネットワークはピアアシストネットワーク (Peer-Assisted Network) と呼ばれます。

グループはピアアシストネットワーク内で、データを配信するための手段をいくつか提供します。以下、ごく簡単に説明を。

RTMFP の続きです。今回は、RTMFP の接続の仕組みと Stratus の簡単な説明です。

RTMFP の接続

到達可能な IP ネットワークにさえつながっていれば、P2P の接続に必要なのは、通信相手の IP アドレスだけです。(ポート番号も要りますね)

ただ、P2P ではどのように相手の IP アドレスを知るか、ということが大きなポイントになります。大抵のクライアントには DNS 経由でたどり着くことは現実的でないですし、また、そもそもクライアントの IP アドレスは固定されているとは限りません。。。

そこで RTMFP では以下のような手順で接続が行われます。(前回書いたように RTMFP クライアントには識別用のユニークな ID が割り振られています)

  1. 通信したいクライアントの ID を取得
  2. 取得した ID に該当するクライアントの IP アドレスを取得
  3. 取得した IP アドレスに対して接続要求を送信

見てのとおり、このステップの実現には 2 つの壁があります。"クライアント ID の取得" と、その "ID に対応する IP アドレスの取得" です。

1 つ目の "相手クライアント ID の取得" については、その仕組みが RTMFP の中では用意されていません。FMS のサーバーサイド ActionScript を使うなどして別途提供する必要があります。(Flash Player 10.1 からはオーバーレイネットワークの導入によりこの手間は緩和されています)

2 つ目の "ID に対応する IP アドレスの取得" については、どこかでクライアント ID と IP アドレスの対応表を管理する必要があるのですが、RTMFP ではこれをサーバーに持たせることになっています (いわゆるハイブリッド P2P)。

そこで Stratus や FMS の登場となるわけです。

RTMFP (Real Time Media Flow Protocol) は Flash Player 10 から追加された新しいプロトコルで、Flash Platform 上での P2P の通信を実現します。Flash Player 10.1 では、この RTMFP の機能が拡張されています。

P2P といっても何種類かの通信型がありますが、Flash Player 10 の (つまり最初に公開された時点での) RTMFP は 1 対 1 通信型のアプリケーション用です。通信する相手それぞれと専用のセッションを張る必要がありました。

これが Flash Player 10.1 では "動的なノードのグループ化によるオーバーレイネットワーク" のサポートにより、"誰" と通信しているかは意識する必要がなくなっています。(基本的にどのグループに属しているかだけ知っていればよい) これにより、多数のノードとの通信が簡単かつ効率的になり、アプリケーションレベルのライブマルチキャスト (データの一斉配信) やスウォーミング (ファイルを複数のノードから同時にダウンロード) それから分散ハッシュテーブル (DHT) 型の分散データ管理も実現できるようになりました。

開発チームによるとスケーラビリティは非常に高く、数百万ユーザ規模でも数秒程度の遅延で情報共有が可能とのことです。(どうやって確認したのか聞いてみたいところではありますが)

また、オーバーレイネットワークとトランスポート層のマルチキャストとの併用もサポートされていて、これにより同一 LAN 内 (IP マルチキャスト可能な範囲) であれば、Flash Player だけで (サーバー無しで) P2P ネットワーク網を構築することができます。

RTMP と RTMFP

RTMP は Flash Player 6 からサポートされているリアルタイム通信用のプロトコルです。RTMP と RTMFP は名前こそ似ていますが (用途も一部被りますが)、かなり正確の異なるプロトコルです。

主な違いは、

  1. RTMP はクライアント/サーバー型、RTMFP は P2P 型
  2. RTMP は TCP ベース、RTMFP は UDP ベース
  3. RTMP は通信中の IP アドレスが固定、RTMFP は IP アドレスが変わっても継続して通信可 (IP モビリティを持つ)

などです。

以下それぞれもう少し詳しく説明します。

2014年1月

Sun Mon Tue Wed Thu Fri Sat
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
レンタルサーバー

月別 アーカイブ

Powered by Movable Type 4.261