采用P2P技术下载文件的方法和系统、客户端转让专利

申请号 : CN201110161087.7

文献号 : CN102223411B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 鲁小锁赵化强李涛

申请人 : 奇智软件(北京)有限公司

摘要 :

本发明提供了一种采用P2P技术下载文件的方法和系统、一种客户端,其中的方法具体包括:客户端向P2P系统发送携带文件资源信息的服务器查询请求;该客户端接收所述P2P系统返回的P2P服务器的IP列表;该客户端根据自身所属IP地址段,从所述P2P服务器的IP列表中选择网络连接最佳的一个P2P服务器,并依据所选择P2P服务器获取文件资源的种子信息;该客户端依据所述文件资源的种子信息,进行该文件资源的分享。本发明能够提高文件资源的共享效率和P2P下载效率。

权利要求 :

1.一种采用P2P技术下载文件的方法,其特征在于,包括:客户端向P2P系统发送携带文件资源信息的服务器查询请求;

该客户端接收所述P2P系统返回的P2P服务器的IP列表;

该客户端根据自身所属IP地址段,从所述P2P服务器的IP列表中选择网络连接最佳的一个P2P服务器,并依据所选择P2P服务器获取文件资源的种子信息,所述网络连接最佳包括物理位置最临近且处于相同网络运营商;

该客户端依据所述文件资源的种子信息,进行该文件资源的分享;

其中,当该客户端与其他客户端具有相同的IP地址段时,该客户端选择的P2P服务器与所述其他客户端选择的P2P服务器相同。

2.如权利要求1所述的方法,其特征在于,所述P2P服务器的IP列表中包括多个P2P服务器的IP地址;

所述该客户端根据自身所属IP地址段,从所述P2P服务器的IP列表中选择网络连接最佳的一个P2P服务器的步骤,包括:从IP地址段信息库中查询客户端所属IP地址段的物理所在地和网络运营商,其中,所述IP地址段信息库包括多个IP地址段以及每个IP地址段对应的物理所在地和网络运营商;

针对所述P2P服务器的IP列表中各P2P服务器的IP地址,该客户端确定相应的所属IP地址段,并从所述IP地址段信息库中查询各所属IP地址段的物理所在地和网络运营商;

依据该客户端所属IP地址段和各P2P服务器的IP地址的物理所在地和网络运营商,从所述P2P服务器的IP列表中选择物理位置最临近且处于相同网络运营商的一个P2P服务器的IP地址。

3.如权利要求1所述的方法,其特征在于,所述该客户端根据自身所属IP地址段,从所述P2P服务器的IP列表中选择网络连接最佳的一个P2P服务器的步骤,包括:该客户端根据自身所属IP地址段,从所述P2P服务器的IP列表中选择物理位置最临近且处于相同网络运营商的多个P2P服务器的IP地址;

针对客户端所属IP地址段执行选择算法,从所述物理位置最临近且处于相同网络运营商的多个P2P服务器的IP地址中选择一者。

4.如权利要求3所述的方法,其特征在于,所述针对客户端所属IP地址段执行选择算法,从所述物理位置最临近且处于相同网络运营商的多个P2P服务器的IP地址中选择一者的步骤,包括:对所述物理位置最临近且处于相同网络运营商的多个P2P服务器的IP地址进行排序,得到排序结果;

对该客户端所属IP地址段进行数字运算,并进行取整,得到取整后的数字运算结果;

计算所述取整后的数字运算结果对IP数目的取模结果,其中,所述IP数目为所述物理位置最临近且处于相同网络运营商的多个P2P服务器的IP地址的数目;

依据所述取模结果,从所述排序结果中选择一者。

5.如权利要求4所述的方法,其特征在于,所述数字运算包括数字加密运算或者数字摘要运算。

6.如权利要求1所述的方法,其特征在于,所述文件资源信息包括文件资源的网页地址。

7.一种采用P2P技术下载文件的系统,其特征在于,包括客户端和P2P系统,所述P2P系统进一步包括P2P服务器,其中,所述客户端,包括:

服务器查询模块,用于向所述P2P系统发送携带文件资源信息的服务器查询请求;

IP列表接收模块,用于接收所述P2P系统返回的P2P服务器的IP列表;

选择模块,用于根据自身所属IP地址段,从所述P2P服务器的IP列表中选择网络连接最佳的一个P2P服务器,所述网络连接最佳包括物理位置最临近且处于相同网络运营商;

其中,当该客户端与其他客户端具有相同的IP地址段时,该客户端选择的P2P服务器与所述其他客户端选择的P2P服务器相同;

种子信息获取模块,用于依据所选择P2P服务器获取文件资源的种子信息;及下载模块,用于依据所述文件资源的种子信息,进行该文件资源的分享;

所述P2P系统,还包括:

服务器查询处理模块,用于对所述服务器查询请求进行处理,得到相应的P2P服务器的IP列表,并返回给所述客户端。

8.如权利要求7所述的系统,其特征在于,所述P2P服务器的IP列表中包括多个P2P服务器的IP地址;

所述选择模块,包括:

第一查询子模块,用于从IP地址段信息库中查询客户端所属IP地址段的物理所在地和网络运营商,其中,所述IP地址段信息库包括多个IP地址段以及每个IP地址段对应的物理所在地和网络运营商;

第二查询子模块,用于针对所述P2P服务器的IP列表中各P2P服务器的IP地址,该客户端确定相应的所属IP地址段,并从所述IP地址段信息库中查询各所属IP地址段的物理所在地和网络运营商;

选择子模块,用于依据该客户端所属IP地址段和各P2P服务器的IP地址的物理所在地和网络运营商,从所述P2P服务器的IP列表中选择物理位置最临近且处于相同网络运营商的一个P2P服务器的IP地址。

9.如权利要求7所述的系统,其特征在于,所述选择模块,包括:第一选择子模块,用于该客户端根据自身所属IP地址段,从所述P2P服务器的IP列表中选择物理位置最临近且处于相同网络运营商的多个P2P服务器的IP地址;

第二选择子模块,用于针对客户端所属IP地址段执行选择算法,从所述物理位置最临近且处于相同网络运营商的多个P2P服务器的IP地址中选择一者。

10.如权利要求9所述的系统,其特征在于,所述第二选择子模块,包括:排序单元,用于对所述物理位置最临近且处于相同网络运营商的多个P2P服务器的IP地址进行排序,得到排序结果;

取整单元,用于对该客户端所属IP地址段进行数字运算,并进行取整,得到取整后的数字运算结果;

取模单元,用于计算所述取整后的数字运算结果对IP数目的取模结果,其中,所述IP数目为所述物理位置最临近且处于相同网络运营商的多个P2P服务器的IP地址的数目;及选择单元,用于依据所述取模结果,从所述排序结果中选择一者。

11.如权利要求10所述的系统,其特征在于,所述数字运算包括数字加密运算或者数字摘要运算。

12.一种客户端,其特征在于,包括:

服务器查询模块,用于向所述P2P系统发送携带文件资源信息的服务器查询请求;

IP列表接收模块,用于接收所述P2P系统返回的P2P服务器的IP列表;

选择模块,用于从所述P2P服务器的IP列表中选择网络连接最佳的一个P2P服务器,所述网络连接最佳包括物理位置最临近且处于相同网络运营商;其中,当该客户端与其他客户端具有相同的IP地址段时,该客户端选择的P2P服务器与所述其他客户端选择的P2P服务器相同;

种子信息获取模块,用于依据所选择P2P服务器获取文件资源的种子信息;及下载模块,用于依据所述文件资源的种子信息,进行该文件资源的分享。

说明书 :

采用P2P技术下载文件的方法和系统、客户端

技术领域

[0001] 本发明涉及网络通信技术领域,特别是涉及一种采用P2P技术下载文件的方法和系统、一种客户端。

背景技术

[0002] P2P(点对点,Peer-to-Peer)技术是一种对等互联网络技术,在P2P网络中每个节点的地位都是对等的,既是服务器又是客户端,每个节点在享受其它节点提供的服务的同时,也在为其它节点提供服务。
[0003] 由于P2P技术充分利用了各节点的计算能力,因而它在扩展性、扩展承保等方面存在极大的优势。近年来,文件共享、流媒体等各种基于P2P技术的互联网应用发展迅猛,P2P下载流量已占据全球互联网总数据流量的70%以上,P2P技术已成为宽带互联网重要的媒体交付技术。
[0004] 现有采用P2P技术下载文件的方法,通常包括如下步骤:
[0005] 步骤A1、客户端A开始针对某文件资源的下载任务;
[0006] 步骤A2、客户端A得到P2P服务器的IP(网络之间互连的协议,Internet Protocol)列表;
[0007] 步骤A3、依据所述P2P服务器的IP列表,客户端A随机选择其中一台P2P服务器进行登陆;
[0008] 步骤A4、该客户端A向该台P2P服务器发送携带该文件资源信息的查询请求;
[0009] 步骤A5、该台P2P服务器向客户端A返回该文件资源的种子节点;
[0010] 步骤A6、客户端A与所述该文件资源的种子节点连接,进行该文件资源的分享。
[0011] 但是,由于随机选择P2P服务器的缘故,下载同一文件资源的客户端容易登录到不同的P2P服务器上,这就使得客户端A与所连接种子节点的临近属性下降,使得客户端A与所连接种子节点之间的共享效率降低,表现在下载速度慢、连接时间长等,从而严重影响P2P下载效率。
[0012] 特别地,对于升级,漏洞补丁修复等业务需求,可能会出现百万甚至千万个客户端集中采用P2P技术下载一个文件资源的情况,此时,客户端之间的共享效率更低,P2P下载效率更低。
[0013] 总之,需要本领域技术人员迫切解决的一个技术问题就是:如何能够提高上述情形下的共享效率和P2P下载效率。

发明内容

[0014] 本发明所要解决的技术问题是提供一种采用P2P技术下载文件的方法和系统、一种客户端,能够提高文件资源的共享效率和P2P下载效率。
[0015] 为了解决上述问题,本发明公开了一种采用P2P技术下载文件的方法,包括:
[0016] 客户端向P2P系统发送携带文件资源信息的服务器查询请求;
[0017] 该客户端接收所述P2P系统返回的P2P服务器的IP列表;
[0018] 该客户端根据自身所属IP地址段,从所述P2P服务器的IP列表中选择网络连接最佳的一个P2P服务器,并依据所选择P2P服务器获取文件资源的种子信息,所述网络连接最佳包括物理位置最临近且处于相同网络运营商;
[0019] 该客户端依据所述文件资源的种子信息,进行该文件资源的分享。
[0020] 优选的,所述P2P服务器的IP列表中包括多个P2P服务器的IP地址;
[0021] 所述该客户端根据自身所属IP地址段,从所述P2P服务器的IP列表中选择网络连接最佳的一个P2P服务器的步骤,包括:
[0022] 从IP地址段信息库中查询客户端所属IP地址段的物理所在地和网络运营商,其中,所述IP地址段信息库包括多个IP地址段以及每个IP地址段对应的物理所在地和网络运营商;
[0023] 针对所述P2P服务器的IP列表中各P2P服务器的IP地址,该客户端确定相应的所属IP地址段,并从所述IP地址段信息库中查询各所属IP地址段的物理所在地和网络运营商;
[0024] 依据该客户端所属IP地址段和各P2P服务器的IP地址的物理所在地和网络运营商,从所述P2P服务器的IP列表中选择物理位置最临近且处于相同网络运营商的一个P2P服务器的IP地址。
[0025] 优选的,所述该客户端根据自身所属IP地址段,从所述P2P服务器的IP列表中选择网络连接最佳的一个P2P服务器的步骤,包括:
[0026] 该客户端根据自身所属IP地址段,从所述P2P服务器的IP列表中选择物理位置最临近且处于相同网络运营商的多个P2P服务器的IP地址;
[0027] 针对客户端所属IP地址段执行选择算法,从所述物理位置最临近且处于相同网络运营商的多个P2P服务器的IP地址中选择一者。
[0028] 优选的,所述针对客户端所属IP地址段执行选择算法,从所述物理位置最临近且处于相同网络运营商的多个P2P服务器的IP地址中选择一者的步骤,包括:
[0029] 对所述物理位置最临近且处于相同网络运营商的多个P2P服务器的IP地址进行排序,得到排序结果;
[0030] 对该客户端所属IP地址段进行数字运算,并进行取整,得到取整后的数字运算结果;
[0031] 计算所述取整后的数字运算结果对IP数目的取模结果,其中,所述IP数目为所述物理位置最临近且处于相同网络运营商的多个P2P服务器的IP地址的数目;
[0032] 依据所述取模结果,从所述排序结果中选择一者。
[0033] 优选的,所述数字运算包括数字加密运算或者数字摘要运算。
[0034] 优选的,所述文件资源信息包括文件资源的网页地址。
[0035] 另一方面,本发明还提供了一种采用P2P技术下载文件的系统,包括客户端和P2P系统,所述P2P系统进一步包括P2P服务器,其中,
[0036] 所述客户端,包括:
[0037] 服务器查询模块,用于向所述P2P系统发送携带文件资源信息的服务器查询请求;
[0038] IP列表接收模块,用于接收所述P2P系统返回的P2P服务器的IP列表;
[0039] 选择模块,用于根据自身所属IP地址段,从所述P2P服务器的IP列表中选择网络连接最佳的一个P2P服务器,所述网络连接最佳包括物理位置最临近且处于相同网络运营商;
[0040] 种子信息获取模块,用于依据所选择P2P服务器获取文件资源的种子信息;及[0041] 下载模块,用于依据所述文件资源的种子信息,进行该文件资源的分享;
[0042] 所述P2P系统,还包括:
[0043] 服务器查询处理模块,用于对所述服务器查询请求进行处理,得到相应的P2P服务器的IP列表,并返回给所述客户端。
[0044] 优选的,所述P2P服务器的IP列表中包括多个P2P服务器的IP地址;
[0045] 所述选择模块,包括:
[0046] 第一查询子模块,用于从IP地址段信息库中查询客户端所属IP地址段的物理所在地和网络运营商,其中,所述IP地址段信息库包括多个IP地址段以及每个IP地址段对应的物理所在地和网络运营商;
[0047] 第二查询子模块,用于针对所述P2P服务器的IP列表中各P2P服务器的IP地址,该客户端确定相应的所属IP地址段,并从所述IP地址段信息库中查询各所属IP地址段的物理所在地和网络运营商;
[0048] 选择子模块,用于依据该客户端所属IP地址段和各P2P服务器的IP地址的物理所在地和网络运营商,从所述P2P服务器的IP列表中选择物理位置最临近且处于相同网络运营商的一个P2P服务器的IP地址。
[0049] 优选的,所述选择模块,包括:
[0050] 第一选择子模块,用于该客户端根据自身所属IP地址段,从所述P2P服务器的IP列表中选择物理位置最临近且处于相同网络运营商的多个P2P服务器的IP地址;
[0051] 第二选择子模块,用于针对客户端所属IP地址段执行选择算法,从所述物理位置最临近且处于相同网络运营商的多个P2P服务器的IP地址中选择一者。
[0052] 优选的,所述第二选择子模块,包括:
[0053] 排序单元,用于对所述物理位置最临近且处于相同网络运营商的多个P2P服务器的IP地址进行排序,得到排序结果;
[0054] 取整单元,用于对该客户端所属IP地址段进行数字运算,并进行取整,得到取整后的数字运算结果;
[0055] 取模单元,用于计算所述取整后的数字运算结果对IP数目的取模结果,其中,所述IP数目为所述物理位置最临近且处于相同网络运营商的多个P2P服务器的IP地址的数目;及
[0056] 选择单元,用于依据所述取模结果,从所述排序结果中选择一者。
[0057] 优选的,所述数字运算包括数字加密运算或者数字摘要运算。
[0058] 另一方面,本发明还提供了一种客户端,包括:
[0059] 服务器查询模块,用于向所述P2P系统发送携带文件资源信息的服务器查询请求;
[0060] IP列表接收模块,用于接收所述P2P系统返回的P2P服务器的IP列表;选择模块,用于从所述P2P服务器的IP列表中选择网络连接最佳的一个P2P服务器,所述网络连接最佳包括物理位置最临近且处于相同网络运营商;
[0061] 种子信息获取模块,用于依据所选择P2P服务器获取文件资源的种子信息;及[0062] 下载模块,用于依据所述文件资源的种子信息,进行该文件资源的分享。
[0063] 与现有技术相比,本发明具有以下优点:
[0064] 本发明的客户端在从P2P服务器的IP列表选择P2P服务器时,不是随机选择,而是根据自身所属IP地址段,从所述P2P服务器的IP列表中选择网络连接最佳的一个P2P服务器;
[0065] 一方面,由于客户端在下载文件资源的过程中,需要定时与P2P服务器交互共享该文件资源的提供客户端信息,所述网络连接最佳(例如,物理位置最临近且处于相同网络运营商的一个P2P服务器的就近接入)的接入策略,能够大大提高客户端与P2P服务器之间的交互速度,从而能够提高该文件资源的共享效率和P2P下载效率;
[0066] 另一方面,由于本发明针对客户端所属IP地址段执行选择算法,使得P2P服务器的选择结果仅仅取决于客户端所属IP地址段,这样,具有相同IP地址段的不同客户端的选择结果是相同的,能够保证具有相同IP地址段的不同客户端登录到相同的P2P服务器;这样,本发明的客户端所选择P2P服务器具有的资源提供客户端之间同样具有最佳的网络连接(例如,属于相同的IP地址段,且处于相同网络运营商),所选择P2P服务器能够提供与欲下载客户端处于相同IP地址段和相同网络运营商的资源提供端也即种子节点;因此,能够大大提高欲下载客户端与所连接种子节点的临近属性,使得欲下载客户端与所连接种子节点之间的共享效率大大提高,从而大大提高P2P下载效率。

附图说明

[0067] 图1是本发明一种采用P2P技术下载文件的方法实施例的流程图;
[0068] 图2是本发明一种采用P2P技术下载文件的系统实施例的结构图;
[0069] 图3是本发明一种客户端实施例的结构图。

具体实施方式

[0070] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
[0071] 本发明实施例的核心构思之一在于:客户端在从P2P服务器的IP列表选择P2P服务器时,不是随机选择,而是遵循如下原则:
[0072] 1、具有相同IP地址段的不同客户端选择相同的P2P服务器,使得所选择P2P服务器具有的资源提供客户端属于相同的IP地址段;
[0073] 2、网络连接最佳的接入策略,例如,可以采取物理位置最临近且处于相同网络运营商的就近接入策略。
[0074] 一方面,由于客户端在下载文件资源的过程中,需要定时与P2P服务器交互共享该文件资源的提供客户端信息,所述网络连接最佳的接入策略能够大大提高客户端与P2P服务器之间的交互速度,从而能够提高该文件资源的共享效率和P2P下载效率;
[0075] 另一方面,由于所选择P2P服务器具有的资源提供客户端之间同样具有最佳的网络连接(例如,属于相同的IP地址段,且处于相同网络运营商);这样,在接收到客户端的种子查询请求时,能够提供与请求发起客户端处于相同IP地址段和相同网络运营商的资源提供端也即种子节点,因此,能够大大提高请求发起客户端与所连接种子节点的临近属性,使得请求发起客户端与所连接种子节点之间的共享效率大大提高,从而大大提高P2P下载效率。
[0076] 参照图1,示出了本发明一种采用P2P技术下载文件的方法实施例的流程图,具体可以包括:
[0077] 步骤101、客户端向P2P系统发送携带文件资源信息的服务器查询请求;
[0078] 本发明可以适用于各种文件的下载,如视频文件、文档文件、程序文件等,本发明尤其适用于对于升级、漏洞补丁修复等热点文件的下载,以大大提高文件的共享效率和P2P下载效率。
[0079] 在本发明的一种优选实施例中,所述文件资源信息可以包括文件资源的URL(网页地址,Uniform Resource Locator)。例如,用户欲通过BT(比特流,BitTorren)下载某视频文件,点击该视频文件的下载地址,则代表向BT系统发送了携带该视频文件的URL地址的服务器查询请求。
[0080] 步骤102、该客户端接收所述P2P系统返回的P2P服务器的IP列表;
[0081] 在实际中,可通过对所述服务器查询请求进行域名解析,得到相应的P2P服务器的IP列表;这里的域名解析可直接由P2P系统完成,也可由P2P请求域名解析服务器来完成,由于对所述服务器查询请求进行处理得到相应的P2P服务器的IP列表,属于本领域的公知常识,故在此不作赘述。
[0082] P2P服 务 器的 IP列 表 的表 现 形 式 为IP的 集 合,如{116.21.170.34;116.227.24.132;117.88.214.74;121.10.105.151;121.10.105.151},集合中的元素一般以数组的形式进行存储。
[0083] 步骤103、该客户端根据自身所属IP地址段,从所述P2P服务器的IP列表中选择网络连接最佳的一个P2P服务器,并依据所选择P2P服务器获取文件资源的种子信息;
[0084] 因特网是全世界范围内的计算机联为一体而构成的通信网络的总称。为了通信的方便,给每一台计算机都事先分配一个标识地址也即IP地址。根据TCP/IP(传输控制协议/因特网互联协议,Transmission Control Protocol/Internet Protocol)规定,IP地址是由32位二进制数组成,而且在因特网范围内是唯一的。例如,某台联在因特网上的计算机的IP地址为:11010010 01001001 10001100 00000010
[0085] 为了方便记忆,就将组成计算机的IP地址的32位二进制分成四段,每段8位,中间用小数点隔开,然后将每八位二进制转换成十进制数,这样上述计算机的IP地址就变成了:210.73.140.2。
[0086] 由于网络中包含的计算机有可能不一样多,有的网络可能含有较多的计算机,也有的网络包含较少的计算机,于是人们按照网络规模的大小,把32位地址信息设成三种定位的划分方式,这三种划分方法分别对应于A类、B类、C类IP地址段。
[0087] 1.A类IP地址段
[0088] 一个A类IP地址段是指,在IP地址的四段号码中,第一段号码为网络号码,剩下的三段号码为本地计算机的号码。如果用二进制表示IP地址的话,A类IP地址段就由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”。A类IP地址段中网络的标识长度为7位,主机标识的长度为24位,A类网络地址数量较少,可以用于主机数达1600多万台的大型网络。
[0089] 2.B类IP地址段
[0090] 一个B类IP地址段是指,在IP地址的四段号码中,前两段号码为网络号码,B类IP地址就由2字节的网络地址和2字节主机地址组成,网络地址的最高位必须是“10”。B类IP地址中网络的标识长度为14位,主机标识的长度为16位,B类网络地址适用于中等规模的网络,每个网络所能容纳的计算机数为6万多台。
[0091] 3.C类IP地址段
[0092] 一个C类IP地址段是指,在IP地址的四段号码中,前三段号码为网络号码,剩下的一段号码为本地计算机的号码。如果用二进制表示IP地址的话,C类IP地址就由3字节的网络地址和1字节主机地址组成,网络地址的最高位必须是“110”。C类IP地址段中网络的标识长度为21位,主机标识的长度为8位,C类网络地址数量较多,适用于小规模的局域网络,每个网络最多只能包含254台计算机。
[0093] C类IP的私有地址范围一般为:192.168.0.0~192.168.255.255;这样,如果一个客户端的IP地址为192.168.100.155,则认为其自身所属IP地址段为192.168.100.0。.[0094] 关于从所述P2P服务器的IP列表中选择一台P2P服务器进行登陆,本发明可以提供如下方案:
[0095] 方案一、
[0096] 所述P2P服务器的IP列表中可以包括多个P2P服务器的IP地址;
[0097] 此时,所述选择步骤可以进一步包括:
[0098] 子步骤B1、从IP地址段信息库中查询客户端所属IP地址段的物理所在地和网络运营商,其中,所述IP地址段信息库具体可以包括多个IP地址段以及每个IP地址段对应的物理所在地和网络运营商;
[0099] 在实际中,每个IP地址段对应的物理所在地和网络运营商可通过分析多个已知的IP地址的物理所在地信息得到;其中,已知的IP地址的物理所在地信息可通过各种方式获取,如网络用户资源提交,网络服务供应商提交等,本发明对已知的IP地址的物理所在地信息的获取方式不加以限制。
[0100] 例如,如下为网通在全国各地的IP地址段示例:
[0101] 60.0.0.0-60.10.255.255----河北
[0102] 60.12.0.0-60.12.255.255----浙江
[0103] 60.13.0.0-60.13.63.255----甘肃
[0104] 60.13.128.0-60.13.255.255----新疆
[0105] 60.16.0.0-60.23.255.255----辽宁
[0106] 60.24.0.0-60.30.255.255----天津
[0107] 60.31.0.0-60.31.255.255----内蒙古
[0108] 60.208.0.0-60.217.255.255----山东
[0109] 60.220.0.0-60.223.255.255----陕西
[0110] 61.48.0.0-61.51.255.255----北京
[0111] 61.52.0.0-61.54.255.255----河南
[0112] 又如,如下为电信在全国各地的IP地址段示例:
[0113] 61.129----上海
[0114] 61.130----浙江
[0115] 61.131----福建
[0116] 61.132----江苏
[0117] 61.133----山东
[0118] 61.134----陕西
[0119] 61.135----北京
[0120] 子步骤B2、针对所述P2P服务器的IP列表中各P2P服务器的IP地址,该客户端确定相应的所属IP地址段,并从所述IP地址段信息库中查询各所属IP地址段的物理所在地和网络运营商;
[0121] 子步骤B3、依据该客户端所属IP地址段和各P2P服务器的IP地址的物理所在地和网络运营商,从所述P2P服务器的IP列表中选择物理位置最临近且处于相同网络运营商的一个P2P服务器的IP地址。
[0122] 在具体实现中,可采用二维列表来存储一个物理所在地到另一个物理所在地的距离,例如,北京到北京的距离为0,北京到天津的距离为137公里,北京到上海的距离为1088公里等。这样,可首先从所述P2P服务器的IP列表中选择处于相同网络运营商的一个或多个P2P服务器的IP地址,然后,再从中选择距离最短的一个P2P服务器的IP地址。
[0123] 方案二、
[0124] 在本发明的一种优选实施例中,所述选择步骤,可进一步包括:
[0125] 子步骤C1、该客户端根据自身所属IP地址段,从所述P2P服务器的IP列表中选择物理位置最临近且处于相同网络运营商的多个P2P服务器的IP地址;
[0126] 子步骤C2、针对客户端所属IP地址段执行选择算法,从所述物理位置最临近且处于相同网络运营商的多个P2P服务器的IP地址中选择一者。
[0127] 由于本优选实施例针对客户端所属IP地址段执行选择算法,使得子步骤C2的选择结果仅仅取决于客户端所属IP地址段,这样,具有相同IP地址段的不同客户端的选择结果是相同的,能够保证具有相同IP地址段的不同客户端选择相同的P2P服务器。
[0128] 在本发明的另一种优选实施例中,所述子步骤C2可以进一步包括:
[0129] 子步骤C21、对所述物理位置最临近且处于相同网络运营商的多个P2P服务器的IP地址进行排序,得到排序结果;
[0130] 子步骤C22、对该客户端所属IP地址段进行数字运算,并进行取整,得到取整后的数字运算结果;
[0131] 子步骤C23、计算所述取整后的数字运算结果对IP数目的取模结果,其中,所述IP数目为所述物理位置最临近且处于相同网络运营商的多个P2P服务器的IP地址的数目;
[0132] 子步骤C24、依据所述取模结果,从所述排序结果中选择一者。
[0133] 例如,该客户端的IP地址段(61.133)处于山东电信,子步骤C1选择了M个山东电信的P2P服务器的IP地址;那么,子步骤C21可按从大到小或者从小到大对这M个IP地址进行排序,子步骤C22对61.133进行数字计算并进行取整运算得到N,子步骤C23进行N%M(取模运算)得到P,即选择排序后的M个IP地址中的第P个。
[0134] 在本发明实施例中,优选的是,所述数字运算可以包括数字加密运算或者数字摘要运算。例如,数字加密运算可以进一步包括DES(对称算法,Data Encryption Standard),IDEA(国际数据加密算法,International Data Encryption Algorithm),DSA(数字摘要算法,Digital Signature Algorithm)等,所述数字摘要运算可以进一步包括SHA(安全Hash编码法,Secure Hash Algorithm),MD5(消息摘要算法第五版,Message Digest Algorithm5)等。
[0135] 需要说明的是,直接选择选择排序后的M个IP地址中的第P个属于选择算法的一个示例,实际上,在各客户端执行的选择算法相同的前提下,选择第P-1或P+1个都是可行的。
[0136] 可以理解,除了除了数字加密运算和数字摘要运算外,本领域技术人员还可以根据实际需要,采用其它数字运算,本发明的宗旨是针对所属IP地址段执行选择算法,使得P2P服务器的的选择结果仅仅取决于客户端所属IP地址段,以保证具有相同IP地址段的不同客户端选择相同的P2P服务器;本发明并不会对具体的选择算法和数字运算加以限制。
[0137] 在选择了一个P2P服务器后,可采用多种已有技术手段,获取文件资源的种子信息,例如,该客户端可首先向所选择P2P服务器发送携带该文件资源信息的种子查询请求,然后,接收所选择P2P服务器返回的文件资源的种子信息。可以理解,本领域技术人员可以根据实际需要,采用其它技术手段,本发明的宗旨是使得所选择P2P服务器具有的资源提供客户端之间具有最佳的网络连接(例如,属于相同的IP地址段,且处于相同网络运营商);这样,在接收到客户端的种子查询请求时,能够提供与请求发起客户端处于相同IP地址段和相同网络运营商的资源提供端也即种子节点,因此,能够大大提高请求发起客户端与所连接种子节点的临近属性,而不会对获取文件资源的种子信息的具体手段加以限制。
[0138] 步骤104、该客户端依据所述文件资源的种子信息,进行该文件资源的分享。
[0139] 为使本领域技术人员更好地理解本发明,以下通过一个具体的示例说明本发明采用P2P技术下载文件的详细过程,该示例涉及客户端A下载杀毒软件升级文件,具体可以包括:
[0140] 步骤S1、客户端A向P2P系统发送服务器查询请求,该服务器查询请求携带有杀毒软件升级文件的URL地址;
[0141] 步骤S2、P2P系统通过域名解析,得到与该服务器查询请求相应的P2P服务器的IP列表,并返回给客户端A;
[0142] 步骤S3、客户端A接收所述P2P系统返回的P2P服务器的IP列表;
[0143] 步骤S4、客户端A根据自身所属IP地址段,从所述P2P服务器的IP列表中选择物理位置最临近且处于相同网络运营商的一个P2P服务器进行登陆,具体可以包括:
[0144] 子步骤S41、客户端A根据自身所属IP地址段,从所述P2P服务器的IP列表中选择了M个山东电信的P2P服务器的IP地址;
[0145] 子步骤S42、客户端A按从大到小的顺序对这M个IP地址进行排序,得到排序结果;
[0146] 子步骤S43、客户端A对自身所属IP地址段进行MD5计算,取MD5运算结果的最后四个字节,进行取整运算得到N;
[0147] 子步骤S44、计算N%M得到到P;
[0148] 子步骤S44、选择排序后的M个IP地址中的第P个,记该第P个P2P服务器为P2P服务器A;
[0149] 假设与客户端A处于相同IP地址段的客户端B-客户端Z,也通过执行步骤S1-S4选择了P2P服务器A。
[0150] 步骤S5、该客户端向P2P服务器A发送种子查询请求,该种子查询请求携带有该杀毒软件升级文件的URL地址;
[0151] 步骤S6、P2P服务器A对所述种子查询请求进行处理,得到相应的杀毒软件升级文件的种子信息(例如,种子节点:客户端B-客户端H),并返回给客户端A;
[0152] 步骤S7、客户端A与所述该杀毒软件升级文件的种子节点客户端B-客户端H连接,进行该杀毒软件升级文件的分享。
[0153] 与前述方法实施例相应,本发明还提供了一种采用P2P技术下载文件的系统,参照图2,具体可以包括客户端201和P2P系统202,所述P2P系统202可以进一步包括P2P服务器221,其中,
[0154] 所述客户端201,具体可以包括:
[0155] 服务器查询模块211,用于向所述P2P系统发送携带文件资源信息的服务器查询请求;
[0156] IP列表接收模块212,用于接收所述P2P系统返回的P2P服务器的IP列表;
[0157] 选择模块213,用于根据自身所属IP地址段,从所述P2P服务器的IP列表中选择网络连接最佳的一个P2P服务器;
[0158] 种子信息获取模块214,用于依据所选择P2P服务器获取文件资源的种子信息;及[0159] 下载模块215,用于依据所述文件资源的种子信息,进行该文件资源的分享;
[0160] 所述P2P系统202,还可以包括:
[0161] 服务器查询处理模块222,用于对所述服务器查询请求进行处理,得到相应的P2P服务器的IP列表,并返回给所述客户端。
[0162] 在本发明的一种优选实施例中,所述P2P服务器的IP列表中可以包括多个P2P服务器的IP地址;
[0163] 相应地,所述选择模块213,可以进一步包括:
[0164] 第一查询子模块,用于从IP地址段信息库中查询客户端所属IP地址段的物理所在地和网络运营商,其中,所述IP地址段信息库包括多个IP地址段以及每个IP地址段对应的物理所在地和网络运营商;
[0165] 第二查询子模块,用于针对所述P2P服务器的IP列表中各P2P服务器的IP地址,该客户端确定相应的所属IP地址段,并从所述IP地址段信息库中查询各所属IP地址段的物理所在地和网络运营商;
[0166] 选择子模块,用于依据该客户端所属IP地址段和各P2P服务器的IP地址的物理所在地和网络运营商,从所述P2P服务器的IP列表中选择物理位置最临近且处于相同网络运营商的一个P2P服务器的IP地址。
[0167] 在本发明的又一种优选实施例中,所述选择模块213,具体可以包括:
[0168] 第一选择子模块,用于该客户端根据自身所属IP地址段,从所述P2P服务器的IP列表中选择物理位置最临近且处于相同网络运营商的多个P2P服务器的IP地址;
[0169] 第二选择子模块,用于针对客户端所属IP地址段执行选择算法,从所述物理位置最临近且处于相同网络运营商的多个P2P服务器的IP地址中选择一者。
[0170] 在本发明实施例中优选的是,所述第二选择子模块,可以进一步包括:
[0171] 排序单元,用于对所述物理位置最临近且处于相同网络运营商的多个P2P服务器的IP地址进行排序,得到排序结果;
[0172] 取整单元,用于对该客户端所属IP地址段进行数字运算,并进行取整,得到取整后的数字运算结果;
[0173] 取模单元,用于计算所述取整后的数字运算结果对IP数目的取模结果,其中,所述IP数目为所述物理位置最临近且处于相同网络运营商的多个P2P服务器的IP地址的数目;及
[0174] 选择单元,用于依据所述取模结果,从所述排序结果中选择一者。
[0175] 在本发明实施例中优选的是,所述数字运算包括数字加密运算或者数字摘要运算。
[0176] 在具体实现中,所述种子信息获取模块214可以进一步包括:
[0177] 种子查询模块,用于向所选择P2P服务器发送携带该文件资源信息的种子查询请求;
[0178] 种子接收模块,用于接收所选择P2P服务器返回的文件资源的种子信息;
[0179] 相应地,所述P2P服务器221,可以进一步包括:
[0180] 种子查询处理模块,用于对所述种子查询请求进行处理,得到相应的文件资源的种子信息,并返回给所述客户端。
[0181] 本发明还提供了一种客户端实施例,参照图3,具体可以包括:
[0182] 服务器查询模块301,用于向所述P2P系统发送携带文件资源信息的服务器查询请求;
[0183] IP列表接收模块302,用于接收所述P2P系统返回的P2P服务器的IP列表;
[0184] 选择模块303,用于选择模块,用于根据自身所属IP地址段,从所述P2P服务器的IP列表中选择网络连接最佳的一个P2P服务器;
[0185] 种子信息获取模块304,用于依据所选择P2P服务器获取文件资源的种子信息;及[0186] 下载模块305,用于依据所述文件资源的种子信息,进行该文件资源的分享。
[0187] 在本发明的一种优选实施例中,所述P2P服务器的IP列表中可以包括多个P2P服务器的IP地址;
[0188] 相应地,所述选择模块303,可以进一步包括:
[0189] 第一查询子模块,用于从IP地址段信息库中查询客户端所属IP地址段的物理所在地和网络运营商,其中,所述IP地址段信息库包括多个IP地址段以及每个IP地址段对应的物理所在地和网络运营商;
[0190] 第二查询子模块,用于针对所述P2P服务器的IP列表中各P2P服务器的IP地址,该客户端确定相应的所属IP地址段,并从所述IP地址段信息库中查询各所属IP地址段的物理所在地和网络运营商;
[0191] 选择子模块,用于依据该客户端所属IP地址段和各P2P服务器的IP地址的物理所在地和网络运营商,从所述P2P服务器的IP列表中选择物理位置最临近且处于相同网络运营商的一个P2P服务器的IP地址。
[0192] 在本发明的又一种优选实施例中,所述选择模块303,具体可以包括:
[0193] 第一选择子模块,用于该客户端根据自身所属IP地址段,从所述P2P服务器的IP列表中选择物理位置最临近且处于相同网络运营商的多个P2P服务器的IP地址;
[0194] 第二选择子模块,用于针对客户端所属IP地址段执行选择算法,从所述物理位置最临近且处于相同网络运营商的多个P2P服务器的IP地址中选择一者。
[0195] 在本发明实施例中优选的是,所述第二选择子模块,可以进一步包括:
[0196] 排序单元,用于对所述物理位置最临近且处于相同网络运营商的多个P2P服务器的IP地址进行排序,得到排序结果;
[0197] 取整单元,用于对该客户端所属IP地址段进行数字运算,并进行取整,得到取整后的数字运算结果;
[0198] 取模单元,用于计算所述取整后的数字运算结果对IP数目的取模结果,其中,所述IP数目为所述物理位置最临近且处于相同网络运营商的多个P2P服务器的IP地址的数目;及
[0199] 选择单元,用于依据所述取模结果,从所述排序结果中选择一者。
[0200] 在本发明实施例中优选的是,所述数字运算包括数字加密运算或者数字摘要运算。
[0201] 对于采用P2P技术下载文件的系统和客户端实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0202] 本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0203] 以上对本发明所提供的一种采用P2P技术下载文件的方法和系统、一种客户端,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。