专利名称:一种基于中心索引的p2p文件共享网络的对等节点发现方法
技术领域:
本发明属于P2P网络监控领域,具体设计在于分析中心索引类P2P文件共享网络 的通信模型,归纳并重新组织其通信流程,以此发现该P2P文件共享网络中所共享的文件 信息以及参与其上传下载过程的对等节点。
背景技术:
当今P2P文件共享工具比原先具有更好的下载效率,更好的共享鼓励机制,使每 个人都能更好的共享自己拥有的资源,包括电影,音乐,应用程序和数据文件等。人们在享 受这种数据共享的便利的时候,也产生了一些严重问题。 首先,版权问题,大多数文件共享网络上传输的绝大多数文件都有版权保护的问 题,包括视频文件,音乐文件等。这样的版权文件通过P2P网络共享,使该版权文件的受益 者遭受巨大损失。所以版权问题已经成为P2P文件及对等节点发现的重要目标之一。并且 P2P文件共享应用通常都是开源项目,并不由公司运作,所以很不容易禁止。第二,数据流量 问题,P2P应用占用了大量网络带宽,消耗了有限的网络资源,从而降低了整个网络的运行 效率。第三,由于这种自发的文件共享网络缺少必要的监督和管理手段,现在已经成为淫秽 色情和反动信息传播的一种途径,既影响了青少年的成长,也不利于国家安全。
P2P网络数据监控任务的目的在于通过对某些已知的资源在某种P2P文件共享网 络上的传播进行监督,来估计该资源的传播情况,并分析出其可能造成的影响。并且,通过 对对等节点的发现和进一步的管理,可以对下载客户端进行控制。本发明不同于修改对应 P2P客户端来进行对等节点发现的方式,能够最大限度的进行P2P文件共享网络中对等节 点的发现。其原因在于,客户端进行通信有固定的顺序,这个过程以下载文件为最终目标, 不一定总是能够最大限度的进行对等节点的发现,因为当客户端所拥有的对等节点数量到 达一定量后,客户端将不再进行对等节点的发现,并转入下载过程,导致对等发现的过程终 止。而本发明中的方法并没有这个局限,这里使用的方法能够在P2P文件共享网络中与索 引服务器和对等节点进行通信,但是并不完全按照原有的通信流程进行通信,其设计的目 标在于能够最大限度的进行对等节点的发现。这也是本发明的特点之一。
发明内容
本发明的目的在于提出一种方法,使一个(些)伪客户端——即本发明,进入对应
的P2P文件共享网络,通过与该网络中的索引服务器和对等节点进行数据通信,来进行该
网络中某关注文件的对等节点的发现。并且通过优化过的数据通信流程来达到最大限度的
对等节点的发现。 本发明的特征在于 所述基于中心索引的P2P文件共享网络是以至少一个索引服务器为中心的星形 网络,所述方法是在支持所述索引服务器进行检索服务的这种P2P网络中依次按以下步骤实现的步骤(1),伪客户端,所述伪客户端是指本发明所述的按照特定协议通信的、旨在 进行对等节点发现的客户端,逐个地通过向索引服务器发送登录请求以登录每个所述索引 服务器,获得尽可能多的索引服务器信息,所述索引服务器信息包括索引服务器的IP地址 和端口,步骤如下 步骤(1. l),伪客户端从所有未连接过的所述索引服务器中任选一个进行连接 若连接成功,标志该索引服务器为活跃的索引服务器;若连接失败,则标志该索引服务器为 非活跃的索引服务器;重复步骤(1. l),直到标志完所有未连接过的所述索引服务器为止;
步骤(1.2),向所连接成功的索引服务器发送登录请求若得到登录成功确认,则 标志该索引服务器为可访问索引服务器,发送请求以获得更多索引服务器,将返回的索引 服务器信息保存到已构筑的索引服务器列表中;若得到拒绝登录的回复,则标记该索引服 务器为不可访问索引服务器;关闭连接并重复步骤(1.2),直到遍历完所有连接成功的所 述的活跃的索引服务器为止; 步骤(1.3),伪客户端编制所述可访问的索引服务器列表,并标记其中全部索引服 务器为未搜索; 步骤(2),伪客户端通过文件搜索,选择自己关注的大量文件信息,其步骤如下
步骤(2. l),从步骤(1.3)所述的索引服务器列表中选择一个被标志为未搜索的 索引服务器进行连接并标志其为已搜索,执行步骤(2.2); 步骤(2. 2),向步骤(2. 1)中所述的索引服务器发送登录请求并等待确认回复;
步骤(2. 3),向所述索引服务器发送空的共享文件列表,并执行以下步骤;
步骤(2. 3. 1),客户端通过读取数据库,或读取文件,或读取IO输入的方式中的任 何一种方式获得客户端自己关注的关键字集合; 步骤(2.3.2),对于从步骤(2.3. 1)所获得的关键字向所述索引服务器发送一个 或一些关键字搜索的请求,等待回应; 步骤(2.3.3),收到所述索引服务器对关键字搜索请求的回应信息,其中至少会包 含文件名,文件大小以及文件的唯一标识符; 步骤(2. 3. 4),伪客户端等到所有关键字的搜索请求都被回应后,保存结果;
步骤(2. 3. 5),从所述步骤(2. 3. 4)得到的对应于所有关键字的回应信息中,最终 选择该伪客户端关注的文件,包括文件名,文件大小和唯一标识符; 步骤(2. 4),重复步骤(2. 1) 步骤(2. 3);—直到所有已被标志为可访问的索引 服务器都被标志为已搜索为止; 步骤(3),伪客户端按以下步骤,根据已在步骤(2)中得到的文件,通过所述索引 服务器发现对等节点 步骤(3. l),从所有被标志为已搜索的索引服务器中任意选择一个索引服务器进 行连接,并标志该索引服务器为已询问; 步骤(3.2),向步骤(3.1)中所述索引服务器发送登录请求,并等待确认回复;
步骤(3. 3),在得到确认后,使用所述文件的唯一标识符和文件大小,向所述索引 服务器发送要求获得该文件的对等节点的请求,并等待回应; 步骤(3.4),若所述索引服务器不回复,则返回步骤(3. 1);否则,在收到回复后,
执行步骤(3. 5);
步骤(3. 5),解码所述索引服务器的回复信息,其中包括所述对等节点的IP地址 和端口 ,并保存结果,作为基于来源交换发现对等节点的先决条件; 步骤(3. 6),重复步骤(3. 1) 步骤(3. 5), 一直到遍历完所有未被标志为已询问 的索引服务器为止,并构筑对等节点列表,标记其中所有对等节点为未访问;
步骤(4),伪客户端按以下步骤,根据在步骤(3)中最后获得的对等节点列表进行 基于来源交换的对等节点的发现 步骤(4. l),从所有标志为未访问的对等节点中任选一个进行连接,并标志当前对 等节点为已访问;若连接成功,执行步骤(4.2);否则,重复步骤(4. 1);
步骤(4. 2),向步骤(4. 1)中所述对等节点发送握手消息并等待回复;若成功收到 回复消息,执行步骤(4.3);否则,返回步骤(4. 1); 步骤(4. 3),伪客户端和步骤(4. 2)中所述的对等节点双方进行身份认证,若认证 成功,执行步骤(4.4);否则返回步骤(4. 1); 步骤(4. 4),向步骤(4. 3)中所述的对等节点发送要求进行来源交换的请求,并等 待对方回复信息; 步骤(4.5),若收到回复信息,对于其中含有的其他对等节点的IP地址和端口,如
果已存在于步骤(3. 6)所述对等节点列表内,则抛弃;否则把该对等节点加入到所述对等
节点列表内,并标志为未访问;若未收到回复信息,则返回步骤(4. 1); 步骤(4. 6),重复步骤(4. 1) 步骤(4. 5),直到遍历完所有标志为未访问的对等
节点为止;来源交换部分结束。 本发明的效果是 l能够在发现对等节点的过程中探索到一批索引服务器,可以通过对索引服务器 的可访问性进行控制来控制该P2P文件共享网络的使用;2能够检测到某P2P文件共享网 络中的共享文件信息,并能够关联到一批正在对其进行上传下载的对等节点;3能够最大 数量地发现对等节点。
图1索引服务器发现过程的交互图。 图2基于索引服务器的根据关键字进行文件搜索的交互图。 图3基于索引服务器的根据给定文件进行对等节点发现方法的交互图。 图4基于来源交换的根据给定文件进行对等节点发现方法的交互图。 图5索引服务器发现过程的流程图。 图6基于索引服务器的根据关键字进行文件搜索的流程图。 图7基于索引服务器的根据给定文件进行对等节点发现方法的流程图。 图8基于来源交换的根据给定文件进行对等节点发现方法的流程图。 图9整体部署流程图。
具体实施例方式
本发明依次含有以下内容
l索引服务器发现[OO48] (1)原理描述 中心索引的P2P文件共享网络是以索引服务器为中心的星形网络。所有的P2P网 络中的数据交换几乎都与索引服务器有关客户端(包括本发明中的伪客户端)都要首先 登录到索引服务器上,然后向其发送相应请求,通过得到答复信息来获得预期结果。所以 说,获得索引服务器是一个重要的过程,获得越多的活跃的索引服务器,就能获得更多的索 引服务器信息,文件信息和对等节点信息。 在本过程中,登录上索引服务器后,通过向其发送获得索引服务器信息的请求后,
获得索引服务器回复并解码可获得大量索引服务器信息。
(2)处理过程 先决条件已知至少一个活跃的索引服务器的有效信息,包括索引服务器的IP地 址和端口,以用于连接从而进行必要的数据通信。
预期结果获得并筛选出所有活跃的索引服务器的有效信息。 步骤0 :如果索引服务器列表中不存在标记为未连接的索引服务器,跳转到步骤 5。否则执行步骤l。 步骤1 :从所有未连接的索引服务器中选取一个索引服务器并连接之,如果连接 成功,标记其为活跃索引服务器,并进行步骤2 ;否则标记为非活跃索引服务器,并重复步 骤1所描述的过程。 步骤2 :向所连接成功的索引服务器发送登录请求,如果登录成功,即返回登录成 功的确认,则标记其为可访问索引服务器,并进行步骤3;否则,即返回拒绝消息,标记其为 不可访问索引服务器,关闭连接并重复步骤1所描述的过程。 步骤3 :向已经登录的索引服务器发送获得其他索引服务器列表的请求,索引服 务器会返回一个数据包,其中包含其已知的所有索引服务器信息,通过解数据包,能够获得 大量索引服务器信息,其中包括活跃的和非活跃的,可访问的和不可访问的索引服务器。执 行步骤4。 步骤4 :将步骤3中获得的每个索引服务器信息按照如下标准进行操作如果索引 服务器信息已经被标记为活跃或者被标记为非活跃,则抛弃这个索引服务器信息;否则将 其加入索引服务器列表,并将其标记为未连接索引服务器。完成上述操作后进行步骤o。
步骤5 :服务器发现部分结束。
2文件搜索
(1)原理 中心索引的P2P文件共享网络的索引服务器为了保证能够向其他客户端提供服 务,强制每个登录上的客户端向其提供当前客户端所共享的所有文件信息或者以其他形式 强迫客户端共享文件信息,在接到客户端提供的共享的文件信息后,索引服务器才会回复 客户端提出的关于文件的相关信息的请求。这里,在提供共享文件列表后,向索引服务器发 送包含关键字在内的获得文件的请求,获得索引服务器回复后并解码可以获得大量文件信 息,有时还会回复相应的对等节点信息,用户可从中选择出关注的文件进行对等节点的发 现。
(2)处理过程 先决条件1至少拥有一个可访问的索引服务器的有效信息,以用于连接;2关注文件的文件名的关键字信息,并以此进行必要的数据通信。 预期结果获得相当大的数量的文件信息和一些对应的活跃的对等节点信息,这 些文件的文件名中都包含先决条件2中的关键字。这些文件信息都包含有先决条件中提供 的关键字(所获得的对等节点是4中基于来源交换的对等节点的发现的先决条件,以用于 连接并获得更大数量的对等节点信息)。 步骤0 :如果索引服务器列表中的所有已被标记为可访问的索引服务器都被标记 为已搜索,跳转到步骤7。否则执行步骤l。 步骤1 :从所有未被标记为已搜索的索引服务器中选取一个索引服务器并连接 之,并进行步骤2。
步骤2 :向索引服务器发送登录请求并等待确认回复,并进行步骤3。
步骤3 :向索引服务器发送空共享文件列表——这里没有必要向索引服务器提供
任何有实质意义的信息,并进行步骤4。 步骤4 :获得关注的关键字集合,可以通过读取数据库,读取文件或者读取IO输入 等手段,完成后进行步骤5。 步骤5 :对于步骤4中所输入的每个关键字,向索引服务器发送一个关键字搜索的 请求,并等待索引服务器其回应。其回应信息包含大量的文件信息,其中包含文件的文件 名,文件大小,文件的唯一标识符等(有些网络还会有一个对等节点的信息和〈或 > 其他信 息等)。所有关键字的搜索请求都被回应后,标记当前索引服务器为已搜索,并进行步骤6。
步骤6 :将步骤5中的结果保存,得到关注的文件名,文件大小,文件唯一标识符 (和对等节点信息等)。执行步骤0。
步骤7 :文件搜索方法1结束。 3对于给定文件,对其进行索引服务器上的对等节点的发现
(1)原理 索引服务器支持一定程度上的对等节点的检索服务,客户端可以使用文件的唯一 标识符(和文件大小)向索引服务器提出请求,要求获得拥有该文件的对等节点的信息,索 引服务器将会以一些对等节点的信息作为回应。获得的这些对等节点的信息,可以作为基 于来源交换的对等节点发现部分的先决条件,用以进行来源交换以获得更大数量的对等节 点的信息。
(2)处理过程 先决条件1至少拥有一个可访问的索引服务器的有效信息,以用于连接;2提供 关注文件的文件唯一标识符(和文件大小)(从文件搜索部分的结果中选出),并以此进行 必要的数据通信。
预期结果获得部分对等节点的信息,包括对等节点的IP地址和端口等。
步骤0 :从所有标记为未询问的索引服务器中选取一个并连接之,并进行步骤1。
如果所有索引服务器都被标记为已询问,跳转到步骤6。
步骤1 :向索引服务器发送登录请求并等待确认回复。完成后进行步骤2。
步骤2 :获得用户关注的文件信息,包括文件唯一标识符(和文件大小),从文件搜
索的结果中获得。执行步骤3。
步骤3 :向索引服务器发送要求对等节点的请求,并等待回复。如果索引服务器不做回复,执行步骤0,否则执行步骤4。 步骤4 :解码索引服务器的回应,可以获得一些对等节点的信息,即对等节点的IP 地址和端口等。执行步骤5。 步骤5 :保存步骤4中的有效信息,即将对等节点的IP地址和端口 ,以及对应的索 引服务器IP地址和端口记录下来。上述信息也将作为基于来源交换的对等节点的发现的
先决条件。完成后执行步骤o。
步骤6 :索引服务器上的对等节点发现部分结束。 4对于给定文件,对其进行基于来源交换的对等节点的发现 (1)原理 对于对等节点的发现,索引服务器只提供有限的服务,更多的对等节点的发现就 要靠与对等节点的交互来获得了。与索引服务器交互,可以得到一些文件和对等节点的数 据对,然后向对等节点提出请求,要求获得对应的文件的下载或者提供对等节点,这样,能 够得到一批新的对等节点。然后向这批新的对等节点再次依次提出相同或相似的请求,可 以获得更大量的对等节点。以此类推,如果已知的索引服务器数量足够大,理论上应当能 够获得几乎全部的该P2P文件共享网络中的,参与某文件上传或下载的所有对等节点的信 息。 (2)处理过程 先决条件拥有一个活跃的对等节点信息,用以连接并进行后续通信。至少拥有一 个该对等节点参与的下载或上传的文件的文件唯一标识符(和对应的文件大小)。
预期结果获得大量的正在参与某指定文件上传或下载过程的对等节点。
步骤0 :如果对等节点列表内的所有节点都已被标记为已访问,则跳转到步骤5 ; 否则,执行步骤l。 步骤1 :从所有未标记为已访问的对等节点中选取一个,并连接之。如果连接成 功,执行步骤2;否则,标记为不活跃,并跳转到步骤0。 步骤2 :向已连接的对等节点发送握手信息,并等待其回复的信息。如果成功收到 回复信息,执行步骤3 ;否则,跳转到步骤O。 步骤3 :双方进行身份认证。如果认证成功,进行步骤4,否则,跳转到步骤0。
步骤4 :向对方对等节点发送要求进行来源交换的请求,并等待其回复信息。回复 消息中含有其他对等节点的信息,对于这些收到的对等节点信息,如果存在于已知的对等 节点列表内,抛弃之,否则,将其加入到对等节点列表内,并标记其为未访问。否则,即无论 如何,都没有收到对等节点的节点信息,跳转到步骤O。
步骤5 :来源交换部分结束。 上述4个部分既相互独立,又相互关联。其中部分l用于获得更多的索引服务器 信息,用以满足后面的通信过程的初始条件。部分2用于限定P2P文件共享网络中对等节 点的范围,即通过判断是否参与某文件上传下载这个过程,来选择对等节点。如果用户拥有 并计算出关注文件的文件哈希值和文件大小,这个部分可以省略,直接进行部分3和部分4 即可。部分3和部分4是本发明的核心内容,即对等节点发现的过程。部分3使用与索引 服务器交互的方式获得对等节点,而部分4使用与对等节点交互的方式获得对等节点。部 分3是部分4的前提,部分4是部分3的必然后续,没有部分4,部分3的意义就不大,不能获得很多的对等节点信息。 首先,用户要配置伪客户端的各种初始化信息,包括一些初始的索引服务器,以及
对等节点发现的探索层次一即,根据对对等节点发现的需求程度不同,应当进行对等节 点发现的深度进行配置。 伪客户端会每隔一段时间进行一次索引服务器发现过程(步骤l),并以此得到大
量的索引服务器信息。这个步骤的附加作用在于可以探测到更多的索引服务器信息。 当用户给定关键字时,伪客户端会进行步骤2,并反馈相当数量的文件信息,并寄 希望于用户从中选定某个(些)文件,并依次进行步骤3和步骤4。如果用户在得到反馈信 息后并不作任何操作,一段时间后所有得到的信息会失效,下次操作时需要重新进行这个 操作流程,即使是相同的关键字信息也要重新执行这个流程。如果不关心对等节点的话,这 个过程能够进行P2P文件共享网络的文件信息的探测。 当用户给定文件哈希值和文件大小时,伪客户端会首先去索引服务器上进行步骤 3,并得到其提供的初始对等节点信息。然后通过这个初始对等节点和用户给定的哈希值和 文件大小来进行步骤4,这样就能够得到一定数量的对等节点了 。 当用户给定文件哈希值和文件大小还有对等节点的IP地址和端口时,伪客户端 会直接联络给定对等节点,直接进行步骤4,并通过其获得其他的对等节点。
10
权利要求
一种基于中心索引的P2P文件共享网络的对等节点发现方法,其特征在于,所述基于中心索引的P2P文件共享网络是以至少一个索引服务器为中心的星形网络,所述方法是在支持所述索引服务器进行检索服务的这种P2P网络中依次按以下步骤实现的步骤(1),伪客户端,所述伪客户端是指本发明所述的按照特定协议通信的、旨在进行对等节点发现的客户端,逐个地通过向索引服务器发送登录请求以登录每个所述索引服务器,获得尽可能多的索引服务器信息,所述索引服务器信息包括索引服务器的IP地址和端口,步骤如下步骤(1.1),伪客户端从所有未连接过的所述索引服务器中任选一个进行连接若连接成功,标志该索引服务器为活跃的索引服务器;若连接失败,则标志该索引服务器为非活跃的索引服务器;重复步骤(1.1),直到标志完所有未连接过的所述索引服务器为止;步骤(1.2),向所连接成功的索引服务器发送登录请求若得到登录成功确认,则标志该索引服务器为可访问索引服务器,发送请求以获得更多索引服务器,将返回的索引服务器信息保存到已构筑的索引服务器列表中;若得到拒绝登录的回复,则标记该索引服务器为不可访问索引服务器;关闭连接并重复步骤(1.2),直到遍历完所有连接成功的所述的活跃的索引服务器为止;步骤(1.3),伪客户端编制所述可访问的索引服务器列表,并标记其中全部索引服务器为未搜索;步骤(2),伪客户端通过文件搜索,选择自己关注的大量文件信息,其步骤如下步骤(2.1),从步骤(1.3)所述的索引服务器列表中选择一个被标志为未搜索的索引服务器进行连接并标志其为已搜索,执行步骤(2.2);步骤(2.2),向步骤(2.1)中所述的索引服务器发送登录请求并等待确认回复;步骤(2.3),向所述索引服务器发送空的共享文件列表,并执行以下步骤;步骤(2.3.1),客户端通过读取数据库,或读取文件,或读取IO输入的方式中的任何一种方式获得客户端自己关注的关键字集合;步骤(2.3.2),对于从步骤(2.3.1)所获得的关键字向所述索引服务器发送一个或一些关键字搜索的请求,等待回应;步骤(2.3.3),收到所述索引服务器对关键字搜索请求的回应信息,其中至少会包含文件名,文件大小以及文件的唯一标识符;步骤(2.3.4),伪客户端等到所有关键字的搜索请求都被回应后,保存结果;步骤(2.3.5),从所述步骤(2.3.4)得到的对应于所有关键字的回应信息中,最终选择该伪客户端关注的文件,包括文件名,文件大小和唯一标识符;步骤(2.4),重复步骤(2.1)~步骤(2.3);一直到所有已被标志为可访问的索引服务器都被标志为已搜索为止;步骤(3),伪客户端按以下步骤,根据已在步骤(2)中得到的文件,通过所述索引服务器发现对等节点步骤(3.1),从所有被标志为已搜索的索引服务器中任意选择一个索引服务器进行连接,并标志该索引服务器为已询问;步骤(3.2),向步骤(3.1)中所述索引服务器发送登录请求,并等待确认回复;步骤(3.3),在得到确认后,使用所述文件的唯一标识符和文件大小,向所述索引服务器发送要求获得该文件的对等节点的请求,并等待回应;步骤(3.4),若所述索引服务器不回复,则返回步骤(3.1);否则,在收到回复后,执行步骤(3.5);步骤(3.5),解码所述索引服务器的回复信息,其中包括所述对等节点的IP地址和端口,并保存结果,作为基于来源交换发现对等节点的先决条件;步骤(3.6),重复步骤(3.1)~步骤(3.5),一直到遍历完所有未被标志为已询问的索引服务器为止,并构筑对等节点列表,标记其中所有对等节点为未访问;步骤(4),伪客户端按以下步骤,根据在步骤(3)中最后获得的对等节点列表进行基于来源交换的对等节点的发现步骤(4.1),从所有标志为未访问的对等节点中任选一个进行连接,并标志当前对等节点为已访问;若连接成功,执行步骤(4.2);否则,重复步骤(4.1);步骤(4.2),向步骤(4.1)中所述对等节点发送握手消息并等待回复;若成功收到回复消息,执行步骤(4.3);否则,返回步骤(4.1);步骤(4.3),伪客户端和步骤(4.2)中所述的对等节点双方进行身份认证,若认证成功,执行步骤(4.4);否则返回步骤(4.1);步骤(4.4),向步骤(4.3)中所述的对等节点发送要求进行来源交换的请求,并等待对方回复信息;步骤(4.5),若收到回复信息,对于其中含有的其他对等节点的IP地址和端口,如果已存在于步骤(3.6)所述对等节点列表内,则抛弃;否则把该对等节点加入到所述对等节点列表内,并标志为未访问;若未收到回复信息,则返回步骤(4.1);步骤(4.6),重复步骤(4.1)~步骤(4.5),直到遍历完所有标志为未访问的对等节点为止;来源交换部分结束。
2.根据权利要求1所述的一种基于中心索引的P2P文件共享网络的节点发现方法,其 特征在于,在步骤(2.3.3)中,所述的文件信息还包含一个对等节点信息。
全文摘要
一种基于中心索引的P2P文件共享网络的对等节点发现方法属于P2P网络监控领域。其特征在于,通过以索引服务器为中心的星形网络和伪客户端,实现P2P文件共享网络的对等节点发现,依次含有以下步骤发现尽可能多的索引服务器;搜索大量共享文件信息;通过索引服务器发现对等节点,构筑对等节点列表;基于共享文件信息,通过对等节点进行基于来源交换的其他对等节点的发现。本发明的优点在于能最大限度地进行对等节点的发现,有利于对传播于P2P网络上的共享文件信息进行有效的最大化的监督。
文档编号H04L12/44GK101741844SQ20091024187
公开日2010年6月16日 申请日期2009年12月11日 优先权日2009年12月11日
发明者张奇, 张建标, 张涵, 朱通, 管磊, 赵旭强 申请人:北京工业大学