« ロボットとバイオリン | トップページ | [P2P]ひとりごと。。 »

2004.04.15

[P2P]分散ハッシュとP2Pマルチキャスト

先日、オーバレイネットワークの統合分散環境という資料を紹介したが、この資料内で分散ハッシュを応用して簡単にP2Pマルチキャストができる方法が書いてあったので、噛み砕いて説明することにする。

さて、今ノードAがB、C,Dに対してP2Pマルチキャストをすると仮定する。このマルチキャストにIDを設定することにしよう。マルチキャストに振るユニークなIDをmulticast_IDとする。B,C,DはNode_ID=hash(multicast_ID)(これをノードPとしよう)にmulticast_IDと次ノードIPのペアを格納する。つまり、ノードPに格納するデータは{(multicast_ID,IPadress_A),(multicast_ID,IPadress_B),(multicast_ID,IPadress_C)}となる。

AがB,C,Dにマルチキャストする場合、A⇒Pにデータを投げる。Pはデータを複製してB,C、Dにデータをマルチキャストする。(もちろん、PからB,C,DのIPAdressを入手してAが直接B,C,Dにマルチキャストする事も可能)マルチキャスト先ノードの追加、離脱が簡単にできることがわかるだろう。

この方法が面白いところは、マルチキャストをツリー階層にすることが可能な事である。つまり、今はmulticast_IDを使ってA⇒P⇒B,C,Dとしたが、新たにmulticast_ID2(E,F,GへのマルチキャストのID)というものを設け、これをPに(multicast_ID,multicast_ID2)と登録すれば、Node_ID=hash(multicast_ID2)のノードをQとしてA⇒P⇒B,C,D,Qとなり、さらにQ⇒E,F,Gとすることが可能である。この考えをうまく使えば自律的にP2Pマルチキャストを制御すること(例えばノードの離脱に対して自律的にすみやかにマルチキャストのツリー構造復元する)も可能かもしれない。

分散ハッシュによるP2Pマルチキャストはノードの頻繁な離脱、参加にも耐え、また多くのノードが参加できる点で魅力的なモデルと思える。まだまだ研究する余地はあるだろう。


|

« ロボットとバイオリン | トップページ | [P2P]ひとりごと。。 »

P2P」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: [P2P]分散ハッシュとP2Pマルチキャスト:

« ロボットとバイオリン | トップページ | [P2P]ひとりごと。。 »