CN103269351A - 一种文件下载方法和装置 - Google Patents

一种文件下载方法和装置 Download PDF

Info

Publication number
CN103269351A
CN103269351A CN201210526243XA CN201210526243A CN103269351A CN 103269351 A CN103269351 A CN 103269351A CN 201210526243X A CN201210526243X A CN 201210526243XA CN 201210526243 A CN201210526243 A CN 201210526243A CN 103269351 A CN103269351 A CN 103269351A
Authority
CN
China
Prior art keywords
file
files
network node
download
check information
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.)
Pending
Application number
CN201210526243XA
Other languages
English (en)
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.)
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing 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 Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201210526243XA priority Critical patent/CN103269351A/zh
Publication of CN103269351A publication Critical patent/CN103269351A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种文件下载方法和装置,其中,所述装置包括请求接收单元;目标节点确定单元;返回单元;第一判断单元,用于根据文件的内容校验信息,判断各个文件下载请求中请求下载的文件是否为同一文件;列表维护单元,用于建立并维护已经完成下载以及正在下载同一文件的P2P网络节点列表;所述目标节点确定单元包括:查询子单元,用于根据被请求文件的内容校验信息找到下载该被请求文件的P2P网络节点列表,将该P2P网络节点列表中的P2P网络节点确定为所述目标P2P网络节点。通过本发明,能够提高P2P下载的速度。

Description

一种文件下载方法和装置
技术领域
本发明涉及点对点下载技术领域,具体涉及一种文件下载方法和装置。
背景技术
传统的文件下载服务都是基于客户机/服务器模型,被下载的文件放在服务器上,用户登录服务器,将该文件下载到本地。在文件下载的过程中,被传输文件的来源和目的端并不对等,服务器只是单向地将文件传送给客户端。这种传统软件下载模式的缺点是显而易见的,整个***的瓶颈位于服务器。由于受到服务器处理能力、互联网接入链路带宽等多种环境的制约,当下载量非常大时,服务器往往不堪重负。而用户下载完毕后就和服务器没有任何联系,其它用户也无法从以前用户下载的版本得到任何帮助。
随着互联网技术的不断发展,P2P(Peer To Peer,点到点)技术逐渐成为文件交换和下载的成熟技术。目前最流行的P2P文件交换技术是BT(BitTorrent,比特流),越来越多的用户使用BT共享和下载软件。BT的特点是用户下载的同时,也在为其它用户提供上传,所以不会像FTP服务器那样随着用户数的增加而导致下载速度降低。恰恰相反,对于BT下载而言,下载的人越多速度越快。从技术角度上来讲,BT下载首先在上传者端把一个文件分成N个部分,A用户可以从服务器上随机下载第M个部分,B用户可以在服务器随机下载第K个部分。而A用户的BT客户端下载程序会根据情况从B用户下载第K个部分,同样的,B用户也可以从A用户下载第M个部分。
通过这种P2P的下载方式可以减轻服务器端负荷,加快用户的下载速度,不过这种P2P下载方式在下载速度上还具有提升的空间。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的文件下载方法和装置,能够提高P2P下载的速度。
依据本发明的一个方面,提供了一种文件下载方法,包括:
接收P2P客户端的文件下载请求;
根据被请求文件的内容校验信息,确定保存有所述被请求文件和/或正在下载所述被请求文件的目标P2P网络节点;
将所述目标P2P网络节点返回给P2P客户端,以便所述P2P客户端从所述目标P2P网络节点中选择邻居节点,并通过所述邻居节点完成所述被请求文件的P2P下载;
根据文件的内容校验信息,判断各个文件下载请求中请求下载的文件是否为同一文件;
建立并维护已经完成下载以及正在下载同一文件的P2P网络节点列表;
所述根据被请求文件的内容校验信息,确定保存有所述被请求文件和/或正在下载所述被请求文件的目标P2P网络节点包括:
根据被请求文件的内容校验信息找到下载该被请求文件的P2P网络节点列表,将该P2P网络节点列表中的P2P网络节点确定为所述目标P2P网络节点。
可选地,还包括:
在首次接收到某上传的文件时,对上传的文件进行备份;
后续再接收到某上传的文件时,根据文件的内容校验信息判断是否已经备份了相同的文件,如果是,则返回上传成功的消息。
可选地,所述文件的内容校验信息包括文件的循环冗余校验码以及信息摘要算法值,通过以下方式判断两个文件是否为同一文件:
比较两个文件的循环冗余校验码是否相同;
如果循环冗余校验码不同,则将这两个文件确定为不同的文件;
如果循环冗余校验码相同,则比较两个文件的信息摘要算法值是否相同;
如果信息摘要算法值不同,则将这两个文件确定为不同的文件;
如果信息摘要算法值相同,则将这两个文件确定为相同的文件。
可选地,还包括:
在首次接收到某上传的文件时,对上传的文件进行备份;
如果所有P2P网络节点中都未保存有或者正在下载被请求文件,则根据所述备份的文件向P2P客户端响应下载请求。
根据本发明的另一方面,提供了一种文件下载装置,包括:
请求接收单元,用于接收P2P客户端的文件下载请求;
目标节点确定单元,用于根据被请求文件的内容校验信息,确定保存有所述被请求文件和/或正在下载所述被请求文件的目标P2P网络节点;其中,所述文件属性信息包括文件的内容校验信息;
返回单元,用于将所述目标P2P网络节点返回给P2P客户端,以便所述P2P客户端从所述目标P2P网络节点中选择邻居节点,并通过所述邻居节点完成所述被请求文件的P2P下载;
第一判断单元,用于根据文件的内容校验信息,判断各个文件下载请求中请求下载的文件是否为同一文件;
列表维护单元,用于建立并维护已经完成下载以及正在下载同一文件的P2P网络节点列表;
所述目标节点确定单元包括:
查询子单元,用于根据被请求文件的内容校验信息找到下载该被请求文件的P2P网络节点列表,将该P2P网络节点列表中的P2P网络节点确定为所述目标P2P网络节点。
可选地,还包括:
备份单元,用于在首次接收到某上传的文件时,对上传的文件进行备份;
第二判断单元,用于后续再接收到某上传的文件时,根据文件的内容校验信息判断是否已经备份了相同的文件,如果是,则返回上传成功的消息。
可选地,所述文件的内容校验信息包括文件的循环冗余校验码以及信息摘要算法值,通过以下单元判断两个文件是否为同一文件:
第一比较单元,用于比较两个文件的循环冗余校验码是否相同;
第一确定单元,用于如果循环冗余校验码不同,则将这两个文件确定为不同的文件;
第二比较单元,用于如果循环冗余校验码相同,则比较两个文件的信息摘要算法值是否相同;
第二确定单元,用于如果信息摘要算法值不同,则将这两个文件确定为不同的文件;
第三确定单元,用于如果信息摘要算法值相同,则将这两个文件确定为相同的文件。
可选地,还包括:
备份单元,用于在首次接收到某上传的文件时,对上传的文件进行备份;
下载响应单元,用于如果所有P2P网络节点中都未保存有或者正在下载被请求文件,则根据所述备份的文件向P2P客户端响应下载请求。
根据本发明的文件下载方法和装置,可以根据文件的内容校验信息来查找相同的文件,因此,只要拥有或者正在下载相同内容校验信息的文件的节点,就都可以相互加速,而不会受到现有技术中种子文件的限制,因此,能够进一步提高P2P文件下载的下载速度。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的方法流程图;
以及,
图2示出了根据本发明一个实施例的装置示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
为了便于理解本发明,首先对BT***进行简单地介绍。
从构建BT服务器的角度来看,整个BT***由四个部分组成。
1.BT客户端
BT客户端是安装在用户PC机上的客户端软件,在下载的同时,BT客户端还负责将下载的内容共享给其它用户,这个过程完全不需要用户参与。
2.BT“种子”文件
BT“种子”文件是一个名为.torrent的文件,它是由第一个发布共享文件者根据源文件制作出来的源文件的指纹信息。“种子”文件很小,一般在几十KB到几百KB之间,其中包含文件所在的BT端地址信息及目标文件的校验码。当BT用户获得“种子”文件后,直接在BT客户端软件中运行“种子”文件,BT软件将根据“种子”文件包含的信息,自动查找到该文件所有可用的下载源,并进行下载。“种子”是一个形象的比喻,而“种子”文件就是记载下载文件的存放位置、名称、大小、下载服务器的地址、发布者的地址等数据的一个索引文件。这个“种子”文件并不是最终要下载的文件(如电影、软件等等),但是要下载需要的文件,就必须先下载“种子”文件。
3.Tracker
使用BT服务不需要指定服务器,虽然在BT服务里面仍然有服务器的概念,但使用BT服务的人并不需要关心服务器在哪里。BT服务器称为Tracker,准确地说,Tracker是指运行于服务器上的一个程序,这个程序能够追踪到底有多少人同时在下载同一个文件。BT客户端连接上Tracker服务器,就会获得一个下载人员的名单,根据这个名单,BT客户端会自动连接网络中其它节点进行下载。
4.种子
BT服务把提供完整文件的用户节点称为“种子”(Seed),正在下载的用户称为客户(Client)。某一个文件现在有多少“种子”、多少“客户”是可以看到的。只要有一个“种子”就可以放心地下载。当然,“种子”越多、客户越多的文件下载的速度会越快。如果发现“种子”数为0,那么就不需要去尝试了。当某个用户下载完成后,如没有选择关闭,其他人就可以从该用户处继续下载文件。所以当下载的人多起来,通常做“种子”的人也会随之增加,下载速度也会加快。
本发明人在实现本发明的过程中发现,现有技术中,是根据文件的种子文件来判断各个文件是否相同,也即,如果文件A与文件B的内容相同,但是种子文件不同,则具有这文件A的节点则无法为需要下载文件B的用户提供下载服务。也就是说,对于现有技术中的种子文件而言,如果两个文件的内容相同,但是如果文件名、存放位置、生成种子文件的时间、种子文件制作者等不同,则都会导致生成的种子文件不同,则这两个文件在P2P网络中将被识别为不同的文件,拥有这两个文件的节点之间将不能互相下载对方的文件。
但是,在P2P下载网络中,由于每个用户都可以作为网络中的一个节点,并且每个节点都可以充当下载过程中的服务器角色,为其他节点提供数据下载服务,因此,能够提供数据源的节点越多,下载速度就能越快,下载的成功率也就越高。而现有技术中,由于需要根据种子文件来判断文件是否相同,因此,使得具有相同文件内容、不同种子文件的用户之间,不能相互加速,这就使得现有技术中的P2P网络在下载速度上还具有进一步提升的空间。
总之,对于具有相同文件内容的文件而言,经常在多个节点中同时存在,或者同时被多个节点下载,各个文件的名称、地址等描述信息可能不尽相同,但实际上内容是完全一致的,如果能够充分利用这种内容相同的数据源,则可以很大程度地提高数据传输的效率。
基于上述分析,在本发明实施例中,可以对P2P网络的下载机制进行改进,具体的,可以根据文件的内容校验信息对文件是否相同进行校验,而不是基于种子文件,这样,当第一个上传者甲在上传某文件A之后,就可以将该文件A上传到服务器,在服务器端对该文件进行备份,并记录下该文件A的内容校验信息;后续又有上传者乙上传某文件B时,服务器首先根据文件B的内容校验信息,判断是否有其他用户分享过具有相同内容的文件,例如,文件B的内容校验信息恰好与文件A的内容校验信息相同,则可以直接向用户乙返回上传成功的消息,也即,不需要再将用户乙的文件B上传到服务器,用户乙将看到“秒传”的效果,也即在点击“上传”某文件之后,在很短的时间内就能收到上传成功的响应,但实际上并未真正将其文件上传到服务器,这段很短的时间仅仅是用于判断服务器已经备份的文件中是否存在与当前要分享的文件的内容校验信息相匹配的文件。
也就是说,在本发明实施例中,对于相同内容、不同描述信息的文件而言,在服务器端只会备份首次上传者上传的一份文件,其他的将不再备份。并且,当一个文件每次被上传时,都可以生成对应的任务ID(task ID),该task ID中包含有被上传文件的内容校验信息,这样,具有相同内容校验信息的文件将会被作为相同的文件来看待。当接收到下载某文件的请求时,就可以根据被请求文件的内容校验信息,找到包含有相同内容校验信息的文件的节点,以及正在下载含有相同内容校验信息的文件的节点,然后返回给请求方,这样,请求方就可以从这些节点中选择自己的邻居节点,然后从其邻居节点处进行文件的下载。另外,如果所有节点中都不存在具有相同内容校验信息的文件,并且也没有节点在下载这样的文件,还可以直接通过服务器中备份的文件为用户提供下载。
基于以上这种实现方式,对于用户甲分享过的文件A而言,如果有其他用户也继续分享过该文件A,或者其他用户本地保存有与文件A具有相同内容校验信息的文件,都可以为需要下载文件A的用户提供下载,因此,即使用户甲将文件A删除了,也可以通过这些用户为收藏过文件A的用户提供下载,另外,由于服务器端也对与文件A具有相同内容校验信息的文件进行了备份,因此,服务器端也可以为用户提供文件的下载。
也就是说,如果当前用户需要下载某指定文件,则可以根据文件的内容验证信息,在P2P全网范围内查找相匹配的文件。最终为该当前用户提供文件下载的,可能是上传过该指定文件的原始用户,也可能是继续分享过该指定文件的用户,也可能是上传过与该指定文件具有相同内容校验信息的文件的用户,等等,然后当前用户的P2P客户端就可以从这些节点中选择最佳的邻居节点,从这些邻居节点处下载该指定文件。这样就相当于实现了P2P下载的全网加速。
其中,所谓的内容校验信息可以包括循环冗余校验码(CRC)和/或信息摘要算法值(例如MD5等),等等。
循环冗余校验(CRC)是一种根据网络数据封包或电脑档案等数据产生简短固定位数校验码的一种散列函数,主要用来检测或校验数据传输或者保存后可能出现的错误。生成的数字在传输或者储存之前计算出来并且附加到数据后面,然后接收方进行检验确定数据是否发生变化。也即,如果两个文件的内容是完全相同的,则两个文件的CRC一定是相同的,因此,可以通过比较两个文件的CRC是否相同,来确定两个文件的具体内容是否相同。
MD5已经广泛使用在为文件传输提供一定的可靠性方面。例如,服务器预先提供一个MD5校验和,用户下载完文件以后,用MD5算法计算下载文件的MD5校验和,然后通过检查这两个校验和是否一致,就能判断下载的文件是否出错。即使在原文中作一个小变化(比如用c取代d)其MD5校验和也会发生巨大的变化。因此,在本发明实施例中,同样也可以用文件的MD5值来判断两个文件是否相同。
需要说明的是,一般而言,信息摘要算法的可靠性要大于循环冗余校验,也即,如果两个文件的CRC不同,则可以证明两个文件的内容肯定不同,然而,如果两个文件的CRC码相同,则两个文件的内容却不一定是相同的。但是CRC码只有两占字节,而MD5却要占16个字节,因此,用CRC码进行校验时,效率会比较高。综上,具体在比较两个文件的内容是否相同时,可以首先基于CRC码进行比对,如果不同,则直接确定两个文件的内容不同;如果CRC码相同,则进一步比较两个文件的MD5值是否相同,如果相同,则确定两个文件的内容相同,否则,确定两个文件的内容不同。这样,相当于首先通过CRC码将内容肯定不同的文件过滤掉,然后仅针对CRC码相同的文件进行进一步地验证,因此,相当于综合利用了两种验证码的优点,既可以提高验证效率,又可以保证验证的可靠性。
综上所述,参见图1,本发明实施例提供的文件下载方法可以包括以下步骤:
S101:接收P2P客户端的文件下载请求;
S102:根据被请求文件的内容校验信息,确定保存有所述被请求文件和/或正在下载所述被请求文件的目标P2P网络节点;
S103:将所述目标P2P网络节点返回给P2P客户端,以便所述P2P客户端从所述目标P2P网络节点中选择邻居节点,并通过所述邻居节点完成所述被请求文件的P2P下载。
也就是说,本发明实施例是根据文件的内容校验信息来查找具有目标文件的节点,而不是现有技术中的种子文件,服务器端会维护具有相同内容校验信息的文件的节点列表,以及正在下载相同内容校验信息的文件的节点列表,列表中的节点都可以为请求下载具有该内容校验信息的文件的节点提供下载服务。在获取到目标P2P网络节点名单之后,就可以将该名单返回给P2P客户端,这样P2P客户端就可以从中选择自己的邻居节点,并通过所述邻居节点完成所述被请求文件的P2P下载。其中,关于P2P客户端如何选择邻居节点,以及如何与邻居节点建立连接等,可以参见已有的P2P传输技术中的实现,这里不再详述。
总之,根据本发明实施例提供的文件下载方法,可以根据文件的内容校验信息来查找相同的文件,因此,只要拥有或者正在下载相同内容校验信息的文件的节点,就都可以相互加速,而不会受到现有技术中种子文件的限制,因此,能够进一步提高P2P文件下载的下载速度。
与本发明实施例提供的文件下载方法相对应,本发明实施例还提供了一种文件下载装置,参见图2,该装置可以包括:
请求接收单元201,用于接收P2P客户端的文件下载请求;
目标节点确定单元202,用于根据被请求文件的内容校验信息,确定保存有所述被请求文件和/或正在下载所述被请求文件的目标P2P网络节点;其中,所述文件属性信息包括文件的内容校验信息;
返回单元203,用于将所述目标P2P网络节点返回给P2P客户端,以便所述P2P客户端从所述目标P2P网络节点中选择邻居节点,并通过所述邻居节点完成所述被请求文件的P2P下载。
具体实现时,该装置还可以包括:
第一判断单元,用于根据文件的内容校验信息,判断各个文件下载请求中请求下载的文件是否为同一文件;
列表维护单元,用于建立并维护已经完成下载以及正在下载同一文件的P2P网络节点列表;
所述目标节点确定单元包括:
查询子单元,用于根据被请求文件的内容校验信息找到下载该被请求文件的P2P网络节点列表,将该P2P网络节点列表中的P2P网络节点确定为所述目标P2P网络节点。
另外,该装置还可以包括:
备份单元,用于在首次接收到某上传的文件时,对上传的文件进行备份;
第二判断单元,用于后续再接收到某上传的文件时,根据文件的内容校验信息判断是否已经备份了相同的文件,如果是,则返回上传成功的消息。
其中,所述文件的内容校验信息包括文件的循环冗余校验码以及信息摘要算法值,具体实现时,可以通过以下单元判断两个文件是否为同一文件:
第一比较单元,用于比较两个文件的循环冗余校验码是否相同;
第一确定单元,用于如果循环冗余校验码不同,则将这两个文件确定为不同的文件;
第二比较单元,用于如果循环冗余校验码相同,则比较两个文件的信息摘要算法值是否相同;
第二确定单元,用于如果信息摘要算法值不同,则将这两个文件确定为不同的文件;
第三确定单元,用于如果信息摘要算法值相同,则将这两个文件确定为相同的文件。
为了保证下载的成功率,该装置还可以包括:
备份单元,用于在首次接收到某上传的文件时,对上传的文件进行备份;
下载响应单元,用于如果所有P2P网络节点中都未保存有或者正在下载被请求文件,则根据所述备份的文件向P2P客户端响应下载请求。
总之,根据本发明实施例提供的文件下载装置,可以根据文件的内容校验信息来查找相同的文件,因此,只要拥有或者正在下载相同内容校验信息的文件的节点,就都可以相互加速,而不会受到现有技术中种子文件的限制,因此,能够进一步提高P2P文件下载的下载速度。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的文件下载装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本申请可以应用于计算机***/服务器,其可与众多其它通用或专用计算***环境或配置一起操作。适于与计算机***/服务器一起使用的众所周知的计算***、环境和/或配置的例子包括但不限于:个人计算机***、服务器计算机***、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的***、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机***、大型计算机***和包括上述任何***的分布式云计算技术环境,等等。计算机***/服务器可以在由计算机***执行的计算机***可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机***/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算***存储介质上。

Claims (8)

1.一种文件下载方法,包括:
接收P2P客户端的文件下载请求;
根据被请求文件的内容校验信息,确定保存有所述被请求文件和/或正在下载所述被请求文件的目标P2P网络节点;
将所述目标P2P网络节点返回给P2P客户端,以便所述P2P客户端从所述目标P2P网络节点中选择邻居节点,并通过所述邻居节点完成所述被请求文件的P2P下载;
根据文件的内容校验信息,判断各个文件下载请求中请求下载的文件是否为同一文件;
建立并维护已经完成下载以及正在下载同一文件的P2P网络节点列表;
所述根据被请求文件的内容校验信息,确定保存有所述被请求文件和/或正在下载所述被请求文件的目标P2P网络节点包括:
根据被请求文件的内容校验信息找到下载该被请求文件的P2P网络节点列表,将该P2P网络节点列表中的P2P网络节点确定为所述目标P2P网络节点。
2.如权利要求1所述的方法,还包括:
在首次接收到某上传的文件时,对上传的文件进行备份;
后续再接收到某上传的文件时,根据文件的内容校验信息判断是否已经备份了相同的文件,如果是,则返回上传成功的消息。
3.如权利要求1或2所述的方法,所述文件的内容校验信息包括文件的循环冗余校验码以及信息摘要算法值,通过以下方式判断两个文件是否为同一文件:
比较两个文件的循环冗余校验码是否相同;
如果循环冗余校验码不同,则将这两个文件确定为不同的文件;
如果循环冗余校验码相同,则比较两个文件的信息摘要算法值是否相同;
如果信息摘要算法值不同,则将这两个文件确定为不同的文件;
如果信息摘要算法值相同,则将这两个文件确定为相同的文件。
4.如权利要求1所述的方法,还包括:
在首次接收到某上传的文件时,对上传的文件进行备份;
如果所有P2P网络节点中都未保存有或者正在下载被请求文件,则根据所述备份的文件向P2P客户端响应下载请求。
5.一种文件下载装置,包括:
请求接收单元,用于接收P2P客户端的文件下载请求;
目标节点确定单元,用于根据被请求文件的内容校验信息,确定保存有所述被请求文件和/或正在下载所述被请求文件的目标P2P网络节点;其中,所述文件属性信息包括文件的内容校验信息;
返回单元,用于将所述目标P2P网络节点返回给P2P客户端,以便所述P2P客户端从所述目标P2P网络节点中选择邻居节点,并通过所述邻居节点完成所述被请求文件的P2P下载;
第一判断单元,用于根据文件的内容校验信息,判断各个文件下载请求中请求下载的文件是否为同一文件;
列表维护单元,用于建立并维护已经完成下载以及正在下载同一文件的P2P网络节点列表;
所述目标节点确定单元包括:
查询子单元,用于根据被请求文件的内容校验信息找到下载该被请求文件的P2P网络节点列表,将该P2P网络节点列表中的P2P网络节点确定为所述目标P2P网络节点。
6.如权利要求5所述的装置,还包括:
备份单元,用于在首次接收到某上传的文件时,对上传的文件进行备份;
第二判断单元,用于后续再接收到某上传的文件时,根据文件的内容校验信息判断是否已经备份了相同的文件,如果是,则返回上传成功的消息。
7.如权利要求5或6所述的装置,所述文件的内容校验信息包括文件的循环冗余校验码以及信息摘要算法值,通过以下单元判断两个文件是否为同一文件:
第一比较单元,用于比较两个文件的循环冗余校验码是否相同;
第一确定单元,用于如果循环冗余校验码不同,则将这两个文件确定为不同的文件;
第二比较单元,用于如果循环冗余校验码相同,则比较两个文件的信息摘要算法值是否相同;
第二确定单元,用于如果信息摘要算法值不同,则将这两个文件确定为不同的文件;
第三确定单元,用于如果信息摘要算法值相同,则将这两个文件确定为相同的文件。
8.如权利要求5所述的装置,还包括:
备份单元,用于在首次接收到某上传的文件时,对上传的文件进行备份;
下载响应单元,用于如果所有P2P网络节点中都未保存有或者正在下载被请求文件,则根据所述备份的文件向P2P客户端响应下载请求。
CN201210526243XA 2012-12-07 2012-12-07 一种文件下载方法和装置 Pending CN103269351A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210526243XA CN103269351A (zh) 2012-12-07 2012-12-07 一种文件下载方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210526243XA CN103269351A (zh) 2012-12-07 2012-12-07 一种文件下载方法和装置

Publications (1)

Publication Number Publication Date
CN103269351A true CN103269351A (zh) 2013-08-28

Family

ID=49012960

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210526243XA Pending CN103269351A (zh) 2012-12-07 2012-12-07 一种文件下载方法和装置

Country Status (1)

Country Link
CN (1) CN103269351A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109600453A (zh) * 2019-02-18 2019-04-09 广州卓远虚拟现实科技有限公司 一种分布式虚拟现实内容分发方法和***
CN110889143A (zh) * 2018-09-07 2020-03-17 阿里巴巴集团控股有限公司 文件校验方法及装置
CN111200657A (zh) * 2020-01-03 2020-05-26 网宿科技股份有限公司 一种管理资源状态信息的方法和资源下载***
US11102289B2 (en) 2020-01-03 2021-08-24 Wangsu Science & Technology Co., Ltd. Method for managing resource state information and system for downloading resource
CN114375565A (zh) * 2020-07-31 2022-04-19 华为技术有限公司 一种文件块下载方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1710857A (zh) * 2004-06-18 2005-12-21 千橡寰宇科技发展(北京)有限公司 一种实现文件加速下载的***及方法
CN101166190A (zh) * 2007-09-20 2008-04-23 腾讯科技(深圳)有限公司 影音文件的多源下载方法及装置
EP2091202A1 (en) * 2007-10-09 2009-08-19 Huawei Technologies Co., Ltd. Data distributing method, data distributing system and correlative devices in edge network
CN101552669A (zh) * 2008-04-02 2009-10-07 林兆祥 数据传输的方法及***
CN101989929A (zh) * 2010-11-17 2011-03-23 中兴通讯股份有限公司 容灾数据备份的方法及***
CN102497395A (zh) * 2011-11-30 2012-06-13 北京京航计算通讯研究所 断点上传应用控制方法
CN103269352A (zh) * 2012-12-07 2013-08-28 北京奇虎科技有限公司 点对点p2p文件下载方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1710857A (zh) * 2004-06-18 2005-12-21 千橡寰宇科技发展(北京)有限公司 一种实现文件加速下载的***及方法
CN101166190A (zh) * 2007-09-20 2008-04-23 腾讯科技(深圳)有限公司 影音文件的多源下载方法及装置
EP2091202A1 (en) * 2007-10-09 2009-08-19 Huawei Technologies Co., Ltd. Data distributing method, data distributing system and correlative devices in edge network
CN101552669A (zh) * 2008-04-02 2009-10-07 林兆祥 数据传输的方法及***
CN101989929A (zh) * 2010-11-17 2011-03-23 中兴通讯股份有限公司 容灾数据备份的方法及***
CN102497395A (zh) * 2011-11-30 2012-06-13 北京京航计算通讯研究所 断点上传应用控制方法
CN103269352A (zh) * 2012-12-07 2013-08-28 北京奇虎科技有限公司 点对点p2p文件下载方法及装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110889143A (zh) * 2018-09-07 2020-03-17 阿里巴巴集团控股有限公司 文件校验方法及装置
CN109600453A (zh) * 2019-02-18 2019-04-09 广州卓远虚拟现实科技有限公司 一种分布式虚拟现实内容分发方法和***
CN111200657A (zh) * 2020-01-03 2020-05-26 网宿科技股份有限公司 一种管理资源状态信息的方法和资源下载***
US11102289B2 (en) 2020-01-03 2021-08-24 Wangsu Science & Technology Co., Ltd. Method for managing resource state information and system for downloading resource
CN114375565A (zh) * 2020-07-31 2022-04-19 华为技术有限公司 一种文件块下载方法及装置

Similar Documents

Publication Publication Date Title
US11789828B2 (en) Methods and systems relating to network based storage
US20180260412A1 (en) Unified file and object data storage
US10623470B2 (en) Optimizing internet data transfers using an intelligent router agent
US20180336210A1 (en) Methods and systems relating to network based storage
CN106506587A (zh) 一种基于分布式存储的Docker镜像下载方法
US9641598B1 (en) Contextually unique identifier generation service
CN109791483A (zh) 用于计算设备的共享软件库
US9210219B2 (en) Systems and methods for consistent hashing using multiple hash rings
US9912747B2 (en) Browser and system for download and download method
US9600486B2 (en) File system directory attribute correction
CN103269302A (zh) 用于即时通信的共享文件管理方法和***
US8938550B2 (en) Autonomous network streaming
CN103269351A (zh) 一种文件下载方法和装置
CN109542862B (zh) 用于控制文件***的挂载的方法、装置和***
US20200153889A1 (en) Method for uploading and downloading file, and server for executing the same
CN106202187A (zh) 一种在浏览器中处理短链接的方法和装置
CN102567339A (zh) 一种获取起始页的方法、装置和***
CN103391312A (zh) 资源离线下载方法及装置
CN111273863A (zh) 高速缓存管理
CN103369002A (zh) 一种资源下载的方法及***
US11049024B2 (en) Enhancement of massive data ingestion by similarity linkage of documents
CN102984277B (zh) 防止恶意连接的***和方法
US10338972B1 (en) Prefix based partitioned data storage
CN103269352A (zh) 点对点p2p文件下载方法及装置
CN104346460A (zh) 进行文件下载的方法、装置及浏览器客户端

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20130828