0

Go で Chord DHT を作成しています (ただし、言語部分は重要ではありません)。

そして、ノード間の応答動作を理解しようとしています。ノード C にサクセサ要求メッセージを送信したいが、最初にノード A -> ノード B に移動し、次にノード C に到達する必要がある場合。ノード C が元のノードに応答するための最良の方法は何ですか?

私は明確な方法を考え出しましたが、どれがDHTにとってより偶像的であるかはわかりません.

  1. 各ノードが要求を行うと、元の TCP 接続で応答を待ちます。これにより、応答が最初に取った逆の経路を取るようになります。
  2. ノード C が要求を受信すると、要求メッセージの送信者 (IPAddress) フィールドで示される応答を元のノードに直接送信します。
  3. 他のメッセージと同じように、応答を送信者 NodeID に送信して、Chord リングを迂回してルーティングします。

どの方法を使用するのが最適なのかわかりません。

4

1 に答える 1

0

Chord でルーティングを使用する唯一の理由は、リソースを見つけることです。そのため、アクセサーと先行ノードだけでなく、2^n の距離にある追加ノードも知っておく必要があります。このようにして、 のルックアップ パフォーマンスを実現できますO(log N)。詳細については、 Chordに関するウィキペディアの記事を参照してください。

そのため、ノード C に送信するメッセージに送信元ノードのアドレスを添付して、C が直接応答できるようにする必要があります。これにより、すべてのパフォーマンスが大幅に向上します。

于 2014-03-15T16:49:12.730 に答える