是否允许在 Mainline DHT 中的同一 ip:port 对后面运行多个不同的 DHT 节点?哪个节点应该回复 DHT 查询消息?全部还是其中之一?
先感谢您。
是否允许在 Mainline DHT 中的同一 ip:port 对后面运行多个不同的 DHT 节点?哪个节点应该回复 DHT 查询消息?全部还是其中之一?
先感谢您。
简短的回答是:其中之一。每个请求都应产生一个响应。
假设 DHT 节点具有与其(IP、端口)对相关联的持久节点 ID。如果节点 ID 更改(或者如您所说,不同的节点会响应),它在远程节点路由表中的条目可能会被删除并替换为新的节点 ID。
在不同端口上运行节点可能是一个更好的主意,这样对同一端口的请求会导致来自具有相同节点 ID 的同一节点的响应。
附带说明一下,Azureus 在其 DHT 中具有某些安全功能,可通过限制您可以在任何给定 IP 地址上运行的节点 ID 来缓解攻击者拥有节点 ID 空间的特定区域的攻击。有人提议对主线 DHT(由我提议) DHT 安全扩展做类似的事情。部署了这样的东西后,您将受限于可以在单个 IP 地址后面运行的节点数。