第 327 回 PTT のお知らせ


日時:2006年11月30日(木) 18:30 から


場所:早稲田大学理工学部(大久保キャンパス)62-w号館1階大会議室(地図



話者:
首藤一幸(ウタゴエ株式会社)


話題:
オーバレイ構築ツールキットOverlay Weaver

概要:
オーバレイネットワーク、特にpeer-to-peerソフトウェアが 構成するアプリケーション層ネットワークに着目し、 非構造化/構造化オーバレイのプロトコルと応用を解説する。 続いて、オーバレイ構築ツールキットOverlay Weaverを紹介する。 これは、オーバレイの研究、かつ、アプリケーション開発の基盤として 話者らが開発しているソフトウェアであり、 アルゴリズムの設計・研究成果を直接応用に結びつけることを狙っている。 構造化オーバレイのアルゴリズムをたかだか数百ステップ程度で実装でき、 数千ノードという規模でのアルゴリズム試験・評価・比較を計算機一台上で エミュレートできる。 こうして実装してアルゴリズムは、そのままインターネット上で動作、利用できる。 最後に、こういった大規模分散システムの研究開発に共通する悩みを述べ、 対策を論じる。



第 327 回 PTTメモ

出席者: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を若干拡張することでサポート可能だと考えている。
が、あまり自然な方法ではない気もしている。