我一直在为个人项目研究糕点DHT,我真的很喜欢它,但路线让我感到困惑。
路由使用前缀路由完成,并使用叶子集用于关闭节点(与本地节点具有公共前缀的IE节点)和用于更远距离节点的路由集。
现在我的困惑来自以下内容:DHT是由5个节点引导的。作为引导程序的服务器将每个连接的节点添加到它的路由集中,并将其提供给之后加入DHT的每个节点。
因此,如果前缀A加入,则引导程序会将其添加到其路由集中。如果前缀F在A之后加入,它将从包含A的引导程序接收路径集。
如果A需要路由到F怎么办?它永远不会知道它的存在,因为规范没有指定仅在节点之间复制路由表。
这是一个小例子,我希望很清楚。糕点中是否有可能存在路由缺口?
亲切的问候
答案 0 :(得分:0)
我不清楚你提到的关于路由表维护的场景。
但对于以下问题,
如果A需要路由到F怎么办?它永远不会知道它的存在,因为规范没有指定仅在节点之间复制路由表。
如果A找不到F,A将通过匹配nodeIds的前缀来路由到数字上最靠近F的节点(比如节点“G”) 表示对等节点的密切关系。然后节点G路由到F,如果F在它的'路由表中,否则它最接近,等等......
希望你的概念很明确......