ルックアップサービスを備えた分散型分散システム
分散 ハッシュテーブル ( DHT ) は、 ハッシュテーブル に似た検索サービスを提供する 分散システム です。 キーと値のペア が DHT に格納され、参加しているどの ノード でも、特定のキーに関連付けられた値を効率的に取得できます。 DHT の主な利点は、キーの再配布の手間を最小限に抑えてノードを追加または削除できることです。 [1] キーは特定の 値 にマップされる一意の識別子であり、その値はアドレスから ドキュメント 、任意の データ まで何にでもなります 。 [2] キーから値へのマッピングを維持する責任は、参加者セットの変更による混乱が最小限に抑えられるように、ノード間に分散されています。これにより、 DHT は非常に多数のノードに 拡張 でき、継続的なノードの到着、離脱、障害を処理できます。
DHTは、 エニーキャスト 、協調型 ウェブキャッシング 、 分散ファイルシステム 、 ドメイン名サービス 、 インスタントメッセージング 、 マルチキャスト 、さらには ピアツーピアのファイル共有 や コンテンツ配信システムなど、より複雑なサービスを構築するためのインフラストラクチャを形成します。DHTを使用する著名な分散ネットワークには、 BitTorrent の分散トラッカー、 Kadネットワーク 、 Stormボットネット 、 Toxインスタントメッセンジャー 、 Freenet 、 YaCy 検索エンジン、 InterPlanetary File System などがあります 。
分散ハッシュテーブル
歴史
DHT研究は、もともと Freenet 、 Gnutella 、 BitTorrent 、 Napsterといった ピアツーピア (P2P)システムに端を発しています。これらのシステムは、インターネット上に分散されたリソースを活用して、単一の有用なアプリケーションを提供していました。特に、 帯域幅 と ハードディスク 容量の増加を活用して ファイル共有サービスを提供していました。 [3]
これらのシステムは、ピアが提供するデータを見つける方法が異なっていました。最初の大規模P2Pコンテンツ配信システムであるNapsterは、中央のインデックスサーバーを必要としました。各ノードは参加時に、ローカルに保存されているファイルのリストをサーバーに送信し、サーバーは検索を実行し、結果を保持するノードにクエリを転送しました。この中央コンポーネントは、システムを攻撃や訴訟に対して脆弱にしていました。
Gnutellaや類似のネットワークは、 クエリフラッディング モデルに移行しました。これは、検索ごとにメッセージがネットワーク内のすべてのマシンにブロードキャストされるというものです。 単一障害点は 回避できましたが、この方法はNapsterに比べて大幅に効率が悪かったです。Gnutellaクライアントの後のバージョンでは、動的クエリモデルに移行し、効率が大幅に向上しました。 [4]
Freenetは完全に分散化されていますが、 各ファイルにキーが関連付けられる ヒューリスティックな キーベースルーティングを採用しています。類似のキーを持つファイルは、類似のノード群に集まる傾向があります。クエリは、多くのピアを経由することなく、ネットワークを介してこのようなクラスタにルーティングされる可能性が高くなります。 [5] ただし、Freenetはデータが見つかることを保証するものではありません。
分散ハッシュテーブルは、FreenetとGnutellaの分散性とNapsterの効率性と結果の保証を両立させるために、より構造化されたキーベースのルーティングを採用しています。Freenetと同様に、DHTはキーワード検索ではなく完全一致検索のみを直接サポートしているという欠点がありますが、Freenetの ルーティングアルゴリズムは 、近似値演算を定義できる任意のキータイプに一般化できます。 [6]
2001年には、 CAN 、 [7] Chord 、 [8] Pastry 、 Tapestry の4つのシステムがDHTに注目を集めました。 2002年には、 米国 国立科学財団から1,200万ドルの助成金を受け、Infrastructure for Resilient Internet Systems(Iris)と呼ばれるプロジェクトが開始されました。 [9]
研究者には、 Sylvia Ratnasamy 、 Ion Stoica 、 Hari Balakrishnan 、 Scott Shenker などがいます。 [10]
学術界以外では、DHT技術はBitTorrentのコンポーネントとして、また PlanetLabの Coral Content Distribution Networkなどのプロジェクトにも採用されています。 [11]
プロパティ
DHT は、主に以下の特性を重視します。
自律性と分散化 : 中央調整なしにノードが集合的にシステムを形成します。
フォールトトレランス :ノードが継続的に参加、離脱、障害を起こしても、システムは(ある意味で)信頼できるものでなければならない。 [12]
スケーラビリティ : システムは数千または数百万のノードがあっても効率的に機能する必要があります。
これらの目標を達成するために使用される重要な技術は、1 つのノードがシステム内の他の少数のノードとのみ調整する必要があることです ( 最も一般的なのは、 n人の参加者のうちの O (log n ) 個 (以下を参照)) 。 そのため、メンバーシップの変更ごとに実行する必要がある作業量は限られています。
一部のDHT設計では、 悪意のある参加者 [13]に対して 安全性を 確保し、参加者が 匿名性 を維持できるようにしていますが、これは他の多くのピアツーピア(特に ファイル共有 )システムほど一般的ではありません。 匿名P2Pを 参照してください。
構造
DHTの構造は、いくつかの主要な構成要素に分解できます。 [14] [15] 基盤となるのは、160ビットの 文字列 集合などの抽象的な キー空間 です。キー空間 分割 スキームは、このキー空間の所有権を参加ノード間で分割します。そして、 オーバーレイネットワークが ノードを接続し、キー空間内の任意のキーの所有者を見つけられるようにします。
これらのコンポーネントが配置されると、保存および取得のための DHT の一般的な使用は次のように進められます。キースペースが 160 ビットの文字列のセットであると仮定します。指定された ファイル名 と データ を持つファイルをDHT でインデックス化するために、 ファイル名の SHA-1 ハッシュが 生成され、160 ビットのキー k が生成され、メッセージ put ( k, data ) が DHT に参加している任意のノードに送信されます。メッセージは、キースペースのパーティション分割で指定されたキー k を担当する単一のノードに到達するまで、オーバーレイ ネットワークを介してノードからノードに転送されます。次に、そのノードはキーとデータを保存します。他のクライアントは、再びファイル 名をハッシュして k を生成し、 メッセージ get ( k )を使用して k に関連付けられたデータを検索するように任意の DHT ノードに依頼することで、ファイルの内容を取得できます。メッセージは再びオーバーレイを介して k を担当するノードにルーティングされ、保存された データ で応答します 。
キースペース パーティショニングとオーバーレイ ネットワーク コンポーネントについては、ほとんどの DHT に共通する基本的な考え方を捉えることを目的として、以下で説明します。多くの設計では詳細が異なります。
キースペースのパーティショニング
ほとんどのDHTは、キーをノードにマッピングするために、コンシステント ・ハッシュ法またはランデブー・ ハッシュ法 の派生型を使用しています 。これら2つのアルゴリズムは、分散ハッシュテーブル問題を解決するために、独立して同時に考案されたようです。
コンシステント・ハッシュとランデブー・ハッシュはどちらも、1つのノードの削除または追加によって、隣接するIDを持つノードが所有するキーセットのみが変更され、他のすべてのノードには影響がないという重要な特性を持っています。これは、 1つのバケットの追加または削除によってキー空間のほぼ全体が再マッピングされる従来の ハッシュテーブル とは対照的です。所有権の変更は通常、DHTに格納されているオブジェクトをあるノードから別のノードに移動する処理に相当し、帯域幅を大量に消費するため、高い チャーン 率(ノードの到着と障害)を効率的にサポートするには、このような再編成を最小限に抑える必要があります。
一貫性のあるハッシュ
コンシステント・ハッシュ法では、キーと キー間の距離という抽象的な概念を定義する 関数を用います。この距離は、地理的な距離や ネットワーク遅延 とは無関係です。各ノードには、 識別子 (ID)と呼ばれる単一のキーが割り当てられます 。IDを持つノードは、ID が最も近い キーをすべて所有します 。IDは、IDに基づいて測定されます 。
δ
(
け
1
、
け
2
)
{\displaystyle \delta (k_{1},k_{2})}
け
1
{\displaystyle k_{1}}
け
2
{\displaystyle k_{2}}
私
×
{\displaystyle i_{x}}
け
メートル
{\displaystyle k_{m}}
私
×
{\displaystyle i_{x}}
δ
(
け
メートル
、
私
×
)
{\displaystyle \delta (k_{m},i_{x})}
例えば、 Chord DHTは コンシステントハッシュ法を採用しています。これはノードを円上の点として扱い、は から まで円周を時計回りに移動する距離です 。したがって、円形のキー空間は、端点がノード識別子である連続したセグメントに分割されます。 と が隣接する2つのIDで、 から まで の距離が時計回りに短い場合 、ID を持つノードは と の間に含まれるすべてのキーを所有します 。
δ
(
け
1
、
け
2
)
{\displaystyle \delta (k_{1},k_{2})}
け
1
{\displaystyle k_{1}}
け
2
{\displaystyle k_{2}}
私
1
{\displaystyle i_{1}}
私
2
{\displaystyle i_{2}}
私
1
{\displaystyle i_{1}}
私
2
{\displaystyle i_{2}}
私
2
{\displaystyle i_{2}}
私
1
{\displaystyle i_{1}}
私
2
{\displaystyle i_{2}}
ランデブーハッシュ
ランデブー ハッシュ (最高ランダム重み (HRW) ハッシュとも呼ばれる) では、すべてのクライアントが同じハッシュ関数 (事前に選択) を使用して、キーを n 台 の利用可能なサーバーの 1 つに関連付けます。各クライアントには、サーバーごとに 1 つずつ、 同じ識別子のリスト { S 1 、 S 2 、...、 S n }があります。あるキー k に対して、クライアントは n 個の ハッシュ重み w 1 = h ( S 1 、 k )、 w 2 = h ( S 2 、 k )、...、 w n = h ( S n 、 k ) を計算します。クライアントは、そのキーを、そのキーの最高のハッシュ重みに対応するサーバーに関連付けます。 ID を持つサーバーは、そのキー のハッシュ重み が他のどのノードのハッシュ重みよりも高い
すべてのキーを所有します。
h
(
)
{\displaystyle h()}
S
×
{\displaystyle S_{x}}
け
メートル
{\displaystyle k_{m}}
h
(
S
×
、
け
メートル
)
{\displaystyle h(S_{x},k_{m})}
局所性保存ハッシュ
局所性保存ハッシュは、類似のキーが類似のオブジェクトに割り当てられることを保証します。これにより、範囲クエリをより効率的に実行できますが、コンシステント ハッシュを使用する場合とは対照的に、キー (および負荷) がキー空間および参加ピア全体に均一にランダムに分散されているという保証はありません。Self-Chord や Oscar [16]などの DHT プロトコルは、このような問題に対処しています。Self-Chord は、オブジェクト キーをピア ID から切り離し、 群知能パラダイム [17] に基づく統計的アプローチを使用して、リングに沿ってキーをソートします 。 ソートにより、類似のキーが近隣ノードに格納され、 範囲クエリなどの検出手順を対数時間で実行できることが保証されます。Oscar は、 ランダム ウォーク サンプリングに基づいてナビゲート可能な スモール ワールド ネットワーク を構築し、 これも対数検索時間を保証します。
オーバーレイネットワーク
各ノードは、他のノード( 隣接ノード または ルーティングテーブル)への リンク のセットを保持しています 。これらのリンクが組み合わさってオーバーレイネットワークを形成します。 [18]ノードは、 ネットワークのトポロジ と呼ばれる特定の構造に従って隣接ノードを選択します 。
すべての DHT トポロジーは、最も重要な特性のいくつかのバリエーションを共有しています。つまり、任意のキー k について、各ノードは kを所有するノード ID を持つか、上記で定義したキー空間距離の観点から k に 近い ノード ID を持つノードへのリンクを持ちます。そのため、 次の 貪欲アルゴリズム(必ずしもグローバルに最適というわけではありません) を使用して、任意のキー k の所有者にメッセージを簡単にルーティングできます。各ステップで、 k に最も近い ID を持つ隣接ノードにメッセージを転送します。そのような隣接ノードが存在しない場合は、上記で定義した k の所有者である最も近いノードに到達している必要があります 。このルーティング スタイルは、 キーベース ルーティング と呼ばれることもあります。
基本的なルーティングの正確性に加えて、トポロジーには2つの重要な制約があります。 それは、リクエストが迅速に完了するように、あらゆる経路の最大 ホップ数(経路長)を低く抑えること、そして、メンテナンスのオーバーヘッドが過大にならないように、あらゆるノードの最大隣接ノード数(最大ノード 次数 )を低く抑えることです。もちろん、経路が短いほど、 最大次数 を大きくする必要があります。最大次数と経路長の一般的な選択肢は次のとおりです。ここで、 nは Big O記法 を使用したDHT内のノード数です 。
最も一般的な選択肢である 次数/経路長は、次数/経路長のトレードオフの観点からは最適ではありませんが、このようなトポロジーは通常、隣接ノードの選択においてより柔軟性があります。多くのDHTは、この柔軟性を利用して、物理的な基盤ネットワークにおけるレイテンシの観点から近い隣接ノードを選択します。一般的に、すべてのDHTは、経路長とネットワーク次数のトレードオフを考慮した、ナビゲート可能なスモールワールドネットワークトポロジーを構築します。 [19]
お
(
ログ
n
)
{\displaystyle O(\log n)}
最大経路長は、 ノード間の最短経路における最大ホップ数である 直径と密接に関連しています。ネットワークの最悪ケースの経路長は、明らかにその直径と少なくとも同じ大きさになるため、DHTは グラフ理論 の基本的な次数と直径のトレードオフ [20] によって制限されます。貪欲ルーティングアルゴリズムでは最短経路を見つけられない可能性があるため、経路長は直径よりも長くなることがあります [21] 。
オーバーレイネットワークのアルゴリズム
ルーティング以外にも、オーバーレイネットワークの構造を利用してDHT内のすべてのノード、あるいはノードのサブセットにメッセージを送信するアルゴリズムが数多く存在します。 [22]これらのアルゴリズムは、アプリケーションによって オーバーレイマルチキャスト 、範囲クエリ、統計情報の収集に使用されます 。このアプローチに基づく2つのシステムとして、Pastryオーバーレイ上にフラッディングとランダムウォークを実装するStructella [23] と、Chordネットワーク上に動的クエリ検索アルゴリズムを実装するDQ-DHT [24]があります。
安全
DHT は分散化、フォールト トレランス、スケーラビリティを備えているため、本質的に集中型システムよりも敵対的な攻撃者に対して耐性があります。 [ 曖昧 ]
大規模な敵対的な攻撃者に対して堅牢な 分散データストレージ のためのオープンシステムは実現可能である。 [25]
ビザンチンフォールトトレランス を持つように注意深く設計されたDHTシステムは、 現在のほとんどのDHT設計に影響を与えるシビル 攻撃 と呼ばれるセキュリティ上の弱点から防御することができます。 [26] [27] Whanauはシビル攻撃に耐性を持つように設計されたDHTです。 [28]
Kademlia のオリジナル著者の一人であるペタル・マイムンコフは 、システム設計に社会的信頼関係を組み込むことで、シビル攻撃の脆弱性を回避する方法を提案した。 [29] コードネームTonika、あるいはドメイン名5tttとして知られるこの新システムは、「エレクトリックルーティング」と呼ばれるアルゴリズム設計に基づいており、数学者ジョナサン・ケルナーと共同で開発した。 [30] マイムンコフは現在、この新システムの包括的な実装に取り組んでいる。しかし、シビル攻撃に対する効果的な防御策の研究は一般的に未解決の問題とされており、毎年、主要なセキュリティ研究会議で様々な潜在的な防御策が提案されている。 [ 要出典 ]
実装
DHT 実装の実際のインスタンスで発生する最も顕著な違いには、少なくとも次のものが含まれます。
アドレス空間はDHTのパラメータです。現実世界の多くのDHTでは、128ビットまたは160ビットのキー空間が使用されています。
実際の DHT の中には、 SHA-1 以外のハッシュ関数を使用するものもあります。
現実世界では、キー kは 、コンテンツ アドレス指定可能なストレージ を提供するために、ファイル 名 のハッシュではなくファイルの 内容 のハッシュである可能性があり 、そのため、ファイルの名前を変更しても、ユーザーがファイルを見つけられなくなることはありません。
一部のDHTは、異なるタイプのオブジェクトを公開することもあります。例えば、キー kは ノード ID であり、関連データはこのノードへの接続方法を記述するといった具合です。これによりプレゼンス情報の公開が可能になり、IMアプリケーションなどでよく使用されます。最も単純なケースでは、 IDはキー k として直接使用される乱数です (したがって、160ビットのDHTでは、 IDは 通常ランダムに選択される160ビットの数値になります)。一部のDHTでは、ノードIDの公開はDHT操作の最適化にも使用されます。
信頼性を向上させるために冗長性を追加できます。 (k, data) キーペアは、キーに対応する複数のノードに格納できます。通常、現実世界のDHTアルゴリズムでは、1つのノードを選択するのではなく、 i 個の適切なノードを選択します。iは DHT の実装固有のパラメータです。一部のDHT設計では、ノードは特定のキー空間範囲を処理することに同意し、そのサイズはハードコードされるのではなく、動的に選択される場合があります。
Kademlia のような高度な DHT では、 まず DHT 全体にわたって反復検索を実行し、適切なノード群を選択して put(k, data) メッセージをそれらのノード群にのみ送信します。これにより、公開されたメッセージはキー k の保存に適していると思われるノード群にのみ送信されるため、無駄なトラフィックが大幅に削減されます。また、反復検索は DHT 全体ではなく少数のノード群のみを対象としているため、無駄な転送が削減されます。このような DHT では、 put(k, data) メッセージの転送は、自己修復アルゴリズムの一部としてのみ発生する可能性があります。つまり、ターゲットノードが put(k, data) メッセージを受信したものの、 k が処理範囲外であり、より近いノード (DHT キー空間の観点から) が既知であると判断した場合、メッセージはそのノードに転送されます。それ以外の場合、データはローカルにインデックス付けされます。これは、ある程度自己バランスをとる DHT の動作につながります。もちろん、このようなアルゴリズムでは、反復検索を実行できるように、ノードが自身のプレゼンスデータを DHT に公開する必要があります。
ほとんどのマシンでは、メッセージ送信はローカルハッシュテーブルへのアクセスよりもはるかにコストがかかるため、特定のノードに関する多数のメッセージを単一のバッチにまとめることは理にかなっています。各ノードが最大 b個の 操作からなるローカルバッチを持っていると仮定すると、バンドル手順は以下のようになります。各ノードはまず、操作を担当するノードの識別子でローカルバッチをソートします。 バケットソートを用いると、これは O(b + n) で実行できます。 ここで、 n はDHT内のノード数です。1つのバッチ内に同じキーを対象とする複数の操作がある場合、バッチは送信される前に圧縮されます。例えば、同じキーの複数の検索を1回に減らしたり、複数の増分を1回の加算操作に減らしたりできます。この削減は、一時的なローカルハッシュテーブルを用いて実装できます。最後に、操作はそれぞれのノードに送信されます。 [31]
例
DHTプロトコルと実装
DHTを使用するアプリケーション
参照
参考文献
^ ホタ、チッタランジャン;スリマニ、プラディップ K. (2013-01-11)。分散コンピューティングとインターネット技術: 第 9 回国際会議、ICDCIT 2013、インド、ブバネシュワール、2013 年 2 月 5 ~ 8 日、議事録。スプリンガー。 ISBN 978-3-642-36071-8 。
^ Stoica, I. ; Morris, R.; Karger, D. ; Kaashoek, MF; Balakrishnan, H. (2001). 「Chord: インターネットアプリケーション向けのスケーラブルなピアツーピアルックアップサービス」 (PDF) . ACM SIGCOMM Computer Communication Review . 31 (4): 149. doi :10.1145/964723.383071. 2023年7月7日時点のオリジナルより アーカイブ (PDF) . 2018年9月18日 閲覧 . 値は、アドレス、ドキュメント、または任意のデータ項目のいずれかです。
^ Liz, Crowcroft; et al. (2005). 「ピアツーピアオーバーレイネットワークスキームの調査と比較」 (PDF) . IEEE Communications Surveys & Tutorials . 7 (2): 72– 93. CiteSeerX 10.1.1.109.6124 . doi :10.1109/COMST.2005.1610546. S2CID 7971188. 2023年10月5日時点のオリジナルよりアーカイブ( PDF) . 2019年9月24日 閲覧 .
^ Richter, Stevenson他 (2009). 「動的クエリモデルがクライアント・サーバー関係に与える影響の分析」 Trends in Modern Computing : 682– 701.
^ Searching in a Small World Chapters 1 & 2 (PDF) 、 2012年3月16日に オリジナル (PDF)からアーカイブ、 2012年1月10日 取得
^ 「セクション5.2.2」 (PDF) 、 分散型情報保存および検索システム 、 2012年3月16日に オリジナル (PDF)からアーカイブ、 2012年1月10日 取得
^ Ratnasamy, Sylvia; Francis, Paul; Handley, Mark; Karp, Richard; Shenker, Scott (2001-08-27). 「スケーラブルなコンテンツアドレスネットワーク」. SIGCOMM Comput. Commun. Rev. 31 ( 4): 161– 172. doi :10.1145/964723.383072. ISSN 0146-4833.
^ Hari Balakrishnan 、 M. Frans Kaashoek 、David Karger、 Robert Morris 、Ion Stoica. P2Pシステムにおけるデータの検索(2016年5月19日アーカイブ、 Wayback Machine) 。Communications of the ACM 、2003年2月。
^ David Cohen (2002年10月1日). 「米国政府が資金を提供する新たなP2Pネットワーク」. New Scientist . 2008年4月6日時点のオリジナルよりアーカイブ。 2013年 11月10日 閲覧 。
^ 「MIT、バークレー、ICSI、NYU、ライス大学がIRISプロジェクトを開始」 プレスリリース 。MIT。2002年9月25日。2015年9月26日時点のオリジナルよりアーカイブ。 2013年 11月10日 閲覧 。
^ 「Coralによるコンテンツ公開の民主化」 (PDF) NSDI 4 2004 年 2024年 5月1 日 閲覧 。
^ R Mokadem、A Hameurlain、AM Tjoa. 階層型DHTシステムにおけるメンテナンスオーバーヘッドを最小限に抑えたリソース検出サービス(2022年8月9日アーカイブ、 Wayback Machine) . Proc. iiWas、2010
^ Guido Urdaneta、Guillaume Pierre、Maarten van Steen. DHTセキュリティ技術の調査(2023年6月1日アーカイブ、 Wayback Machine) . ACM Computing Surveys 43(2)、2011年1月。
^ Moni NaorとUdi Wieder. P2Pアプリケーションのための新しいアーキテクチャ:連続-離散アプローチ Archived 2019-12-09 at the Wayback Machine . Proc. SPAA, 2003.
^ Gurmeet Singh Manku. Dipsea: モジュラー分散ハッシュテーブル Archived 2004-09-10 at the Wayback Machine . Ph. D. Thesis (スタンフォード大学), 2004年8月.
^ Girdzijauskas, Šarūnas; Datta, Anwitaman; Aberer, Karl (2010-02-01). 「異機種環境向けの構造化オーバーレイ」. ACM Transactions on Autonomous and Adaptive Systems . 5 (1): 1– 25. doi :10.1145/1671948.1671950. ISSN 1556-4665. S2CID 13218263. 2020年7月12日時点のオリジナルよりアーカイブ。 2020年3月12日 閲覧 。
^ Forestiero, Agostino; Leonardi, Emilio; Mastroianni, Carlo; Meo, Michela (2010年10月). 「Self-Chord: 自己組織化分散システムのための生物に着想を得たP2Pフレームワーク」. IEEE/ACM Transactions on Networking . 18 (5): 1651– 1664. doi :10.1109/TNET.2010.2046745. S2CID 14797120. 2012年7月1日時点のオリジナルよりアーカイブ。 2019年7月28日 閲覧 。
^ Galuba, Wojciech; Girdzijauskas, Sarunas (2009)、「ピアツーピアオーバーレイネットワーク:構造、ルーティング、メンテナンス」、 LIU, LING ; ÖZSU, M. TAMER (編)、 『データベースシステム百科事典』 、Springer US、pp. 2056– 2061、 doi :10.1007/978-0-387-39940-9_1215、 ISBN 9780387399409
^ Girdzijauskas, Sarunas (2009). ピアツーピアの設計はスモールワールドの視点を重ね合わせる. epfl.ch (論文). EPFL. doi :10.5075/epfl-thesis-4327. 2020年3月3日時点のオリジナルよりアーカイブ。 2019年11月11日 閲覧 。
^ グラフの(次数、直径)問題、Maite71.upc.es、2012年2月17日にオリジナルからアーカイブ、 2012年1月10日 取得
^ Gurmeet Singh Manku、Moni Naor、Udi Wieder。「隣人の隣人を知る:ランダム化P2Pネットワークにおける先読みの力」 Wayback Machine に2008年4月20日アーカイブ。Proc. STOC、2004年。
^ Ali Ghodsi (2007年5月22日). 「分散k-aryシステム:分散ハッシュテーブルのためのアルゴリズム」. 2007年5月22日時点のオリジナルよりアーカイブ。 . KTH-王立工科大学、2006年。
^ Castro, Miguel; Costa, Manuel; Rowstron, Antony (2004年1月1日). 「Gnutellaを構造化オーバーレイ上に構築すべきか?」 (PDF) . ACM SIGCOMM Computer Communication Review . 34 (1): 131. CiteSeerX 10.1.1.221.7892 . doi :10.1145/972374.972397. S2CID 6587291. 2021年2月14日時点のオリジナルより アーカイブ (PDF) . 2019年 9月25日 閲覧 。
^ Talia, Domenico; Trunfio, Paolo (2010年12月). 「分散ハッシュテーブルにおける動的クエリの実現」. Journal of Parallel and Distributed Computing . 70 (12): 1254– 1265. doi :10.1016/j.jpdc.2010.08.012.
^
Baruch Awerbuch, Christian Scheideler. 「スケーラブルで堅牢なDHTに向けて」2006年.
doi :10.1145/1148109.1148163
^ Maxwell Young、Aniket Kate、Ian Goldberg、Martin Karsten。「ビザンチン攻撃を許容するDHTにおける実用的な堅牢な通信」 Wayback Machine に2016年7月22日アーカイブ。
^
ナタリア・フェドトワ;ジョルダーノ・オルゼッティ;ルカ・ヴェルトリ。アレッサンドロ・ザッカニーニ。 「DHT ベースのピアツーピア ネットワークにおける評判管理に関するビザンチン協定」。
土井 :10.1109/ICTEL.2008.4652638
^ Whanau: シビル耐性分散ハッシュテーブル https://pdos.csail.mit.edu/papers/whanau-nsdi10.pdf 2022年1月25日アーカイブ、 Wayback Machine
^ Lesniewski-Laas, Chris (2008-04-01). 「シビル耐性のあるワンホップDHT」. 第1回ソーシャルネットワークシステムワークショップ議事録 . SocialNets '08. ニューヨーク州ニューヨーク: Association for Computing Machinery. pp. 19– 24. doi :10.1145/1435497.1435501. ISBN 978-1-60558-124-8 。
^ Kelner, Jonathan; Maymounkov, Petar (2011-07-22). 「電動ルーティングと同時フロー切断」. 理論計算機科学 . アルゴリズムと計算. 412 (32): 4123– 4135. doi :10.1016/j.tcs.2010.06.013. hdl : 1721.1/71604 . ISSN 0304-3975.
^ サンダース, ピーター; メルホーン, カート; ディーツフェルビンガー, マーティン; デメンティエフ, ローマン (2019). 『シーケンシャル・パラレル・アルゴリズムとデータ構造:基本ツールボックス』 Springer International Publishing. ISBN 978-3-030-25208-3 . 2021年8月17日時点のオリジナルよりアーカイブ 。 2020年1月22日 閲覧。
^ Tribler wiki Archived December 4, 2010, at the Wayback Machine retrieved January 2010.
^ Retroshare FAQ Archived 2013-07-17 at the Wayback Machine 2011年12月取得
外部リンク
分散ハッシュテーブル、パート 1、Brandon Wiley 著。
分散ハッシュテーブルは、Carles Pairot の DHT と P2P 研究のページへのリンクです。
kademlia.scs.cs.nyu.edu Archive.org の kademlia.scs.cs.nyu.edu のスナップショット
Eng-Keong Lua; Crowcroft, Jon; Pias, Marcelo; Sharma, Ravi; Lim, Steve (2005). 「IEEEによるオーバーレイネットワークスキームの調査」. CiteSeerX 10.1.1.111.4197 : DHT (Chord、Pastry、Tapestry など) を含む非構造化および構造化分散オーバーレイ ネットワークをカバーします。
フィンランドのヘルシンキ大学コンピューターサイエンス学部におけるメインライン DHT 測定。