Chord

提供: testwiki
2020年11月17日 (火) 03:37時点における2400:7800:8542:b800:6df6:6d1a:f0ea:3ce5 (トーク)による版 (otheruses)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

テンプレート:Otheruses Chordは、分散ハッシュテーブルを実現するアルゴリズムの一つ。P2Pネットワークにおいて、サーバを用いることなく高速にコンテンツの検索、ルーティングを行う手法。

アルゴリズム

Chordでは、コンテンツのハッシュ値を求める関数SHA-1を採用するのが一般的である。ネットワークに参加するノードは、SHA-1のハッシュ値の値域0NodeID21601を満たす一意なNodeIDが割り当てられる。

ここで、next(x)という関数を定義する。この関数は、ハッシュ値xが与えられたとき、値を増加させる方向で次に存在しているノードのNodeIDを返す。なお、216010は接続されていると考える。

ネットワークで情報を共有する際には、共有したい情報のハッシュ値をxとしてNodeID=next(x)を満たすNodeIDを持つノードが、実際に情報を保持しているノードの位置を示すIPアドレス等の情報を保持する。

また、ネットワークに参加するノードは、自身のNodeIDMyNodeIDとした場合、

next(Z), ただしZ=MyNodeID+2imod2160(0i<160)

NodeIDをもつノードのIPアドレスをルーティングテーブルとして保持する。

共有されている情報を検索する際には、検索したい情報のハッシュ値をyとしたとき、NodeIDとしてnext(y)が割り当てられているノードを各ノードのルーティングテーブルを利用して検索することになる。

参考文献

外部リンク

  • Chord project Chord を使ってP2Pネットワークを構築するプロジェクト


テンプレート:Computer-stub