p2p模拟和分布式哈希表

时间:2011-04-25 16:48:16

标签: hashtable p2p dht

我正在通过单台机器内的模拟学习p2p架构。为此我被告知我可以使用命名管道。我正处于模拟的设计阶段。以下是我计划前进的方法:

  1. 创建一个能够加入p2p'网络'的对等程序。该网络是这些同行的集合。通过机器中的进程ID识别对等体。

  2. 当创建对等体,即加入网络时,它通过将自身引导到“主节点”或跟踪器来宣告它的到来。当对等体宣布其到达时,主节点更新其对等体列表(进程ID),并将网络中可用的对等体列表返回给新对等体。

  3. 一旦进入网络,对等方现在可以从网络下载文件或将文件上传到他/她拥有的文件的传入请求。对等体通过网络接收的文件自动可以上传。

  4. 要下载文件,对等体会调用一个位置算法,该算法将对等体与当前对等体想要下载的文件一起定位。

  5. 正如您所看到的,我对设计的理解存在差距。从我天真的方法来看,我认为#2和#3是不同的步骤。但是,我觉得他们必须以某种方式相关。我想我的理解是缺乏知道分布式哈希表和算法如Chord或CAN如何工作。我需要帮助来整理这些分散的想法,这些想法将帮助我实际实现模拟。

    首先,我的第一个问题是:我在哪里以及如何启动定位算法?或者在上面列出的步骤中创建的分布式哈希表在哪里?

1 个答案:

答案 0 :(得分:2)

您可以选择实施跟踪服务器和Napster。或者你可以实现支持DHT的节点 - Bit torrent风格。

在前一种情况下,跟踪器会跟踪所有节点及其托管的文件。

在后者中,每个节点都会跟踪信息(在这种情况下,网络中至少有一个对等体)。然后,新的对等体将联系DHT能力的对等体之一,并获取有关托管其所需文件的节点的信息。