Chord
出典: フリー百科事典『ウィキペディア(Wikipedia)』
Chordは、分散ハッシュテーブルを実現するアルゴリズムの一つ。P2Pネットワークにおいて、サーバを用いることなく高速にコンテンツの検索、ルーティングを行う手法。
[編集] アルゴリズム
Chordでは、コンテンツのハッシュ値を求める関数にSHA-1を採用するのが一般的である。ネットワークに参加するノードは、SHA-1のハッシュ値の値域
を満たす一意なNodeIDが割り当てられる。
ここで、next(x)という関数を定義する。この関数は、ハッシュ値xが与えられたとき、値を増加させる方向で次に存在しているノードのNodeIDを返す。なお、2160 − 1と0は接続されていると考える。
ネットワークで情報を共有する際には、共有したい情報のハッシュ値をxとしてNodeID = next(x)を満たすNodeIDを持つノードが、実際に情報を保持しているノードの位置を示すIPアドレス等の情報を保持する。
また、ネットワークに参加するノードは、自身のNodeIDをMyNodeIDとした場合、
next(Z), ただし
のNodeIDをもつノードのIPアドレスをルーティングテーブルとして保持する。
共有されている情報を検索する際には、検索したい情報のハッシュ値をyとしたとき、NodeIDとしてnext(y)が割り当てられているノードを各ノードのルーティングテーブルを利用して検索することになる。
[編集] 参考文献
- Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan (2001). “Chord: A scalable peer-to-peer lookup service for internet applications”. ACM SIGCOMM Computer Communication Review 31 (4): 149 - 160. New York, NY, USA: ACM Press. DOI: 10.1145/964723.383071.
[編集] 外部リンク
- Chord project Chord を使ってP2Pネットワークを構築するプロジェクト

