CN1710857A - 一种实现文件加速下载的***及方法 - Google Patents

一种实现文件加速下载的***及方法 Download PDF

Info

Publication number
CN1710857A
CN1710857A CNA2004100478819A CN200410047881A CN1710857A CN 1710857 A CN1710857 A CN 1710857A CN A2004100478819 A CNA2004100478819 A CN A2004100478819A CN 200410047881 A CN200410047881 A CN 200410047881A CN 1710857 A CN1710857 A CN 1710857A
Authority
CN
China
Prior art keywords
submodule
module
file
client
user
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
Application number
CNA2004100478819A
Other languages
English (en)
Other versions
CN100459497C (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.)
Qianxiangshiji Tech Development (Beijing) Co., Ltd.
Original Assignee
Thousand Oaks World Science And Technology Development (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 Thousand Oaks World Science And Technology Development (beijing) Co Ltd filed Critical Thousand Oaks World Science And Technology Development (beijing) Co Ltd
Priority to CNB2004100478819A priority Critical patent/CN100459497C/zh
Publication of CN1710857A publication Critical patent/CN1710857A/zh
Application granted granted Critical
Publication of CN100459497C publication Critical patent/CN100459497C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

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

Abstract

本发明涉及一种实现文件加速下载的***,由集中索引服务器及客户端组成,集中索引服务器由文件管理模块和块管理模块组成,客户端由IE辅助模块、文件下载模块、P2P上传模块、本地缓存管理模块组成。集中索引服务器文件管理模块通过客户端文件下载模块传递的文件特征信息和块标识获得文件块的特征信息,块管理模块按照预定的分块策略对文件进行分块,通过客户端文件下载模块传递的文件块的特征信息获得用户信息列表,将列表返回客户端进行文件下载。下载完毕后,集中索引服务器存储客户端汇报的文件信息、文件块的特征信息和用户标识。同时本发明还使用了通过上述***实现下载操作的方法。本发明提高了下载的效率,保证了下载源的稳定性、安全性。

Description

一种实现文件加速下载的***及方法
技术领域
本发明是关于计算机和互联网技术领域,具体地讲是涉及一种具有高速下载文件功能的***及方法。
背景技术
随着计算机迅猛发展,和计算机相关的各种装置功能也逐渐更新、升级以达到便利人们操作,提高人们工作效率的目的。计算机网络为人类提供了资源共享的便利条件,大量的有用资源分布在互联网络中,人们利用下载***将所需要的文件下载到本地,实现资源的共享,所以开发一个高速稳定的文件下载***对业界而言显得尤为重要。
现有技术中,目前典型的文件下载***大多采用P2P(Peer toPeer,点对点)方式,如BT(Bit Torrent)文件下载***,其主要是由BT客户端模块、BT服务器端模块组成。客户端模块发出下载请求,由用户到服务器端模块下载相关路径信息进行下载的操作。
该BT文件下载***主要由安装BT客户端模块、寻找BT资源、完成下载操作、刷新服务器端模块信息等四部分组成。其中,寻找BT资源主要是和存储文件的用户建立链接,该BT文件下载***采用“种子”的方式实现下载文件用户和提供下载源文件的链接。
BT文件下载***实现下载功能的具体方法如下所述:
I、安装BT客户端模块。
客户端安装BT文件下载***,在下载操作中,调用BT客户端模块进行下载。
II、寻找BT资源。
寻找BT资源即下载的源地址信息,BT下载采用了“种子”的方法提供下载源地址。
“种子”即文件存储的客户端模块,在用户下载文件后成为提供上传功能的“种子”,“种子”信息(主要包含路径信息)存储在.torrent文件当中,用户下载完毕后必须主动将该文件发布到服务器端模块,才能够为其它用户提供上传的功能的“种子”。该BT文件下载***的实现方法的核心内容就是每一个用户自觉成为“种子”为其它用户提供下载源。
当用户决定下载后,首先到发布端(即:服务器端模块)点击.torrent下载链接,将该文件下载到本地并存储,即建立和下载源地址的链接。
III、下载。
文件的下载源地址确定后,客户端模块就在本地开辟和目标文件大小一致的存储空间,分配完毕就开始进行下载操作。
IV、文件信息的发布。
下载完毕后,不关闭BT的执行窗口,到发布端(服务器端模块)将本地的“种子”信息汇报。
该文件下载***用“种子”的方法实现下载操作存在下载的不稳定性,不智能性,下载速度的不均衡性等缺点,很有改善的必要。具体而言包括:
1、该BT文件下载***的下载客户端操作均须下载用户手工进行操作,如手动寻找.torrent文件,降低了文件的下载效率。
2、该BT文件下载***的服务器端只具有简单的存储“种子”文件地址的信息的功能。
3、该BT文件下载***的所有下载来源仅局限于成为“种子”的客户端。
4、该BT文件下载***的下载速度决定于“种子”的多少,在下载时刻必须保证“种子”的数量才能够保证下载的速度。
5、该BT文件下载***对文件的下载不存在校验的功能,这样不能保证下载文件内容的准确性,并且在服务器端对“种子”的保存不具有任何校验的机制。
6、该BT文件下载***不能够对“种子”缺失的情况下自动进行处理。
发明内容
本发明有效的改善了现有技术中由于“种子”缺乏造成的下载断档的问题,并且不存在现有技术中的一些缺点,在使用上更具有高效性,准确性,稳定性。
本发明一方面提供了一种实现文件加速下载的***,主要由一集中索引服务器,若干客户端组成,其中:
集中索引服务器由文件管理模块和块管理模块组成,该文件管理模块用于通过下述的客户端文件下载模块传递的文件特征信息和块标识获得文件块的特征信息,以及存储下述客户端文件下载模块汇报的文件信息;块管理模块用于按照预定的分块策略对文件进行分块,并通过下述客户端文件下载模块传递的文件块的特征信息获得用户信息列表,以及存储下述客户端文件下载模块汇报的文件块的特征信息和用户标识;
客户端包含有IE辅助模块、文件下载模块、P2P上传模块、本地缓存管理模块,该IE辅助模块用于获得文件信息并生成文件特征信息;文件下载模块用于按照服务器端块管理模块所述的分块策略对文件进行分块生成块标识,将文件特征信息及块标识传递到服务器端,获得服务器端文件管理模块返回的文件块的特征信息,并将返回的文件块的特征信息传递到服务器端,获得服务器端块管理模块返回的用户信息列表,根据该返回的用户信息列表,从该列表中选取用户作为下载提供客户端,并向该下载提供客户端发送下载请求,完成文件块的下载,并对下载后的文件块进行存储,将下载后该文件块的特征信息和用户标识汇报到服务器端,合并下载后的全部文件块,对合并后的文件进行存储,并将文件信息汇报到服务器端;P2P上传模块用于为下载请求客户端的文件下载模块提供文件块的传输;本地缓存管理模块用于在本地缓存中对块进行保存和提取;
客户端IE辅助模块获得文件信息并生成文件特征信息,客户端文件下载模块接收该文件信息按照特定的分块策略对文件进行分块获得块标识,客户端文件下载模块将文件特征信息和块标识传递到服务器端,由服务器端文件管理模块根据该文件特征信息和块标识获得文件块的特征信息并将其返回客户端,客户端将该文件块的特征信息传递到服务器端,由服务器端块管理模块获得用户信息列表并将该用户信息列表返回,客户端根据该返回的用户信息列表,向下载提供客户端发送下载请求,由下载提供客户端P2P上传模块提供文件块的传输,下载后存储该文件块于目标文件中,本地缓存管理模块将该文件块保存于缓存中,文件下载模块将该文件块的特征信息和用户标识汇报到服务器端,由服务器端块管理模块对其进行存储。
本发明另一方面提供了一种实现文件加速下载的方法,该方法通过一集中索引服务器和若干客户端实现文件下载,其中,该方法包括如下步骤:
a、下载请求客户端获得文件信息并生成文件特征信息;
b、下载请求客户端按照预定的分块策略进行分块获得块标识;
c、下载请求客户端将文件特征信息和块标识传递到集中索引服务器端,获得集中索引服务器端返回文件块的特征信息;
d、下载请求客户端将文件块的特征信息传递到集中索引服务器端,获得集中索引服务器端返回的用户信息列表;
e、下载请求客户端根据该返回的用户信息列表,从该列表中选取用户作为下载提供客户端,并向该下载提供客户端发送下载请求,由下载提供客户端提供文件块传输;
f、下载请求客户端对下载后的文件块进行存储;
g、下载请求客户端将存储的文件块的特征信息和用户标识传递到集中索引服务器端,由集中索引服务器端对该传递的信息进行存储;
h、下载请求客户端将下载后的所有文件块进行合并,并保存文件;
i、下载请求客户端将文件信息传递到集中索引服务器端,由集中索引服务器端对传递的信息进行存储。
本发明通过采用索引服务器管理文件信息、文件块信息和用户信息,为下载请求客户端提供优化的用户信息列表,客户端根据用户列表信息中的用户信息向这些下载提供客户端直接发送下载请求,进行文件的下载操作,此外,本发明还提供从源站点进行下载操作的方式,在不能够进行点对点的文件下载操作时,提供文件的下载来源。
本发明在下载的过程中使用了对文件信息及文件块信息进行校验的机制,保证了文件下载的准确性,并且在每一个文件块下载完毕后进行向集中索引服务器进行汇报的机制,保证了下载源的稳定性,并且还提供高速缓存服务器专门用于热门软件的下载操作。
参阅后面描述本发明的具体实施例及附图,说明本发明优于现有技术的特点。附图和相关的描述不能理解成是对本发明的限制,本发明的特点限定在权利要求书中。
附图说明
图1-1为本发明的***架构图;
图2-1为本发明集中索引服务器端模块组成图;
图2-2为本发明客户端模块组成图;
图2-3为本发明客户端用户注册操作图;
图2-4为本发明客户端用户登录、退出操作图;
图2-5为本发明客户端文件下载过程各模块间关系图;
图2-6为本发明客户端块删除操作过程中块删除模块和块删除汇报模块间关系及与集中索引服务器端模块关系图;
图2-7为本发明客户端在下载实现过程中下载请求端和下载提供端各模块之间的关系;
图3-1为本发明集中索引服务器端用户注册管理子模块的流程图;
图3-2为本发明集中索引服务器端用户登录管理子模块的流程图;
图3-3为本发明集中索引服务器端用户退出子模块的流程图;
图3-4为本发明集中索引服务器端文件信息至块信息子模块的流程图;
图3-5为本发明集中索引服务器端文件存储汇报子模块的流程图;
图3-6为本发明集中索引服务器端块信息至用户信息子模块的流程图;
图3-7为本发明集中索引服务器端普通下载优化子模块的流程图;
图3-8为本发明集中索引服务器端IP MAP下载优化子模块的流程图;
图3-9为本发明集中索引服务器端IP MAP拓扑图示例;
图3-10为本发明集中索引服务器端块存储汇报子模块的流程图;
图3-11为本发明集中索引服务器端块删除汇报子模块的流程图;
图3-12为本发明集中索引服务器端块校验模块的流程图;
图4-1为本发明客户端用户注册子模块的流程图;
图4-2为本发明客户端用户登录子模块的流程图;
图4-3为本发明客户端IE辅助模块的流程图;
图4-4为本发明客户端文件信息至块信息查询子模块的流程图;
图4-5为本发明客户端块信息至用户信息查询子模块的流程图;
图4-6为本发明客户端文件存储子模块的流程图;
图4-7为本发明客户端文件汇报子模块的流程图;
图4-8为本发明客户端块存储子模块的流程图;
图4-9为本发明客户端块存储汇报子模块的流程图;
图4-10为本发明客户端块校验子模块的流程图;
图4-11为本发明客户端本地缓存保存子模块的流程图;
图4-12为本发明客户端本地缓存提取子模块的流程图;
图4-13为本发明客户端源站点下载实现子模块的流程图;
图4-14为本发明客户端P2P下载子模块的流程图;
图4-15为本发明客户端P2P上传模块的流程图;
图4-16为本发明方法实现流程图;
具体实施方式
本发明实施例是一种实现文件加速下载的***及方法,具体的说是一种高速、安全、稳定的文件下载装置***。为了能够更清晰的描述该发明的实现方案,现结合各个附图具体描述如下:
一、***构成:
本发明实施例由互相连接的客户端(Clients)、集中索引服务器(Centralized Index Server)和缓存服务器(Cache Server)三个部分组成,本发明的***架构图请参见图1-1,下面分别进行介绍:
(一)、集中索引服务器(Centralized Index Server)是为用户点对点(P2P,Peer to Peer的简称,即用户和用户之间直接传递信息,而不是通过第三方中转)文件下载提供索引服务的服务器。它的主要功能是将文件信息、文件块的信息、用户信息集中管理起来,并为客户端提供优化的下载源,这样避免了现有技术中由于“种子”缺失,造成可能的下载空档的问题,保证了文件源的稳定性。
集中索引服务器(Centralized Index Server)主要通过数据库对文件信息、文件块信息(本发明对文件的下载操作是先将文件分块,再进行多线程下载各个分块的操作过程)、用户信息进行集中管理。集中索引服务器(Centralized Index Server)由各个功能模块组成,其对数据源,如包含有文件信息、文件块信息、用户信息等库表的数据库进行操作,完成文件下载过程中的任务。各个功能模块的具体情况请参见下面的描述。
以下介绍数据库中的基本存储信息,值得注意的是,以下所述信息及数据库中具体的表及字段均是结合本实施例装置主要功能模块的下载操作给出,并非用于限定本发明装置的信息组成。
1、文件信息的主要内容包括:
a)统一资源***(url),其为用户下载源站点地址信息的表征;
b)文件大小(filesize);
c)文件最后修改日期(lastmodtime);
d)文件特征信息:由url,filesize和lastmodtime按顺序拼成的字符串的MD5特征值。
说明:MD5是公开的算法,该算法把任意长度的信息作为输入,输出一个128位的信息“指纹”。请参见RFC1321(RFC的英文全称是Request For Comments,即请求注解,大部分已经发展成为Internet的标准),网址是 http://www.faqs.org/rfcs/rfc1321.html
举例说明,某个URL是http://61.139.60.86:80/tmp/oicq/2004/03/11/QQmm.exe,它的文件长度是303786个字节,最后修改日期是2004-03-11 17:50:40,可以把它按顺序拼接成字符串http://61.139.60.86:80/tmp/oicq/2004/03/11/QQmm.exe_2004-03-11 7:50:40_303786计算的文件特征信息是:a97bb0e6af4e5a8a8bdf7e9b7b179561。
以上信息对应于数据库中具体的表和主要字段如下所述:
表名称urlmd5_to_urlid
表字段:
  序号   字段名称   类型   说明   功能
  ①   Urlid   无符号整数   url的ID   用于在urlseq_to_blockmd5中查找(详见下述内容)
  ②   urlmd5   32字节字符串   文件特征信息
  ③   url   可变长度字符串   文件的URL
  ④   Filesize   无符号整数   文件大小
  ⑤   lastmodtime   DATETIME   文件的最后修改时间
表说明:此表中urlmd5是索引的键值,是唯一的。
表功能:通过文件特征信息urlmd5查询urlid。
2、文件块信息主要内容包括:
a)文件块的特征值:按照上述对MD5算法的说明,以文件块的数据和文件块的大小作为输入,计算出它的128位信息“指纹”。
b)拥有文件块的用户的索引信息:用户ID。
c)文件块号,块ID。
以上块信息对应于数据库中具体的表和主要字段如以下所述:
表名称blockmd5_to_blockid
表字段
  序号   字段名称   类型   说明
  ①   Blockid   无符号整数   block的ID号
  ②   blockmd5   32字节字符串   block的特征值
表说明:此表中的blockmd5是索引的键值,是唯一的。
表功能:从blockmd5查询出blockid。
表名称blockid_to_uuid
表字段
  序号   字段名称   类型   说明
  ①   blockid   无符号整数   block的ID号
  ②   uuid   无符号整数   拥有该块的用户ID号
表说明:此表中blockid可以是重复的,即可以从一个blockid索引出多个uuid。
表功能:从blockid查询出用户的ID号,此表是一对多的。
3、用户信息主要内容:
a)用户信息的索引:用户ID。
b)在线标志。
c)IP地址:包括内网地址和外网地址。
d)基本用户信息:如:用户的姓名,性别等常用信息。
以上信息对应于数据库中具体的表和主要字段如下所述:
表名称:uuid
表字段:
  序号  字段名称   类型   说明   功能
  ①  Uuid   无符号整数   用户注册的ID号
  ②  online_flag   整数   用户的在线标志
  ③  external_ip   无符号整数   用户连接的外部IP地址   如果是公网主机,则和主机的
  IP地址相同
  ④  internal_ip   无符号整数   用户主机的IP地址
  ⑤  username   32字节字符串   用户提供的nickname
  ⑥  cookie   16字节字符串   用户登录和操作认证用
表说明:此表中uuid是唯一的。
表功能:由用户的uuid查询用户的可用信息。
其中,cookie是服务器用来认证的字符串。用户每次使用该系在***,客户端必须登录到服务器,服务器动态产生一个cookie字符串发送给客户端。客户端以后对集中索引服务器的请求都会附带该字符串,服务器接收到请求后,会把客户端的cookie和保存到uuid数据库中的cookie进行比较,如果一致则通过认证,否则返回错误。直到用户退出客户端,此cookie才失效。使用cookie的目的是为了防止来自客户端的恶意攻击。
此外,结合本发明***中具体下载操作的叙述,还需要将文件信息及文件块信息联合进行管理,以便下载查询操作。具体使用的表内容如下:
表名称urlseq_to_blockmd5
表字段:
  序号   字段名称   类型   说明
  ①   urlid   无符号整数   url的ID
  ②   blockseq   无符号整数   文件块的序号(分块获得的序号)
  ③   blockmd5   32字节字符串   文件块的特征值
  ④   saved_count   无符号整数   该文件块保存过的数目
表功能:从给定的urlid和blockseq查询出blockmd5
表说明:此表中的索引urlid可以是重复的。
集中索引服务器由相互独立的文件管理模块、块管理模块、用户管理模块三大部分构成。
集中索引服务器的功能模块组成参见图2-1。
其中,文件管理模块的主要功能是管理文件信息,响应客户端文件信息至块信息查询子模块的请求(详细内容请见客户端对该模块的描述)完成由文件信息、块序号查询相应文件块的特征信息的操作,响应客户端文件汇报子模块汇报的文件信息,完成文件信息的存储工作。该模块主要由文件信息至块信息子模块、文件存储汇报子模块构成。
该文件管理模块中文件信息至块信息子模块的功能是读取客户端传递来的文件特征信息urlmd5和分块子模块(分块子模块详细功能请见下述具体说明)中的块序号blockseq完成对文件块的特征信息blockmd5的查询。
该文件信息至块信息子模块具体实现的操作是:当文件特征信息urlmd5和块序号blockseq信息传递到该文件信息至块信息子模块时,该文件信息至块信息子模块通过查询语句对数据库中块的特征信息(对应库表名称为urlmd5_to_urlid和urlseq_to_blockmd5)进行检索,具体地讲:客户端发送uuid,cookie,urlmd5,blockseq信息到该模块,服务器端用户管理模块中用户认证子模块首先根据uuid、cookie信息进行用户操作认证(本***在执行任何操作时必须进行操作认证,详见用户管理模块中用户认证子模块的论证),认证通过后,该模块首先以urlmd5为条件从数据库表urlmd5_to_urlid中查询出urlid,接着,以查询出的urlid以及块序号blockseq为条件,从数据库表urlseq_to_blockmd5中查询出文件块的特征值blockmd5,并将该文件块的特征值blockmd5传递回客户端。上述操作认证如果被拒绝,或者查询操作没有获得相应的结果,均返回错误信息。该模块具体操作流程请参见图3-4。
该文件管理模块中文件存储汇报子模块的功能是:当完成整个文件的下载操作后,客户端要将文件信息进行汇报,客户端文件汇报子模块将文件信息传递到服务器端文件存储汇报子模块,该模块对数据库进行更新操作。具体实现的操作是:当客户端将uuid,cookie,url,urlmd5,filesize,lastmodtime信息汇报给服务器端时,服务器端用户管理模块中用户认证子模块首先根据uuid、cookie信息进行用户操作认证,认证通过后,服务器端文件存储汇报子模块以urlmd5为条件查询urlmd5_to_urlid表,判断是否存在对应的urlid,若存在,则不进行存储,退出该模块操作。若不存在,则在urlmd5_to_urlid表中创建一条新的纪录,将文件特征信息(urlmd5)及文件信息进行存储。如果操作认证被拒绝,或者查询操作没有获得相应的结果,则执行退出操作。详细流程图请参见3-5。
集中索引服务器中块管理模块的功能主要是执行有关文件块的操作,如分块、通过块信息查询用户信息、块存储、校验、删除、汇报等操作。具体地讲,主要由块信息至用户信息子模块、块存储汇报子模块、块删除子模块、块删除汇报子模块、分块模块、块校验模块构成。
下面逐一介绍各子模块的功能:
分块模块的功能是根据文件大小对文件进行分块,具体地讲,该分块模块在获得了文件的大小信息后,按一定的分块策略分块,最终获得块的大小信息和块的序号。
该分块按照文件越大,每一块的大小越大的策略进行分块,具体讲:按照文件的大小范围确定基准块的大小,然后对文件进行分块,剩余不足该基准块大小的文件块单独作为一文件块,此分块方法目的是尽量减小大文件的分块数目。
下表给出了不同文件大小范围,判断基准块大小的依据:
  块的大小   文件大小范围
  256K   文件大小<=8.192M
  512K   8.192M<文件大小<=16.384M
  1M   16.384M<文件大小<=32.768M
  2M   文件大小>32.768M
按照上述分块策略现举例如下:
例如,对大小为1222368个字节的某文件分块的结果是:
  块的序号   块的大小(字节)   块的特征码
  0   262144   d0bb7027e11e2315c38b5b0e094b3c77
  1   262144   adf614225776a4aacff28a4bc75e394d
  2   262144   34d734ee9b4b014a3ebe3e77ed9b0edc
  3   262144   9a3d0648b2d763155f8f8c2203f2e96c
  4   173792   9c316baac04e195991d058238ae6cc41
其中,最后一块的大小是冗余部分。它的大小可以根据文件总长度和分块规则算出。
块信息至用户信息子模块的功能是根据文件块的特征信息检索出拥有该文件块的最佳用户信息列表,当客户端发出查询用户信息请求,将文件块的特征信息blockmd5传递到服务器端,该块信息至用户信息子模块依次通过对数据库表blockmd5_to_blockid、blockid_to_uuid和uuid的查询,获得一含有若干用户信息的用户信息列表。该用户信息列表在经由普通下载优化子模块和IP MAP(IP地理位置地图)下载优化子模块(详细内容见下面有关叙述)的优化选择,确定最佳用户信息列表(列表中的用户是按传输速度从大到小的顺序排列,该列表主要包含的信息是:uuid,、external ip、internal ip)返回客户端。
块信息至用户信息子模块具体实现的操作是:当客户端块信息至用户信息查询子模块将文件块的特征信息blockmd5传递到集中索引服务器时,由服务器端块信息至用户信息子模块通过对数据库中文件块信息内容进行检索,获得若干个(一个或一个以上)用户的索引信息,再由该索引信息查询用户信息表将用户的IP地址信息检索出来。具体地讲:服务器端用户管理模块中用户认证子模块首先根据用户uuid和cookie进行操作认证,认证通过后,服务器端块信息至用户信息子模块根据客户端传递来的文件块的特征信息blockmd5为条件查询数据库表blockmd5_to_blockid,获得对应的blockid,再以获得的blockid为条件查询数据库表blockid_to_uuid,获得多个用户的uuid,最后块信息至用户信息子模块调用用户信息查询子模块根据每一个uuid从数据库表uuid中查询是否存在预存有该文件块的缓存服务器(缓存服务器是在查询过程中具有较高优先级的客户端,具体内容请见下面有关缓存服务器的叙述)中,如果有,则将该缓存服务器信息传回客户端直接从缓存服务器端进行下载操作,如果没有,则继续查找其他拥有该块的用户信息,若干个(一个或多个)用户信息构成用户信息列表(该列表信息包括uuid、external_ip、internal_ip)。详细描述请参见图3-6。
在获得用户信息列表后,要经过优化才能够为客户端的下载实现子模块提供高效的下载源,该块信息至用户信息子模块中的普通下载优化子模块和IP MAP下载优化子模块的功能就是完成用户信息列表的优化操作。
普通下载优化子模块的功能是判断下载请求客户端用户和用户信息列表中的用户是否在本局域网内或同一组内(多个用户的判断是并列、同时进行,受线程控制的),若符合该条件,则将该用户信息列表(该列对表的顺序是随机的)传递到客户端进行下载操作。若不符合该条件,则利用IP MAP下载优化子模块进一步对用户信息列表进行优化。详细操作的过程请参见图3-7。
IP MAP是国家权威部门对外公布的IP地理位置列表和部分网段的接入带宽。根据该列表可以计算出两个用户主机之间通讯的最佳路径,从而折算成两用户之间传输的最佳带宽。但是直接使用IP MAP数据库计算时比较耗费时间,本发明采用了IP MAP下载优化子模块来提高计算速度。
为了说明IP MAP下载优化子模块功能,现结合具体的过程来举例说明:
IP MAP使用了下列数据库表:
表名称:ip_group
表字段:
  序号   字段名称   类型   说明
  ①   ipstart   无符号整数   网段的起始IP,以无符号整数表示
  ②   ipend   无符号整数   网段的结束IP,以无符号整数表示
  ③   groupno   无符号整数   组号,人工输入,不重复
表功能:由给定的IP地址(转换成无符号整数)索引用户的组号
表名称:group_group
表字段:
  序号  字段名称   类型   说明
  ①  group1   无符号整数   网段分组号
  ②  group2   无符号整数   网段分组号
  ③  bandwidth   无符号整数   group1和group2之间的传输带宽
表功能:由给定的任意两个分组号查询出两个分组之间的带宽。
本发明中对每个网段和其它网段的传输带宽进行计算,把处理后的结果放入数据库。对有较大带宽连接的作为邻近节点,从而形成了一个逻辑上的网段拓扑结构图。请参见图3-9。然后对每一个网段和其它网段通过拓扑图进行传输带宽运算,把结果放入数据库group_group中。从而可以高效地计算出任意两个IP之间的带宽。
IP MAP下载优化子模块的主要功能是根据IP MAP计算端到端的最佳路径,并将优化后的用户列表返回到客户端。主要由第一组判断模块、第二组判断模块、和查询比较组间带宽模块组成。
在上述普通下载优化子模块判断拥有块的用户不在本局域网内或同组的情况下,IP MAP下载优化子模块继续对用户列表信息进行优化,确定最佳的下载用户列表。为了更好的说明该模块实现优化的过程,现假设请求下载文件块的用户user0,而在自己的缓存中保存了请求文件块的多个用户分别是user1,user2,user3,user4。具体的实现方式是:该IP MAP下载优化子模块中第一组判断模块首先根据用户user0的ip地址从数据库表ip_group中查询user0是否属于某一分组,如果不属于某一分组则直接返回原用户列表user1,user2,user3,user4,如果属于某一分组(这里再假设用户user0的分组号是0),该模块中第二组判断模块接着从数据库表ip_group中查询user1,user2,user3,user4是否分别属于某一分组(查询每一个用户的过程使用多线程同时进行,这里假设user1,user3是分组1和3,user2,user4不属于任何分组),在获得了分组信息之后由本模块中查询比较组间带宽模块从数据库表group_group中分别查询分组0和分组1,分组0和分组3之间的传输带宽(对应于表中的bandwidth),并对传输速度从大到小排序,假设结果是分组0到分组3的带宽大于分组0到分组1的带宽。最后把不是IP MAP中的用户user2,user4追加到用户列表的末尾,在本例中的最终用户列表是:user3,user1,user2,user4(用户user2,user4的排列顺序是随机的),最后将优化后的用户列表传回客户端。本模块的详细流程图请参见3-8。
块管理模块中块校验模块的主要功能是:当客户端向集中索引服务器端汇报的文件块的特征信息和用户ID信息时,校验文件块的特征信息,以确定是否对该文件块的特征信息以及用户ID进行存储。
该块校验子模块具体实现的操作是:当客户端某一文件块下载完毕后,客户端块存储汇报子模块向集中索引服务器汇报文件块的特征信息和用户ID,块校验子模块判断该块的特征值是否和集中索引服务器中其他客户端用户汇报的文件块特征值相一致。若一致则进行存储,若不一致则继续进行判断,判断目前该信息存储过的数目(在数据库表urlseq_to_blockmd5中的saved_count)是否小于某特定值(该特定值是一个经验值),如果小于该值,则删除以前所有的纪录,并保存现汇报信息,返回成功信息。如果不是,则发出警告(比如记录到日志文件中,并通过其它方式如电子邮件方式通知管理员)。由于该校验子模块与块存储汇报子模块关系紧密,具体的实现操作,参见下述对块存储整个过程的描述。
服务器端块管理模块中的块存储汇报子模块的主要功能是在客户端完成某一块的下载操作后,将客户端汇报的文件块的特征信息和用户ID进行存储。
客户端每下载完一文件块,必须向集中索引服务器汇报文件块的特征信息,客户端块存储汇报子模块将块的特征信息和用户ID上传到集中索引服务器,服务器端块存储汇报子模块对其做出响应。该模块具体实现的操作是:当客户端块存储汇报子模块将uuid,cookie,blockmd5值传递到服务器时,服务器端用户管理模块中用户认证子模块首先根据uuid,cookie进行操作认证,认证许可后,服务器端块存储汇报子模块以blockmd5为条件,查询blockmd5_to_blockid表,查询是否存在对应的blockid,若已经存在该块的信息存储的纪录,则通过块校验模块校验该文件块的特征信息和其他用户汇报的文件块的特征信息是否一致,主要的操作是将客户端汇报的blockmd5值与具有相同blockid号的blockmd5值进行比较。如果一致,则在blockid_to_uuid表中***一条以该blockid和上报的uuid为内容的新记录。如果不一致,则需查询urlseq_to_blockmd5中的saved_count的数值,是否小于某特定值(该值为一经验值);若小于则将以前所有的记录删除(以防止对本下载***的恶意攻击),并将块blockid和上报的uuid信息存入blockid_to_uuid,否则向管理员发出报错请求,进行手工异常处理。上述操作认证没有通过或查询操作出现问题则返回错误信息。详细内容请参见图3-10,3-12。
集中索引服务器端块管理模块中块删除汇报子模块的功能是在客户端汇报删除某文件块后,对数据库表进行更新数据操作,将该块的相关库表记录删除。
具体实现的操作是:当客户端块删除汇报子模块将删除块的blockmd5,uuid,cookie汇报服务器时,服务器端用户管理模块中用户认证子模块首先根据uuid,cookie进行操作认证,认证许可后,服务器端块删除汇报子模块以blockmd5为条件查询blockmd5_to_blockid表,查询是否存在相应的blockid,若存在,则调用服务器端块删除子模块将blockid_to_uuid中相应的记录删除。若不存在相应blockid,则向客户端返回错误信息。如果认证没有通过或操作出现异常,返回错误信息。详细内容请参见图3-11。
集中索引服务器端块管理模块中块删除子模块的主要功能是执行集中索引服务器端的删除记录操作。由于只是简单的delete操作,在此不作累述。
集中索引服务器端(Centralized Index Server)用户管理模块主要是用户的基本信息进行管理,实现用户注册、登录、退出、认证等操作,保证和实现查询用户信息(对应于数据库中的用户管理信息“uuid”表),主要包含用户注册管理子模块、用户登录管理子模块、用户信息查询子模块、用户退出子模块、用户认证子模块。此服务器端用户管理模块各子模块所使用技术均为现有技术。
其中,用户注册管理子模块提供用户注册功能,为使用本***的用户分配用户ID。主要实现的具体操作是:服务器接收到客户端的注册请求,用户注册管理子模块则查询数据库中uuid表,找到一个没有被注册的用户ID,然后更新uuid数据库表,加入该用户,把注册的用户ID返回给用户,具体流程请参见附图3-1。
用户登录管理子模块的功能是实现用户登录的功能,使用户获得从cookie,用作客户端和索引服务器交互的安全认证。并且修改用户的在线信息标志。具体的实现操作是:服务器接收到客户端的登录请求,登录模块首先查询数据库表uuid,判断该用户是否是注册用户,如果不是,则返回错误,否则,更新数据库表uuid中的用户在线信息(online_flag),并动态产生一cookie信息存储到uuid表中,同时将该cookie信息返回给客户端,以便为其他模块提供操作认证。该模块的流程图见附图3-2。
用户信息查询子模块主要是根据用户ID查询用户的在线信息、IP地址信息和用户基本信息等操作。该模块为公有模块可以同时被其他模块调用,具体实现操作是:服务器端用户管理模块中用户认证子模块首先根据uuid和cookie进行操作认证,认证通过后,根据不同的查询指令(不同条件下的select语句)对uuid表进行查询,获得相关信息,并将查询结果返回。
用户实现下载操作后,用户管理模块中的用户退出子模块负责退出操作,主要实现的操作是更改用户信息表uuid的online_flag信息。具体的实现操作是:当客户端向服务器发出退出请求后,服务器端用户管理模块中用户认证子模块首先进行操作认证,认证通过后,查询uuid数据库,查询是否存在该用户的纪录,若存在,则将该uuid表中的online_flag更改为下线状态,并退出本***。具体的实现流程请参见图3-3。
用户管理模块中用户认证子模块为公有模块,是处理用户请求时,以客户端传递来的uuid和cookie信息为条件,首先查询出服务器数据库表uuid中的cookie,而后进行比较是否一致。如果一致,则认证通过。如果不一致,则认证失败。客户端用户登录后的每个操作请求需要经过该认证。
至此,服务器端的基本组成及各模块的功能介绍完毕。
(二)、客户端(Clients)
客户端主要由用户管理模块、IE辅助模块、文件下载模块、P2P(Peer to Peer,点对点)上传模块和本地缓存管理模块。客户端各模块组成请参见图2-2。
在下载操作中,由客户端各功能模块发出请求,集中索引服务器对各种请求进行处理,相互配合完成下载操作。客户端和索引服务器端的通讯协议全部使用HTTP协议。
用户第一次使用本***,必须进行注册,注册成功时从集中索引服务器得到一个用户ID,以后客户端需要使用该用户ID到集中索引服务器进行登录。用户的注册和登录,由集中索引服务器中相应的模块对其进行处理。客户端的用户管理模块对应于集中索引服务器的用户管理模块,由相互并列、独立的用户注册子模块、用户登录子模块、用户退出子模块组成。此对应关系图请参见图2-3,2-4。
客户端用户管理模块的用户注册子模块主要功能是向服务器发送注册请求。具体的操作是,首先,在客户端的Windows注册表中查询是否已经注册(查询用户ID),若已经注册则在本地可以查询到存在用户ID号。若本地计算机没有用户ID则向集中索引服务器发送注册请求,由集中索引服务器分配对应于uuid表中uuid的用户ID号,并将该用户ID返回客户端,客户端用户注册子模块将该用户ID保存在客户端。详细信息请参见图4-1。
用户登录子模块的主要功能是向集中索引服务器发送登录请求,并接收集中索引服务器的返回信息。具体的实现操作是:客户端用户登录子模块向集中索引服务器发送登录请求,将uuid发送到服务器端,集中索引服务器接收该请求,由服务器端用户登录管理子模块处理该请求,查询数据库表uuid,判断该用户的uuid是否存在于uuid表中。如果不是,将返回错误信息,如果为注册用户,则更新数据库表uuid中的用户在线信息(online_flag),改为在线。产生cookie存储到uuid表中(提供其他模块的操作认证),该用户登录管理子模块将登录成功信息和cookie返回客户端。由客户端用户登录子模块接收成功信息并将返回的cookie信息存储到客户端。详细信息请参见图4-2。
用户退出子模块的主要功能是向集中索引服务器发送退出请求,具体的实现操作是:客户端将uuid,cookie信息传送到服务器端,由服务器端用户管理模块中用户认证子模块进行认证,认证通过后,服务器端该用户退出子模块更改用户信息表uuid中的online_flag信息,将该信息改为下线,并执行退出本***的操作。
IE辅助模块是触发下载事件的响应模块,该文件下载***向IE控件注册了点击事件的回调响应和右键菜单中的下载条目(注册机制是IE公开的接口Browser Helper Objects(浏览器辅助物件))。它的主要功能是在用户点击下载操作事件时,触发本***下载功能,并获得下载的文件信息生成文件的特征信息。
该IE辅助模块的具体实现的操作是:当用户通过左键点击或右键菜单触发下载事件时,该IE辅助模块获得文件的url(统一资源***),根据文件的url从源站点获得filesize(文件大小),lastmodtime(文件最后修改日期),根据url、filesize、lastmodtime作为输入参数,按照MD5算法计算出urlmd5。该模块实现的详细的内容请参见图4-3。
客户端(Clients)文件下载模块的主要功能是在IE辅助模块触发下载事件后,向服务器端发送查询请求,最终获得可以提供该文件块下载的用户信息列表(该列表中的用户信息主要包含uuid、external_ip、internal_ip),实现下载、存储、汇报文件块等操作。
该文件下载模块主要由用户信息查询模块、下载实现子模块、块管理子模块、文件管理子模块等四部分组成。
概括来讲:下载操作过程中,客户端的各功能模块向集中索引服务器(Centralized Index Server)发出请求并接收集中索引服务器返回的处理信息实现下载、存储、汇报等一系列操作。客户端和集中索引服务器模块大体存在一一对应的关系。详细客户端下载过程中各模块的关系图请参见图2-5。有关本***客户端各模块在下载过程中的作用,请详见下面具体描述。
下面基本上依据图2-5中模块的顺序逐一介绍文件下载模块各子模块的功能及构成。
块管理子模块中分块子模块的主要功能是根据获得的文件大小信息按照一定的分块策略将文件进行分块,并获得块的分块信息,该分块信息包含块序号和每一块的大小。客户端在下述下载操作过程中向集中索引服务器端分配多线程实现每一块的信息查询和下载操作。
该分块子模块的分块机制与集中索引服务器端分块模块的机制相同,二者产生的文件分块是一致的,这保证了文件下载过程中的一致性。有关具体的分块策略请参见上述集中索引服务器端叙述,在此不作累述。
文件下载模块中用户信息查询模块的主要功能是向集中索引服务器发出查询请求并接收集中索引服务器的返回信息。该模块主要由文件信息至块信息查询子模块和块信息至用户信息查询子模块构成。两个子模块对应于集中索引服务器端文件管理模块的文件信息至块信息子模块和块管理模块的块信息至用户信息模块。相互联系,共同作用完成获得最佳下载用户信息列表的操作。
其中,文件信息至块信息查询子模块的主要功能是向集中索引服务器发出查询块信息的请求并接收返回信息。具体的实现操作是:将IE辅助模块生成的urlmd5,由分块子模块获得的blockseq,以及用于操作认证的uuid,cookie传递到服务器端,由集中索引服务器端的文件信息至块信息子模块以这些信息为条件,实现查询操作(具体操作见上述服务器端文件信息至块信息子模块的叙述),客户端文件信息至块信息查询子模块接收服务器端返回的文件块的特征信息(blockmd5)或不存在该块特征信息进而判断下一步的操作,具体而言:若返回了blockmd5值,则将该信息传递到客户端块信息至用户信息查询子模块进行下一步的查询操作,若不存在该特征值,即返回一错误信息,则调用客户端源站点下载实现子模块从源站点实现文件的下载。详细流程请参见图4-4。
客户端块信息至用户信息查询子模块的主要功能是:上述的文件信息至块信息查询子模块获得文件块的特征信息(blockmd5)后,客户端块信息至用户信息查询子模块向集中索引服务器发出查询用户信息的请求并接收返回的信息。具体的实现操作是:该模块将文件块的特征信息(blockmd5)以及用于操作认证的uuid,cookie信息发送到集中索引服务器,集中索引服务器端的块信息至用户信息子模块处理具体的查询操作(具体操作见上述服务器端块信息至用户信息子模块的叙述),客户端块信息至用户信息查询子模块接收服务器返回的用户信息列表或不存在该用户信息列表的信息,进而判断下一步的操作,具体而言:若返回了用户信息列表,则直接调用客户端P2P下载子模块实现下载操作。若不存在该列表信息,即返回一错误信息,那么直接调用客户端源站点下载实现子模块从源站点实现文件的下载。详细流程请参见图4-5。
文件下载模块中下载实现子模块的功能是根据集中索引服务器端返回的信息判断以何种方式进行下载处理操作,具体地讲,根据下载方式的不同可以分为源站点下载实现子模块、P2P下载子模块。
源站点下载实现子模块是直接从提供HTTP/FTP(HTTP的英文全称是HyperText Transfer Protocol,即超级文本传输协议;FTP的英文全称是File Transfer Protocol,即文件传输协议)的源站点下载文件。采用该方式下载的原因可能有以下几种:
1.客户端不能从集中索引服务器上找到保存该文件块的用户;
2.客户端虽然获得了一个保存该文件块的用户列表,但是由于某些原因下载不能实现(比如不能穿越防火墙,用户在传输的过程中下线等);
3.客户端从其它用户下载了文件块,但是文件块的校验不正确;
4.源站点不支持文件块传输。
源站点下载实现子模块对请求的HTTP协议(HyperText TransferProtocol,即超级文本传输协议)和FTP协议(File Transfer Protocol,即文件传输协议)分别处理。站点下载实现子模块的流程图请参见图4-13。
该模块的操作避免了现有技术中由于“种子”缺失造成的下载断档的问题。
P2P下载子模块的功能是从其它用户那里传输文件分块。它依据从集中索引服务器返回的用户信息列表,依次请求从其它客户端那里传输文件块,如果请求错误,则从用户列表中尝试下一个,如果都错误,则从源站点进行下载。传输部分请参见流程图4-14。该P2P下载子模块本身为现有技术。
客户端的P2P上传模块,作为下载的提供端,为下载请求客户端提供文件的某一块的传输。有关下载过程中下载请求端和下载提供端P2P下载模块P2P上传模块之间的关系图请参见2-7,P2P上传模块将本地缓存提取子模块(该本地缓存提取子模块内容请详见下面描述)获得的文件块传输到下载请求端用户。P2P上传模块的流程图请参见图4-15。该P2P上传模块本身为现有技术。
块管理子模块中块校验子模块的主要功能是计算每一个下载后的文件块的校验码(即文件块的特征值blockmd5),并和上述客户端文件信息至块信息查询模块从集中索引服务器获得的文件块的特征值进行比较,并返回是否一致的信息,如果校验的信息一致,则可以对该文件块进行存储(存储的详细信息请参见下述块存储子模块的叙述),如果不一致,则从源站点重新进行下载块的操作。该块校验子模块具体的操作详见4-10。
块管理子模块中块存储子模块的功能是将通过校验后的文件块存储到本地的目标文件中,并对缓存进行处理。具体的实现操作是,将文件块存储到本地目标文件中。而后,对缓存空间进行判断,判断是否还有剩余空间,若缓存空间已满,则按照先进先出的方法(FIFO,First In First Out)进行删除文件块的操作,该删除操作由块删除子模块执行,删除操作后,由块删除汇报子模块将块的删除信息汇报到服务器端。如果缓存还有空间,则调用本地缓存保存子模块(该模块的具体功能请参见下面本地缓存管理模块的描述)将该文件块存到本地缓存中,以便为下载操作提供下载源。详情请参见存储过程的图4-8。
上述块删除汇报子模块的主要功能是将块删除信息汇报到服务器,由服务器端块删除汇报子模块对库表进行具体的操作。客户端块删除汇报子模块与服务器端块删除汇报子模块的对立关系图2-6。具体的实现操作是:该块删除汇报子模块将删除文件块的特征信息blockmd5,uuid,cookie信息传递到集中索引服务器,首先由服务器端用户管理模块中用户认证子模块根据uuid,cookie信息进行操作认证,认证通过后集中索引服务器块删除汇报子模块执行库的更新操作。
(该更新操作请详见服务器端块删除汇报子模块的叙述)。
块管理子模块中块存储汇报子模块的功能是对存储的文件块的特征信息和用户ID进行汇报,并接收集中索引服务器端块存储汇报子模块进行处理后的返回信息。具体的实现操作是:客户端块存储汇报子模块将块blockmd5,uuid,cookie传递到客户端由集中索引服务器端块存储汇报子模块进行具体的实现操作(该操作请详见服务器端该模块的叙述)。客户端块存储汇报子模块接收服务器端的返回信息,若返回正确信息,则证明存储成功。若返回错误信息,则说明本地缓存中存储的块就不能为其他下载请求端提供块的传输,那么由删除子模块将本地缓存中的文件块进行删除。该过程请参见图4-9。
文件下载模块中的文件管理子模块主要功能是对下载到本地目标文件中块进行判断,是否将所有的块下载完毕,若下载完毕,则将所有文件块按顺序进行合并,实现对文件的存储。并将存储的文件信息汇报到集中索引服务器。该模块主要由文件存储子模块和文件汇报子模块构成。
其中,文件存储子模块的功能是判断文件所有模块是否下载完毕,若下载完毕,则将该文件按照块的序号顺序合并,存储在目标文件中,若没有下载完毕,则返回操作。主要操作详见图4-6。
文件汇报子模块的功能是文件下载完毕后向集中索引服务器发出文件的信息汇报请求。具体的操作是,在文件存储后,客户端文件汇报子模块将url,urlmd5,filesize,lastmodtime和用于操作认证的uuid,cookie信息传递到服务器端,由集中索引服务器中文件管理模块的文件存储汇报子模块进行处理请求(详细的信息请参见集中索引服务器中文件管理模块的文件存储汇报子模块内容叙述)。主要操作详见图4-7。
客户器端本地缓存管理模块,是负责本地缓存的保存和提取操作的。本地缓存是本***安装时就在用户硬盘上创建的文件(所创建的文件的大小依据用户的硬盘剩余空间而定)。缓存文件分为文件块信息索引部分和文件块数据部分。索引部分含有文件块的blockmd5、分块大小和块在文件中所存放的位置等信息。
用户下载无论是从源站点下载还是从P2P用户处下载文件,会保存文件块到缓存文件中,同时汇报给索引服务器。如果其它用户通过网络连接来请求文件块,则客户端为该请求提供相应的上传服务。
本地缓存管理模块分为本地缓存保存子模块和本地缓存提取子模块。
本地缓存保存子模块的功能是保存文件块信息到缓存文件中,并在缓存文件中建立对该块的索引。如果保存时该缓存文件已经没有空闲的空间,则调用客户端块删除子模块删除最早保存的文件块,并调用块删除汇报子模块把删除文件块的特征信息汇报给集中索引服务器。本地缓存保存子模块的流程图请参见图4-11。
本地缓存提取子模块的功能是从本地缓存中索引到文件块的内容并返回文件块的内容信息。它的流程图请参见4-12。
(三)、缓存服务器是专用的服务器仅具有上传的功能,缓存服务器用于存储并发数比较高的文件的下载。它具有较大的缓存和较高的带宽,在用户查询时占有很高的优先级。
缓存服务器相当于只提供上传服务的客户端,它预先缓存一些特定的文件(包括文件块)。它与服务器和其它客户端之间的传输协议和普通的客户端相同。具体讲缓存服务器包含有上述客户端的本地缓存管理模块和P2P上传模块。
二、具体使用过程描述:
注册用户在登录后,可以使用本***提供的下载方法,现结合图4-16来具体说明本***提供的下载方法:
如图4-16中a步骤:当用户通过左键点击或右键菜单触发下载事件时,由IE辅助模块获得文件的url(统一资源***),然后从源站点获得filesize(文件大小),lastmodtime(文件最后修改日期),根据url、filesize、lastmodtime作为输入参数,按照MD5算法计算出文件特征信息urlmd5。
如图4-16中b步骤:获得了文件大小信息之后由客户端分块子模块将文件进行分块处理,获得文件块的序号blockseq。
如图4-16中c步骤:客户端文件信息至块信息查询子模块将文件的urlmd5、文件块的序号blockseq信息以及用于进行用户操作认证的uuid、cookie信息向集中索引服务器发出查询文件块的特征信息的请求,服务器端用户管理模块中用户认证子模块首先根据uuid、cookie信息进行用户操作认证,认证通过后,服务器端文件信息至块信息子模块从数据库表urlmd5_to_urlid中查询出urlid,以文件块的序号blockseq以及查询出的urlid从数据库表urlseq_to_blockmd5中查询出文件块的特征信息blockmd5,将该文件块的特征信息blockmd5传递回客户端。如果上述查询操作没有查询出结果,则返回错误信息,下载文件的操作直接由客户端源站点下载实现子模块从源站点进行。
如图4-16中d步骤:客户端在接收到服务器端返回的文件块的特征信息blockmd5后,由客户端块信息至用户信息查询子模块向服务器端发送请求,将uuid,cookie,blockmd5信息发送到服务器端,由服务器端块信息至用户信息子模块进行处理,具体地讲:服务器端用户管理模块中用户认证子模块首先根据用户uuid和cookie进行操作认证,认证通过后,根据客户端传递来的文件块的特征信息blockmd5查询数据库表blockmd5_to_blockid获得对应的blockid,再以该blockid为条件查询数据库表blockid_to_uuid获得多个用户的uuid,最后根据每一个uuid从数据库表uuid中查询出相应用户的内网IP地址信息internal_ip和外网IP地址信息external_ip,该uuid、internal_ip、external_ip信息组成用户信息列表,并将该用户信息列表返回到客户端。如果上述查询操作出现错误,则将错误信息返回客户端,客户端源站点下载实现子模块从源站点实现下载操作。
如图4-16中e步骤:服务器端将用户信息列表传回客户端后,客户端下载实现子模块中P2P下载子模块依据从集中索引服务器端返回的用户信息列表,依次请求从该用户信息列表中的下载提供客户端那里传输文件块,如果请求错误,则从用户信息列表中尝试下一个,如果都错误,则从源站点进行下载。
如图4-16中f步骤:下载后的文件块由客户端块存储子模块将文件块存储到本地目标文件,同时还要将文件块存储到本地缓存中,以便为下载操作提供下载提供端。
如图4-16中g步骤:经过上述的操作后,客户端块存储汇报子模块向服务器汇报存储在本地缓存中文件块的信息和用户ID,具体地讲:将uuid,cookie,blockmd5上传到服务器,服务器端用户管理模块中用户认证子模块首先根据uuid,cookie进行操作认证,认证许可后,服务器端块存储汇报子模块根据blockmd5查询blockmd5_to_blockid表是否存在对应的blockid,若已经存在该块的信息存储,则通过服务器端块校验模块校验该信息和其他用户汇报的信息是否一致,主要的操作是将现汇报的blockmd5与相同blockid的blockmd5值进行比较。如果一致,则在blockid_to_uuid表中***一条以该blockid和汇报的uuid为内容的新记录。如果不一致,则需查询urlseq_to_blockmd5中的saved_count的数值,是否小于某特定值(该值为一经验值);若小于则将以前所有的记录删除,并将blockid和汇报的uuid的存入blockid_to_uuid,否则,向管理员发出报错请求,进行手工异常处理。
如图4-16中h步骤:所有的文件块均经过上述下载过程,当文件所有的文件块下载完毕后,由客户端文件存储子模块对文件进行合并,保存该文件。
如图4-16中i步骤:并由客户端文件汇报子模块进行文件信息汇报工作,该客户端文件汇报子模块将uuid,url,urlmd5,filesize,lastmodtime,cookie信息汇报给服务器端,服务器端用户管理模块中用户认证子模块首先根据uuid、cookie信息进行用户操作认证,认证通过后,服务器端文件存储汇报子模块根据urlmd5查询urlmd5_to_urlid表,判断是否存在对应的urlid,若存在,则不进行存储,退出该模块操作。若不存在,则在urlmd5_to_urlid表中创建新的一条纪录将相应的文件信息进行存储。

Claims (21)

1、一种实现文件加速下载的***,主要由一集中索引服务器,若干客户端组成,其特征在于:
集中索引服务器由文件管理模块和块管理模块组成,该文件管理模块用于通过下述的客户端文件下载模块传递的文件特征信息和块标识获得文件块的特征信息,以及存储下述客户端文件下载模块汇报的文件信息;块管理模块用于按照预定的分块策略对文件进行分块,并通过下述客户端文件下载模块传递的文件块的特征信息获得用户信息列表,以及存储下述客户端文件下载模块汇报的文件块的特征信息和用户标识;
客户端包含有IE辅助模块、文件下载模块、P2P上传模块、本地缓存管理模块,该IE辅助模块用于获得文件信息并生成文件特征信息;文件下载模块用于按照服务器端块管理模块所述的分块策略对文件进行分块生成块标识,将文件特征信息及块标识传递到服务器端,获得服务器端文件管理模块返回的文件块的特征信息,并将返回的文件块的特征信息传递到服务器端,获得服务器端块管理模块返回的用户信息列表,根据该返回的用户信息列表,从该列表中选取用户作为下载提供客户端,并向该下载提供客户端发送下载请求,完成文件块的下载,并对下载后的文件块进行存储,将下载后该文件块的特征信息和用户标识汇报到服务器端,合并下载后的全部文件块,对合并后的文件进行存储,并将文件信息汇报到服务器端;P2P上传模块用于为下载请求客户端的文件下载模块提供文件块的传输;本地缓存管理模块用于在本地缓存中对块进行保存和提取;
客户端IE辅助模块获得文件信息并生成文件特征信息,客户端文件下载模块接收该文件信息按照特定的分块策略对文件进行分块获得块标识,客户端文件下载模块将文件特征信息和块标识传递到服务器端,由服务器端文件管理模块根据该文件特征信息和块标识获得文件块的特征信息并将其返回客户端,客户端将该文件块的特征信息传递到服务器端,由服务器端块管理模块获得用户信息列表并将该用户信息列表返回,客户端根据该返回的用户信息列表,向下载提供客户端发送下载请求,由下载提供客户端P2P上传模块提供文件块的传输,下载后存储该文件块于目标文件中,本地缓存管理模块将该文件块保存于缓存中,文件下载模块将该文件块的特征信息和用户标识汇报到服务器端,由服务器端块管理模块对其进行存储。
2、如权利要求1所述的***,其特征在于,集中索引服务器端还包括用户管理模块,该用户管理模块用于进行用户操作认证,用户信息查询,并完成下述客户端用户管理模块的注册、登录、退出请求;客户端还包括用户管理模块,该模块向服务器端发送注册、登录、退出请求。
3、如权利要求1所述的***,其特征在于:
集中索引服务器端文件管理模块还包括文件信息至块信息子模块、文件存储汇报子模块,该文件信息至块信息子模块用于通过下述客户端文件下载模块中用户信息查询模块传递的文件特征信息和块标识获得文件块的特征信息;文件存储汇报子模块用于对下述客户端文件下载模块中文件管理子模块汇报的文件信息进行存储;
集中索引服务器端块管理模块还包括分块模块、块信息至用户信息子模块、块存储汇报子模块,该分块模块用于按照预定的分块策略对文件进行分块;块信息至用户信息子模块用于通过下述客户端文件下载模块中用户信息查询模块传递的文件块的特征信息获得用户信息列表;块存储汇报子模块用于存储下述客户端文件下载模块中块管理子模块汇报的文件块的特征信息和用户标识;
客户端文件下载模块还包括用户信息查询模块、下载实现子模块、块管理子模块、文件管理子模块,该用户信息查询模块用于将文件特征信息和块标识传递到服务器端,获得服务器端文件管理模块中文件信息至块信息子模块返回的文件块的特征信息,并将返回的文件块的特征信息传递到服务器端,获得服务器端块管理模块中块信息至用户信息子模块返回的用户信息列表;下载实现子模块根据该返回的用户信息列表,从该列表中选取用户作为下载提供客户端,并向该下载提供客户端发送下载请求,由P2P上传模块提供文件块的传输实现文件块的下载;块管理子模块用于按照服务器端块管理模块中分块模块所述的分块策略对文件进行分块,存储下载后的文件块,并将存储的文件块的特征信息和用户标识传递到服务器端,由服务器端块存储汇报子模块将该传递的信息进行存储;该文件管理子模块,用于合并文件块,对合并后文件进行存储,并将文件信息汇报到服务器端文件管理模块的文件存储汇报子模块;
客户端本地缓存管理模块还包括本地缓存保存子模块和本地缓存提取子模块,该本地缓存保存子模块用于将下载实现子模块下载的文件块存储到本地缓存中;本地缓存提取子模块用于在本地缓存中索引文件块的内容,并将该文件块内容传递给P2P上传模块实现文件块的传输。
4、如权利要求3所述的***,其特征在于:集中索引服务器端块管理模块还包括块删除子模块和块删除汇报子模块,该块删除汇报子模块用于接收下述客户端文件下载模块中块管理子模块传递的文件块的特征信息和用户标识信息;该块删除子模块用于删除该信息;
客户端文件下载模块中块管理子模块还能用于删除本地缓存中的文件块并将删除的文件块的特征信息和用户标识传递到服务器端块管理模块的块删除汇报子模块。
5、如权利要求3、4所述的***,其特征在于:集中索引服务器端块管理模块还包括块校验模块,该模块用于判断由客户端块管理子模块汇报的文件块的特征值和其他客户端汇报的文件块的特征值是否一致,若一致,则由服务器端块管理模块的块存储汇报子模块对该文件块的信息和用户标识进行存储,若果不一致,则返回错误信息。
6、如权利要求3所述的***,其特征在于:客户端文件下载模块的用户信息查询模块还包括文件信息至块信息查询子模块和块信息至用户信息查询子模块,该文件信息至块信息查询子模块用于将文件的特征信息和块标识传递到服务器端文件管理模块中文件信息至块信息子模块,并获得服务器端该模块传递回的文件块的特征信息;块信息至用户信息查询子模块用于将文件块的特征信息传递到服务器端块管理模块中块信息至用户信息子模块,并获得服务器端该模块返回的用户信息列表。
7、如权利要求3所述的***,其特征在于:客户端文件下载模块中下载实现子模块还包括源站点下载实现子模块和P2P下载子模块,该源站点下载实现子模块用于在不能进行点对点下载操作情况下的文件块的下载;P2P下载子模块用于进行点对点的文件块的下载。
8、如权利要求4所述的***,其特征在于:客户端文件下载模块中块管理子模块还包括分块子模块、块存储子模块、块存储汇报子模块,该分块子模块用于按照服务器端块管理模块中分块模块所述的分块策略对文件进行分块获得文件块标识;块存储子模块用于对下载后的文件块进行存储;块存储汇报子模块将该存储文件块的特征信息和用户标识传到服务器端块管理模块中块管理汇报子模块。
9、如权利要求8所述的***,其特征在于:客户端文件下载模块中块管理子模块还包括块删除子模块和块删除汇报子模块,其中该删除子模块用于将本地缓存中的文件块进行删除;块删除汇报子模块用于将该删除文件块的特征信息和用户标识传递到服务器端块管理模块中的块删除汇报子模块。
10、如权利要求9所述的***,其特征在于:客户端文件下载模块中块管理子模块还包括块校验子模块,该模块用于判断下载到本地的文件块的特征信息与客户端文件下载模块中文件信息至块信息查询子模块获得的文件块的特征信息是否一致;若一致,则由客户端块管理子模块的块存储子模块对该文件块进行存储,若不一致,则由下载实现子模块中源站点下载实现子模块重新进行文件块的下载。
11、如权利要求3所述的***,其特征在于:集中索引服务器端块管理模块中块信息至用户信息子模块还包括普通下载优化子模块或IP MAP下载优化子模块中的一个或者两个模块,其中,普通下载优化子模块用于将和下载请求客户端用户属于同一局域网或同组的用户信息列表传递回客户端块信息至用户信息查询子模块;IP MAP下载优化子模块用于根据下载请求客户端的用户信息判断该用户是否具有按照不同网段划分的组的组号,用于判断用户信息列表中的每一用户是否存在上述组号,并根据获得的下载请求端用户的组号与用户列表中用户的组号,来获得下载请求端用户与用户信息列表中用户的带宽,对用户信息列表中的用户按照带宽大小进行排序,并将该优化后的用户信息列表返回客户端。
12、如权利要求1所述的***,其特征在于:该***还包括若干缓存服务器,该缓存服务器包括P2P上传模块和本地缓存管理模块,其中P2P上传模块用于为下载请求客户端的文件下载模块提供文件块的传输;本地缓存管理模块用于在本地缓存中对文件块进行保存和提取。
13、如权利要求1所述的***,其特征在于:
所述的文件信息是指:统一资源***、文件的大小、文件最后修改日期;
所述的文件特征信息是指:由统一资源***、文件的大小、文件最后修改日期按顺序拼成的字符串的MD5特征值;
所述的块标识是指:块序号;
所述的文件块的特征信息是指:由文件块数据和文件块长度计算出的MD5特征值;
所述的用户标识是指:用户的ID号;
所述的用户信息是指:用户的ID号、用户的内网IP地址和外网IP地址;
所述的用户信息列表是指:多个上述用户信息的组合。
14、一种实现文件加速下载的方法,该方法通过一集中索引服务器和若干客户端实现文件下载,其特征在于,该方法包括如下步骤:
a、下载请求客户端获得文件信息并生成文件特征信息;
b、下载请求客户端按照预定的分块策略进行分块获得块标识;
c、下载请求客户端将文件特征信息和块标识传递到集中索引服务器端,获得集中索引服务器端返回文件块的特征信息;
d、下载请求客户端将文件块的特征信息传递到集中索引服务器端,获得集中索引服务器端返回的用户信息列表;
e、下载请求客户端根据该返回的用户信息列表,从该列表中选取用户作为下载提供客户端,并向该下载提供客户端发送下载请求,由下载提供客户端提供文件块传输;
f、下载请求客户端对下载后的文件块进行存储;
g、下载请求客户端将存储的文件块的特征信息和用户标识传递到集中索引服务器端,由集中索引服务器端对该传递的信息进行存储;
h、下载请求客户端将下载后的所有文件块进行合并,并保存文件;
i、下载请求客户端将文件信息传递到集中索引服务器端,由集中索引服务器端对传递的信息进行存储。
15、如权利要求14所述的方法,其特征在于,所述的步骤d中的用户信息列表是指经过优化处理的用户信息列表,该优化处理包括以下步骤:
d1、判断用户信息列表中的用户和下载请求客户端用户是否属于同一局域网内或同组,如果均属于同一局域网或同组内,则将该列表返回下载请求客户端,如果不是,则继续进行下一步骤;
d2、判断下载请求客户端用户是否具有按照不同网段划分的组的组号,如果不具有该组号,则将用户信息列表返回下载请求客户端,如果具有该组号,则继续进行下一步骤;
d3、判断用户信息列表中的用户是否具有所述组号,如果均不具有所述组号,则将该列表信息返回客户端,如果至少有一个用户具有该组号,则继续进行下一步骤;
d4、根据下载请求客户端用户的组号和用户信息列表中用户的组号获得下载请求客户端用户与用户信息列表中用户的组间带宽,并将用户信息列表按带宽大小顺序进行排列,从而完成优化处理。
16、如权利要求14所述的方法,其特征在于,所述的步骤e中还包括有:如果不能够从其他下载提供客户端进行下载,那么从源站点进行下载。
17、如权利要求14所述的方法,其特征在于,所述的步骤e中还包括有:下载请求客户端将下载到本地的文件块的特征信息与从服务器端获得的文件块的特征信息进行比较,若不一致,那么从源站点重新进行下载,若一致,则进行步骤f。
18、如权利要求14所述的方法,其特征在于,所述的步骤f还包括:
f1、将下载后的文件块存储到目标文件;
f2、将下载后的文件块存储到本地缓存中。
19、如权利要求14所述的方法,其特征在于,所述的步骤f和g之间还包含有:
fg1、下载请求客户端删除本地缓存空间中文件块;
fg2、下载请求客户端将删除的文件块的特征信息和用户标识传递到集中索引服务器端;
fg3、集中索引服务器端根据客户端传递来的删除的文件块的特征信息和用户标识删除该信息。
20、如权利要求14所述的方法,其特征在于,所述的步骤g中还包含有:
集中索引服务器端根据下载请求客户端传递来文件块的特征信息与其他客户端汇报的文件块的特征信息进行比较,如果一致,则进行存储,如果不一致,则返回错误信息。
21、如权利要求14所述的方法,其特征在于:所述预定的分块策略是指:
按照文件的大小,确定基准块的数值;
根据该基准块的数值,先将该文件划分成若干个大小等于该基准块的文件块,然后将所剩余最后一个不大于该基准块的文件块单独作为一个文件块。
CNB2004100478819A 2004-06-18 2004-06-18 一种实现文件加速下载的***及方法 Expired - Fee Related CN100459497C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2004100478819A CN100459497C (zh) 2004-06-18 2004-06-18 一种实现文件加速下载的***及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2004100478819A CN100459497C (zh) 2004-06-18 2004-06-18 一种实现文件加速下载的***及方法

Publications (2)

Publication Number Publication Date
CN1710857A true CN1710857A (zh) 2005-12-21
CN100459497C CN100459497C (zh) 2009-02-04

Family

ID=35707045

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100478819A Expired - Fee Related CN100459497C (zh) 2004-06-18 2004-06-18 一种实现文件加速下载的***及方法

Country Status (1)

Country Link
CN (1) CN100459497C (zh)

Cited By (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007147320A1 (en) * 2006-06-14 2007-12-27 Roxbeam Media Network Corporation System and method for buffering real-time streaming content in a peer-to-peer overlay network
WO2008025294A1 (fr) * 2006-08-22 2008-03-06 Tencent Technology (Shenzhen) Company Limited Système, dispositif et procédé par connexion pair à pair de flux multimedia
CN100384127C (zh) * 2006-01-06 2008-04-23 华为技术有限公司 一种下载者终端及其下载共享数据的方法
WO2008077328A1 (fr) * 2006-12-25 2008-07-03 Tencent Technology (Shenzhen) Company Limited Système, procédé et appareil permettant d'accéder à un élément de page web
CN100418330C (zh) * 2006-06-06 2008-09-10 北京北大方正电子有限公司 一种基于预测搜索的网络文件传输方法
WO2009046642A1 (fr) * 2007-10-09 2009-04-16 Huawei Technologies Co., Ltd. Procédé de distribution de données, système distribution de données et dispositifs de corrélation dans un réseau périphérique
WO2009079948A1 (fr) 2007-12-26 2009-07-02 Huawei Technologies Co., Ltd. Procédé de mise en tampon et d'interrogation de contenu, et système de transmission multimédia point à point
CN1897588B (zh) * 2006-06-21 2010-06-16 北京北大方正电子有限公司 一种混合模式的网络文件传输方法及***
CN101159762B (zh) * 2007-11-19 2010-07-21 腾讯科技(深圳)有限公司 加速网页内容下载的方法及装置
CN101132272B (zh) * 2006-08-23 2010-07-28 中国科学院计算技术研究所 一种同时支持分布式加密文件下载和使用的***
CN101192946B (zh) * 2006-11-28 2010-08-25 欧阳炳宇 一种提高特定p2p嵌入式终端下载效率的方法和***
CN101827128A (zh) * 2010-04-06 2010-09-08 山东高效能服务器和存储研究院 一种文件网络传输中分块下载和匹配的方法
WO2010099715A1 (zh) * 2009-03-04 2010-09-10 成都市华为赛门铁克科技有限公司 数据操作方法、***、客户端和数据服务器
CN101150465B (zh) * 2006-09-22 2010-09-15 腾讯科技(深圳)有限公司 一种获取种子信息的方法及p2p网络中的超级节点和普通节点
CN101848188A (zh) * 2009-03-25 2010-09-29 上海聚力传媒技术有限公司 对数据块校验信息进行更新的方法和装置
CN101090367B (zh) * 2007-07-06 2010-10-20 北京搜狗科技发展有限公司 一种对等网络中的数据传输方法及装置
CN101068173B (zh) * 2006-06-08 2010-11-03 腾讯科技(深圳)有限公司 一种资源共享的方法、***及服务器
CN101997781A (zh) * 2009-08-25 2011-03-30 中兴通讯股份有限公司 一种断点续传方法及***
CN102130962A (zh) * 2011-04-06 2011-07-20 上海少思网络科技有限公司 一种基于云计算筛选网络节点加速下载的方法
CN102130928A (zh) * 2010-01-19 2011-07-20 腾讯科技(深圳)有限公司 下载数据的方法和装置
CN101267383B (zh) * 2007-03-14 2011-08-17 ***通信集团公司 数据传送方法及***
CN102164115A (zh) * 2010-02-22 2011-08-24 中国电信股份有限公司 多源混合文件传输方法和***
CN101631061B (zh) * 2008-07-15 2011-08-31 ***通信集团公司 一种资源节点信息通知方法及网络实体装置
CN101437051B (zh) * 2008-12-04 2011-09-28 四川长虹电器股份有限公司 网络资源下载方法
CN102333127A (zh) * 2011-10-20 2012-01-25 中兴通讯股份有限公司 资源下载方法、装置及***
CN102387220A (zh) * 2011-12-22 2012-03-21 乐视网信息技术(北京)股份有限公司 一种基于云存储的离线下载的方法及其***
CN101075879B (zh) * 2006-06-13 2012-04-25 腾讯科技(深圳)有限公司 一种数据下载方法
CN101437044B (zh) * 2008-11-28 2012-05-09 中兴通讯股份有限公司 基于切片的点对点网络技术的文件下载方法及***
CN102571951A (zh) * 2011-12-31 2012-07-11 珠海金山办公软件有限公司 一种传输文件的***及方法
CN101325579B (zh) * 2007-06-11 2012-09-12 上海未来宽带技术及应用工程研究中心有限公司 优化客户端连接下载的方法
CN102664938A (zh) * 2012-04-12 2012-09-12 北京蓝汛通信技术有限责任公司 一种资源下载控制方法及装置
CN101330594B (zh) * 2007-06-18 2013-02-27 中兴通讯股份有限公司 对等网络视频点播媒体的存储方法及其媒体点播***
CN103118277A (zh) * 2013-02-22 2013-05-22 北京暴风科技股份有限公司 一种视频加速方法
CN103269351A (zh) * 2012-12-07 2013-08-28 北京奇虎科技有限公司 一种文件下载方法和装置
WO2014032607A1 (en) * 2012-08-31 2014-03-06 Tencent Technology (Shenzhen) Company Limited File sharing method, terminal and relay server
CN104066106A (zh) * 2013-03-22 2014-09-24 上海斐讯数据通信技术有限公司 通信方法及终端***
CN104426946A (zh) * 2013-08-27 2015-03-18 腾讯科技(深圳)有限公司 批量下载数据处理方法和装置
CN104539984A (zh) * 2014-12-30 2015-04-22 北京奇艺世纪科技有限公司 一种视频播放方法、装置及***
CN104539619A (zh) * 2014-12-29 2015-04-22 芜湖乐锐思信息咨询有限公司 用于互联网在线交易的数据处理***及方法
CN104765656A (zh) * 2015-04-23 2015-07-08 浪潮电子信息产业股份有限公司 一种冷数据的备份方法及装置
CN105491087A (zh) * 2014-09-17 2016-04-13 联想(北京)有限公司 一种文件下载方法、装置和电子设备
CN105635287A (zh) * 2015-12-31 2016-06-01 深圳市网心科技有限公司 一种文件传输***及方法
CN106302641A (zh) * 2016-07-27 2017-01-04 北京小米移动软件有限公司 一种上传文件的方法、装置和***
CN106412137A (zh) * 2016-12-20 2017-02-15 北京并行科技股份有限公司 一种文件下载***及文件下载方法
CN106921682A (zh) * 2015-12-24 2017-07-04 百度在线网络技术(北京)有限公司 文件上传方法和装置
CN109660496A (zh) * 2017-10-12 2019-04-19 阿里巴巴集团控股有限公司 校验信息的获取、资源校验和发布方法、装置及电子设备
CN110012108A (zh) * 2019-04-15 2019-07-12 深圳市网心科技有限公司 数据副本存储方法、下载方法、云存储***及相关装置
US10383083B2 (en) 2016-09-18 2019-08-13 Beijing Xiaomi Mobile Software Co., Ltd. Wireless local area network based positioning method and device
CN110661829A (zh) * 2018-06-28 2020-01-07 杭州海康威视***技术有限公司 文件下载方法及装置、客户端和计算机可读存储介质
CN110891081A (zh) * 2019-10-21 2020-03-17 量子云未来(北京)信息科技有限公司 一种数据发送设备、路由设备、报文公告设备、接收设备
CN111147595A (zh) * 2019-12-30 2020-05-12 昆山丘钛微电子科技有限公司 一种文档下载方法、***、服务器和客户端
CN111343225A (zh) * 2018-12-19 2020-06-26 北京奇虎科技有限公司 一种文件处理方法和装置
CN114745371A (zh) * 2022-05-09 2022-07-12 湖南快乐阳光互动娱乐传媒有限公司 一种点对点的下载方法、装置、设备及介质
CN115150133A (zh) * 2022-06-20 2022-10-04 浙江大华技术股份有限公司 一种数据传输方法、装置及电子设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003067276A (ja) * 2001-08-22 2003-03-07 Nippon Telegr & Teleph Corp <Ntt> 異なるp2pファイル交換ネットワーク間の相互接続方法、および、p2pファイル交換ネットワークシステム
US20030097299A1 (en) * 2001-11-21 2003-05-22 O'kane Robert Peer-to-peer (P2P) and internet content digital acknowledgement trigger used for file transfer
JP2003219050A (ja) * 2002-01-18 2003-07-31 Toshiba Corp システム情報ダウンロード方法及び電話システムの主装置
JP2004127189A (ja) * 2002-10-07 2004-04-22 Matsushita Electric Ind Co Ltd ゲートウェイ装置、コンテンツ転送システム及びコンテンツ転送方法

Cited By (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100384127C (zh) * 2006-01-06 2008-04-23 华为技术有限公司 一种下载者终端及其下载共享数据的方法
CN100418330C (zh) * 2006-06-06 2008-09-10 北京北大方正电子有限公司 一种基于预测搜索的网络文件传输方法
CN101068173B (zh) * 2006-06-08 2010-11-03 腾讯科技(深圳)有限公司 一种资源共享的方法、***及服务器
CN101075879B (zh) * 2006-06-13 2012-04-25 腾讯科技(深圳)有限公司 一种数据下载方法
WO2007147320A1 (en) * 2006-06-14 2007-12-27 Roxbeam Media Network Corporation System and method for buffering real-time streaming content in a peer-to-peer overlay network
CN1897588B (zh) * 2006-06-21 2010-06-16 北京北大方正电子有限公司 一种混合模式的网络文件传输方法及***
WO2008025294A1 (fr) * 2006-08-22 2008-03-06 Tencent Technology (Shenzhen) Company Limited Système, dispositif et procédé par connexion pair à pair de flux multimedia
CN101132272B (zh) * 2006-08-23 2010-07-28 中国科学院计算技术研究所 一种同时支持分布式加密文件下载和使用的***
CN101150465B (zh) * 2006-09-22 2010-09-15 腾讯科技(深圳)有限公司 一种获取种子信息的方法及p2p网络中的超级节点和普通节点
CN101192946B (zh) * 2006-11-28 2010-08-25 欧阳炳宇 一种提高特定p2p嵌入式终端下载效率的方法和***
WO2008077328A1 (fr) * 2006-12-25 2008-07-03 Tencent Technology (Shenzhen) Company Limited Système, procédé et appareil permettant d'accéder à un élément de page web
CN101267383B (zh) * 2007-03-14 2011-08-17 ***通信集团公司 数据传送方法及***
CN101325579B (zh) * 2007-06-11 2012-09-12 上海未来宽带技术及应用工程研究中心有限公司 优化客户端连接下载的方法
CN101330594B (zh) * 2007-06-18 2013-02-27 中兴通讯股份有限公司 对等网络视频点播媒体的存储方法及其媒体点播***
CN101090367B (zh) * 2007-07-06 2010-10-20 北京搜狗科技发展有限公司 一种对等网络中的数据传输方法及装置
US8510415B2 (en) 2007-10-09 2013-08-13 Huawei Technologies Co., Ltd Data distribution method, data distribution system and relevant devices in edge network
JP2010525420A (ja) * 2007-10-09 2010-07-22 ▲ホア▼▲ウェイ▼技術有限公司 エッジネットワークにおけるデータ配信方法、データ配信システム、および関連装置
WO2009046642A1 (fr) * 2007-10-09 2009-04-16 Huawei Technologies Co., Ltd. Procédé de distribution de données, système distribution de données et dispositifs de corrélation dans un réseau périphérique
CN101409706B (zh) * 2007-10-09 2011-11-23 华为技术有限公司 一种边缘网络中的数据分发方法、数据分发***及相关设备
CN101159762B (zh) * 2007-11-19 2010-07-21 腾讯科技(深圳)有限公司 加速网页内容下载的方法及装置
WO2009079948A1 (fr) 2007-12-26 2009-07-02 Huawei Technologies Co., Ltd. Procédé de mise en tampon et d'interrogation de contenu, et système de transmission multimédia point à point
CN101472166B (zh) * 2007-12-26 2011-11-16 华为技术有限公司 一种内容缓存、查询方法及点对点媒体传输***
CN101631061B (zh) * 2008-07-15 2011-08-31 ***通信集团公司 一种资源节点信息通知方法及网络实体装置
CN101437044B (zh) * 2008-11-28 2012-05-09 中兴通讯股份有限公司 基于切片的点对点网络技术的文件下载方法及***
CN101437051B (zh) * 2008-12-04 2011-09-28 四川长虹电器股份有限公司 网络资源下载方法
WO2010099715A1 (zh) * 2009-03-04 2010-09-10 成都市华为赛门铁克科技有限公司 数据操作方法、***、客户端和数据服务器
CN101848188A (zh) * 2009-03-25 2010-09-29 上海聚力传媒技术有限公司 对数据块校验信息进行更新的方法和装置
CN101997781A (zh) * 2009-08-25 2011-03-30 中兴通讯股份有限公司 一种断点续传方法及***
CN101997781B (zh) * 2009-08-25 2016-01-20 中兴通讯股份有限公司 一种断点续传方法及***
CN102130928A (zh) * 2010-01-19 2011-07-20 腾讯科技(深圳)有限公司 下载数据的方法和装置
CN102164115A (zh) * 2010-02-22 2011-08-24 中国电信股份有限公司 多源混合文件传输方法和***
CN101827128A (zh) * 2010-04-06 2010-09-08 山东高效能服务器和存储研究院 一种文件网络传输中分块下载和匹配的方法
CN102130962A (zh) * 2011-04-06 2011-07-20 上海少思网络科技有限公司 一种基于云计算筛选网络节点加速下载的方法
CN102333127A (zh) * 2011-10-20 2012-01-25 中兴通讯股份有限公司 资源下载方法、装置及***
CN102387220A (zh) * 2011-12-22 2012-03-21 乐视网信息技术(北京)股份有限公司 一种基于云存储的离线下载的方法及其***
CN102571951A (zh) * 2011-12-31 2012-07-11 珠海金山办公软件有限公司 一种传输文件的***及方法
CN102664938A (zh) * 2012-04-12 2012-09-12 北京蓝汛通信技术有限责任公司 一种资源下载控制方法及装置
CN102664938B (zh) * 2012-04-12 2015-08-05 北京蓝汛通信技术有限责任公司 一种资源下载控制方法及装置
WO2014032607A1 (en) * 2012-08-31 2014-03-06 Tencent Technology (Shenzhen) Company Limited File sharing method, terminal and relay server
CN103269351A (zh) * 2012-12-07 2013-08-28 北京奇虎科技有限公司 一种文件下载方法和装置
CN103118277A (zh) * 2013-02-22 2013-05-22 北京暴风科技股份有限公司 一种视频加速方法
CN103118277B (zh) * 2013-02-22 2016-04-06 北京暴风科技股份有限公司 一种视频加速方法
CN104066106A (zh) * 2013-03-22 2014-09-24 上海斐讯数据通信技术有限公司 通信方法及终端***
CN104426946A (zh) * 2013-08-27 2015-03-18 腾讯科技(深圳)有限公司 批量下载数据处理方法和装置
CN104426946B (zh) * 2013-08-27 2019-02-22 腾讯科技(深圳)有限公司 批量下载数据处理方法和装置
CN105491087B (zh) * 2014-09-17 2019-07-26 联想(北京)有限公司 一种文件下载方法、装置和电子设备
CN105491087A (zh) * 2014-09-17 2016-04-13 联想(北京)有限公司 一种文件下载方法、装置和电子设备
CN104539619B (zh) * 2014-12-29 2017-10-27 福建爱特点信息科技有限公司 用于互联网在线交易的数据处理方法
CN104539619A (zh) * 2014-12-29 2015-04-22 芜湖乐锐思信息咨询有限公司 用于互联网在线交易的数据处理***及方法
CN104539984B (zh) * 2014-12-30 2018-09-28 北京奇艺世纪科技有限公司 一种视频播放方法、装置及***
CN104539984A (zh) * 2014-12-30 2015-04-22 北京奇艺世纪科技有限公司 一种视频播放方法、装置及***
CN104765656A (zh) * 2015-04-23 2015-07-08 浪潮电子信息产业股份有限公司 一种冷数据的备份方法及装置
CN106921682A (zh) * 2015-12-24 2017-07-04 百度在线网络技术(北京)有限公司 文件上传方法和装置
CN105635287A (zh) * 2015-12-31 2016-06-01 深圳市网心科技有限公司 一种文件传输***及方法
CN106302641B (zh) * 2016-07-27 2019-10-01 北京小米移动软件有限公司 一种上传文件的方法、装置和***
CN106302641A (zh) * 2016-07-27 2017-01-04 北京小米移动软件有限公司 一种上传文件的方法、装置和***
US10694001B2 (en) 2016-07-27 2020-06-23 Beijing Xiaomi Mobile Software Co., Ltd. Method, apparatus and system for uploading a file
US10383083B2 (en) 2016-09-18 2019-08-13 Beijing Xiaomi Mobile Software Co., Ltd. Wireless local area network based positioning method and device
CN106412137A (zh) * 2016-12-20 2017-02-15 北京并行科技股份有限公司 一种文件下载***及文件下载方法
CN106412137B (zh) * 2016-12-20 2019-07-09 北京并行科技股份有限公司 一种文件下载***及文件下载方法
CN109660496A (zh) * 2017-10-12 2019-04-19 阿里巴巴集团控股有限公司 校验信息的获取、资源校验和发布方法、装置及电子设备
CN109660496B (zh) * 2017-10-12 2021-09-03 阿里巴巴集团控股有限公司 校验信息的获取、资源校验和发布方法、装置及电子设备
CN110661829A (zh) * 2018-06-28 2020-01-07 杭州海康威视***技术有限公司 文件下载方法及装置、客户端和计算机可读存储介质
CN111343225A (zh) * 2018-12-19 2020-06-26 北京奇虎科技有限公司 一种文件处理方法和装置
CN111343225B (zh) * 2018-12-19 2024-04-09 三六零科技集团有限公司 一种文件处理方法和装置
CN110012108A (zh) * 2019-04-15 2019-07-12 深圳市网心科技有限公司 数据副本存储方法、下载方法、云存储***及相关装置
CN110891081A (zh) * 2019-10-21 2020-03-17 量子云未来(北京)信息科技有限公司 一种数据发送设备、路由设备、报文公告设备、接收设备
CN111147595A (zh) * 2019-12-30 2020-05-12 昆山丘钛微电子科技有限公司 一种文档下载方法、***、服务器和客户端
CN114745371A (zh) * 2022-05-09 2022-07-12 湖南快乐阳光互动娱乐传媒有限公司 一种点对点的下载方法、装置、设备及介质
CN115150133A (zh) * 2022-06-20 2022-10-04 浙江大华技术股份有限公司 一种数据传输方法、装置及电子设备

Also Published As

Publication number Publication date
CN100459497C (zh) 2009-02-04

Similar Documents

Publication Publication Date Title
CN1710857A (zh) 一种实现文件加速下载的***及方法
US9774558B2 (en) Method and system for inter-social network communications
US11449525B2 (en) Facilitating mobile device interaction with an enterprise database system
CN1200378C (zh) 预取信息的方法,***和服务器
US9094359B2 (en) Method and system for inter-social network communications
CN1231028C (zh) 在不同网络的匿名用户之间智能建立会话的分布式***
JP4724717B2 (ja) 通信をルーティングする方法および装置
CN1925462A (zh) 高速缓存***
CN1703048A (zh) 网络服务应用协议和soap处理模型
CN1852107A (zh) 关系信息的公开、获取方法及***
CN1605181A (zh) 用于为专用网络上的资源提供安全访问的方法和***
CN1460212A (zh) 使用协议无关控制模块引导和管理应用程序及业务服务器的媒体对话构架
KR20140022464A (ko) 네트워크 리소스 다운로드 정보에 대한 공유 제어 시스템 및 그 제어 방법
US9961519B1 (en) Facilitating mobile device interaction with an enterprise database system
CN1711784A (zh) 用于发送sms以及文本消息的***和方法
CN1819518A (zh) 一种用于在信息发布***中辨识用户身份的方法
CN1581771A (zh) 验证***、服务器和验证方法及程序
CN1703697A (zh) 用于路由并索引全球可寻址对象和有关的商业模式的***、方法以及程序
CN1755694A (zh) 将资源组织成集合以促进更有效和可靠的资源访问
CN1901490A (zh) 用于提供Web服务的方法、装置以及程序产品
CN101068243A (zh) 处理网关层与业务层的消息交互***以及发送、接收方法
US10795966B1 (en) Extracting data sets from external data stores
CN1852150A (zh) 网络中的个人数据搜索***和方法
CN1564985A (zh) 程序及信息处理方法和设备
CN1823492A (zh) 对等环境中的用户交互作用***和方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20060127

Address after: 100081 Beijing City, Haidian District Weigongcun District No. 13 Building 1 No. 5

Applicant after: Qianxiangshiji Tech Development (Beijing) Co., Ltd.

Address before: No. 2, No. 45, North Main Street, Haidian District, Beijing, building No. 1506, building No. 2, Xizhimen

Applicant before: Qianxiang-Huanyu Science-Technology Development Co., Ltd.

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

Granted publication date: 20090204

Termination date: 20160618

CF01 Termination of patent right due to non-payment of annual fee