因特网多服务器文件并发下载技术的制作方法

文档序号:6497185阅读:891来源:国知局
专利名称:因特网多服务器文件并发下载技术的制作方法
一、文件服务与文件资源搜索引擎文件服务是因特网(Internet)的重要应用之一。共享文件资源是因特网上的重要资源。对于存放在公共服务器上的共享文件资源,用户通过特定的客户端程序和特定的连接协议下载(例如使用FTP协议的FTP客户端,使用HTTP协议的WWW浏览器等等)。但是,受到网络带宽、服务器性能的限制,大数据量文件下载是一件非常费时的事情。本文将提出一项通过从多个服务器进行文件并发下载的技术,能够大大缩短文件下载时间,并显著提高文件下载成功率。
由于因特网上可供下载的共享文件资源越来越多,用户从因特网上找到所需要的资源越来越困难。为了帮助用户更快的找到所需要资源,搜索引擎应运而生。搜索引擎的任务是根据用户提交的资源信息(例如关键字等)返回包含相应网络资源的服务器地址及存放位置信息,它出现大大方便用户的使用。搜索引擎可以提供WWW页面形式的界面,也可以通过定制的客户端软件使用定制界面。
早期提供共享文件资源服务的服务器往往只提供完整文件的下载,不允许下载文件的特定部分。这使得用户在下载一个大型文件的期间如果发生中断将前功尽弃。为了克服这个困难,现在很多文件服务器(例如多数的FTP服务器)都提供“断点续传”功能,即允许指定文件的起始下载位置。这样,中断后的下载任务,可以在重新开始后根据需要从特定位置继续,大大方便了大型文件的下载。二、多线程文件下载技术文件下载所需要的时间主要取决于两个因素网络状况和服务器状况。对于繁忙的服务器,由于服务器要同时处理来自许多用户的下载请求,因此服务器性能以及靠近服务器端网络性能往往成为制约文件传输速度的瓶颈。在这种情况下,多线程下载技术出现了。在这种方式下,客户端启动多个线程同时与服务器建立连接,每个连接分别下载不同的文件或者同一文件的不同部分。由于服务器平等处理各个线程的请求,因此多个线程可以得到服务器更多的处理机会。同时由于网络中间设备更多次数收到用户网络传输请求,因此成功发送数据的次数也会提高。这几个因素都使得文件下载速度加快。但是这种方式是以挤占其他用户的服务器处理时间与网络带宽为代价的;另外,多线程下载导致服务器硬盘磁头频繁移动,这对服务器本身是有害的。因此许多文件服务器都对来自同一网络地址的下载线程最大个数加以限制。
由于下载过程中,每个线程负责下载文件的一个特定片段而不是完整的文件,因此该技术要求文件服务器必须支持“断点续传”功能。三、服务器选择技术由于文件服务在因特网上使用的如此广泛以及共享资源的共享特性,使得这些文件在因特网上的传播过程中被多次复制和拷贝,这导致不同服务器上有大量重复的共享文件资源。对于同样的文件,通过搜索引擎可以在很多文件服务器上找到其完全相同的副本。由于用户并不关心文件具体来自哪个服务器,因此,我们可以在不同的服务器间选择下载速度最快的服务器。
由于必须在不同的服务器间进行选择,因此客户端必须了解待下载文件究竟在那些服务器上存在,以及各个服务器向客户端发送文件的速度。对于前一信息,客户端可以通过与指定搜索引擎的联系获得;而对于后一信息,客户端如果不进行尝试性连接及传输,是很难在下载任务开始以前取得各服务器下载速率信息并进行比较的。搜索引擎能够统计过去客户端从服务器下载文件的速率等信息,了解特定位置的用户下载特定服务上的文件的大致信息,并通知客户端进行选择。但由于现实情况千变万化(例如服务器用户数目的变化,网络状况的变化等),这个信息很难做到精确,在少数情况下还会有较大偏差。因此,要想从多个站点中准确选择下载速度最快的站点是一件非常困难的事情。四、多服务器文件并发下载技术本文提出的“多服务器文件并发下载技术”不再要求预先选择速度最快的文件服务器。下载客户端只需要通过向搜索引擎查询有哪些站点包含待下载文件,以及待下载文件存放在这些站点上的具体位置。
在下载单个大型文件时,首先将文件分割成多个片段,然后将下载请求同时提交到包含该文件的多个文件服务器,并分别从这些服务器下载相应的文件片段(用户可以手工干预下载任务所提交的服务器)。对于固定大小的文件片段,传输速率高的服务器会首先完成下载任务,这时我们可以指定其继续下载文件的其他部分。对于传输速率非常低(包括无法正常工作)的服务器连接,可以指定一个阈值,当速率低于此阈值,或者连接时间超过该阈值后仍未完成下载任务时,将该下载请求取消,将下载任务交给其他服务器完成。也可以将同一片段的下载请求提交给多个服务器,当其中一个服务器的下载任务完毕后取消其他服务器的连接。
对于大型文件的分割下载要求文件服务器支持“断点续传”功能。而当有多个文件需要下载时,可以尽可能将不同的文件提交到不同的站点。这样可以减少甚至避免将一个文件切分成多个片段的情况,因此当文件服务器不支持“断点续传”时也能够正常工作。
当从多个服务器同时下载不同文件或者同一文件的的不同片段时,所获得的传输速率是所有服务器下载速率的和。而当从多个服务器下载文件的同一片段时,由于只要有一个服务器下载完毕下载任务即告完成,因此实际所获得的下载速率将是所有这些服务器的最大下载速率。在这个过程中,我们无需事先对用户到站点间的下载速率进行预先估计。同时,由于是从多个站点同时下载文件,因此当其中某服务器停止服务时,客户端能够继续从其他服务器取得数据,不会导致下载任务中断。这一特性是前面的各种下载技术所不能实现的。
在从单个文件服务器下载文件或者文件片段的时候,我们仍然可以使用传统的多线程下载技术,即将分配给特定服务器的下载任务使用多个线程完成。同时,结合服务器选择技术,我们可以优先考虑速度较高的服务器,避免客户端在同一时刻连接过多的服务器。与多线程技术和站点选择技术的结合将使得多站点文件并发下载技术获得更加出色的表现。
权利要求
1.在下载单个文件时,客户端同时向多个服务器提交下载请求,下载同一文件的不同部分,并进行拼接。
2.在下载单个文件时,客户端同时向多个服务器提交下载请求,下载同一文件的相同部分,并对各下载结果进行选择。
3.在下载多个文件时,客户端同时向多个服务器提交下载请求,分别从不同的服务器下载不同的文件或者相同文件的不同部分。
4.在进行多服务器文件并发下载时,从特定站点下载特定文件(或者其特定片段)时使用多线程技术。
5.在向多个服务器提交下载请求之前,通过一定方法选择站点,优先提交下载请求。允许放弃部分站点或者允许用户干预。
6.在进行多服务器文件并发下载时,根据实时情况动态调节文件的各部分及各文件在各服务器间的任务分配,同时动态更新服务器列表。
7.在进行多服务器文件并发下载时,任何下载任务可以暂停。恢复后可以使用原有的下载分配列表,也可重建列表。
全文摘要
共享文件资源是因特网上的重要资源之一。大量文件数据通过传统的FTP/HTTP协议下载是一件非常费时费力的事情。目前常见的加速文件下载的技术是多线程下载和选择最快站点下载。本文则提出一种通过同时从多个文件服务器并发下载文件的技术。该技术不仅能够大大缩短文件下载时间,提高文件下载的成功率,而且能够消除多线程下载给服务器和网络带来的重负荷。同时,该技术还能够与多线程技术与站点选择技术结合使用,使下载速率得到进一步提高。
文档编号G06F13/20GK1425990SQ0114421
公开日2003年6月25日 申请日期2001年12月13日 优先权日2001年12月13日
发明者杨磊, 黄辉 申请人:杨磊, 黄辉
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1