[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」カテゴリの記事
- WebRTCを実現するためにSTUNだけでなくTURNも必要な理由(2015.01.08)
- [P2P]P2Pストリーミングのサーベイ文書について(2014.11.09)
- Winnyの開発者、金子 勇氏の急逝を悼んで(2013.07.07)
- 「分散ハッシュシステムでのNAT超えの考察」に対する質問について(2012.12.16)
- [P2P]Websocketでブラウザ間P2P通信は実現できるか?(その2)(2011.11.20)
この記事へのコメントは終了しました。
コメント