我正在用 Go 构建一个 Chord DHT(但是语言部分并不重要)。
我试图弄清楚节点之间的响应行为。如果我想向节点 C 发送后继请求消息,但它必须先到节点 A -> 节点 B,然后到达节点 C。节点 C 响应原始节点的最佳方式是什么?
我想出了不同的方法,但不知道哪一种更适合 DHT。
- 当每个节点发出请求时,它会等待原始 TCP 连接上的响应,这使得响应采用它最初采用的反向路径
- 发出请求然后忘记它,当节点 C 收到请求时,它将响应直接发送回原始节点,由请求消息中的发送者 (IPAddress) 字段指示。
- 将响应发送给发送者 NodeID,就像它是任何其他消息一样,因此它将围绕 Chord 环进行路由。
我不知道哪个是最好的方法。