首页> 中国专利> 一种采用P2P技术下载文件的方法和P2P下载系统

一种采用P2P技术下载文件的方法和P2P下载系统

摘要

本发明公开了一种采用P2P技术下载文件的方法,包括:客户端向指定的归属节点服务器发送携带下载文件标识的查询种子请求消息;所述归属节点服务器返回本地种子信息和具有该种子的网络侧其它节点服务器信息;所述客户端向所述其它节点服务器获取相应种子信息,并根据所述归属节点服务器和其它节点服务器返回的种子信息,从对应客户端下载文件片段。本发明还公开了一种P2P下载系统。采用本发明能提高P2P下载效率,降低服务器流量及带宽。

著录项

  • 公开/公告号CN101136911A

    专利类型发明专利

  • 公开/公告日2008-03-05

    原文格式PDF

  • 申请/专利权人 腾讯科技(深圳)有限公司;

    申请/专利号CN200610127645.7

  • 发明设计人 龚云华;

    申请日2006-08-31

  • 分类号H04L29/06;

  • 代理机构北京同达信恒知识产权代理有限公司;

  • 代理人郭润湘

  • 地址 518044 广东省深圳市福田区振兴路赛格科技园2栋东410室

  • 入库时间 2023-12-17 19:54:11

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2010-12-15

    授权

    授权

  • 2008-04-30

    实质审查的生效

    实质审查的生效

  • 2008-03-05

    公开

    公开

说明书

技术领域

本发明涉及网络通信,尤其涉及一种采用P2P(peer to peer)技术下载文件的方法与系统。

背景技术

P2P下载技术是指客户端从服务器下载文件过程中,定时与服务器交换共享该文件的客户端信息,客户端同时更新下载源节点信息,从共享该文件的相应客户端下载文件片段到本地。采用P2P下载技术,由单一的从服务器获取资源模式过渡到多点获取资源的模式,并共享自身已有资源;因此,P2P下载基于点对点技术可以实现文件共享、网络交流、文件交换和分布计算等。

现有技术中的P2P下载主要应用于大文件共享上面,如视频文件,用户A从某台指定服务器上获取到其他共享该视频文件的用户信息,然后该用户A与当前在线的共享该视频文件的其它用户客户端(即种子)建立连接,获取自身所需资源(该视频文件的文件片段)。

现有技术中,由于服务器容量限制等问题,需要将客户端重定向到不同的服务器,这将会导致同时下载相同文件的客户端可能分布于不同的服务器上,因此,客户端向重定后指定的归属服务器获取种子信息(即获取下载相同文件的其它客户端信息)时,不能有效获取到整个系统中全部的种子信息(只能获取到其归属服务器中的本地种子信息),这样,由于种子数量的减少使得客户端重叠(即下载相同文件时的重叠时间)几率减小,客户端之间共享程度较低,P2P下载效率(一个客户端从下载同一资源的其他客户端获取的资源总量与从归属服务器端获取的资源总量的比率)较低,归属服务器信息流量大,需要消耗更多带宽。

特别是对于尺寸较小的文件,由于其下载时间较短,客户端重叠几率更小,P2P下载效率将更低。

发明内容

本发明提供一种采用P2P技术下载文件的方法和P2P下载系统,用以解决现有技术中存在的由于不能有效获取到足够多的种子信息,导致P2P下载效率低的问题。

本发明提供的采用P2P技术下载文件的方法,包括:

A、客户端向指定的归属节点服务器发送携带下载文件标识的查询种子请求消息;

B、所述归属节点服务器返回本地种子信息和具有该种子的网络侧其它节点服务器信息;

C、所述客户端向所述其它节点服务器获取相应种子信息,并根据所述归属节点服务器和其它节点服务器返回的种子信息,从对应客户端下载文件片段。

根据本发明的上述方法,所述步骤A之前还包括:

客户端登录重定向服务器;

所述重定向服务器根据网络侧各节点服务器的负载状况,指定一个当前负载最轻的节点服务器作为该客户端的归属节点服务器,并通知给该客户端;

所述客户端注册到指定的归属节点服务器中。

根据本发明的上述方法,网络侧每个节点服务器周期统计自身的负载状况并上报给所述重定向服务器;

所述重定向服务器记录各节点服务器上报的当前负载状况。

根据本发明的上述方法,所述步骤B之前还包括:

所述归属节点服务器判断本地种子数量是否达到了设定的阈值,如果本地种子数量没有达到设定的阈值,则继续所述步骤B:

如果本地种子数量达到了设定的阈值,则执行下列步骤:

所述归属节点服务器向所述客户端返回本地种子信息;

所述客户端根据所述归属节点服务器返回的本地种子信息,从对应客户端下载文件片段。

根据本发明的上述方法,还包括:在网络侧设置信息交换服务器;

由网络侧各节点服务器周期统计自身每个共享文件的当前种子数量并上报给所述信息交换服务器;

所述信息交换服务器汇总各节点服务器的上报信息,并推送给网络侧每一个节点服务器保存。

根据本发明的上述方法,所述步骤B中,所述归属节点服务器向所述客户端返回查询种子响应消息,携带本地种子信息和具有该种子数量最多的一个其它节点服务器、或具有该种子数量较多的若干个其它节点服务器的对应标识信息。

根据本发明的上述方法,所述客户端根据查询种子响应消息中携带的其它节点服务器标识,向对应的其它节点服务器发送携带下载文件标识的获取种子请求消息;

所述其它节点服务器向所述客户端返回本地对应种子信息。

本发明另提供一种P2P下载系统,包括多个客户端、重定向服务器和多个节点服务器;还包括有信息交换服务器;

各节点服务器包括种子信息上报模块,周期统计自身每个共享文件的当前种子数量并上报给所述信息交换服务器;

所述信息交换服务器汇总各节点服务器的上报信息,并推送给每一个节点服务器保存;

当客户端登录所述重定向服务器后,由所述重定向服务器指定一个节点服务器作为该客户端的归属节点服务器;

所述客户端向指定的归属节点服务器发送携带下载文件标识的查询种子请求消息,所述归属节点服务器向所述客户端返回本地种子信息和具有该种子的其它节点服务器信息;

所述客户端向所述其它节点服务器获取对应种子信息,并根据所述归属节点服务器和其它节点服务器返回的种子信息,从对应客户端下载文件片段。

所述节点服务器还包括负载状况统计上报模块,周期统计自身的负载状况并上报给所述重定向服务器;

所述重定向服务器还包括负载记录更新模块,存储各节点服务器标识及各节点服务器上报的当前负载状况;当客户端登录重定向服务器后,从所述负载记录更新模块中选择一个当前负载最轻的节点服务器作为该客户端的归属节点服务器。

所述节点服务器还包括有种子数量比较模块;

当节点服务器接收到其归属客户端发送的查询种子请求消息后,由所述种子数量比较模块比较本地种子数量是否达到了设定的阈值,如果本地种子数量没有达到设定的阈值,则向所述归属客户端返回本地种子信息和具有该种子的其它节点服务器信息;

如果本地种子数量达到了设定的阈值,则仅向所述客户端返回本地种子信息;所述客户端根据所述归属节点服务器返回的本地种子信息,从对应客户端下载文件片段。

本发明有益效果如下:

(1)采用本发明方法,客户端下载文件时,向指定的归属节点服务器发送携带下载文件标识的查询种子请求消息;归属节点服务器返回本地种子信息和具有该种子的网络侧其它节点服务器信息;客户端还向其它节点服务器获取相应种子信息,并根据归属节点服务器和其它节点服务器返回的种子信息,从对应客户端下载文件片段。因此,本发明与现有技术相比,不仅获取到归属节点服务器的本地种子信息,还获取网络侧其它节点服务器的相应种子信息,从而增加了获取到的种子数量,提高了客户端重叠几率,更多客户端之间可以进行数据交互,提高P2P下载效率。

(2)采用本发明,由于每个客户端可以与更多的其它客户端共享资源,可以更多地从共它客户端下载所需文件片断,从而相应减少了归属服务器的数据流量和带宽消耗,相应可以降低对网络侧服务器的性能要求,节约网络硬件资源及带宽资源。

附图说明

图1为本发明提供的P2P下载系统结构示意图;

图2A、图2B为本发明方法具体实施例流程图。

具体实施方式

参见图1,为本发明提供的P2P下载系统结构示意图。包括:

多个客户端,一个重定向服务器,多个节点服务器和一个信息交换服务器。

其工作原理为:

各节点服务器包括种子信息上报模块,周期统计自身每个共享文件的当前种子数量并上报给信息交换服务器;

信息交换服务器汇总各节点服务器的上报信息,并推送给每一个节点服务器保存;

客户端登录重定向服务器,由重定向服务器指定一个节点服务器作为该客户端的归属节点服务器;图1中假设客户端1登录重定向服务器后指定的归属节点服务器为节点服务器1;

客户端向指定的归属节点服务器发送携带下载文件标识(ID)的查询种子请求消息,归属节点服务器向该客户端返回本地种子信息和具有该种子的其它节点服务器信息;图1中表示客户端1的归属节点服务器1返回本地种子信息并返回其它节点服务器2的标识信息;

客户端向归属节点服务器返回的其它节点服务器获取对应种子信息,如图1中虚线所示,客户端1向其它节点服务器2(非归属服务器)请求获取种子信息,并根据归属节点服务器1和其它节点服务器2返回的种子信息,从对应客户端下载文件片段(图1中未示出)。

下面结合附图,对本发明采用P2P技术下载文件的方法进行详细描述。

参见图2A,为获取各节点服务器中种子数量信息的具体步骤流程图,包括:

步骤S101、各节点服务器中的种子信息上报模块周期统计自身每个共享文件的当前种子数量,并上报给信息交换服务器;例如,节点服务器1上报的信息如下表1所示:

表1

共享文件标识种子数量文件11000文件2500

节点服务器2上报的信息如下表2所示:

表2

共享文件标识种子数量文件110000文件22000

节点服务器3上报的信息如下表3所示:

表3

共享文件标识种子数量文件15000文件23500

节点服务器4上报的信息如下表4所示:

表4

共享文件标识种子数量文件12000文件21000

步骤S102、信息交换服务器汇总各节点服务器的上报信息,更新本地数据库中存储的节点服务器/共享文件(或共享资源)及对应种子数量信息表。

如上例,信息交换服务器汇总节点服务器1、2、3、4(假设网络侧总共只有4个节点服务器)的上报信息后,生成的对应信息表如下表5所示:

表5

步骤S103、信息交换服务器将更新后的信息表推送给每个节点服务器。

步骤S104、每个节点服务器在本地存储信息交换服务器推送的信息表。

这样,在每个节点服务器中都存储了网络侧全部节点服务器的共享文件及对应种子数量信息。

图2A仅是获取各节点服务器中的种子信息的一种实现方法,还可以采用其它的方法来获取各节点服务器中的种子数量信息,如采用各节点服务器相互发送通知消息的方式,将自身的每个共享文件(或共享资源)的种子数量通知给对端服务器。因此,本发明方法中对各节点服务器如何获取网络侧其它节点服务器中的种子数量的具体方式不作限定。

图2B为客户端登录并下载共享文件的步骤流程图,包括:

步骤S201、客户端登录至重定向服务器。

步骤S202、重定向服务器为该客户端确定归属节点服务器,并通知给客户端。

节点服务器中包含的负载状况统计上报模块周期统计自身的负载状况并上报给重定向服务器;重定向服务器中的负载记录更新模块存储各节点服务器标识及各节点服务器上报的当前负载状况;当客户端登录重定向服务器后,从负载记录更新模块中选择一个当前负载最轻的节点服务器作为该客户端的归属节点服务器,通知给该客户端,指明客户端需要重新注册到指定的归属节点服务器。

步骤S203、客户端注册到归属节点服务器中。

步骤S204、归属节点服务器给该客户端分配客户端ID,并将该客户端作为自身的归属客户端记录到本地的资源池中,向客户端返回分配的客户端ID。

步骤S205、客户端记录分配的客户端ID,向归属节点服务器发送携带客户端ID和下载文件ID的查询种子消息。

步骤S206、归属节点服务器判断本地种子数量是否达到设定的阈值,若是,则执行步骤S207,否则,执行步骤S209。

在该步骤S206中,当节点服务器接收到其归属客户端发送的查询种子请求消息后,启动种子数量比较模块,比较本地种子数量是否达到了设定的阈值(具体的阈值大小可以根据实际情况预先在节点服务器中进行设置)。

步骤S207、归属节点服务器向客户端返回查询种子响应消息,仅携带本地种子信息;继续步骤S208。

步骤S208、客户端根据归属节点服务器返回的本地种子信息,从对应客户端下载文件片段。

步骤S209、归属节点服务器向客户端返回本地种子信息和具有该种子的其它节点服务器信息;继续步骤S210。

在该步骤S209中,归属节点服务器向客户端返回查询种子响应消息,不仅携带本地种子信息,还携带具有该种子数量最多的一个其它节点服务器、或具有该种子数量较多的若干个其它节点服务器的对应标识信息。

由图2A流程可知,每个节点服务器都保存有网络侧各节点服务器中的每个共享文件(或共享资源)的种子数量信息,因此,对于归属客户端请求下载的共享文件(由文件ID唯一确定),归属节点服务器可以比较其它各节点服务器中具有的该种子数量(即其它各节点服务器中下载该同一个共享文件的客户端数量),选择具有该种子数量最多的一个其它节点服务器(当然也可以选择种子数量较多的若干个其它节点服务器),将选择出的节点服务器的对应服务器标识通过查询种子响应消息携带,通知给客户端。

步骤S210、客户端向归属节点服务器返回的其它节点服务器获取对应种子信息,继续步骤S211。

在该步骤S210中,客户端根据查询种子响应消息中携带的其它节点服务器标识,向对应的其它节点服务器(其它节点服务器一定是该客户端的非归属节点服务器)发送获取种子请求消息,在该获取种子请求消息中,将客户端ID置空,携带下载文件ID;其它节点服务器根据该获取种子请求消息中客户端ID为空这一特征,判断出不是自己的归属客户端发送的查询种子请求消息,不将该客户端信息记录到本地资源池中,并向该客户端返回本地对应种子信息。

步骤S211、客户端根据归属节点服务器和其它节点服务器返回的种子信息,从对应客户端下载文件片段。

综上所述,本发明方法与现有技术相比,客户端不仅获取归属节点服务器的本地种子信息,还获取网络侧其它节点服务器的相应种子信息,从而增加了获取到的种子数量,提高了客户端重叠几率,更多客户端之间可以进行数据交互,达到提高P2P下载效率的目的。

另外,采用本发明,每个客户端可以与更多的其它客户端共享资源,可以更多地从共它客户端下载所需文件片断,从而相应减少了归属服务器的数据流量和带宽消耗,相应可以降低对网络侧节点服务器的性能要求,节约网络硬件及带宽资源。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号