CN100473008C - 单点对多节点并发下载系统和方法 - Google Patents

单点对多节点并发下载系统和方法 Download PDF

Info

Publication number
CN100473008C
CN100473008C CNB2006100871563A CN200610087156A CN100473008C CN 100473008 C CN100473008 C CN 100473008C CN B2006100871563 A CNB2006100871563 A CN B2006100871563A CN 200610087156 A CN200610087156 A CN 200610087156A CN 100473008 C CN100473008 C CN 100473008C
Authority
CN
China
Prior art keywords
file
client
server
download
check value
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.)
Active
Application number
CNB2006100871563A
Other languages
English (en)
Other versions
CN101079709A (zh
Inventor
龚云华
朱冶
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CNB2006100871563A priority Critical patent/CN100473008C/zh
Publication of CN101079709A publication Critical patent/CN101079709A/zh
Application granted granted Critical
Publication of CN100473008C publication Critical patent/CN100473008C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明公开单点对多节点并发下载系统和方法。该系统包括至少一个客户端、用于搜索文件URL并提供文件校验值和片段校验值的网络接口模块、用于存储文件URL列表和文件片段校验值的存储服务器以及记录注册和登录的客户端信息以支持点对点通信的节点服务器。该方法包括:客户端获取文件校验值并根据文件校验值获取文件的URL列表和文件的片段校验值;客户端获取拥有所请求文件的其它客户端信息;客户端同时从URL对应的服务器和拥有所请求文件的其它客户端上下载文件,并校验所下载的文件。本发明提供的系统和方法可以降低服务器的压力和负荷。

Description

单点对多节点并发下载系统和方法
技术领域
本发明涉及下载技术,尤其涉及单点(Client)对多节点(Server & Client)并发下载系统和方法。
背景技术
随着互联网的发展和普及,越来越多的人将文件资源,例如应用程序、音乐、图片等,放到网络上与其他人共享,供其他人下载。因此,从网络上下载文件的技术越来越受到关注。
当前存在两种下载技术,其一是客户端从多台超文本传输协议(Http)/文件传输协议(Ftp)服务器上并发下载文件的技术。通常情况下,用户将文件发布到网站上,保存在支持网站的Http/Ftp服务器上,下载客户端在下载文件时,连接到拥有同样文件的多台Http/Ftp服务器上,从这些Http/Ftp服务器上同时下载该文件,然而,这种下载方式由于下载客户端统一从提供文件的Http/Ftp服务器上下载文件,所以随着下载客户端的增加,Http/Ftp服务器总的压力、带宽占用和流量也将增加,下载速度将降低。
其二是点对点(P2P)的下载技术,这种下载技术的基本思想是每个正在下载文件的下载客户端同时又是文件提供者,所以P2P的下载技术不需要Http/Ftp服务器,每个正在下载文件的下载客户端同时提供文件给其它客户端,也就是说,下载客户端只能下载正在被其它客户端下载的文件,或者拥有完整文件的客户端不退出系统,可见,P2P的下载方式是一种动态下载,对于静态保存在Http/Ftp服务器上的文件,无法应用P2P的下载技术进行下载。另外,还有一种缓冲区文件共享下载技术,就是客户端登录系统的同时,将以前下载完的放在缓冲区中的文件共享给其它客户端,供其它客户端下载,理论上来说,这也属于P2P下载技术。P2P下载方式没有充分利用Http/Ftp服务器资源,并且只能下载正在被其它客户端下载的文件,或者需要提供文件的客户端不退出系统。
从以上描述可以看到,当前并没有一种好的下载方法可以既充分利用Http/Ftp服务器上的资源,同时又可以降低Http/Ftp服务器的负荷和压力。
发明内容
有鉴于此,本发明提供一种单点对多节点并发下载系统,降低Http/Ftp服务器的压力和负荷,该系统包括至少一个客户端,还包括:
网络接口模块,用于从网络上搜索文件的统一资源定位符URL,提供文件的校验值和文件的片段校验值;
数据服务器,用于以网络接口模块提供的文件校验值为索引,保存文件URL列表和文件的片段校验值,将所保存的信息定期同步给校验值服务器,并根据客户端的请求向客户端提供URL列表和文件的片段校验值;
校验值服务器,用于以文件URL列表为索引,保存文件校验值,并根据客户端的请求向客户端提供文件校验值;
节点服务器,用于保存所有注册和登录客户端的信息以及文件校验值,记录客户端上报的下载信息,并根据客户端请求信息中的文件校验值向客户端提供拥有相同文件的客户端信息。
所述网络接口模块包括彼此相连的链接搜索模块和校验模块,其中,
链接搜索模块,用于从网络上搜索文件URL,将所搜索的URL提供给校验模块;
校验模块,用于根据链接搜索模块提供的URL下载文件并计算文件的校验值和文件的片段校验值。
所述节点服务器保存的文件校验值为定期从所述校验值服务器同步来的部分或全部文件校验值。
另外,本发明还提供一种单点对多节点并发下载方法,降低Http/Ftp服务器的压力和负荷,具体地,该方法包括:
A、客户端获取所请求下载文件的校验值,并根据文件校验值获取文件的URL列表和文件的片段校验值;
B、客户端获取拥有所请求文件的其它客户端信息;
C、客户端从URL对应的服务器上下载文件,同时从获取到的拥有所请求文件的其它客户端上下载文件,并根据文件的片段校验值校验所下载的文件。
在所述步骤C之后,该方法进一步包括:
判断从其它客户端上下载文件的速度是否大于预先设定的阈值,如果是,停止从URL对应的服务器上下载文件;否则,继续同时从URL对应的服务器和其它客户端上下载文件。
所述步骤A包括:
A11、客户端向包括文件校验值与URL对应关系的校验值服务器发送包含URL的下载请求;
A12、所述校验值服务器判断是否保存了客户端在下载请求消息中包含的URL,如果是,向客户端提供与所包含的URL对应的文件校验值;否则,退出本下载流程;
A13、客户端根据所述校验值服务器提供的文件校验值向包括URL列表和文件的片段校验值的数据服务器请求URL列表和文件的片段校验值,数据服务器判断自身是否保存了与该文件校验值对应的URL列表和文件的片段校验值,如果是,向客户端提供对应的URL列表和文件的片段校验值;否则,退出本下载流程。
所述步骤A包括:
A21、客户端向包括文件校验值的节点服务器请求文件校验值;
A22、客户端根据节点服务器提供的文件校验值向包括URL列表和文件的片段校验值的数据服务器请求URL列表和文件的片段校验值,数据服务器判断自身是否保存了与该文件校验值对应的URL列表和文件的片段校验值,如果是,向客户端提供对应的URL列表和文件的片段校验值;否则,退出本下载流程。
所述步骤B包括:
B1、客户端向包括文件校验值的节点服务器发送包含文件校验值的下载请求消息;
B2、节点服务器判断自身是否保存了拥有该文件校验值的客户端信息,如果是,将拥有该文件校验值的客户端信息提供给请求下载的客户端;否则,停止向节点服务器请求其它客户端信息。
步骤C中所述客户端从URL对应的服务器上下载文件,包括:客户端多线程分片从URL对应的服务器上下载文件。
从以上技术方案可以看到,本发明提供的单点对多节点并发下载系统和方法具有以下有益效果:
1、由于客户端在下载时除了向Http/Ftp服务器请求下载外,还同时向拥有文件的其它在线客户端请求下载,所以可以避免存在无法连通的死链接或统一资源定位符(URL)效率低的情况下客户端无法高速下载的问题,从而可以保证下载的成功率和下载的稳定性;
2、由于在Http/Ftp服务器下载的同时还结合了P2P下载,P2P下载分担了Http/Ftp服务器的压力和流量,进一步地,当P2P下载的速度大于阈值时,可以停止Http/Ftp服务器下载,因此,可以降低Http/Ftp服务器的压力和负荷;
3、由于本发明在下载过程中,采用多线程的分片下载机制,所以可以保证文件下载的速度,缩短文件下载的时间。
A21、客户端向包括文件校验值的节点服务器请求文件校验值;
A22、客户端根据节点服务器提供的文件校验值向包括URL列表和文件片段校验值的数据服务器请求URL列表和文件的片段校验值,数据服务器判断自身是否保存了与该文件校验值对应的URL列表和文件的片段校验值,如果是,向客户端提供对应的URL列表和片段校验值;否则,退出本下载流程。
所述步骤B包括:
B1、客户端向包括文件校验值的节点服务器发送包含文件校验值的下载请求消息;
B2、节点服务器判断自身是否保存了拥有该文件校验值的客户端信息,如果是,将拥有该文件校验值的客户端信息提供给请求下载的客户端;否则,停止向节点服务器请求其它客户端信息。
步骤C中所述客户端从URL对应的服务器上下载文件,包括:客户端多线程分片从URL对应的服务器上下载文件。
从以上技术方案可以看到,本发明提供的单点对多节点并发下载系统和方法具有以下有益效果:
1、由于客户端在下载时除了向Http/Ftp服务器请求下载外,还同时向拥有文件的其它在线客户端请求下载,所以可以避免存在无法连通的死链接或统一资源定位符(URL)效率低的情况下客户端无法高速下载的问题,从而可以保证下载的成功率和下载的稳定性;
2、由于在Http/Ftp服务器下载的同时还结合了P2P下载,P2P下载分担了Http/Ftp服务器的压力和流量,进一步地,当P2P下载的速度大于阈值时,可以停止Http/Ftp服务器下载,因此,可以降低Http/Ftp服务器的压力和负荷;
3、由于本发明在下载过程中,采用多线程的分片下载机制,所以可以保证文件下载的速度,缩短文件下载的时间。
附图说明
图1是根据本发明的单点对多节点并发下载系统图;
图2是根据本发明的单点对多节点并发下载流程图;
图3A是Http/Ftp服务器下载过程中对其中一个URL采用多线程分片段下载机制的示意图;
图3B是Http/Ftp服务器下载过程中某些线程下载完毕的处理机制示意图;
图3C是Http/Ftp服务器下载过程中多个URL循环下载示意图。
具体实施方式
为了使本发明的特征和优点更加清楚明白,下面参照附图结合具体实施例对本发明作进一步的描述。
本发明的主要思想在于:将Http/Ftp服务器下载与P2P下载结合起来,客户端既从多台Http/Ftp服务器上下载文件,同时又从正在下载文件和/或已经下载完成的其它客户端上下载文件。这里,将Http/Ftp服务器和客户端都看成节点,本发明也就是提供了单点对多节点的并发下载技术。
具体参见图1,图1是根据本发明的单点对多节点并发下载系统图。该系统包括:网络接口模块100、存储服务器200、节点服务器300和至少一个客户端,本实施例中,为了说明客户端同时从正在下载文件的客户端和/或已经完成下载的客户端以及Http/Ftp服务器上下载文件,将客户端举例为3个,分别为客户端A、客户端B和客户端C。
网络接口模块100,与存储服务器200相连,用于从网络上搜索文件信息,并提供文件的校验值以及文件的片段校验值。网络接口模块100可以采用现有的逻辑实体实现,例如网络蜘蛛。网络接口模块100包括链接搜索模块101和校验模块102。
链接搜索模块101用于从网络上搜索文件信息,这里,文件信息包括文件的下载链接URL,还可以进一步包括文件大小等信息。通常情况下,同一文件可能在不同的网站上发布过,即同一文件可能包含多个URL,为了将文件与多个URL对应起来,需要对文件进行校验,于是链接搜索模块101将所搜索的文件信息发送到校验模块102,由校验模块102进行校验。
校验模块102用于下载文件并计算文件的校验值,并按照预定的规则将文件分成若干片段,计算文件的片段校验值。校验模块102根据链接搜索模块101搜索到的文件URL,下载文件并计算文件和文件片段的校验值。这里的校验值是哈希(Hash)校验值,Hash是一种算法,通过对文件进行计算将文件表示成数值,根据Hash算法,不同的文件具有不同的Hash值;另外,对于一个文件可以根据预定的规则,例如每500k为一片段,将文件分成若干片段,Hash算法同时可以保证每一个片段都具有不同于其它片段的片段Hash值,所以可以根据Hash算法的这种特性,用校验模块102所计算的Hash值来校验链接搜索模块101搜索到的文件信息,将链接搜索模块101搜索到的文件信息按照Hash值分类,还可以用文件的Hash值和文件的片段Hash值来校验客户端所下载的文件是否是同一文件以及是否是客户端所需要的文件片段。
网络接口模块100所获得的文件URL、文件的校验值和文件的片段校验值发送到存储服务器200中保存。当链接搜索模块101搜索到新的文件URL时,校验模块102计算文件的Hash值,进行校验,并将新的文件URL以及Hash值发送到存储服务器200中保存。
存储服务器200,与网络接口模块100和节点服务器300相连,用于存储文件的URL、校验值等相关数据,并根据客户端的请求向客户端提供文件的相关数据。存储服务器200也将所存储的部分或全部文件的校验值定期发送到节点服务器300中保存,以便客户端可以直接向节点服务器300请求下载文件。存储服务器200包括数据服务器201,还可以包括Hash服务器202。
数据服务器201用于以校验模块102所计算的文件Hash值为索引,存储链接搜索模块101搜索的文件URL列表、校验模块102所计算的文件的片段Hash值以及文件大小等数据,根据客户端的请求向客户端提供文件的URL列表和文件的片段Hash值。
Hash服务器202用于以文件URL列表为索引,存储URL列表到文件Hash值的映射关系,根据客户端的请求提供文件的Hash值。从数据服务器201和Hash服务器202的功能来看,二者本质上相同,Hash服务器202上保存的内容也是从数据服务器201上定期同步过来的,只不过Hash服务器202相当于以URL列表为索引,而数据服务器201以文件的Hash值为索引。由于数据服务器201和Hash服务器202本质上相同,所以在实际应用中可以只使用其中的一个服务器。本实施例中,设置Hash服务器202有利于实际应用中数据服务器201的扩展。Hash服务器也可以称为校验值服务器。
节点服务器300,与存储服务器200相连,是支持客户端之间进行P2P通信的服务器。在实际应用中可以设置多个节点服务器300。节点服务器300保存部分或全部从存储服务器200同步过来的文件Hash值,有了文件的Hash值,客户端在登录节点服务器300后可以直接获取到文件的Hash值,根据文件的Hash值向数据服务器201获取URL列表和片段Hash值,请求下载文件。为了支持客户端之间的通信,节点服务器300还用于记录所有注册客户端的基本信息;为登录客户端之间的通信搭建直连通道;记录客户端上报的正在下载文件的信息和下载完成的信息,以及客户端上报的缓冲区文件的信息;根据下载客户端的请求为客户端提供拥有相同文件的客户端的信息,包括正在下载同样文件的客户端信息,下载完成但是没有退出系统的客户端信息,以及将缓冲区中的同样文件共享出来的客户端信息。对于客户端上报缓冲区的文件,客户端在登录节点服务器300时,可以选择将缓冲区的文件共享,此时,节点服务器300按照稀有资源优先选择的原则,选择其中节点服务器300没有保存的文件信息,或者保存较少的文件片段信息保存起来,以便其它客户端需要这些文件或文件片段时,提供给其它客户端。
客户端A、B、C的基本信息保存在节点服务器300中,每次登录单点对多节点并发下载系统时,都首先到节点服务器300进行验证,节点服务器300保存客户端登录的信息,客户端在进行下载或下载完成时,向节点服务器300上报请求下载或下载完成的信息。对于客户端缓冲区的文件,客户端可以选择将缓冲区的文件共享出来,供其它客户端下载,这时客户端会将缓冲区文件的信息上报给节点服务器300保存。客户端符合标准的Http/Ftp协议,以支持客户端从Http/Ftp服务器上下载文件,同时符合P2P协议,以支持P2P通信。
另外,图1还示出了网络服务器,网络服务器包括Http/Ftp服务器,Http/Ftp服务器是文件所发布到的网站的服务器,保存着原始文件,用于提供文件的下载URL。许多网站除了有Http/Ftp服务器以外,还提供Http/Ftp服务器的镜像服务器,镜像服务器与Http/Ftp服务器所保存的文件内容相同,但是URL不同,所以网络服务器还可以包括镜像服务器。链接搜索模块101所搜索到的文件URL,就是网络服务器所提供的。当客户端从服务器上下载文件时,也是连接到网络服务器上进行下载。
下面参见图2,以客户端A、B、C同时下载文件F,并且客户端A从Http/Ftp服务器和客户端B、C并发下载文件F为例,描述图1所示的单点对多节点并发下载系统的工作过程。
首先,网络接口模块100中的链接搜索模块101从网络中搜索文件URL,校验模块102根据搜索到的文件URL下载文件,计算文件Hash值和文件片段的Hash值,校验搜索到的文件是否是已有资源,如果是已有资源,将文件URL保存到数据服务器201的对应Hash值的URL列表中,并且保存文件片段的Hash值;如果不是已有资源,在数据服务器201中以Hash值为索引建立该文件的URL列表并保存该文件的URL和文件片段的Hash值。
网络接口模块100定期从网络上搜索文件URL,定期地将搜索到的文件URL和计算所得的校验值发送给数据服务器201保存,数据服务器201定期将保存的信息同步给Hash服务器202,并选择部分或全部文件的Hash值发送给节点服务器300。当然,网络接口模块100也可以将搜索到的文件URL和计算所得的校验值发送给Hash服务器202保存,Hash服务器202定期将保存的信息同步给数据服务器201,并选择部分或全部文件的Hash值发送给节点服务器300。
客户端A、客户端B和客户端C登录单点对多节点并发下载系统,首先登录到节点服务器300,节点服务器300记录客户端A、B、C的登录信息,这里,主要是维持它们的IP端口信息,以便可以在它们之间建立直连通道。接下来,客户端A对多节点,这里指Http/Ftp服务器和客户端B、C的并发下载过程如下:
步骤501、客户端A发起下载请求,例如在浏览网页的过程中点击下载文件F的URL触发发起下载请求,该下载请求首先发送至Hash服务器202,下载请求消息中至少包含文件F的URL;
步骤502、Hash服务器202判断自身保存的文件URL列表中是否包含客户端A在请求下载消息中提供的URL,如果是,执行步骤503-504;否则,执行步骤512;
步骤503-504、Hash服务器202根据本身保存的URL列表与Hash值的映射关系,将与客户端A提供的URL相对应的Hash值发送给客户端A,客户端A根据该Hash值向数据服务器201发送请求,请求与该Hash值对应的URL列表和片段Hash值;
步骤505、数据服务器201收到客户端A的请求后,判断是否具有与该Hash值对应的URL列表和片段Hash值,如果有,执行步骤506;否则,执行步骤512;
步骤506、数据服务器201将与Hash值对应的URL列表和片段Hash值发送给客户端A;
以上步骤的目的在根据文件F的Hash值获取文件F的URL列表和片段Hash值,根据节点服务器300的描述,节点服务器300上也保存有部分或全部从数据服务器201同步过来的文件Hash值,所以客户端除了通过向Hash服务器202请求Hash值以外,还可以直接从节点服务器300上获取文件Hash值,进而根据获取到的Hash值向数据服务器201请求文件F的列表和片段Hash值。
步骤507、客户端A根据URL列表从提供URL列表的多台Http/Ftp服务器上下载文件F,并且客户端A向节点服务器300上报正在下载文件F的信息,该信息至少包括文件F的Hash值;同时客户端A根据从Hash服务器202上获取的与文件F对应的Hash值向节点服务器300发送下载请求;
客户端在下载文件F时会向节点服务器300上报文件F的Hash值,同样地,下载完成时,客户端也会向节点服务器300上报下载完成,所以节点服务器300上保存了正在下载文件F的客户端信息,另外,节点服务器300还保存了客户端缓冲区文件的信息,于是,客户端A根据文件F的Hash值可以从节点服务器300请求到其它正在下载文件F的客户端和/或将缓冲区文件共享出来的客户端信息,这里,将正在下载文件F的客户端和/或将缓冲区文件共享出来的客户端举例为客户端B和客户端C。
步骤508、节点服务器300收到客户端A的请求后,判断是否保存了具有文件F的Hash值的客户端信息,如果是,执行步骤509-510;否则,停止向节点服务器300的请求客户端信息,仅从多台Http/Ftp服务器上下载文件;
步骤509-510、节点服务器300将客户端B和客户端C的信息发送给客户端A,客户端B和客户端C的信息主要包括客户端B和客户端C的IP端口信息,客户端A根据与客户端B和客户端C进行交互,获取客户端B、C上所具有的文件F的片段,例如,客户端B上具有片段3,客户端C上具有片段5,而客户端A没有这两个片段,于是,客户端A根据交互所得的信息,分别向客户端B和客户端C请求下载片段3和片段5;每下载完一个片段,客户端A都根据Hash算法计算该片段的片段Hash值,并与从数据服务器201上获取的片段Hash值进行比较,以校验所下载的片段是否正确以及是否是已经重复的片段,对于经过校验证明正确的片段客户端A保存,否则丢弃,客户端A再从其它客户端或Http/Ftp服务器上下载该片段。客户端A每下载完一个片段都向节点服务器300上报。
步骤511、判断客户端A从客户端B或客户端C下载文件F的某片段的速度是否大于预先设定的阈值,如果是,停止从Http/Ftp服务器上下载文件F,仅从客户端B和客户端C上下载文件;否则,保持同时从Http/Ftp服务器以及客户端B和客户端C上下载文件;
本步骤是为了更降低Http/Ftp服务器的带宽占用和压力,实际应用中,可以省掉该步骤。
步骤512、Hash服务器202判断自身保存的文件URL列表中不包含客户端A在请求下载消息中提供的URL,或者数据服务器201收到客户端A的请求后,判断不具有与该Hash值对应的URL列表和片段Hash值,说明本发明的系统不能为客户端A提供更多的URL,于是,客户端A只能从所浏览网页的Http/Ftp服务器上下载文件F。
以上举例描述了单点对多节点并发下载过程,在步骤507中,客户端A从多台Http/Ftp服务器上下载文件F采用多线程分片段下载机制,具体地,整个文件F分成若干片段,例如N个片段,从其中一个URL下载时,同时启动N个线程,每个线程至少下载其中的一个片段,参见图3A,对于第一个URL同时启动N个线程,分别下载N个片段。
如果其中某些线程最先下载完毕自身的片段,则从当前所有下载线程中的最大空闲间隔的一半处开始下载该线程正在下载的片段,例如参见图3B,线程4首先下载完毕,并且发现线程2下载得最慢,即空闲最大,于是再次启动线程4从线程2的空闲的一半处开始下载线程2正在下载的片段。
对于多个URL,例如3个URL,分别是URL1、URL2和URL3,则启动多个线程循环从3个URL上下载文件片段,并且从当前下载线程的最大空闲间隔的一半处开始循环下载,例如参见图3C,线程1、2、3分别从URL1、2、3上下载文件片段1、2、3,其中从URL1上下载文件片段的线程1空闲最大,则启动线程4从线程1的空闲的一半处开始从URL1下载文件片段4,类似地,还可以启动线程5(未示出)从当前下载线程的最大空闲间隔的一半处开始下载片段5,如此一来,就可以实现从多个URL下载文件。如果其中某个URL下载速度慢或者不能下载,则可以去掉该URL,相应地,转移到其它URL上获取文件片段,因此,本发明提供的方法可以在某个URL不能正常下载时,保证从其它URL上获取数据,实现高速下载。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (9)

1、一种单点对多节点并发下载系统,包括至少一个客户端,其特征在于,该系统还包括:
网络接口模块,用于从网络上搜索文件的统一资源定位符URL,提供文件的校验值和文件的片段校验值;
数据服务器,用于以网络接口模块提供的文件校验值为索引,保存文件URL列表和文件的片段校验值,将所保存的信息定期同步给校验值服务器,并根据客户端的请求向客户端提供URL列表和文件的片段校验值;
校验值服务器,用于以文件URL列表为索引,保存文件校验值和文件的片段校验值,并根据客户端的请求向客户端提供文件校验值和文件的片段校验值;
节点服务器,用于保存所有注册和登录客户端的信息以及文件校验值,记录客户端上报的下载信息,并根据客户端请求信息中的文件校验值向客户端提供拥有相同文件的客户端信息。
2、根据权利要求1所述的系统,其特征在于,所述网络接口模块包括彼此相连的链接搜索模块和校验模块,其中,
链接搜索模块,用于从网络上搜索文件URL,将所搜索的URL提供给校验模块;
校验模块,用于根据链接搜索模块提供的URL下载文件并计算文件的校验值和文件的片段校验值。
3、根据权利要求1所述的系统,其特征在于,所述节点服务器保存的文件校验值为定期从所述校验值服务器同步来的部分或全部文件校验值。
4、一种单点对多节点并发下载方法,其特征在于,该方法包括:
A、客户端获取所请求下载文件的校验值,并根据文件校验值获取文件的URL列表和文件的片段校验值;
B、客户端获取拥有所请求文件的其它客户端信息;
C、客户端从URL对应的服务器上下载文件,同时从获取到的拥有所请求文件的其它客户端上下载文件,并根据文件的片段校验值校验所下载的文件。
5、根据权利要求4所述的方法,其特征在于,在所述步骤C之后,该方法进一步包括:
判断从其它客户端上下载文件的速度是否大于预先设定的阈值,如果是,停止从URL对应的服务器上下载文件;否则,继续同时从URL对应的服务器和其它客户端上下载文件。
6、根据权利要求4所述的方法,其特征在于,所述步骤A包括:
A11、客户端向包括文件校验值与URL对应关系的校验值服务器发送包含URL的下载请求;
A12、所述校验值服务器判断是否保存了客户端在下载请求消息中包含的URL,如果是,向客户端提供与所包含的URL对应的文件校验值;否则,退出本下载流程;
A13、客户端根据所述校验值服务器提供的文件校验值向包括URL列表和文件的片段校验值的数据服务器请求URL列表和文件的片段校验值,数据服务器判断自身是否保存了与该文件校验值对应的URL列表和文件的片段校验值,如果是,向客户端提供对应的URL列表和文件的片段校验值;否则,退出本下载流程。
7、根据权利要求4所述的方法,其特征在于,所述步骤A包括:
A21、客户端向包括文件校验值的节点服务器请求文件校验值;
A22、客户端根据节点服务器提供的文件校验值向包括URL列表和文件的片段校验值的数据服务器请求URL列表和文件的片段校验值,数据服务器判断自身是否保存了与该文件校验值对应的URL列表和文件的片段校验值,如果是,向客户端提供对应的URL列表和文件的片段校验值;否则,退出本下载流程。
8、根据权利要求6或7所述的方法,其特征在于,所述步骤B包括:
B1、客户端向包括文件校验值的节点服务器发送包含文件校验值的下载请求消息;
B2、节点服务器判断自身是否保存了拥有该文件校验值的客户端信息,如果是,将拥有该文件校验值的客户端信息提供给请求下载的客户端;否则,停止向节点服务器请求其它客户端信息。
9、根据权利要求4所述的方法,其特征在于,步骤C中所述客户端从URL对应的服务器上下载文件,包括:
客户端多线程分片从URL对应的服务器上下载文件。
CNB2006100871563A 2006-06-15 2006-06-15 单点对多节点并发下载系统和方法 Active CN100473008C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006100871563A CN100473008C (zh) 2006-06-15 2006-06-15 单点对多节点并发下载系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006100871563A CN100473008C (zh) 2006-06-15 2006-06-15 单点对多节点并发下载系统和方法

Publications (2)

Publication Number Publication Date
CN101079709A CN101079709A (zh) 2007-11-28
CN100473008C true CN100473008C (zh) 2009-03-25

Family

ID=38906961

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100871563A Active CN100473008C (zh) 2006-06-15 2006-06-15 单点对多节点并发下载系统和方法

Country Status (1)

Country Link
CN (1) CN100473008C (zh)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101626304A (zh) * 2008-07-11 2010-01-13 宝利微电子系统控股公司 P2p协议下实现多媒体即时播放的方法及装置
CN101997896B (zh) * 2009-08-19 2013-06-05 中兴通讯股份有限公司 一种文件发布的方法及系统
CN102025444A (zh) * 2009-09-09 2011-04-20 腾讯科技(深圳)有限公司 资源发布方法、资源下载方法及数据校验系统
CN101651719B (zh) * 2009-09-11 2013-06-12 广东宇天科技有限公司 通信系统、均衡服务器及数据验证方法
CN101980509A (zh) * 2010-11-05 2011-02-23 北京云快线软件服务有限公司 一种文件分片传输方法及装置
CN102006331B (zh) * 2010-11-29 2013-08-14 中国联合网络通信集团有限公司 媒体信息发送方法、终端及p2p系统
CN102325167A (zh) * 2011-07-21 2012-01-18 杭州微元科技有限公司 一种网络文件传输的校验方法
CN102255695B (zh) * 2011-07-22 2013-09-04 乐视网信息技术(北京)股份有限公司 一种应用于p2p网络分发系统的数据校验方法与系统
CN102546783A (zh) * 2011-12-28 2012-07-04 深圳市新为软件有限公司 课程资源下载方法和课程资源客户端、服务器和系统
CN103731400A (zh) * 2012-10-12 2014-04-16 三星电子(中国)研发中心 共享资源的系统和方法
CN103731451B (zh) 2012-10-12 2018-10-19 腾讯科技(深圳)有限公司 一种文件上传的方法及系统
CN103795765B (zh) * 2012-11-02 2018-09-28 腾讯科技(深圳)有限公司 一种文件上传校验方法及系统
CN103841156A (zh) * 2012-11-26 2014-06-04 腾讯科技(深圳)有限公司 一种基于端对端协议的文件下载保护方法、装置,及系统
CN103067790B (zh) * 2012-12-31 2016-07-06 乐视网信息技术(北京)股份有限公司 一种应用于对等网络的数据校验系统及方法
CN103079116A (zh) * 2012-12-31 2013-05-01 乐视网信息技术(北京)股份有限公司 一种应用于对等网络的数据被动校验系统及方法
CN108810111B (zh) * 2013-07-12 2020-08-07 腾讯科技(深圳)有限公司 下载数据的方法、客户端及系统
CN104580076B (zh) * 2013-10-14 2018-02-23 中国移动通信集团北京有限公司 一种信息发布的方法、系统及装置
CN104123341A (zh) * 2014-06-26 2014-10-29 小米科技有限责任公司 文件下载方法、装置及路由设备
CN106487832B (zh) * 2015-08-26 2019-09-20 阿里巴巴集团控股有限公司 网络信息处理方法及装置
CN110290186B (zh) * 2016-12-20 2021-09-07 北京并行科技股份有限公司 一种适用于多超算中心文件传输的系统及方法
CN111314403B (zh) * 2018-12-12 2022-09-02 阿里巴巴集团控股有限公司 资源一致性的校验方法和装置
CN110224863A (zh) * 2019-05-22 2019-09-10 钛马信息网络技术有限公司 一种文件加速下载方法及装置
CN110460486B (zh) * 2019-06-25 2022-08-05 网宿科技股份有限公司 服务节点的监控方法及系统
CN111147595A (zh) * 2019-12-30 2020-05-12 昆山丘钛微电子科技有限公司 一种文档下载方法、系统、服务器和客户端
CN112597406A (zh) * 2020-12-24 2021-04-02 厦门亿联网络技术股份有限公司 一种文件传输方法、装置、终端设备及存储介质
CN114640665B (zh) * 2022-02-15 2023-02-10 北京邮电大学 一种多源分段并行的文件下载方法和工具

Also Published As

Publication number Publication date
CN101079709A (zh) 2007-11-28

Similar Documents

Publication Publication Date Title
CN100473008C (zh) 单点对多节点并发下载系统和方法
CN107025234B (zh) 一种信息推送方法及缓存服务器
US8312172B2 (en) Method and system for delta compression
Abdelzaher et al. Web content adaptation to improve server overload behavior
CN100562873C (zh) 获取网页中网页元素的系统及方法
US9549038B1 (en) Cacheable resource location selection
US10165039B1 (en) Pre-connecting to a cacheable resource based on page profiles
CN109729108B (zh) 一种防止缓存击穿的方法、相关服务器及系统
US20140280859A1 (en) Sharing control system and method for network resources download information
CN102985921B (zh) 在具有电子资源数据库的客户端装置中高速缓存电子文档资源
US11190576B2 (en) File distribution and download method, distribution server, client terminal and system
US20090083442A1 (en) Tracking Identifier Synchronization
US20120331228A1 (en) Dynamic content caching
CN105898352A (zh) 基于m3u8的流媒体文件直播方法及系统
CN105743945B (zh) 基于切换下载源的文件下载方法及系统
CN109302388A (zh) 访问权限过滤方法、系统、计算机设备和存储介质
US11204971B1 (en) Token-based authentication for a proxy web scraping service
US20030225859A1 (en) Request mapping for load balancing
US20230018983A1 (en) Traffic counting for proxy web scraping
CN106713460A (zh) 一种flash应用的版本控制方法和系统
CN113300875A (zh) 回源数据校验方法、服务器、系统及存储介质
CN107682281A (zh) 一种sdn交换机和sdn交换机的应用管理方法
EP4227829A1 (en) Web scraping through use of proxies, and applications thereof
EP3236364B1 (en) Web tracking method and system
WO2023280593A1 (en) Web scraping through use of proxies, and applications thereof

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