我对如何在分布式哈希表算法 (CHORD) 中进行节点发现感到非常困惑。假设每个节点都可以通过多播到达。为什么以下情况会不好:
- 一个节点开始工作
- 组播到达网络
没有任何反应,决定它是孤独的。
第二个节点到达。
- 组播到达网络。
- 所有节点都收到到达并使用节点的密钥更新它们的 NodesList。
- 然后将这个新的 nodeList 返回给新的到达者。
相邻节点也开始向这个新到达的节点传输必要的键值对。
客户端向节点询问密钥,每个节点都知道该密钥对应的 ip/port。向该节点询问 KEY-VALUE 对并将其返回给客户端。
现在我认为这种情况很糟糕,因为每个节点都无法保留一个巨大系统中所有节点的列表。我对么?
但是,节点如何发现其所谓的 FINGER TABLE 呢?
我知道 bittorrent 将中央服务器作为 DHT 系统中的起始节点。如果我们假设我们可以通过多播到达每个节点,是否有可能消除该服务器?
提前致谢。很抱歉有多个问题,但我认为我无法用一个问题证明我的困惑。