【问题标题】:Understanding how to manage message routing direction in P2P Chord/Pastry-like networks了解如何在 P2P Chord/Pastry-like 网络中管理消息路由方向
【发布时间】:2011-05-13 21:50:42
【问题描述】:

这是一个关于大型可扩展 P2P 网络方法的问题:逻辑环网 ovrlay。

考虑 P2P 网络的背景。有 N 台计算机通过一个环将每个人相互连接起来。 每个节点都有一个路由表,用于存储前任节点和后继节点。 这是路由表只存储前驱和后继的最简单的情况。 每个节点都有一个 id,它是一个数字。 环的组织方式是按顺时针方向分配升序的数字。

所以我们可以有这样的情况:* - 12 - 13 - 45 - 55 - 180 - 255 - * 该网络有 6 个节点,它们相互连接。

当一个节点必须向另一个节点发送消息时,使用路由表,如果通用节点有传入消息,它会查看目标地址,如果不在他的路由表中,则后继或前任将是直到路由它。

现在让我们考虑这个例子。 在我的简单网络中,节点 13 想要向节点 255 发送消息。 由于每个节点只能看到一个前任和一个后继,每个节点都不能考虑全局网络,在P2P中,实际上一个节点只能看到网络的一部分。所以节点 13 需要做出决定:将消息路由到哪里(因为目的地不在其附近)?消息必须发送到 45 还是 12? (顺时针还是逆时针?)。

嗯,显然,发送到 12 是一个更好的决定,但是节点 13 怎么知道呢?

最简单的解决方案是:总是顺时针走,但在这种情况下,一个非常近的节点将在很长的时间内到达......而它在拐角处......

如何处理?

PS: 有像Fingering 这样的解决方案适用于基于顺时针路由的方法。 指法将其他地址放入路由表中以创建跳转链接... 这是一个可以使用的解决方案,但只能使用顺时针路由...

http://en.wikipedia.org/wiki/File:Chord_route.png

我想知道一个好的解决方案,以便找到正确的路由方向......它存在吗? Chord 如何处理这个问题?

谢谢。

【问题讨论】:

    标签: networking routing p2p distributed-system


    【解决方案1】:

    如果每个节点都记得链接到下一个、第二个、第四个、第八个等等,那么找到任何节点只需要 log(n) 时间。我相信这已经足够快了,不用考虑是顺时针还是逆时针。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-28
      • 2014-12-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多