我一直在为一个个人项目研究糕点DHT,我真的很喜欢它,但它的路线让我感到困惑。
路由是使用前缀路由完成的,并对接近的节点(与本地节点具有共同前缀的IE节点)使用叶集,对较远的节点使用路由集。
现在我的困惑来自于以下几点:分布式哈希表是由5个节点引导的。充当引导程序的服务器将每个加入的节点添加到它的路由集中,并将其提供给随后加入DHT的每个节点。
因此,如果前缀A加入,引导程序会将其添加到它的路由集中。如果前缀F在A之后加入,它将从包含A的引导程序接收路由集。
如果A需要路由到F怎么办?它永远不会知道它的存在,因为规范没有指定在节点之间复制路由表,只指定了叶集。
这是一个小例子,我希望它是清楚的。有没有可能在糕点上有一个路由缺口?
亲切的问候
发布于 2014-03-31 14:36:58
我对您提到的有关路由表维护的场景不太清楚。
但是对于下面的问题,
如果A需要路由到F怎么办?它永远不会知道它的存在,因为规范没有指定在节点之间复制路由表,只指定了叶集。
如果A找不到F,A将通过匹配nodeIds的前缀来路由到与F在数值上最接近的节点(例如节点"G"),这表示对等节点的引擎盖更近。如果F在它的路由表中或者它是最接近的,则节点G路由到F,以此类推……
希望你对这个概念很清楚……
https://stackoverflow.com/questions/13868874
复制相似问题