和弦DHT响应方法

时间:2014-03-13 19:44:53

标签: networking p2p distributed dht chord

我正在Go中构建和弦DHT(但语言部分并不重要)。

我试图弄清楚节点之间的响应行为。如果我想向节点C发送后继请求消息,但它必须转到节点A - >首先是节点B,然后到达节点C.节点C响应原始节点的最佳方式是什么。

我已经提出了不同的方法,但不知道哪一个更适合DHT。

  1. 当每个节点发出请求时,它等待原始TCP连接上的响应,这使得响应采用它最初采取的反向路径
  2. 请求然后忘记它,当节点C收到请求时,它会将响应直接发送回原始节点,由请求消息中的发送方(IPAddress)字段指示。
  3. 将响应发送到发送方NodeID,就像它是任何其他消息一样,因此它将在Chord环上路由。
  4. 我无法弄清楚哪种方法最好用。

1 个答案:

答案 0 :(得分:0)

在Chord中使用路由的唯一原因是查找资源。这就是为什么你不应该只知道访问者和前任,以及距离为2 ^ n的其他节点。这样,您可以实现O(log N)的查找性能。您可以阅读Wikipedia article about Chord了解详情。

因此,您应该将要发送给Node C的消息附加到源节点的地址,以便C可以直接响应。这将比所有人有更好的表现。