日時:2006年11月30日(木) 18:30 から
場所:早稲田大学理工学部(大久保キャンパス)62-w号館1階大会議室(地図)
話者:
首藤一幸(ウタゴエ株式会社)
話題:
オーバレイ構築ツールキットOverlay Weaver
概要:
オーバレイネットワーク、特にpeer-to-peerソフトウェアが
構成するアプリケーション層ネットワークに着目し、
非構造化/構造化オーバレイのプロトコルと応用を解説する。
続いて、オーバレイ構築ツールキットOverlay Weaverを紹介する。
これは、オーバレイの研究、かつ、アプリケーション開発の基盤として
話者らが開発しているソフトウェアであり、
アルゴリズムの設計・研究成果を直接応用に結びつけることを狙っている。
構造化オーバレイのアルゴリズムをたかだか数百ステップ程度で実装でき、
数千ノードという規模でのアルゴリズム試験・評価・比較を計算機一台上で
エミュレートできる。
こうして実装してアルゴリズムは、そのままインターネット上で動作、利用できる。
最後に、こういった大規模分散システムの研究開発に共通する悩みを述べ、
対策を論じる。
出席者:20名
伊知地宏(ラムダ数教研)、並木美太郎、(農工大)、石畑清(明治大)、田代()、 田中哲朗、筧一彦、笹田耕一、金子知適、横山大作(東大)、和田英一(IIJ)、 樋口直志(NEC)、佐藤一帆、澤村崇博、川崎陽平(埼玉大)、三廻部大(東工大)、 三浦琢磨、佐藤幸弘、松本宗也、筧捷彦(早稲田大)、丸山一貴(電通大)
・Tier 2に書いてあるCFSやPASTなどは何か。 CFSは分散ファイルシステム。PASTは失念 (ファイル共有ソフトウェア)。 ・ALMのツリーは、目的ノードからの逆向きでもuniqueに決まるのか。 メンバーが出入りする場合はどうなるのか。 1度だけルーティングを行って、その経路に基づいて配信木上の親子関係を結ぶ。 そのため、配信木は経路変化の影響は受けずに済む。 ・Kademliaの距離はハミング距離か、ハイパーキューブに近いのか。 ハミング距離ではない。IDをXORした結果を数値として解釈したものが距離となる。 ノード間のネットワークがハイパーキューブになる 構造化オーバレイアルゴリズムもある。 ・Plaxtonらの方法で、ループが起きないことの保証は。 数学的に保証されているアルゴリズム (例: Pastry) と、 手順的に保証されているアルゴリズム (例: Tapestry) がある。 ・新しいノードが参加するとき、自分のIDが誰かの担当範囲と重なるが、 担当範囲の境界は自動的に決まるのか。 構造化オーバレイのアルゴリズムによって、自動的に決まる。 ・IDがぶつかることはないのか。 IDは暗号学的ハッシュ関数で決めることが多く、衝突の可能性は極めて低い。 しかし実ソフトでは衝突した場合への配慮も要るだろう。 ・(デモ)通信頻度に比べて、ノードの加入脱退頻度が高いように見えるが。 このデモ (エミュレーション) では加入脱退は起こしていない。 ノードの加入脱退に見えているのは、 ルーティングの宛先などを色違いのアイコンで表現しているもの。 ・ホップ数の頻度のグラフにKademliaが出てこないのはなぜか ホップ数ではなく通信回数で評価するのはどうか。 Kademliaは「ホップ」という考え方に馴染まない。 しかし、ルーティングを完了するまでにコンタクトしたノードの数を数えると、 ホップ数に該当する数字が出せるはずではある。 ・(実機での稼働データのグラフ)Kademliaの通信量が途中で大きく変化しているが。 未解析。興味深いこと。 ・キーからIPをどうやって知るか。 各ノードの経路表には、キーとIPアドレスの組が載っている。 1つのノードが他の全ノードを知っているわけではなく、 ごく一部のノード群について、キーと通信アドレスの組を把握している。 ・コンテンツを保持しているノードが脱退する場合、そのコンテンツをどうするか。 対策はいくつかある。いくつかのノードに複製を持たせておくなど。 ・こういう話はSIGCOMMには向かないのか。 向く。 ・JXTAはもうダメ? 個人的には、次の2点について残念に感じ、今は離れている。 1点目、スケーラビリティと性能。 通信の頻度が高くなると、下がTCPであっても、割と簡単にメッセージが落ちる。 2点目、あまりad-hocではないこと。 アプリケーションごとに、スーパーピアを事前に配備しておく必要がある。 peer-to-peer的ではない。 ・P2Pを商用にしようと言うときに、悪意あるユーザをどのように扱うか、 どのレイヤで行うか。 構造化/非構造化オーバレイのレイヤでもできること、やるべきことはかなりある。 結託しての攻撃を防ぐために任意のノードIDを取得させない、 悪意あるノードを避けたルーティングを行う、など。 ・Overlay Weaverで非構造化オーバレイをサポートする際の方針は? Overlay Weaverを若干拡張することでサポート可能だと考えている。 が、あまり自然な方法ではない気もしている。