« ロボットとバイオリン | Main | [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マルチキャストはノードの頻繁な離脱、参加にも耐え、また多くのノードが参加できる点で魅力的なモデルと思える。まだまだ研究する余地はあるだろう。


|

TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/18781/446456

Listed below are links to weblogs that reference [P2P]分散ハッシュとP2Pマルチキャスト:

Comments

Post a comment




Comments are moderated, and will not appear on this weblog until the author has approved them.