CN102055786A - 一种文件下载的方法、服务器、下载端和*** - Google Patents
一种文件下载的方法、服务器、下载端和*** Download PDFInfo
- Publication number
- CN102055786A CN102055786A CN2009102374501A CN200910237450A CN102055786A CN 102055786 A CN102055786 A CN 102055786A CN 2009102374501 A CN2009102374501 A CN 2009102374501A CN 200910237450 A CN200910237450 A CN 200910237450A CN 102055786 A CN102055786 A CN 102055786A
- Authority
- CN
- China
- Prior art keywords
- downloaded
- file
- download
- peer
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种文件下载的方法、服务器、下载端和***,属于网络通信技术领域。所述方法包括:P2P服务器接收待下载文件的文件名;所述P2P服务器根据所述文件名,获取下载信息,并返回所述下载信息给下载端,所述下载信息至少包括所述待下载文件包括的片段总数、正在下载所述待下载文件的Peer和所述Peer中存储的所述待下载文件包括的片号;所述下载端根据所述待下载文件包括的片段总数和所述Peer中存储的所述待下载文件包括的片号,从下载服务器和所述正在下载所述待下载文件的Peer中下载所述待下载文件。所述***包括:P2P服务器和下载端。本发明能够在下载文件时,减少对服务器带宽和用户资源的占用以及提高下载速度。
Description
技术领域
本发明涉及网络通信技术领域,特别涉及一种文件下载的方法、服务器、下载端和***。
背景技术
目前,文件下载已成互联网的主要应用之一,随着各类待下载文件如游戏软件、其它应用软件所占空间越来越大,文件下载已成为占用服务器带宽最多的应用之一。软件企业和组织不得不为文件的下载支付昂贵的硬件成本和带宽成本。
传统文件下载方式主要是通过URL登录下载服务器中对应的网页页面,从网页页面提供的待下载文件的链接地址处直接从下载服务器中下载待下载的文件。但此种方式下载速度慢、占用较高的服务器带宽。
为了解决传统文件下载方式中存在的问题,人们开始使用P2P(Peer-to-Peer,对等网络)方式下载文件,目前主要有以下两种P2P方式下载文件的方法:
第一种、使用多源下载工具从下载服务器中下载待下载的文件,例如,通过URL(Uniform Resource Locator,统一资源定位符)登录下载服务器中对应的网页页面,使用迅雷或旋风等多源下载工具从该网页页面提供的待下载文件的链接地址处下载待下载文件。
第二种、使用Bt(Bit torrent,文件分发协议)或Emule(电驴)文件共享***从参与的所有客户端中下载待下载文件。
在实现本发明的过程中,发明人发现现有P2P下载方式至少存在以下问题:
在上述第一种方法中:多源下载工具占用较高的服务器带宽,并且多源下载工具容量较大,在下载之前要先安装多源下载工具,占用了用户资源。
在上述第二种方法中:无法保证下载速度,并且在下载之前也要先安装Bt或Emule文件共享***,占用了用户资源。
发明内容
为了在下载文件时,减少对服务器带宽和用户资源的占用以及提高下载速度,本发明实施例提供了一种文件下载的方法、服务器、下载端和***。所述技术方案如下:
一种文件下载的方法,所述方法包括:
P2P服务器接收待下载文件的文件名;
所述P2P服务器根据所述文件名,获取下载信息,并返回所述下载信息给下载端,所述下载信息包括所述待下载文件至少包括的片段总数、正在下载所述待下载文件的Peer和所述Peer中存储的所述待下载文件包括的片号;
所述下载端根据所述待下载文件包括的片段总数和所述Peer中存储的所述待下载文件包括的片号,从下载服务器和所述正在下载所述待下载文件的Peer中下载所述待下载文件。
一种服务器,所述服务器包括:
接收模块,用于接收待下载文件的文件名;
获取模块,用于根据所述文件名,获取下载信息,所述下载信息至少包括所述待下载文件包括的片段总数、正在下载所述待下载文件的Peer和所述Peer中存储的所述待下载文件包括的片号;
发送模块,用于发送所述下载信息给下载端。
一种下载端,所述下载端包括:
接收模块,用于接收下载信息,所述下载信息至少包括所述待下载文件包括的片段总数、正在下载所述待下载文件的Peer和所述Peer中存储的所述待下载文件包括的片号;
下载模块,用于根据所述待下载文件包括的片段总数和所述Peer中存储的所述待下载文件包括的片号,从下载服务器和所述正在下载所述待下载文件的Peer中下载所述待下载文件。
一种文件下载的***,所述***包括下载端和P2P服务器;
所述P2P服务器,用于接收待下载文件的文件名;根据所述文件名,获取下载信息,并返回所述下载信息给下载端,所述下载信息至少包括所述待下载文件包括的片段总数、正在下载所述待下载文件的Peer和所述Peer中存储的所述待下载文件包括的片号;
所述下载端,用于根据所述待下载文件包括的片段总数和所述Peer中存储的所述待下载文件包括的片号,从下载服务器和所述正在下载所述待下载文件的Peer中下载所述待下载文件。
通过P2P服务器接收待下载文件的文件名,根据文件名,获取下载信息,并返回该下载信息给下载端,下载端从下载服务器和下载信息包括的正在下载待下载文件的Peer中下载待下载文件。其中,由于下载端直接下载文件,从而减少占用用户资源;由于从下载服务器和Peer中同时下载文件,所以减少占用下载服务器的带宽资源并提高下载速度。
附图说明
图1是本发明实施例1提供的一种文件下载的方法流程图;
图2是本发明实施例1提供的一种P2P网络架构示意图;
图3是本发明实施例1提供的一种文件下载的方法详细流程图;
图4是本发明实施例2提供的一种服务器的示意图;
图5是本发明实施例3提供的一种下载端的示意图;
图6是本发明实施例4提供的一种文件下载的***框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
如图1所示,本发明实施例提供了一种文件下载的方法,包括:
步骤101:P2P服务器接收待下载文件的文件名;
步骤102:P2P服务器根据接收的文件名,获取下载信息,并返回该下载信息给下载端,其中,该下载信息至少包括待下载文件包括的片段总数、正在下载待下载文件的Peer和该Peer中存储的待下载文件包括的片号;
步骤103:下载端根据待下载文件包括的片段总数和该Peer中存储的待下载文件包括的片号,从下载服务器和正在下载待下载文件的Peer中下载待下载文件。
其中,下载端可以为P2P网络中的某个Peer或运行在某个Peer中的下载程序等,每个下载端都有对应的一个Peer,所以下载端下载文件实质上就是下载端对应的Peer在下载文件。
在本发明实施例中,P2P服务器接收待下载文件的文件名,根据文件名,获取下载信息,并返回该下载信息给下载端,下载端从下载服务器和下载信息包括的正在下载待下载文件的Peer中下载待下载文件。其中,由于下载端直接下载文件,从而减少占用用户资源;由于从下载服务器和Peer中同时下载文件,所以减少占用下载服务器的带宽资源并提高下载速度。
为了对上述方法进行详细说明,请参见图2,为本发明实施例提供的一种P2P网络架构示意图,包括下载服务器、P2P服务器和Peer(分别为PeerA、PeerB和PeerC)。其中,下载服务器用于存储文件;P2P服务器用于存储文件名与片段总数的对应关系以及Peer与文件信息的对应关系,文件由片段组成,且每个片段都有自身的片号。
基于上述图2所提供的P2P网络架构,参见图3,本发明实施例提供的方法的详细过程,具体包括:
步骤201:下载端从待下载文件的下载地址中获取待下载文件的文件名,并将获取的文件名发送给P2P服务器;
其中,待下载文件的下载地址中包含有待下载文件的文件名,具体地,下载端从待下载文件的下载地址中读取文件名,并将该文件名发送给P2P服务器。
其中,下载端可以从下载服务器获取待下载文件的下载地址。例如,以PeerA为下载端为例进行说明,下载端从下载服务器中获取待下载文件的下载地址IP3,其中,IP3为“www.文件3.com”,且在IP3中包含有待下载文件的文件名即文件3,从IP3中读取文件3,并将文件3发送给P2P服务器。
步骤202:P2P服务器接收待下载文件的文件名,查找待下载文件包括的片段总数,并返回给下载端;
具体地,P2P服务器接收待下载文件的文件名,根据该文件名,从自身存储的文件名与片段总数的对应关系中查找出待下载文件包括的片段总数,并将待下载文件包括的片段总数返回给下载端。
其中,文件名与片段总数的对应关系中的每条记录用于表示某个文件与该文件包括的所有片段的总数,如表1所示的文件名与片段总数的对应关系,表1的第二行表示的含义为文件1和该文件1包括所有片段总数3,即文件1包括三个片段。文件名和片段总数的对应关系是运营商事先建立的,包括下载服务器中的每个文件的文件名和其包括的片段总数的对应关系。
表1
文件名 | 片段总数 |
文件1 | 3 |
文件2 | 4 |
文件3 | 5 |
...... | ...... |
例如,P2P服务器接收待下载文件的文件名即文件3,根据文件3从如表1所示的文件名与片段总数的对应关系中查找出待下载文件对应的片段总数为5。
其中,在本实施例的步骤201中,下载端可以不先读取下载地址中的待下载文件的文件名,而是直接将待下载文件的下载地址发送给P2P服务器;相应地,在步骤202中P2P服务器接收待下载文件的下载地址,并从下载地址中读取待下载文件的文件名,然后根据读取的文件名查找待下载文件包括的片段总数。
步骤203:P2P服务器根据待下载文件的文件名,查找出网络中正在下载待下载文件的所有Peer;
具体地,P2P服务器根据待下载文件的文件名,从自身已存储的Peer与文件信息的对应关系中查找出正在下载待下载文件的所有Peer节点。
其中,文件信息至少包括正在下载文件的文件名和已下载该文件包括的片段的片号,还可以包括下载状态即正在下载或下载结束,Peer的带宽等。可以用表等形式存储Peer与文件信息的对应关系,例如,用表2存储Peer与文件信息的对应关系。在表2所示的Peer与文件信息的对应关系中,存储网络中的正在下载文件的每个Peer、每个Peer正在下载的文件的文件名以及已下载每个文件包括的片段的片号。例如,在表2所示的第二行记录为PeerA、文件1和片号1、2、3用于表示PeerA正在下载文件1,且已下载文件1包括的片号为1、2、3三个片段。网络中的Peer在下载某个文件时,都将正在下载的片段的片号和该文件的文件名上报给P2P服务器,P2P服务器将该Peer、文件名和片号作为一条记录存储在Peer与文件信息的对应关系中。其中,在本实施例中用IP地址表示唯一的一个Peer,P2P服务器接收某个Peer上报的片号和文件名时,能够直接查看到该Peer的IP地址,用该IP地址表示该Peer。
表2
例如,P2P服务器以文件3为索引,从表2中查找出正在下载文件3的PeerB和PeerC。
步骤204:P2P服务器从查找的所有Peer中选择一个Peer,进一步从自身存储的Peer与文件信息的对应关系中读取该Peer已存储待下载文件包括的片号,并将该Peer以及该Peer中存储的待下载文件包括的片号返回给下载端;
其中,P2P服务器选择Peer的方法有多种,例如,从所有Peer中随机选择一个Peer,再如,从所有Peer中选择已下载片段数最多的Peer。
例如,P2P服务器从查找出的PeerB和PeerC中,随机选择PeerC,或者选择已下载片段数多的PeerC,进一步地从如表2所示的Peer与文件信息的对应关系中读取PeerC中已存储待下载文件包括的所有片段的片号分别为1、2、3、4,将PeerC和片号1、2、3、4返回给下载端。
步骤205:发生在步骤202之后并与步骤203和/或204同时或之后发生,下载端接收待下载文件的片段总数,根据片段总数,确定待下载文件包括的所有片段的片号;
例如,下载端根据接收P2P服务器返回的片段总数为5,确定出待下载文件包括片号分别为1、2、3、4、5五个片段。
步骤206:下载端从待下载文件包括的所有片号中选择一个片号,将该片号作为第一待下载片号,根据待下载文件的下载地址从下载服务器中下载片号为第一待下载片号的片段;
其中,选择第一待下载片号的方法包括多种,例如,下载端随机选择一个片号,并将该片号作为第一待下载片号,再如,按顺序选择一个片号,并将该片号作为第一待下载片号。例如,下载端从1、2、3、4、5五个片号中,随机选择片号3,将片号3作为第一待下载片号,根据IP3从下载服务器中下载片号为3的片段。
另外,下载端开始从下载服务器下载片号为第一待下载片号的片段时,将待下载文件的文件名、第一待下载片号上报给P2P服务器。P2P服务器根据下载端对应的Peer和待下载文件的文件名,查找自身存储的Peer与文件信息的对应关系,如果没有查找出包括下载端对应的Peer和待下载文件的文件名的对应关系,则将该下载端对应的Peer、待下载文件的文件名和第一待下载片号作为一条新的对应关系存储在自身存储的Peer与文件信息的对应关系中,如果查找出包括下载端对应的Peer和待下载文件的文件名的对应关系,则将第一待下载片号存储在该条对应关系中。例如下载端将文件3和片号3上报给P2P服务器,P2P服务器根据下载端对应的PeerA和文件3,从如表2所示的Peer与文件信息的对应关系中没有查找出包括PeerA和文件3的对应关系,则将PeerA、文件3和片号3作为一条新的对应关系存储在如表2所示的Peer与文件信息的对应关系中,得到的结果如下的表3所示。
表3
另外,下载端还可以向P2P服务器上报其他的信息,例如,向P2P服务器上报自身对应的Peer的带宽或下载状态即正在下载等,相应地,P2P服务器还记录上报的其他信息。其中,网络中每个Peer在下载文件时都要向P2P服务器上报正在下载的文件的文件名、正在下载的片段的片号,每个Peer还可以上报其他的信息。
其中,步骤205-206发生在步骤202之后,可以与步骤203-204同时发生或在步骤204之后发生。另外,在本实施例步骤202中,P2P服务器查找出待下载文件包括的片段总数后,可以先不返回片段总数给下载端,直到在步骤204将片段总数、Peer和片号一起返回给下载端。
步骤207:下载端接收到P2P服务器返回的Peer以及该Peer中存储的待下载文件包括的片号,从该Peer中存储的待下载文件包括的片号中选择一个还未下载的片号,并将该片号作为第二待下载片号;
例如,下载端接收P2P服务器返回的PeerC和PeerC中存储文件3包括的1、2、3、4四个片号,并从接收的1、2、3、4四个片号中,选择一个还未下载的片号2,并将该片号作为第二待下载片号。
步骤208:下载端从返回的Peer中下载片号为第二待下载片号的片段;
其中,下载端在向返回的Peer中下载片号为第二待下载片号的片段时,将待下载文件和第二待下载片号上报给P2P服务器。相应地,P2P服务器根据下载端对应的Peer和待下载文件的文件名,查找Peer与文件信息的对应关系,如果没有查找出包括下载端对应的Peer和待下载文件的文件名的对应关系,则将该下载端对应的Peer、待下载文件的文件名和第一待下载片号作为一条新的对应关系存储在Peer与文件信息的对应关系中,如果查找出包括下载端对应的Peer和待下载文件的文件名的对应关系,则将第一待下载片号存储在该条对应关系中。
例如,下载端向PeerC下载片号为2的片段,并将文件3和片号2上报给P2P服务器。相应地,P2P服务器根据下载端对应的PeerA和文件3,从如表3所示的Peer与文件信息的对应关系中查找出包括PeerA和文件3的对应关系,则将片号3存储在该条对应关系中,得到的结果如下的表4所示。
表4
步骤209:当从下载服务器中下载完当前正在下载的片段后,下载端从待下载文件包括的所有片号中,选择一个还未下载的片号,将该片号作为第一待下载片号,并从下载服务器中下载片号为第一待下载片号的片段;当从返回的Peer中下载完当前正在下载的片段后,下载端从返回的Peer中存储的待下载文件包括的片号中选择一个还未下载的一个片号,将该片号作为第二待下载片号,并从该返回的Peer中下载片号为第二待下载片号的片段,直到下载完整个待下载文件。
例如,当从下载服务器中下载完片号为3的片段后,下载端从1、2、3、4、5五个片号中选择一个还未下载的片号1,将片号1作为第一待下载片号,从下载服务器中下载片号为1的片段,当从PeerC中下载完片号为2的片段后,下载端从返的片号1、2、3、4中,选择一个还未下载的片号4,将片号4作为第二待下载片号,从PeerC中下载片号为4的片段,如此,直到下载完完整的文件3为止。
其中,当下载端下载完整个待下载文件时,将待下载文件的文件名和下载状态即下载结束上报给P2P服务器,相应地,P2P服务器根据该下载状态,就知道下载端已下载完整个待下载文件,并根据下载端对应的Peer和待下载文件的文件名,从Peer与文件信息的对应关系中查找出包括下载端对应的Peer和待下载文件的文件名的对应关系,并从Peer与文件信息的对应关系中删除该条对应关系。
另外,如果下载端每次在向P2P服务器上报待下载文件的文件名和正在下载片段的片号时,还上报下载状态即正在下载,也就是P2P服务器将下载端对应的Peer、待下载文件的文件名和已下载的片段片号和下载状态作为一条记录存储在Peer与文件信息的对应关系中,则当P2P服务器接收下载端上报的待下文件和下载结束时,从Peer与文件信息的对应关系中查找出包括下载端对应的Peer和待下载文件的文件名的对应关系,然后将该条对应关系中的下载状态更新为下载结束即可。其中,在本实施例中,下载端还支持断点续传。
其中,在本实施例中,下载端也可以为下载器。其中,用户事先通过URL登录下载服务器中对应的网页页面,其中,该网页页面提供待下载文件对应的下载器的链接地址,根据该网页页面提供的链接地址,直接下载待下载文件对应的下载器和待下载文件的下载地址到P2P网络中的某个Peer,然后在该Peer中直接运行该下载器,该下载器就按上述步骤201-209进行下载待下载文件。
相应地,在下载服务器中为每个文件都设有一个对应的下载器,下载服务器通过网页页面向用户提供下载器的链接地址,而不是直接提供待下载文件的链接地址。其中,下载器容量很小,一般只有1至2MB的大小,所以可以快速的从下载服务器中下载,还可以减少对用户资源和下载服务器的带宽资源的占用;且在利用下载器下载文件之前,不需要在Peer中安装,而是在下载文件时直接运行下载器,如此,进一步减少占用用户资源,方便用户。
在本发明实施例中,P2P服务器接收来自下载端的待下载文件的文件名,根据文件名,获取待下载文件包括的片段总数,正在下载待下载文件的一个Peer和该Peer中存储待下载文件包括的片号,并获取的上述信息返回下载端,下载端根据返回的片段总数和该Peer中存储的待下载文件包括的片号,从下载服务器和该Peer中下载待下载文件。其中,由于下载端直接下载文件,从而减少占用用户资源;由于从下载服务器和Peer中同时下载文件,所以减少占用下载服务器的带宽资源并提高下载速度。
实施例2
如图4所示,本发明实施例提供了一种服务器,包括:
接收模块301,用于接收待下载文件的文件名;
获取模块302,用于根据接收的文件名,获取下载信息,该下载信息至少包括待下载文件包括的片段总数、正在下载待下载文件的Peer和该Peer中存储的待下载文件包括的片号;
发送模块303,用于发送该下载信息给下载端。
其中,获取模块302具体包括:
查找单元,用于根据接收的文件名,查找待下载文件包括的片段总数和正在下载待下载文件的所有Peer;
选择单元,用于从查找的所有Peer中选择一个正在下载待下载文件的Peer,获取该Peer中存储待下载文件包括的片号;
进一步地,查找单元具体包括:
第一查找子单元,用于根据接收的文件名,从文件名与片段总数的对应关系中,查找对应的片段总数;
第二查找子单元,用于根据接收的文件名,从Peer与文件信息的对应关系中,查找对应的所有Peer;
进一步地,该服务器还包括:
第一存储模块,用于当下载端上报待下载文件的文件名和正在下载的片段的片号时,判断Peer与文件信息的对应关系中是否存在包括该下载端对应的Peer和上报的文件名的对应关系,如果否,存储该下载端对应的Peer、上报的文件名和上报的片号;如果是,将上报的片号存储在该对应关系中;
进一步地,该服务器还包括:
第一删除模块,用于当下载端上报待下载文件的文件名和结束信息时,根据上报的结束信息,将包括该下载端对应的Peer和上报的文件名的对应关系删除。
在本发明实施例中,服务器接收待下载文件的文件名后,获取待下载文件包括的片段总数、正在下载待下载文件的Peer和该Peer中存储的待下载文件包括的片号,并将获取的上述信息发送给下载端,如此,使得下载端根据服务器发送的信息,从下载服务器和Peer中下载待下载文件,减少占用下载服务器的带宽资源,提高了下载速度。
实施例3
如图5所示,本发明实施例提供了一种下载端,包括:
接收模块401,用于接收下载信息,该下载信息至少包括待下载文件包括的片段总数、正在下载待下载文件的Peer和该Peer中存储的待下载文件包括的片号;
下载模块402,用于根据待下载文件包括的片段总数和该Peer中存储的待下载文件包括的片号,从下载服务器和正在下载待下载文件的Peer中下载待下载文件。
其中,下载模块402具体包括:
确定单元,用于根据下载信息中的片段总数,确定待下载文件包括的所有片号;
第一下载单元,用于从待下载文件包括的所有片号中,选择一个还未下载的片号,将该片号作为第一待下载片号,从下载服务器中下载第一待下载片号的片段;
第二下载单元,用于从该Peer中存储的待下载文件包括的片号中,选择一个还未下载的片号,将该片号作为第二待下载片号,从该Peer中下载第二待下载片号的片段;
进一步地,该下载端还包括:
第一上报模块,用于当正在下载待下载文件时,向P2P服务器上报待下载文件的文件名和正在下载的片段的片号;
进一步地,该下载端还包括:
第二上报模块,用于当下载完待下载文件时,向P2P服务器上报待下载文件的文件名和结束信息;
其中,下载端可以为下载器。
在本发明实施例中,下载端接收下载信息,根据下载信息,从下载服务器和正在下载待下文件的Peer中同时下载待下载文件,从而提高了下载速度和减少占用下载服务器的带宽资源。另外,下载端可以是下载器,下载器容量很小,一般只有1至2MB的大小,在利用下载器下载待下载文件之前,不需要安装,而是在下载待下载文件时直接运行下载器,就可以下载待下载文件,如此,减少占用用户资源。
实施例4
如图6所示,本发明实施例提供了一种文件下载的***,该***包括P2P服务器501和下载端502;
P2P服务器501,用于接收待下载文件的文件名;根据待下载文件的文件名,获取下载信息,并返回该下载信息给下载端,其中,该下载信息至少包括待下载文件包括的片段总数、正在下载待下载文件的Peer和该Peer中存储的待下载文件包括的片号;
下载端502,用于根据待下载文件包括的片段总数和返回的Peer中存储的待下载文件包括的片号,从下载服务器和返回的Peer中下载待下载文件。
其中,P2P服务器501具体包括:
接收模块,用于接收待下载文件的文件名;
查找模块,用于根据待下载文件的文件名,查找待下载文件包括的片段总数和正在下载待下载文件的所有Peer;
选择模块,用于从查找的所有Peer中选择一个正在下载待下载文件的Peer,获取该Peer中存储待下载文件包括的片号;
返回模块,用于将待下载文件包括的片段总数、正在下载待下载文件的Peer和该Peer中存储的待下载文件包括的片号返回给下载端302;
查找模块具体包括
第一查找单元,用于根据待下载文件的文件名,从文件名与片段总数的对应关系中,查找对应的片段总数;
第二查找单元,用于根据待下载文件的文件名,从Peer与文件信息的对应关系中,查找对应的所有Peer;
下载端502具体包括:
确定模块,用于根据待下载文件包括的片段总数,确定待下载文件包括的所有片号;
第一下载模块,用于从待下载文件包括的所有片号中,选择一个还未下载的片号,将该片号作为第一待下载片号,从下载服务器中下载第一待下载片号的片段;
第二下载模块,用于从返回的Peer中存储的待下载文件包括的片号中,选择一个还未下载的片号,将该片号作为第二待下载片号,从该Peer中下载第二待下载片号的片段;
下载端502还包括:
第三上报模块,用于当下载端502下载待下载文件时,向P2P服务器501上报待下载文件的文件名和正在下载的片段的片号;
相应地,P2P服务器501还包括:
第二存储模块,用于判断Peer与文件信息的对应关系中是否存在包括下载端对应的Peer和待下载文件的文件名的对应关系,如果否,存储下载端对应的Peer、上报的文件名和上报的片号;如果是,将上报的片号存储在该对应关系中;
下载端502还包括:
第四上报模块,用于当下载端501下载完待下载文件时,向P2P服务器501上报待下载文件的文件名和结束信息;
相应地,P2P服务器501还包括:
第二删除模块,用于根据结束信息,将包括下载端对应的Peer和文件名的对应关系删除。
其中,在本实施例中下载端502支持断点续传。
在本发明实施例中,P2P服务器接收待下载文件的文件名,根据文件名,获取下载信息,并返回该下载信息给下载端,下载端从下载服务器和下载信息包括的正在下载待下载文件的Peer中下载待下载文件。其中,由于下载端直接下载文件,从而减少占用用户资源;由于从下载服务器和Peer中同时下载文件,所以减少占用下载服务器的带宽资源并提高下载速度。
以上实施例提供的技术方案中的全部或部分内容可以通过软件编程实现,其软件程序存储在可读取的存储介质中,存储介质例如:计算机中的硬盘、光盘或软盘。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (19)
1.一种文件下载的方法,其特征在于,所述方法包括:
P2P服务器接收待下载文件的文件名;
所述P2P服务器根据所述文件名,获取下载信息,并返回所述下载信息给下载端,所述下载信息至少包括所述待下载文件包括的片段总数、正在下载所述待下载文件的Peer和所述Peer中存储的所述待下载文件包括的片号;
所述下载端根据所述待下载文件包括的片段总数和所述Peer中存储的所述待下载文件包括的片号,从下载服务器和所述正在下载所述待下载文件的Peer中下载所述待下载文件。
2.如权利要求1所述的方法,其特征在于,所述P2P服务器根据所述文件名,获取下载信息,具体包括:
根据所述文件名,查找所述待下载文件包括的片段总数和正在下载所述待下载文件的所有Peer;
从所述查找的所有Peer中选择一个所述正在下载所述待下载文件的Peer,获取所述Peer中存储所述待下载文件包括的片号。
3.如权利要求2所述的方法,其特征在于,所述根据所述文件名,查找所述待下载文件包括的片段总数和正在下载所述待下载文件的所有Peer,具体包括:
根据所述文件名,从文件名与片段总数的对应关系中,查找对应的片段总数;
根据所述文件名,从Peer与文件信息的对应关系中,查找对应的所有Peer。
4.如权利要求1所述的方法,其特征在于,所述下载端根据所述待下载文件包括的片段总数和所述Peer中存储的所述待下载文件包括的片号,从下载服务器和所述正在下载所述待下载文件的Peer中下载所述待下载文件,具体包括:
根据所述片段总数,确定所述待下载文件包括的所有片号;
从所述待下载文件包括的所有片号中,选择一个还未下载的片号,将所述片号作为第一待下载片号,从所述下载服务器中下载所述第一待下载片号的片段;
从所述Peer中存储的所述待下载文件包括的片号中,选择一个还未下载的片号,将所述片号作为第二待下载片号,从所述Peer中下载所述第二待下载片号的片段。
5.如权利要求1-4任意权利要求所述的方法,其特征在于,当所述下载端下载所述待下载文件时,所述方法还包括:
所述下载端向所述P2P服务器上报所述待下载文件的文件名和正在下载的片段的片号;
相应地,
所述P2P服务器判断Peer与文件信息的对应关系中是否存在包括所述下载端对应的Peer和所述文件名的对应关系,如果否,存储所述下载端对应的Peer、所述上报的文件名和所述上报的片号;如果是,将所述上报的片号存储在所述对应关系中。
6.如权利要求1-4任意权利要求所述的方法,其特征在于,当所述下载端下载完所述待下载文件时,所述方法还包括:
所述下载端向所述P2P服务器上报所述待下载文件的文件名和结束信息;
相应地,
所述P2P服务器根据所述结束信息,将包括所述下载端对应的Peer和所述文件名的对应关系删除。
7.如权利要求1-4任意权利要求所述的方法,其特征在于,所述下载端为下载器。
8.如权利要求7所述的方法,其特征在于,在P2P服务器接收待下载文件的文件名前,还包括执行所述下载器。
9.如权利要求8所述的方法,其特征在于,在执行所述下载器前,先从所述下载服务器下载所述下载器至需下载待下载文件的Peer。
10.一种服务器,其特征在于,所述服务器包括:
接收模块,用于接收待下载文件的文件名;
获取模块,用于根据所述文件名,获取下载信息,所述下载信息至少包括所述待下载文件包括的片段总数、正在下载所述待下载文件的Peer和所述Peer中存储的所述待下载文件包括的片号;
发送模块,用于发送所述下载信息给下载端。
11.如权利要求10所述的服务器,其特征在于,所述获取模块具体包括:
查找单元,用于根据所述文件名,查找所述待下载文件包括的片段总数和正在下载所述待下载文件的所有Peer;
选择单元,用于从所述查找的所有Peer中选择一个所述正在下载所述待下载文件的Peer,获取所述Peer中存储所述待下载文件包括的片号。
12.如权利要求11所述的服务器,其特征在于,所述查找单元具体包括:
第一查找子单元,用于根据所述文件名,从文件名与片段总数的对应关系中,查找对应的片段总数;
第二查找子单元,用于根据所述文件名,从Peer与文件信息的对应关系中,查找对应的所有Peer。
13.如权利要求10-12任意权利要求所述的服务器,其特征在于,所述服务器还包括:
第一存储模块,用于当下载端上报所述待下载文件的文件名和正在下载的片段的片号时,判断Peer与文件信息的对应关系中是否存在包括所述下载端对应的Peer和所述文件名的对应关系,如果否,存储所述下载端对应的Peer、所述上报的文件名和所述上报的片号;如果是,将所述上报的片号存储在所述对应关系中。
14.如权利要求10-12任意权利要求所述的服务器,其特征在于,所述服务器还包括:
第一删除模块,用于当下载端上报所述待下载文件的文件名和结束信息时,根据所述结束信息,将包括所述下载端对应的Peer和所述文件名的对应关系删除。
15.一种下载端,其特征在于,所述下载端包括:
接收模块,用于接收下载信息,所述下载信息至少包括所述待下载文件包括的片段总数、正在下载所述待下载文件的Peer和所述Peer中存储的所述待下载文件包括的片号;
下载模块,用于根据所述待下载文件包括的片段总数和所述Peer中存储的所述待下载文件包括的片号,从下载服务器和所述正在下载所述待下载文件的Peer中下载所述待下载文件。
16.如权利要求15所述的下载端,其特征在于,所述下载模块具体包括:
确定单元,用于根据所述片段总数,确定所述待下载文件包括的所有片号;
第一下载单元,用于从所述待下载文件包括的所有片号中,选择一个还未下载的片号,将所述片号作为第一待下载片号,从所述下载服务器中下载所述第一待下载片号的片段;
第二下载单元,用于从所述Peer中存储的所述待下载文件包括的片号中,选择一个还未下载的片号,将所述片号作为第二待下载片号,从所述Peer中下载所述第二待下载片号的片段。
17.如权利要求15或16所述的下载端,其特征在于,所述下载端还包括:
第一上报模块,用于当正在下载所述待下载文件时,向P2P服务器上报所述待下载文件的文件名和正在下载的片段的片号。
18.如权利要求15或16所述的下载端,其特征在于,所述下载端还包括:
第二上报模块,用于当下载完所述待下载文件时,向P2P服务器上报所述待下载文件的文件名和结束信息。
19.一种文件下载的***,其特征在于,所述***包括下载端和P2P服务器;
所述P2P服务器,用于接收待下载文件的文件名;根据所述文件名,获取下载信息,并返回所述下载信息给所述下载端,所述下载信息至少包括所述待下载文件包括的片段总数、正在下载所述待下载文件的Peer和所述Peer中存储的所述待下载文件包括的片号;
所述下载端,用于根据所述待下载文件包括的片段总数和所述Peer中存储的所述待下载文件包括的片号,从下载服务器和所述正在下载所述待下载文件的Peer中下载所述待下载文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910237450.1A CN102055786B (zh) | 2009-11-06 | 2009-11-06 | 一种文件下载的方法、服务器、下载端和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910237450.1A CN102055786B (zh) | 2009-11-06 | 2009-11-06 | 一种文件下载的方法、服务器、下载端和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102055786A true CN102055786A (zh) | 2011-05-11 |
CN102055786B CN102055786B (zh) | 2014-12-24 |
Family
ID=43959711
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910237450.1A Active CN102055786B (zh) | 2009-11-06 | 2009-11-06 | 一种文件下载的方法、服务器、下载端和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102055786B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102456076A (zh) * | 2011-11-23 | 2012-05-16 | 北京安天电子设备有限公司 | 海量片段数据汇聚的***和方法 |
WO2013143367A1 (en) * | 2012-03-30 | 2013-10-03 | Tencent Technology (Shenzhen) Company Limited | Method and system for resource download |
CN103532999A (zh) * | 2012-07-05 | 2014-01-22 | 腾讯科技(深圳)有限公司 | 数据传输方法、移动设备和后台服务*** |
CN104079615A (zh) * | 2013-03-29 | 2014-10-01 | 联想(北京)有限公司 | 文件下载方法和信息处理装置 |
CN109600453A (zh) * | 2019-02-18 | 2019-04-09 | 广州卓远虚拟现实科技有限公司 | 一种分布式虚拟现实内容分发方法和*** |
CN112104990A (zh) * | 2019-05-30 | 2020-12-18 | 北京小米移动软件有限公司 | 资源下载方法、装置及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1852099A (zh) * | 2005-07-11 | 2006-10-25 | 华为技术有限公司 | 一种终端下载共享数据的方法及*** |
CN1925403A (zh) * | 2005-09-02 | 2007-03-07 | 腾讯科技(深圳)有限公司 | 实现文件下载的网络通信***及方法 |
CN101068155A (zh) * | 2006-09-20 | 2007-11-07 | 腾讯科技(深圳)有限公司 | 一种对等连接流媒体直播***及其采集服务器 |
CN101136911A (zh) * | 2006-08-31 | 2008-03-05 | 腾讯科技(深圳)有限公司 | 一种采用p2p技术下载文件的方法和p2p下载*** |
CN101188622A (zh) * | 2007-12-29 | 2008-05-28 | 腾讯科技(深圳)有限公司 | 一种利用p2p直播通道下载文件的方法和装置 |
-
2009
- 2009-11-06 CN CN200910237450.1A patent/CN102055786B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1852099A (zh) * | 2005-07-11 | 2006-10-25 | 华为技术有限公司 | 一种终端下载共享数据的方法及*** |
CN1925403A (zh) * | 2005-09-02 | 2007-03-07 | 腾讯科技(深圳)有限公司 | 实现文件下载的网络通信***及方法 |
CN101136911A (zh) * | 2006-08-31 | 2008-03-05 | 腾讯科技(深圳)有限公司 | 一种采用p2p技术下载文件的方法和p2p下载*** |
CN101068155A (zh) * | 2006-09-20 | 2007-11-07 | 腾讯科技(深圳)有限公司 | 一种对等连接流媒体直播***及其采集服务器 |
CN101188622A (zh) * | 2007-12-29 | 2008-05-28 | 腾讯科技(深圳)有限公司 | 一种利用p2p直播通道下载文件的方法和装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102456076A (zh) * | 2011-11-23 | 2012-05-16 | 北京安天电子设备有限公司 | 海量片段数据汇聚的***和方法 |
WO2013143367A1 (en) * | 2012-03-30 | 2013-10-03 | Tencent Technology (Shenzhen) Company Limited | Method and system for resource download |
US9438666B2 (en) | 2012-03-30 | 2016-09-06 | Tencent Technology (Shenzhen) Company Limited | Method and system for resource download |
CN103532999A (zh) * | 2012-07-05 | 2014-01-22 | 腾讯科技(深圳)有限公司 | 数据传输方法、移动设备和后台服务*** |
CN103532999B (zh) * | 2012-07-05 | 2019-03-12 | 腾讯科技(深圳)有限公司 | 数据传输方法、移动设备和后台服务*** |
CN104079615A (zh) * | 2013-03-29 | 2014-10-01 | 联想(北京)有限公司 | 文件下载方法和信息处理装置 |
CN104079615B (zh) * | 2013-03-29 | 2018-11-09 | 联想(北京)有限公司 | 文件下载方法和信息处理装置 |
CN109600453A (zh) * | 2019-02-18 | 2019-04-09 | 广州卓远虚拟现实科技有限公司 | 一种分布式虚拟现实内容分发方法和*** |
CN112104990A (zh) * | 2019-05-30 | 2020-12-18 | 北京小米移动软件有限公司 | 资源下载方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102055786B (zh) | 2014-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7343422B2 (en) | System and method for using uniform resource locators to map application layer content names to network layer anycast addresses | |
US7565450B2 (en) | System and method for using a mapping between client addresses and addresses of caches to support content delivery | |
CN102523314B (zh) | 识别高效的目标服务器的方法和装置 | |
US7577754B2 (en) | System and method for controlling access to content carried in a caching architecture | |
US7725596B2 (en) | System and method for resolving network layer anycast addresses to network layer unicast addresses | |
CN101764807B (zh) | 基于元搜索引擎的多源下载互联网资源的装置及方法 | |
US20150237113A1 (en) | Method and system for file transmission | |
US7716179B1 (en) | DHT-based distributed file system for simultaneous use by millions of frequently disconnected, world-wide users | |
EP2852125A1 (en) | Server selection for content distribution | |
CN102055786A (zh) | 一种文件下载的方法、服务器、下载端和*** | |
CN102523256A (zh) | 内容的管理方法的方法、装置和*** | |
CN103023902B (zh) | 数据传输方法和*** | |
CN101510899B (zh) | 一种实现内容源选择的方法、***和设备 | |
CN102065112A (zh) | 对等网络***、建立对等网络***的方法及相关装置 | |
CN103369002B (zh) | 一种资源下载的方法及*** | |
US7895264B2 (en) | Storage cluster server network | |
CN101046806B (zh) | 搜索引擎***和方法 | |
CN103812881B (zh) | 离线下载控制方法及装置 | |
CN102271165A (zh) | 互联网搜索资源的分享管理装置及方法 | |
CN103248678A (zh) | 一种数据资源共享方法、服务端和客户端 | |
US20140156809A1 (en) | Data downloading method, terminal, server, and system | |
RU2483457C2 (ru) | Платформа маршрутизации сообщений | |
CN101741869B (zh) | 提供内容的方法和*** | |
CN102857547A (zh) | 分布式缓存的方法及设备 | |
Cheng et al. | Peer-assisted view-dependent progressive mesh streaming |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |