1

我一直在为个人项目研究糕点 DHT,我真的很喜欢它,但路由让我感到困惑。

路由是使用前缀路由完成的,并使用叶子集来表示近节点(IE 节点与本地节点具有共同前缀),而路由集则用于更远的节点。

现在我的困惑来自以下几点:DHT 由 5 个节点引导。充当引导程序的服务器将每个加入的节点添加到它的路由集中,并将其提供给之后加入 DHT 的每个节点。

因此,如果前缀 A 加入,引导程序会将其添加到它的路由集中。如果前缀 F 在 A 之后加入,它将从包含 A 的引导程序接收路由集。

如果 A 需要路由到 F 怎么办?它永远不会知道它的存在,因为规范没有指定仅在叶子集节点之间复制路由表。

这是一个小例子,我希望它很清楚。糕点中是否可能存在布线间隙?

亲切的问候

4

1 回答 1

0

我不清楚您提到的有关路由表维护的场景。

但是对于下面的问题,

如果 A 需要路由到 F 怎么办?它永远不会知道它的存在,因为规范没有指定仅在叶子集节点之间复制路由表。

如果 A 找不到 F,A 将通过匹配 nodeIds 的前缀来路由到与 F 最接近的节点(例如节点“G”),该前缀表示对等节点的更近的引擎盖。然后节点 G 路由到 F 如果 F 在它的路由表中或者它是最近的,等等......

希望您对这个概念很清楚....

于 2014-03-31T06:36:57.797 回答