2011-04-25 58 views
1

我学习一台机器中通过模拟的P2P架构。为此我被告知可以使用命名管道。我正处于模拟的设计阶段。以下是我计划前进的方向:P2P仿真和分布式哈希表

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

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

  3. 一旦在网络中,对等现在可以从网络上下载文件或上传文件到该是个文件传入的请求/他。对等体通过网络接收的文件自动可用于上载。

  4. 要下载一个文件,同行调用定位与目前对正在寻求下载文件等定位算法。

正如您所看到的,我对设计的理解存在差距。从我的天真方法,我看到#2和#3作为不同的步骤。不过,我有一种感觉,他们必须以某种方式相关。我想我的理解不了解分布式散列表和算法如Chord或CAN如何工作。我需要帮助来总结这些分散的想法,这将有助于我实际实施模拟。

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

回答

2

你要么实现跟踪服务器一拉Napster公司的选择。或者你可以实现支持DHT的节点 - Bit洪流风格。

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

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

+0

谢谢你的回复。我想我需要决定在我的模拟中执行哪一个。 Napster路线听起来更容易。有什么建议么? – moejoe 2011-04-25 18:12:40