CN102082807B - 基于多协议的文件传输方法及装置 - Google Patents
基于多协议的文件传输方法及装置 Download PDFInfo
- Publication number
- CN102082807B CN102082807B CN200910199799.0A CN200910199799A CN102082807B CN 102082807 B CN102082807 B CN 102082807B CN 200910199799 A CN200910199799 A CN 200910199799A CN 102082807 B CN102082807 B CN 102082807B
- Authority
- CN
- China
- Prior art keywords
- file
- server
- user node
- information
- identification 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.)
- Expired - Fee Related
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data redirection of data network streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及基于多协议的文件传输方法及装置。根据本发明的一个实施例,提供了一种在用户节点中用于文件下载的方法,包括以下步骤:A.截获来自一个应用功能实体的、基于第一协议的、用于请求一个文件的请求消息;B.至少基于第二协议,下载所述文件;C.将下载的所述文件提供给所述应用功能实体。通过使用本发明提供的方法、软件、存储介质,客户端基于第一协议从网络中下载文件时可以获得较传统服务器-客户端架构下更快的下载速度,从而提高了用户体验。
Description
技术领域
本发明涉及网络通信技术,尤其涉及点对点技术。
背景技术
传统的网络文件下载采用客户端-服务器架构,通常基于超文本传输协议(HTTP)或者文件传输协议(FTP),下载的速度受到服务器数据处理能力的制约,如果活跃用户数量很多,用户平均下载速度会急剧下降,严重的影响用户体验。
发明内容
近年来,通过点对点技术提供文件下载的服务得到越来越广泛的应用。常用的基于点对点技术的协议包括bt协议、ed2k协议、kad协议、等。通过采用点对点技术,可以获得比服务器-客户端模式更高的下载速度。
为了克服现有技术中存在的问题,本发明提供了一种基于多协议的用于文件下载的技术方案。
根据本发明的一个方面,提供了一种在用户节点中用于文件下载的方法,包括以下步骤:A.截获来自一个应用功能实体的、基于第一协议的、用于请求一个文件的请求消息;B.至少基于第二协议,下载所述文件;C.将下载的所述文件提供给所述应用功能实体。
根据本发明的文件下载方法的一个实施例,其中所截获的请求消息包括所请求的文件的定位信息;步骤B进一步包括:B1.根据所述文件的定位信息,向第一服务器进行查询,以确定所述文件的标识信息;B2.根据所述文件的标识信息,基于点对点技术在点对点网络中下载所述文件。
根据本发明的文件下载方法的一个实施例,其中步骤B2进一步包括:B21.根据所述文件的标识信息,向第二服务器进行查询,以获取拥有所述文件的其他节点的寻址信息;B22.如果存在拥有所述文件的其他点对点节点,根据所述寻址信息、基于点对点技术从所述其他点对点节点下载所述文件。
根据本发明的文件下载方法的一个实施例,其中第一协议包括超文本传输协议或文件传输协议,第二协议包括基于点对点技术的协议。
上述方法在许多情况下可以提高文件下载速度,使得用户感受大大提升。而且,给用户的感受是:下载是由发起请求的应用功能实体完成的。对于深受“盗链”技术之苦的服务商而言,这是值得赞赏的。
根据本发明的另一个方面,提供了一种在用户节点中用于文件下载的下载装置,包括:第一获取装置,用于截获来自一个应用功能实体的、基于第一协议的、用于请求一个文件的请求消息;第一装置,用于至少基于第二协议,下载所述文件;第一提供装置,用于将下载的所述文件提供给所述应用功能实体。
根据本发明的另一个方面,提供了一种客户端软件程序,其包括用于实现上述方法的各步骤的指令代码。
根据本发明的另一个方面,提供了一种存储介质,其存储了用于实现上述方法的各步骤的指令代码。
通过使用本发明提供的方法、装置、软件、存储介质,客户端基于第一协议从网络中下载文件时可以获得较传统服务器-客户端架构下更快的下载速度,从而提高了用户体验。
附图说明
参考下面的图和说明,将更好地理解该系统。图中的元件不一定按比例绘制,而是重点用于说明典型模型的原理。在图中,贯穿不同的示图,类似的参考标号表示对应的特征。
图1示出了根据本发明一个实施例的网络架构;
图2示出了根据本发明一个实施例的在用户节点中用于文件下载的方法流程图;
图3示出了根据本发明的一个实施例的文件下载方法的一个步骤的流程图;
图4示出了根据本发明的一个实施例的文件下载方法的一个子步骤的流程图;
图5示出了根据本发明的一个实施例的文件下载过程中的信号穿越的流程图;
图6示出了根据本发明的一个实施例的下载装置的结构框图。
具体实施方式
图1示出了根据本发明一个实施例的网络架构。如图所示,网络中包括第一服务器群100、第二服务器群200、点对点客户端网络300以及一个提供文件下载的服务器55。用户终端301也是点对点客户端网络300的一份子。
第一服务器群100包括至少一个第一服务器,在本文中,各第一服务器分别用100~200中的一个自然数表示,例如101、199、等。
第二服务器群200包括至少一个第二服务器,在本文中,各第二服务器分别用200~300中的一个自然数表示,例如201、299、等。
点对点客户端网络300由安装并运行本发明所提供的客户端软件的用户终端组成,每一个这样的用户终端由300~400中的一个自然数表示,例如301、399、等。
图2示出了根据本发明一个实施例的在用户节点中用于文件下载的方法流程图。如图所示,该方法包括三个步骤S1、S2、S3。以下结合图1、图2对该实施例中的方法加以说明。
例如,客户端301中运行两个软件程序55、66(图中未示出)。其中,软件程序55用于下载并使用网络中的文件,例如但不限于浏览器页面内嵌的媒体播放器,用于下载并播放网络中的媒体文件。例如但不限于,服务器44提供文件下载、视频文件点播等服务。通常,采用服务器-客户端架构的文件下载服务都是基于一种第一协议的,所述第一协议可以是超文本传输协议,也可以是文件传输协议。当使用客户端301的用户通过软件程序55点播了服务器44中的一个视频文件71(图中未示出),软件程序55将发出一个基于第一协议的请求消息,用于请求视频文件71。因为服务器44的带宽、下载负荷等因素的制约,文件71的下载速度可能较慢。尤其是在视频点播、直播等服务时,容易出现播放中断、等待等现象,从而影响用户体验。软件程序66为本发明所提供的客户端软件,其可以用于对软件程序55的下载进行加速。该实施例中的文件下载方法,其各步骤均是由客户端301通过运行软件程序66来执行的。在下文中,如无特别声明,用户终端、终端、客户端、用户节点等术语均指代安装并运行了本发明所提供的客户端软件66的客户端。在下文中,均以用户终端301通过运行软件程序66来下载文件71为例进行说明。
在步骤S1中,用户节点301通过运行软件程序66截获来自软件程序55的、基于第一协议的、用于请求文件71的请求消息。
具体地,用户节点301可以对所有向外发出的基于第一协议的请求消息进行侦测,并将请求的内容满足特定类型,例如视频文件,的请求消息截获。
在步骤S2中,用户节点301将至少基于第二协议,下载文件71。这里的第二协议包括基于点对点技术的协议,也就是说,客户端301将通过软件程序66在点对点客户端网络300中下载文件71。另外,软件程序66还可以基于第一协议,从服务器44或者其他拥有文件71的服务器来下载文件71。这样,当点对点客户端网络300中能够提供文件71的下载时,客户端301下载文件71的速度往往相比于仅基于第一协议从服务器下载文件71的速度要高,甚至高出几倍。
在步骤S3中,用户节点301通过运行软件程序66将所下载的文件71的内容提供给软件程序55,并被存储于存储器中。例如,所下载的文件71的内容可以被存储在随机接入存储器(RAM)和/或只读存储器(ROM),软件程序55可以读取存储器中的数据从而播放得到的文件71的内容。
通常,来自软件程序55的用于请求文件71的请求消息包括文件71的定位信息,例如文件71的统一资源定位符(URL)。在步骤S2中,用户节点301将根据这个统一资源定位符,到点对点客户端网络300中下载文件71。内嵌了软件程序的55的浏览器的地址栏显示的仍然是文件71在服务器44的统一资源定位符,因此用户的感受是所下载的文件数据全部是来自于服务器44。这对拥有服务器44并提供相应服务的服务商而言,不会带来任何利益的损害。因此,对于各种视频网站或者其他类型的网络文件下载服务商而言,软件程序66的大量使用也是受欢迎的,或者至少是不排斥的。
根据本发明的一个实施例,下载时的文件分割具有以下特点:每个文件被根据第一协议,例如HTTP协议的特点,分割成一个或多个分块(block);每个分块包括多个大小相同的分片(piece);各分片包括多个大小相同的子分片(subpiece)。具体地,子分片的大小可以取为例如1KB(1000字节),基于点对点技术下载时是以子分片为单位的。分片的大小可以取为例如128KB,基于第一协议从服务器44或者其他服务器下载文件时是以分片为单位的。分块包括多个分片,因而其大小为分片大小的整数倍,例如分块的大小可以取为2MB。通常,对一个文件的划分是从文件开头部分开始逐分块进行划分,因此,该文件的最后一个分块可能较小,而除了最后一个分块之外的其他分块大小一致。本领域技术人员应能理解,上述分块、分片、子分片的大小均是示例性而非限制性的。
图3示出了根据本发明的一个实施例的文件下载方法的一个步骤的流程图。如图3所示,在该实施例中,前述步骤S2进一步包括两个子步骤S21和S22。
在子步骤S21中,用户节点301将根据文件71的定位信息,例如统一资源定位符,向第一服务器群100进行查询,以确定文件71的标识信息。
在子步骤S22中,用户节点301将根据文件71的标识信息,基于点对点技术在点对点网络300中下载文件71。
具体地,这里的标识信息可以包括文件的资源标识符(RID),亦即整个文件的数字摘要值。通常,一个文件的数字摘要值是采用散列函数,例如MD5函数或SHA1函数,对该文件进行变换得到的结果。因为数字摘要值与文件内容之间具有良好的一一对应的特性,因此常被用作点对点技术中的检索条件。
第一服务器群100用于文件检索,其存储的索引信息包括以下的一种或多种:文件定位信息(例如URL)至标识信息(例如RID)的索引、文件的标识信息至定位信息的索引、文件头部预定长度内容的数字摘要值以及文件长度至标识信息的索引。
根据本发明的一个实施例,第一服务器群100存储的信息还可能包括一个文件的各分块的数字摘要值,这些数字摘要值与该文件的标识信息(资源标识符)或定位信息(统一资源定位符)相关联。
在步骤S21中,用户节点301向第一服务器群100查询,不仅确定文件71的标识信息,还确定文件71的各分块的数字摘要值。
在步骤S22中,用户节点301将基于点对点技术在点对点网络300中下载文件71,其中,用户节点301将根据所确定的各分块的数字摘要值对下载的各分块的准确性进行校验。如果校验无误,则用户节点301将保存下载的分块,并继续下载直至得到完整的文件71。
随着时间的变化,在服务器44中,文件与定位信息(统一资源定位符)之间的对应关系可能发生变化,从而第一服务器群100存储的文件的定位信息与文件的标志信息或各分块的数字摘要值之间的索引信息可能是错误的。这样,在步骤S22中,用户节点301根据查询到的各分块的数字摘要值对下载的各分块进行校验时将发生错误,亦即根据下载的分块计算出的数字摘要值与查询到的该分块的数字摘要值不匹配。用户节点301对每一个下载的分块执行校验,当发生这样的校验错误的分块数达到一个预定数目,例如5个,因为此时可以判断为第一服务器群100存储的索引信息是错的,用户节点301将放弃继续在点对点网络中下载。然后,用户节点301将根据文件71的定位信息从服务器44重新下载完整的文件71,并将根据重新下载的文件71更新其标识信息和各分块的数字摘要值,并将这些更新的信息报告给第一服务器群100。第一服务器群100将根据这些信息来更新所存储的索引信息。
根据本发明的一个实施例,第一服务器群100存储了文件头部预定长度内容的数字摘要值以及文件长度至标识信息的索引信息。在用户节点301通过软件程序66执行的文件下载方法的步骤S2中包括:根据文件71的定位信息,从服务器44下载所述预定长度的头部内容,确定该头部的数字摘要值以及文件长度,并根据该头部的数字摘要值以及文件长度向第一服务器群进行查询,以确定文件71的标识信息。通常,这样的操作出现在文件的定位信息与文件内容不匹配或者两者的对应关系发生变化的情况下。
根据本发明的一个实施例,第一服务器群100分为多组,各组第一服务器所存储的索引信息分别与不同的文件相关联。每一组包括至少一个第一服务器。例如,第一服务器群100包括两个组,第一组包括第一服务器101,第二组包括第一服务器102。一种对索引信息进行划分的方式如下:将文件的数字摘要值对n取模,其中n是第一服务器群100的分组数量;与模值为0的数字摘要值有关的索引信息存储在第一组第一服务器中;与模值为1的数字摘要值有关的索引信息存储于第二组第一服务器中;以此类推,与模值为n-1的数字摘要值有关的索引信息存储于第n组第一服务器中。这样,所有文件的相关索引信息被比较平均地存储于各组第一服务器中,从而可以降低单个第一服务器的负荷,由整个第一服务器群100来承担索引信息查询工作。本领域技术人员应能理解,上述第一服务器群100的分组方式、每组的服务器数量、索引信息的分组存储方式均为示例性而非限制性的。
根据本发明的一个实施例,由用户节点301中运行的软件程序66所执行的操作还包括这样一个步骤:确定文件71的标识信息及其他相关信息,例如文件71的定位信息、文件71的预定长度头部内容的数字摘要值以及文件71的长度信息、等,并将这些信息提供给第一服务器群100。第一服务器群100将根据这些信息建立与文件71有关的各种索引关系。通常,这一步骤是当用户节点301是第一个请求下载文件71的用户的情况下发生的,因为此时第一服务器群100中没有任何关于文件71的索引信息。不言而喻地,用户节点301在执行这一步骤之前还包括:根据请求消息中的文件71的定位信息,从服务器下载完整的文件71。因为在没有现成的索引关系可供检索的情况下,文件71的标识信息及其他相关信息均需要完整的文件71才能得以确定。
图4示出了根据本发明的一个实施例的文件下载方法的一个子步骤的流程图。如图4所示,在该实施例中,前述子步骤S22进一步包括两个子步骤S221和S222。
在子步骤S221中,用户节点301将根据文件71的标识信息,例如整个文件的数字摘要值,向第二服务器群200进行查询,以获取拥有文件71的全部或部分内容的其他节点的寻址信息。
在子步骤S222中,如果存在拥有文件71的全部或部分内容的其他节点,用户节点301将根据其寻址信息,基于点对点技术从这些节点下载文件71。
第二服务器群200用于用户索引,其存储有与文件有关的用户索引列表。一个文件的用户索引列表包括该文件的标识信息和拥有该文件全部或部分内容的用户节点的寻址信息。用户终端301通过第二服务器群200索引处于点对点用户终端网络300之中的拥有文件71的其他用户节点并根据所引结果进行下载。
根据本发明的一个实施例,第二服务器群200分为多组,各组第二服务器分别用于索引拥有不同文件的用户节点。具体地,第二服务器的分组数量可以与第一服务器的分组数量相同,每一组第二服务器分别对应于一组第一服务器。第二服务器中的用户索引列表的划分可以采用与第一服务器中的索引信息相同的划分方式,例如:将文件的数字摘要值对n取模,其中n是第二服务器群200的分组数量;与模值为0的数字摘要值对应的文件有关的用户索引列表存储在第一组第二服务器中;与模值为1的数字摘要值对应的文件有关的用户索引列表存储于第二组第二服务器中;以此类推,与模值为n-1的数字摘要值对应的文件有关的用户索引列表存储于第n组第二服务器中。这样,所有文件的用户索引列表被比较平均地存储于各组第二服务器中,从而可以降低单个第二服务器的负荷,由整个第二服务器群200来承担用户索引工作。
每一组可以包括多个第二服务器。例如,第一组第二服务器包括服务器201、202、203,对应于第一组第一服务器;第二组第二服务器包括服务器211、212、213,对应于第二组第一服务器;第n组第二服务器包括服务器2(n-1)1、2(n-1)2、2(n-1)3;等。对于第一组第二服务器,其中的各服务器201、202、203可以分别设置于不同的网络区域;则处于某一网络区域的用户节点可以优先地向该区域内的第二服务器查询用户索引列表,以利于节约整个网络的资源。其余的各组第二服务器亦可以采用类似的设置。
因为用户节点所拥有的文件会随着时间变化,相应地,第二服务器群200中的用户索引列表也需随时间而更新。
一种可行的方案是由各用户节点定期地或者周期性地向第二服务器报告所拥有的文件的标识信息。其中,用户节点中的各文件也根据与第二服务器同样的分组方式进行分组,用户节点将有关于各组文件的存在、更新的信息分别报告给各组第二服务器。例如,用户节点301拥有文件71至文件75的全部或部分内容,其中文件71、73、75的用户索引列表存储于第一组第二服务器,而文件72、74的用户索引列表存储于第二组第二服务器;用户节点301可以从第一组中选择一个第二服务器,例如201,从第二组中选择一个第二服务器,例如211,并周期性地向这两个第二服务器报告;报告的内容可以包括用户节点301所拥有属于该组的文件的标识信息,例如,发往第二服务器201的报告包括文件71、73、75的数字摘要值,发往第二服务器211的报告包括文件72、74的数字摘要值。第二服务器将根据接收到的报告来维护及更新所存储的用户索引列表。
优选地,各用户节点周期性地向第二服务器报告所拥有的文件的变化信息,也就是采用增量报告模式。例如,当用户节点301长期拥有文件71、73、75,其发往第二服务器201的报告只需指示文件没有变化;如果用户节点301中的文件71被删除,在下一次发往第二服务器201的报告中,只需指示文件71已被删除;如果用户节点301中增加了属于第一组的文件77,在下一次发往第二服务器201的报告中只需指示增加了文件77;上述变化信息可以包括文件的数字摘要值和一个与其相关联的表示增加/删除的标识符,例如数字0或1。第二服务器将根据接收到的变化信息以及所存储的用户索引列表来进行维护和更新。在用户节点所拥有的文件数量比较多的情况下,采用增量报告模式可以显著地降低报告的开销。
当用户节点301向一组第二服务器中的所选择的那一个第二服务器,例如第一组中的第二服务器201,进行报告时,用户节点301报告的信息与第二服务器201中存储的用户索引列表的内容可能出现不匹配的现象而发生错误,当连续发生错误超过一个预定时间后,用户节点301可以从第一组中重新选择一个第二服务器,例如第二服务器202,并开始向第二服务器202报告所拥有的属于第二组的文件的标识信息或变化信息。
本领域技术人员应能理解,上述用户节点的报告方式、第二服务器中用户索引列表的更新方式均为示例性而非限制性。
图5示出了根据本发明的一个实施例的文件下载过程中的信号穿越的流程图。如图所示,在该实施例中,存在一个第二用户节点302,其是一个内网用户,通过网络地址转换(NAT)服务器82连接到广域网,服务器88是与用户节点302相关联的穿越服务器。类似地,用户节点302也是一个内网用户,通过NAT服务器81连接到广域网。
Internet最初的地址体系是每个节点有一个唯一不变的全局地址,可以通过该地址直接与任何其它的节点进行通信,而现如今,该地址体系已经被新的实际上广泛使用的地址体系所替换,新的地址体系是由全局地址域和通过NAT接入全局地址域的大量私有地址域组成。在新的地址体系中,只有在全局地址域中的节点可以在网络中很容易地与任何其它的拥有全局地址的节点通信,因为该节点拥有全局的、唯一的、可路由的地址。在私有网络中的节点,亦即内网用户,可以与在同一个私有网络中的其它节点进行通信,并且在通常情况下可以向全局地址中的节点发起TCP连接或发送UDP数据包。NAT设备在此扮演的角色就是为从内网向公网发起的连接的节点分配临时的转发片段(session),将来自内网的数据包的端点(endpoint,地址和端口)转换为公网的端点,将来自公网的数据包的端点转换为内网的端点,同时NAT将屏蔽所有未经授权的来自公网的数据包。
为了能够允许来自广域网的访问,用户节点302可以选择一个具有全局地址的节点,例如穿越服务器88,将用户节点302的内网端点(例如10.0.0.1:7777)、其关联的NAT服务器82的外网端点(例如222.0.0.1:8000)告知该穿越服务器88。用户节点302可以定期地,例如每隔15秒,向穿越服务器88发送报文;穿越服务器88可以以较低的周期,例如每隔2分钟,向用户节点302反馈报文;从而使得这一穿越连接得以维持。这样,来自广域网的对用户节点302的访问就可以经由穿越服务器88的转发而被允许。用户节点302向第二服务器群200报告并被第二服务器群200存储的寻址信息应包括:用户节点302的内网端点、NAT服务器82的外网端点以及穿越服务器88的端点(例如200.0.0.8:9000)。
可选地,用户节点302所选择的穿越服务器88是一个具有全局地址的用户节点,其也安装并运行了本发明所提供的软件程序66。
用户节点301运行软件程序66,将使用一个内网端点(例如10.0.0.2:7007)与外界通信。用户节点301通过与该内网端点相关联的NAT服务器81的一个外网端点(例如233.0.0.1:8000)接入广域网。
在前述步骤S221中,用户节点301将从第二服务器群200索引到用户节点302的寻址信息。用户节点301从点对点网络中下载文件71包括从用户节点302下载文件71的内容。
首先,用户节点301将向穿越服务器88发送用于请求与用户节点302建立点对点连接的报文511。该报文511应包括用户节点302的内网端点(10.0.0.1:7777)以及与其相关联的NAT服务器的外网端点(222.0.0.1:8000)。
然后,穿越服务器88将向用户节点302发送一个报文521。该报文包括用户节点301的寻址信息。接收到该报文后,用户节点302就得知用户节点301试图与其建立连接。
然后,用户节点302将向用户节点301发送一个请求建立连接的报文531。
如果用户节点301是一个外网用户,或者与用户节点302的内网端点10.0.0.1:7777相关联的NAT服务器外网端点222.0.0.1:8000至用户节点301的通道已经打通,则用户节点301可以收到该报文531。于是,用户节点301与302之间的连接建立,用户节点301可以从用户节点302下载文件71的内容。
在该实施例中,用户节点301是一个内网用户,与用户节点302的内网端点10.0.0.1:7777相关联的NAT服务器82的外网端点222.0.0.1:8000至用户节点301的通道可能并未打通,于是NAT服务器81可能丢弃报文531,用户节点301和302仍无法建立连接。优选地,用户节点301在发送到穿越服务器88的报文511时,将同时向NAT服务器82发送一个“握手”报文512,该报文521包括NAT服务器82的外网端点222.0.0.1:8000,以打通该外网端点与用户节点301之间的连接。则当用户节点302通过服务器82的该外网端点发送报文531时,NAT服务器81将根据已经打通的连接将该报文531转发给用户节点301。于是,用户节点301与302之间的连接建立,用户节点301可以从用户节点302下载文件71的内容。
图6示出了根据本发明一个实施例的下载装置的结构框图。如图所示,下载装置600包括:第一获取装置601、第一装置602、第一提供装置603。以下结合图1、图2、图3对该实施例中的下载装置加以说明。
例如,客户端301中运行了软件程序55,其用于下载并使用网络中的文件,例如但不限于浏览器页面内嵌的媒体播放器,用于下载并播放网络中的媒体文件。例如但不限于,服务器44提供文件下载、视频文件点播等服务。通常,采用服务器-客户端架构的文件下载服务都是基于一种第一协议的,所述第一协议可以是超文本传输协议,也可以是文件传输协议。当使用客户端301的用户通过软件程序55点播了服务器44中的一个视频文件71(图中未示出),软件程序55将发出一个基于第一协议的请求消息,用于请求视频文件71。下载装置600通常设置于各用户终端,例如用户节点301中,其可以用于对软件程序55的下载进行加速。以下均以用户节点301中的下载装置600下载文件71为例进行说明。
第一获取装置601用于截获来自软件程序55的、基于第一协议的、用于请求文件71的请求消息。
具体地,第一获取装置601可以对所有向外发出的基于第一协议的请求消息进行侦测,并将请求的内容满足特定类型,例如视频文件,的请求消息截获。
第一装置602用于至少基于第二协议,下载文件71。这里的第二协议包括基于点对点技术的协议,也就是说,第一装置602将在点对点客户端网络300中下载文件71。另外,第一装置602还可以基于第一协议,从服务器44或者其他拥有文件71的服务器来下载文件71。这样,当点对点客户端网络300中能够提供文件71的下载时,客户端301下载文件71的速度往往相比于仅基于第一协议从服务器下载文件71的速度要高,甚至高出几倍。
第一提供装置603用于将所下载的文件71的内容提供给软件程序55,并被存储于存储器中。例如,所下载的文件71的内容可以被存储在随机接入存储器(RAM)和/或只读存储器(ROM),软件程序55可以读取存储器中的数据从而播放得到的文件71的内容。
通常,来自软件程序55的用于请求文件71的请求消息包括文件71的定位信息,例如文件71的统一资源定位符(URL)。用户节点301将根据这个统一资源定位符,到点对点客户端网络300中下载文件71。内嵌了软件程序的55的浏览器的地址栏显示的仍然是文件71在服务器44的统一资源定位符,因此用户的感受是所下载的文件数据全部是来自于服务器44。这对拥有服务器44并提供相应服务的服务商而言,不会带来任何利益的损害。因此,对于各种视频网站或者其他类型的网络文件下载服务商而言,下载装置600的大量使用也是受欢迎的,或者至少是不排斥的。
根据本发明的一个实施例,下载时的文件分割具有以下特点:每个文件被根据第一协议,例如HTTP协议的特点,分割成一个或多个分块(block);每个分块包括多个大小相同的分片(piece);各分片包括多个大小相同的子分片(subpiece)。具体地,子分片的大小可以取为例如1KB(1000字节),基于点对点技术下载时是以子分片为单位的。分片的大小可以取为例如128KB,基于第一协议从服务器44或者其他服务器下载文件时是以分片为单位的。分块包括多个分片,因而其大小为分片大小的整数倍,例如分块的大小可以取为2MB。通常,对一个文件的划分是从文件开头部分开始逐分块进行划分,因此,该文件的最后一个分块可能较小,而除了最后一个分块之外的其他分块大小一致。本领域技术人员应能理解,上述分块、分片、子分片的大小均是示例性而非限制性的。
根据本发明的一个实施例,第一装置601包括标识信息查询装置604和第二装置605。
标识信息查询装置604用于根据文件71的定位信息,例如统一资源定位符,向第一服务器群100进行查询,以确定文件71的标识信息。
第二装置605用于根据文件71的标识信息,基于点对点技术在点对点网络300中下载文件71。
根据本发明的一个实施例,第一服务器群100存储的信息还可能包括一个文件的各分块的数字摘要值,这些数字摘要值与该文件的标识信息(资源标识符)或定位信息(统一资源定位符)相关联。
标识信息查询装置604向第一服务器群100查询,不仅确定文件71的标识信息,还确定文件71的各分块的数字摘要值。
第二装置605将基于点对点技术在点对点网络300中下载文件71。其中,下载装置600将根据所确定的各分块的数字摘要值对下载的各分块的准确性进行校验。如果校验无误,则下载装置600将保存下载的分块,并继续下载直至得到完整的文件71。
下载装置600对每一个下载的分块执行校验,当发生这样的校验错误的分块数达到一个预定数目,例如5个,因为此时可以判断为第一服务器群100存储的索引信息是错的,下载装置600将放弃继续在点对点网络中下载。然后,下载装置600将根据文件71的定位信息从服务器44重新下载完整的文件71,并将根据重新下载的文件71更新其标识信息和各分块的数字摘要值,并将这些更新的信息报告给第一服务器群100。第一服务器群100将根据这些信息来更新所存储的索引信息。
根据本发明的一个实施例,第一服务器群100存储了文件头部预定长度内容的数字摘要值以及文件长度至标识信息的索引信息。第一装置602将根据文件71的定位信息,从服务器44下载所述预定长度的头部内容,确定该头部的数字摘要值以及文件长度,并根据该头部的数字摘要值以及文件长度向第一服务器群进行查询,以确定文件71的标识信息。通常,这样的操作出现在文件的定位信息与文件内容不匹配或者两者的对应关系发生变化的情况下。
根据本发明的一个实施例,第一服务器群100分为多组,各组第一服务器所存储的索引信息分别与不同的文件相关联。每一组包括至少一个第一服务器。例如,第一服务器群100包括两个组,第一组包括第一服务器101,第二组包括第一服务器102。一种对索引信息进行划分的方式如下:将文件的数字摘要值对n取模,其中n是第一服务器群100的分组数量;与模值为0的数字摘要值有关的索引信息存储在第一组第一服务器中;与模值为1的数字摘要值有关的索引信息存储于第二组第一服务器中;以此类推,与模值为n-1的数字摘要值有关的索引信息存储于第n组第一服务器中。这样,所有文件的相关索引信息被比较平均地存储于各组第一服务器中,从而可以降低单个第一服务器的负荷,由整个第一服务器群100来承担索引信息查询工作。本领域技术人员应能理解,上述第一服务器群100的分组方式、每组的服务器数量、索引信息的分组存储方式均为示例性而非限制性的。
根据本发明的一个实施例,下载装置600还包括一个文件相关信息确定装置,该装置用于确定文件71的标识信息及其他相关信息,例如文件71的定位信息、文件71的预定长度头部内容的数字摘要值以及文件71的长度信息、等,并将这些信息提供给第一服务器群100。第一服务器群100将根据这些信息建立与文件71有关的各种索引关系。
根据本发明的一个实施例,第二装置605包括节点索引装置606和第三装置607。
节点索引装置606将根据文件71的标识信息,例如整个文件的数字摘要值,向第二服务器群200进行查询,以获取拥有文件71的全部或部分内容的其他节点的寻址信息。
第三装置607用于:如果存在拥有文件71的全部或部分内容的其他节点,根据其寻址信息,基于点对点技术从这些节点下载文件71。
第二服务器群200用于用户索引,其存储有与文件有关的用户索引列表。一个文件的用户索引列表包括该文件的标识信息和拥有该文件全部或部分内容的用户节点的寻址信息。用户终端301通过第二服务器群200索引处于点对点用户终端网络300之中的拥有文件71的其他用户节点并根据所引结果进行下载。
根据本发明的一个实施例,第二服务器群200分为多组,各组第二服务器分别用于索引拥有不同文件的用户节点。具体地,第二服务器的分组数量可以与第一服务器的分组数量相同,每一组第二服务器分别对应于一组第一服务器。第二服务器中的用户索引列表的划分可以采用与第一服务器中的索引信息相同的划分方式,例如:将文件的数字摘要值对n取模,其中n是第二服务器群200的分组数量;与模值为0的数字摘要值对应的文件有关的用户索引列表存储在第一组第二服务器中;与模值为1的数字摘要值对应的文件有关的用户索引列表存储于第二组第二服务器中;以此类推,与模值为n-1的数字摘要值对应的文件有关的用户索引列表存储于第n组第二服务器中。这样,所有文件的用户索引列表被比较平均地存储于各组第二服务器中,从而可以降低单个第二服务器的负荷,由整个第二服务器群200来承担用户索引工作。
每一组可以包括多个第二服务器。例如,第一组第二服务器包括服务器201、202、203,对应于第一组第一服务器;第二组第二服务器包括服务器211、212、213,对应于第二组第一服务器;第n组第二服务器包括服务器2(n-1)1、2(n-1)2、2(n-1)3;等。对于第一组第二服务器,其中的各服务器201、202、203可以分别设置于不同的网络区域;则处于某一网络区域的用户节点可以优先地向该区域内的第二服务器查询用户索引列表,以利于节约整个网络的资源。其余的各组第二服务器亦可以采用类似的设置。
因为用户节点所拥有的文件会随着时间变化,相应地,第二服务器群200中的用户索引列表也需随时间而更新。
一种可行的方案是由各用户节点定期地或者周期性地向第二服务器报告所拥有的文件的标识信息。其中,用户节点中的各文件也根据与第二服务器同样的分组方式进行分组。用户节点的下载装置600还包括一个报告装置,该报告装置将有关于各组文件的存在、更新的信息分别报告给各组第二服务器。例如,用户节点301拥有文件71至文件75的全部或部分内容,其中文件71、73、75的用户索引列表存储于第一组第二服务器,而文件72、74的用户索引列表存储于第二组第二服务器;用户节点301可以从第一组中选择一个第二服务器,例如201,从第二组中选择一个第二服务器,例如211,并周期性地向这两个第二服务器报告;报告的内容可以包括用户节点301所拥有属于该组的文件的标识信息,例如,发往第二服务器201的报告包括文件71、73、75的数字摘要值,发往第二服务器211的报告包括文件72、74的数字摘要值。第二服务器将根据接收到的报告来维护及更新所存储的用户索引列表。
优选地,各用户节点的下载装置600中的报告装置周期性地向第二服务器报告所拥有的文件的变化信息,也就是采用增量报告模式。报告装置发往第二服务器201的报告只需指示相对于上一次报告时发生变化的文件;所报告的变化信息可以包括文件的数字摘要值和一个与其相关联的表示增加/删除的标识符,例如数字0或1。第二服务器将根据接收到的变化信息以及所存储的用户索引列表来进行维护和更新。在用户节点所拥有的文件数量比较多的情况下,采用增量报告模式可以显著地降低报告的开销。
当用户节点301中的报告装置向一组第二服务器中的所选择的那一个第二服务器,例如第一组中的第二服务器201,进行报告时,报告的信息与第二服务器201中存储的用户索引列表的内容可能出现不匹配的现象而发生错误,当连续发生错误超过一个预定时间后,用户节点301的下载装置600可以从第一组中重新选择一个第二服务器,例如第二服务器202,并由报告装置开始向第二服务器202报告所拥有的属于第二组的文件的标识信息或变化信息。
本领域技术人员应能理解,上述用户节点的报告方式、第二服务器中用户索引列表的更新方式均为示例性而非限制性。
为了能够允许来自广域网的访问,用户节点302的下载装置600可以选择一个具有全局地址的节点,例如穿越服务器88,将用户节点302的内网端点(例如10.0.0.1:7777)、其关联的NAT服务器82的外网端点(例如222.0.0.1:8000)告知该穿越服务器88。用户节点302的下载装置600可以定期地,例如每隔15秒,向穿越服务器88发送报文;穿越服务器88可以以较低的周期,例如每隔2分钟,向用户节点302反馈报文;从而使得这一穿越连接得以维持。这样,来自广域网的对用户节点302的访问就可以经由穿越服务器88的转发而被允许。用户节点302的下载装置600向第二服务器群200报告并被第二服务器群200存储的寻址信息应包括:用户节点302的内网端点、NAT服务器82的外网端点以及穿越服务器88的端点(例如200.0.0.8:9000)。
可选地,用户节点302所选择的穿越服务器88是一个具有全局地址的用户节点,其也设置了下载装置600。
用户节点301的下载装置600将使用一个内网端点(例如10.0.0.2:7007)与外界通信。用户节点301的下载装置600通过与该内网端点相关联的NAT服务器81的一个外网端点(例如233.0.0.1:8000)接入广域网。
用户节点301的节点索引装置606将从第二服务器群200索引到用户节点302的寻址信息。用户节点301从点对点网络中下载文件71包括从用户节点302下载文件71的内容。
首先,用户节点301的第三装置607将向穿越服务器88发送用于请求与用户节点302建立点对点连接的报文511。该报文511应包括用户节点302的内网端点(10.0.0.1:7777)以及与其相关联的NAT服务器的外网端点(222.0.0.1:8000)。
然后,穿越服务器88将向用户节点302发送一个报文521。该报文包括用户节点301的寻址信息。接收到该报文后,用户节点302就得知用户节点301试图与其建立连接。
然后,用户节点302将向用户节点301发送一个请求建立连接的报文531。
如果用户节点301的第三装置607可以收到该报文531,则用户节点301与302之间的连接建立,用户节点301可以从用户节点302下载文件71的内容。
在该实施例中,用户节点301是一个内网用户,与用户节点302的内网端点10.0.0.1:7777相关联的NAT服务器82的外网端点222.0.0.1:8000至用户节点301的通道可能并未打通,于是NAT服务器81可能丢弃报文531,用户节点301和302仍无法建立连接。优选地,用户节点301的第三装置607在发送到穿越服务器88的报文511时,将同时向NAT服务器82发送一个“握手”报文512,该报文521包括NAT服务器82的外网端点222.0.0.1:8000,以打通该外网端点与用户节点301之间的连接。则当用户节点302通过服务器82的该外网端点发送报文531时,NAT服务器81将根据已经打通的连接将该报文531转发给用户节点301。于是,用户节点301与302之间的连接建立,用户节点301可以从用户节点302下载文件71的内容。
本领域技术人员应能理解,本发明中所称的装置既可以采用软件功能模块来实现,也可以采用硬件模块来实现,还可以采用软硬件的结合来实现。
本领域技术人员应能理解,上述实施例均是示例性而非限制性的。在不同实施例中出现的不同技术特征可以进行组合,以取得有益效果。本领域技术人员在研究附图、说明书及权利要求书的基础上,应能理解并实现所揭示的实施例的其他变化的实施例。在权利要求书中,术语“包括”并不排除其他装置或步骤;不定冠词“一个”不排除多个;术语“第一”、“第二”用于标示名称而非用于表示任何特定的顺序。权利要求中的任何附图标记均不应被理解为对保护范围的限制。权利要求中出现的多个部分的功能可以由一个单独的硬件或软件模块来实现。某些技术特征出现在不同的从属权利要求中并不意味着不能将这些技术特征进行组合以取得有益效果。
Claims (24)
1.一种在用户节点中用于文件下载的方法,包括以下步骤:
A.截获来自一个应用功能实体的、基于第一协议的、用于请求一个文件的请求消息;
B.至少基于包括点对点技术的第二协议,下载所述文件;
C.将下载的所述文件提供给所述应用功能实体;
其中,所述请求消息包括所述文件的定位信息;
所述步骤B包括:
B1.根据所述文件的定位信息,向第一服务器进行查询,以确定所述文件的标识信息;
B2.根据所述文件的标识信息,基于点对点技术在点对点网络中下载所述文件;
所述步骤B2包括:
B21.根据所述文件的标识信息,向第二服务器进行查询,以获取拥有所述文件的除该用户节点以外的其他节点的寻址信息;
B22.如果存在拥有所述文件的除该用户节点以外的其他点对点节点,根据所述寻址信息、基于点对点技术从所述除该用户节点以外的其他点对点节点下载所述文件;
所述步骤B22包括从一个第二用户节点下载所述文件,所述第二用户节点是一个内网用户,第二用户节点的寻址信息包括其内网端点、其NAT服务器的外网端点、与其关联的穿越服务器的外网端点,所述步骤B22具体包括:
i.向第二用户节点所关联的穿越服务器发送点对点连接请求消息,该连接请求消息包括第二用户节点的内网端点、其NAT服务器的外网端点;
ii.接收来自第二用户节点的关于点对点连接的消息,从而建立点对点连接。
2.根据权利要求1所述的方法,其特征在于,所述文件被根据第一协议的特点分割为一个或多个分块,各分块包括多个分片,各分片包括多个子分片;所述步骤B2中以子分片为单位基于点对点技术进行下载。
3.根据权利要求2所述的方法,其特征在于,所述步骤B还包括:
-基于第一协议,以分片为单位下载所述文件。
4.根据权利要求1所述的方法,其特征在于,所述第一协议包括超文本传输协议或文件传输协议,所述第二协议包括基于点对点技术的协议。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述第一服务器存储有索引信息,所述索引信息包括以下至少一种:
定位信息至标识信息的索引、文件头部预定长度内容的数字摘要值和文件长度至标识信息的索引、标识信息至定位信息的索引;其中
当所述第一服务器存储的索引信息包括文件头部预定长度内容的数字摘要值和文件长度至标识信息的索引时,所述步骤B包括:
-根据所述文件的定位信息,下载所述预定长度的头部内容,确定所述头部的数字摘要值以及文件长度,并根据所述头部的数字摘要值以及文件长度向第一服务器进行查询,以确定所述文件的标识信息。
6.根据权利要求1至4中任一项所述的方法,其特征在于,所述第一服务器分为多组,各组第一服务器所存储的信息分别与不同的文件标识信息相关联。
7.根据权利要求6所述的方法,其特征在于,还包括步骤:
-确定所述文件的标识信息及其他相关信息,并将这些信息提交给所述第一服务器。
8.根据权利要求1所述的方法,其特征在于,所述第二服务器分为多组,各组第二服务器分别用于索引拥有不同文件的节点,所述方法还包括步骤:
-周期性地向各组第二服务器报告所述用户节点所拥有的文件的变化信息或者所拥有的所有文件的信息。
9.根据权利要求1所述的方法,其特征在于,所述用户节点是一个内网用户,所述步骤ii之前还包括一个步骤:
向第二用户节点的NAT服务器发送点对点连接请求消息,该连接请求消息包括所述第二用户节点的NAT服务器的外网端点。
10.根据权利要求1所述的方法,其特征在于,所述用户节点是一个内网用户,所述方法还包括步骤:
-选择一个穿越服务器,将所述用户节点的内网端点、所述用户节点的NAT服务器的外网端点告知该穿越服务器。
11.根据权利要求1所述的方法,其特征在于,所述穿越服务器是一个用户节点。
12.根据权利要求2或3中任一项所述的方法,其特征在于,所述步骤B1包括:从所述第一服务器获取所述文件的标识信息和各分块的数字摘要值;
所述方法还包括步骤:
-如果根据下载的分块计算出的数字摘要值与所述从第一服务器所获取的数字摘要值不匹配的分块数达到预定数目,则根据所述文件的定位信息重新下载完整的所述文件,并根据重新下载的所述文件更新其标识信息和各分块的数字摘要值,并将更新的所述文件的标识信息和各分块的数字摘要值报告给所述第一服务器。
13.一种在用户节点中用于文件下载的下载装置,包括:
第一获取装置,用于截获来自一个应用功能实体的、基于第一协议的、用于请求一个文件的请求消息;
第一装置,用于至少基于包括点对点技术的第二协议,下载所述文件;
第一提供装置,用于将下载的所述文件提供给所述应用功能实体;
其中,所述请求消息包括所述文件的定位信息;
所述第一装置包括:
标识信息查询装置,用于根据所述文件的定位信息,向第一服务器进行查询,以确定所述文件的标识信息;
第二装置,用于根据所述文件的标识信息,基于点对点技术在点对点网络中下载所述文件;
所述第二装置包括:
节点索引装置,用于根据所述文件的标识信息,向第二服务器进行查询,以获取拥有所述文件的除该用户节点以外的其他节点的寻址信息;
第三装置,如果存在拥有所述文件的除该用户节点以外的其他点对点节点,根据所述寻址信息、基于点对点技术从所述除该用户节点以外的其他点对点节点下载所述文件;
所述第三装置执行的操作包括从一个第二用户节点下载所述文件,所述第二用户节点是一个内网用户,第二用户节点的寻址信息包括其内网端点、其NAT服务器的外网端点、与其关联的穿越服务器的外网端点,所述第三装置还用于:
-向第二用户节点所关联的穿越服务器发送点对点连接请求消息,该连接请求消息包括第二用户节点的内网端点、其NAT服务器的外网端点;
-接收来自第二用户节点的关于点对点连接的消息,从而建立点对点连接。
14.根据权利要求13所述的下载装置,其特征在于,所述文件被根据第一协议的特点分割为一个或多个分块,各分块包括多个分片,各分片包括多个子分片;所述第二装置以子分片为单位基于点对点技术进行下载。
15.根据权利要求14所述的下载装置,其特征在于,所述第一装置还用于:
-基于第一协议,以分片为单位下载所述文件。
16.根据权利要求13所述的下载装置,其特征在于,所述第一协议包括超文本传输协议或文件传输协议,所述第二协议包括基于点对点技术的协议。
17.根据权利要求13至16中任一项所述的下载装置,其特征在于,所述第一服务器存储有索引信息,所述索引信息包括以下至少一种:
定位信息至标识信息的索引、文件头部预定长度内容的数字摘要值和文件长度至标识信息的索引、标识信息至定位信息的索引;其中
当所述第一服务器存储的索引信息包括文件头部预定长度内容的数字摘要值和文件长度至标识信息的索引时,所述第一装置还用于:
-根据所述文件的定位信息,下载所述预定长度的头部内容,确定所述头部的数字摘要值以及文件长度,并根据所述头部的数字摘要值以及文件长度向第一服务器进行查询,以确定所述文件的标识信息。
18.根据权利要求13至16中任一项所述的下载装置,其特征在于,所述第一服务器分为多组,各组第一服务器所存储的信息分别与不同的文件标识信息相关联。
19.根据权利要求18所述的下载装置,其特征在于,还包括
文件相关信息确定装置,用于确定所述文件的标识信息及其他相关信息,并将这些信息提交给所述第一服务器。
20.根据权利要求13所述的下载装置,其特征在于,所述第二服务器分为多组,各组第二服务器分别用于索引拥有不同文件的节点,所述下载装置还包括:
报告装置,用于周期性地向各组第二服务器报告所述用户节点所拥有的文件的变化信息或者所拥有的所有文件的信息。
21.根据权利要求13所述的下载装置,其特征在于,所述用户节点是一个内网用户,所述下载装置还用于:
向第二用户节点的NAT服务器发送点对点连接请求消息,该请求消息包括所述第二用户节点的NAT服务器的外网端点。
22.根据权利要求13所述的下载装置,其特征在于,所述用户节点是一个内网用户,所述下载装置还用于:
-选择一个穿越服务器,将所述用户节点的内网端点、所述用户节点的NAT服务器的外网端点告知该穿越服务器。
23.根据权利要求13所述的下载装置,其特征在于,所述穿越服务器是一个用户节点。
24.根据权利要求14或15中任一项所述的下载装置,其特征在于,所述标识信息查询装置还用于:从所述第一服务器获取所述文件的标识信息和各分块的数字摘要值;
所述下载装置还用于:
-如果根据下载的分块计算出的数字摘要值与所述从第一服务器所获取的数字摘要值不匹配的分块数达到预定数目,则根据所述文件的定位信息重新下载完整的所述文件,并根据重新下载的所述文件更新其标识信息和各分块的数字摘要值,并将更新的所述文件的标识信息和各分块的数字摘要值报告给所述第一服务器。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910199799.0A CN102082807B (zh) | 2009-12-01 | 2009-12-01 | 基于多协议的文件传输方法及装置 |
US12/955,697 US20110131336A1 (en) | 2009-12-01 | 2010-11-29 | Method and device for file transmission based on multiple protocols |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910199799.0A CN102082807B (zh) | 2009-12-01 | 2009-12-01 | 基于多协议的文件传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102082807A CN102082807A (zh) | 2011-06-01 |
CN102082807B true CN102082807B (zh) | 2014-11-05 |
Family
ID=44069693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910199799.0A Expired - Fee Related CN102082807B (zh) | 2009-12-01 | 2009-12-01 | 基于多协议的文件传输方法及装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20110131336A1 (zh) |
CN (1) | CN102082807B (zh) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8099178B2 (en) * | 2005-08-22 | 2012-01-17 | Trane International Inc. | Building automation system facilitating user customization |
US8055387B2 (en) * | 2005-08-22 | 2011-11-08 | Trane International Inc. | Building automation system data management |
US8055386B2 (en) * | 2005-08-22 | 2011-11-08 | Trane International Inc. | Building automation system data management |
US8050801B2 (en) * | 2005-08-22 | 2011-11-01 | Trane International Inc. | Dynamically extensible and automatically configurable building automation system and architecture |
US8180824B2 (en) | 2009-02-23 | 2012-05-15 | Trane International, Inc. | Log collection data harvester for use in a building automation system |
US9258201B2 (en) * | 2010-02-23 | 2016-02-09 | Trane International Inc. | Active device management for use in a building automation system |
US8793022B2 (en) | 2010-02-26 | 2014-07-29 | Trane International, Inc. | Automated air source and VAV box association |
US8219660B2 (en) * | 2010-02-26 | 2012-07-10 | Trane International Inc. | Simultaneous connectivity and management across multiple building automation system networks |
CN103457976B (zh) * | 2012-06-01 | 2017-09-29 | 腾讯科技(深圳)有限公司 | 数据下载方法和系统 |
CN103259816B (zh) * | 2012-02-17 | 2018-05-08 | 腾讯科技(深圳)有限公司 | 一种下载资源的方法、终端、服务器及系统 |
US8984100B2 (en) | 2012-02-17 | 2015-03-17 | Tencent Technology (Shenzhen) Company Limited | Data downloading method, terminal, server, and system |
ES2904664T3 (es) * | 2013-06-20 | 2022-04-05 | Bothnic Information Co Ltd | Procedimiento de descarga de una aplicación |
CN104283933B (zh) * | 2013-07-12 | 2018-11-23 | 腾讯科技(深圳)有限公司 | 下载数据的方法、客户端及系统 |
CN104426975A (zh) * | 2013-09-03 | 2015-03-18 | 北京网秦天下科技有限公司 | 用于数据同步的方法、设备和系统 |
CN103455599A (zh) * | 2013-09-03 | 2013-12-18 | 北京网秦天下科技有限公司 | 用于数据同步的方法、设备和系统 |
US9762562B2 (en) * | 2013-09-13 | 2017-09-12 | Facebook, Inc. | Techniques for multi-standard peer-to-peer connection |
US10097628B2 (en) * | 2014-01-29 | 2018-10-09 | Microsoft Technology Licensing, Llc | Resource affinity in a dynamic resource pool |
CN104915350A (zh) * | 2014-03-12 | 2015-09-16 | 北京风行在线技术有限公司 | 一种基于p2p方式获取多媒体文件的方法与装置 |
CN104158868B (zh) * | 2014-08-06 | 2017-12-08 | 新华三技术有限公司 | 一种文件传输方法和管理服务器 |
CN104283955A (zh) * | 2014-09-30 | 2015-01-14 | 百度在线网络技术(北京)有限公司 | 一种浏览器、服务器、下载系统及下载方法 |
US10269235B2 (en) | 2016-08-26 | 2019-04-23 | Trane International Inc. | System and method to assist building automation system end user based on alarm parameters |
CN109347968B (zh) * | 2018-11-07 | 2021-09-24 | 网宿科技股份有限公司 | 一种下载资源文件的数据块的方法、设备和系统 |
CN110300170A (zh) * | 2019-06-28 | 2019-10-01 | 杭州复杂美科技有限公司 | 区块链分布式存储下载方法、设备和存储介质 |
CN111193772B (zh) * | 2019-12-05 | 2022-04-05 | 商客通尚景科技(上海)股份有限公司 | 文件下载方法及服务器 |
CN113037762B (zh) * | 2021-03-18 | 2023-07-04 | 广州市百果园信息技术有限公司 | 通信方法、装置、设备及存储介质 |
CN114338700A (zh) * | 2021-12-23 | 2022-04-12 | 杭州星布智能科技有限公司 | 局域网点对点分布式存储方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1937503A (zh) * | 2005-09-23 | 2007-03-28 | 千橡世纪科技发展(北京)有限公司 | 一种加速网页内容下载的系统和方法 |
CN101030869A (zh) * | 2007-02-16 | 2007-09-05 | 陈勇 | 网络资源下载方法和装置 |
CN101039187A (zh) * | 2006-03-17 | 2007-09-19 | 腾讯科技(深圳)有限公司 | 一种数据下载的方法及其系统 |
CN101075242A (zh) * | 2006-12-25 | 2007-11-21 | 腾讯科技(深圳)有限公司 | 获取网页中网页元素的系统及方法 |
CN101141459A (zh) * | 2007-10-25 | 2008-03-12 | 南京远古科技有限公司 | 使用http与p2p相结合实现数据传输或流媒体传输的方法 |
CN101247402A (zh) * | 2008-03-17 | 2008-08-20 | 腾讯科技(深圳)有限公司 | 多媒体文件的下载播放系统和方法 |
WO2009101443A3 (en) * | 2008-02-15 | 2009-11-26 | Digital Distribution Networks Limited | Distribution of digital content |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6477522B1 (en) * | 1999-06-10 | 2002-11-05 | Gateway, Inc. | Dynamic performance based server selection |
US7769881B2 (en) * | 2003-01-24 | 2010-08-03 | Hitachi, Ltd. | Method and apparatus for peer-to peer access |
US7593922B1 (en) * | 2003-06-13 | 2009-09-22 | At&T Intellectual Property, I. L.P. | Method and system for providing delivery of segmented data files |
CN101390369B (zh) * | 2006-02-28 | 2012-11-14 | 国际商业机器公司 | 点对点通信的检测和控制 |
WO2010033750A2 (en) * | 2008-09-18 | 2010-03-25 | Jeffrey Harrang | Systems and methods for automatic detection and coordinated delivery of burdensome media content |
WO2010060207A1 (en) * | 2008-11-26 | 2010-06-03 | Calgary Scientific Inc. | Data communication in a picture archiving and communications system network |
-
2009
- 2009-12-01 CN CN200910199799.0A patent/CN102082807B/zh not_active Expired - Fee Related
-
2010
- 2010-11-29 US US12/955,697 patent/US20110131336A1/en not_active Abandoned
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1937503A (zh) * | 2005-09-23 | 2007-03-28 | 千橡世纪科技发展(北京)有限公司 | 一种加速网页内容下载的系统和方法 |
CN101039187A (zh) * | 2006-03-17 | 2007-09-19 | 腾讯科技(深圳)有限公司 | 一种数据下载的方法及其系统 |
CN101075242A (zh) * | 2006-12-25 | 2007-11-21 | 腾讯科技(深圳)有限公司 | 获取网页中网页元素的系统及方法 |
CN101030869A (zh) * | 2007-02-16 | 2007-09-05 | 陈勇 | 网络资源下载方法和装置 |
CN101141459A (zh) * | 2007-10-25 | 2008-03-12 | 南京远古科技有限公司 | 使用http与p2p相结合实现数据传输或流媒体传输的方法 |
WO2009101443A3 (en) * | 2008-02-15 | 2009-11-26 | Digital Distribution Networks Limited | Distribution of digital content |
CN101247402A (zh) * | 2008-03-17 | 2008-08-20 | 腾讯科技(深圳)有限公司 | 多媒体文件的下载播放系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102082807A (zh) | 2011-06-01 |
US20110131336A1 (en) | 2011-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102082807B (zh) | 基于多协议的文件传输方法及装置 | |
EP1886470B1 (en) | Method and system for object prediction | |
US8458250B2 (en) | Request routing using network computing components | |
US8156243B2 (en) | Request routing | |
JP5442131B2 (ja) | 記述ファイルに基づいた個別データ通信 | |
EP2773080A1 (en) | Sharing control system and method for network resources download information | |
EP3262820A1 (en) | Network address resolution | |
CN101046806B (zh) | 搜索引擎系统和方法 | |
CN109982152B (zh) | P2p cdn业务处理方法、智能网关以及cdn平台 | |
CN110392069B (zh) | Cdn业务调度处理方法及cdn服务器 | |
CN105279217B (zh) | 可重构内容对象 | |
WO2017097092A1 (zh) | 缓存集群服务的处理方法及系统 | |
CN102291412A (zh) | 一种基于http的多媒体业务实现方法、系统及装置 | |
CN113285920B (zh) | 业务访问方法、装置、设备及存储介质 | |
CN109688204B (zh) | 基于ndn网络的文件下载方法、节点、终端 | |
KR101999719B1 (ko) | 컨텐츠 관리장치 및 방법 | |
EP2917807A1 (en) | Adaptive leveraging of network information | |
EP2164231A1 (en) | Mobile phone optimized online communication | |
WO2013164017A1 (en) | Method for controlling media transmission | |
CN113067765B (zh) | 一种多媒体消息监控方法、装置及设备 | |
TWI446772B (zh) | A cross - domain cookie access method, system and device | |
CN102316118A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141105 Termination date: 20211201 |