CN101207575B - 用于对文件下载进行管理的系统和方法 - Google Patents
用于对文件下载进行管理的系统和方法 Download PDFInfo
- Publication number
- CN101207575B CN101207575B CN200710192726.XA CN200710192726A CN101207575B CN 101207575 B CN101207575 B CN 101207575B CN 200710192726 A CN200710192726 A CN 200710192726A CN 101207575 B CN101207575 B CN 101207575B
- Authority
- CN
- China
- Prior art keywords
- file
- download
- request
- length
- session
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/93—Document management systems
-
- 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/50—Network services
- H04L67/52—Network services specially adapted for the location of the user terminal
-
- 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/28—Timers or timing mechanisms used in protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Between Computers (AREA)
Abstract
用于对文件下载进行管理的系统和方法。接收到用以建立会话的当前请求。在该会话中,存在着始于指定位置处下载文件的请求,该指定位置在文件的开端之后。当前请求未指定所请求的下载的固定长度。基于现有的始于其它各位置处下载文件的请求来估计文件将被下载的长度。响应于当前请求,始于所指定位置处下载所估计的文件长度。响应于下载始于所指定位置处的所估计的文件长度,该文件下载在一个时间窗口中挂起。如果对应于当前请求的会话在该时间窗口内未终止,则在对当前请求的进一步响应中自动地继续下载该文件紧接着该长度之后的部分。如果对应着当前请求的会话在该时间窗口内终止了,则在对当前请求的进一步响应中不会自动地继续下载该文件紧接着该长度之后的部分。
Description
技术领域
本发明一般涉及计算机系统和网络,并且更特别地涉及对文件下载的管理。
背景技术
众所周知,客户端计算机或应用服务器从文件服务器请求下载文件。在一种操作模式中,请求者建立与文件服务器的连接、标识文件、指定下载的开端位置、并且请求下载该文件。作为响应(假设文件服务器将允许该下载),文件服务器开始从所指定的开端位置下载文件。如果文件过长,并且通信带宽有限,则完成下载可能花费相当长的时间。为了缓解这个问题,请求者可以与文件服务器建立多个连接,并且为每个连接标识文件和不同的错开的各个下载开端位置,并请求从各个开端位置进行下载。例如,对于一个连接,请求者可以请求始于开端位置0处下载所述文件,对于另一连接,请求者可以请求始于开端位置5000处下载相同的文件,对于另一连接,请求者可以请求始于开端位置10000处下载相同的文件。一般地,这将使下载加速,特别在存在从文件服务器到请求者的并行通信路径的情况下。理想地,当建立多个连接用于对相同文件并行地分段地下载时,请求者将指定每个下载请求的段长度,并且针对每个连接的段长度将延伸到下一个下载请求的开端位置。如果请求者指定用于连接的下载段长度,则文件服务器始于所指定的开端位置处下载所指定的段。然而,如果请求者没有指定下载长度,则文件服务器将从开端位置处开始下载,并且持续下载直到从请求者那接收到“结束连接”通知为止。当文件服务器直到下载了与根据下一个连接请求的下载相重叠的一部分文件之后,文件服务器才接收到“结束连接”通知时,这将导致下载被(冗余的/重叠的)浪费。例如,如果始于位置0处的第一连接请求导致下载第一6000个字节,则这将与始于位置5000处的下一个连接请求重叠,导致1000个字节(也即字节5000到字节6000)的下载是浪费/冗余的。实际上,在文件的传输期间的重叠总量可能非常大。
因此,本发明的目的是当按照多个下载请求并行地下载文件并且请求者没有为每个请求指定下载的长度时,避免部分文件的冗余下载。
发明内容
本发明属于一种用于对文件下载进行管理的系统、方法和程序。接收到用以建立会话的当前请求。在该会话中,存在着始于指定位置处下载文件的请求,该指定位置在文件的开端之后。当前请求未指定所请求的下载的固定长度。基于现有的始于其它各位置处下载文件的请求来估计文件将被下载的长度。响应于当前请求,始于所指定位置处下载所估计的文件长度。响应于始于所指定位置处下载所估计的文件长度,该文件下载在一个时间窗口中挂起。如果对应于当前请求的会话在该时间窗口内未终止,则在对当前请求的进一步响应中自动地继续下载该文件紧接着该长度之后的部分。如果对应着当前请求的会话在该时间窗口内终止了,则在对当前请求的进一步响应中不会自动地继续下载该文件紧接着该长度之后的部分。
根据本发明的特征,对文件将被下载的长度的估计基于在各个下载请求中的相继的下载开端位置之间的差。
根据本发明的另一特征,时间窗口的确定至少是部分地基于(a)对在以前的请求的接收与会话的终止之间的近似时间的测量,或(b)对在始于其他位置处的文件长度的下载与会话的终止之间的近似时间的测量。
附图说明
图1是包括本发明的分布式计算机系统的框图;
图2(A)、图2(B)、图2(C)形成根据本发明的在图1的分布式计算机系统的文件服务器内的文件下载管理程序的流程图。
具体实施方式
现在,将参考附图来详细地描述本发明。图1图示了包括本发明的分布式计算机系统,其一般地标为10。根据现有技术,分布式计算机系统10包括“客户端”计算机20,其具有在公共总线25上的CPU21、操作系统22、RAM23和ROM24,以及存储装置26。“客户端”计算机20可以是向文件服务器40(或者直接地或间接地供应文件的其它服务器)请求文件的任何计算机。客户端计算机20还包括应用程序27,其请求经由因特网30与文件服务器40的连接,并且接着请求从文件服务器40下载文件50。对于本发明来说,除了它请求文件的下载以外,应用27的功能并不重要。根据现有技术,文件服务器40包括在公共总线45上的CPU41、操作系统42、RAM43和ROM44,以及具有文件的存储装置46,所述文件包括数据文件50和数据管理文件70。文件服务器40还包括诸如由IBM AIX操作系统所提供的公知文件系统52,其实现对文件50的实际访问。文件服务器40还包括根据本发明的文件下载管理程序60,其对在各独立连接中的分段的文件50的下载进行管理以避免重叠/冗余的下载。文件下载管理程序60使用文件系统52来执行访问存储装置46所需要的处理。
客户端计算机20中的应用27可以是公知的应用,并且以两种操作模式中的任意一种来请求下载文件,诸如下载文件50。在一种操作模式中,应用27建立与文件服务器40的连接,通过能被翻译为文件名的URL来标识文件,诸如文件50,并且由此请求下载该文件。作为响应(假设文件服务器40基于对请求者的认证和授权将允许该下载),文件服务器开始从文件的开头下载该文件(在程序60的管理下)。如果该文件过长,并且通信带宽有限,则完成该下载可能花费相当长的时间。为了缓解这个问题,应用27可以与文件服务器建立多个连接,并且为每个连接标识该文件和不同的错开的下载开端位置,并请求从所述各个开端位置下载。例如,对于一个连接,应用27可以请求始于位置0处下载所述文件,对于另一连接,应用27可以请求始于位置5000处下载相同的文件,以及对于另一连接,应用27可以请求始于位置10000处下载相同的文件。一般地,这将使下载加速,特别在存在从文件服务器40到请求者20的并行通信路径的情况下。理想地,当建立多个连接用于在不同连接中对相同文件并行地分段下载时,应用27将指定每个下载请求的段长度,并且该长度将到达下一个下载请求段但不与之重叠。在上述例子中,理想地,应用27将指定5000字节的段长度用于始于开端位置0处的下载请求,以及指定5000字节的段长度用于始于开端位置5000处的下载请求。然而,如果应用27没有指定每个下载请求的长度,则应用27在接收到所预期的段(其到达下一个下载请求段但不与之重叠)之后,可以断开到文件服务器40的连接以终止该会话和其下载。(如在现有技术中所公知的,连接由客户端或服务器来保持打开或关闭。当客户端或服务器想要停止传送时,它“关闭/丢弃”连接而不通知另一端)。
根据本发明,在文件下载管理程序60的控制下的服务器40检测应用27何时已经建立与服务器40的多个会话并做出多个请求用于对相同文件从不同的开端位置处的下载。如果应用27没有指定相同文件中的每个下载的长度,则服务器40计算针对相继下载请求的相邻开端位置之间的差,并且起始地假设每个下载请求是针对长度为该差的段。在上述例子中,其中应用27与服务器40建立三条连接,并且请求从开端地址0、5000和10000处下载,程序60将假设每个下载请求针对5000字节,因为那是在相继的下载请求之间的开端位置的差。对于始于开端地址0和5000处的下载请求,程序60将启动5000字节的下载,因为那是在相邻的下载请求的相继开端位置之间的差,并且接着暂停。对于始于开端位置10000处的下载请求,服务器40将起始地下载始于开端位置10000处的5000字节并接着暂停。如果服务器40在下载了始于位置0处的下载请求的5000字节中的最后字节之后的预定时间窗口内,从应用27接收对应着请求始于位置0处的下载的连接的结束连接请求,则那就是针对第一下载请求的下载的结尾。这将避免对所述文件的一部分(诸如字节5000至6000,其与始于开端位置5000处的下一个下载请求的一部分重叠)的冗余下载。同样,如果服务器40在下载了始于位置5000处的下载请求的5000字节中的最后字节之后的预定时间窗口内,从应用27接收对应着请求始于位置5000处的下载的连接的结束连接请求,则那就是针对第二下载请求的下载的结尾。这将避免对所述文件的一部分(诸如字节10000至11000,其与始于开端位置10000处的下一个下载请求的一部分重叠)的冗余下载。假设所述文件是17000字节。在这种情况下,响应于始于开端位置15000处的第三连接/下载请求,服务器40将下载始于位置10000处的第一5000字节并接着暂停。因为响应于第三下载请求,应用27正期待着完整的文件,所以应用27在接收到字节15000之后将不断开所述连接。因此,在下载了字节15000之后,如上所述服务器40将暂停,因为服务器40将假设所述下载请求是针对5000的。然而,因为应用27将不断开所述连接直到接收了完整的文件为止,所以在预定的时间窗口之后,服务器40将继续对所述文件的下载直到结尾为止,也即字节17000。接着,服务器40将断开所述连接,因为它已经发送了完整的文件。
图2(A)、图2(B)和图2(C)更加详细地说明了文件下载管理程序60的操作和功能。以下的术语和参数的定义对于理解图2(A)、图2(B)和图2(C)是有帮助的。
“顺序的请求”:如果服务器已经查找到位置“L”并发送了“N”字节,则顺序的请求是针对在L+N内的任何偏移量(包括L+N)的后继请求。例如,如果存在查找到位置300000的请求并且服务器发送了45000字节,则将查找到300001至并包括345000中的任何位置的后继请求称为‘顺序的请求’。300000和345001之间的范围被定义为顺序的范围。
每个“非顺序的”请求被存储有以下六项:
IP请求的IP地址
IPt如果正在跟踪该IP并正遵循本发明,则IPt为“真”(TRUE)(程序60检测不应当被跟踪的条件,并因此将只带有一偏移量的的请求视为实际上想要文件的所有剩余字节,并因此不尝试估计或预测所请求的长度。)
Si请求的偏移量
Ni针对请求发送的字节
Ti在请求和‘丢弃’连接之间的时间
Q顺序的范围
这些项的集合被命名为Rn。客户端计算机可以打开若干非顺序的请求,并且程序60将把这些请求命名为R0、R1、R2,等等。客户端计算机将经常打开针对大文件的若干连接/下载请求,其中每个Rn是独立的下载线程并且每个线程将通过进行一系列的小的顺序段来下载所述文件的一个大的部分。此外,针对Rn的Si可以被命名为RnSi。例如,程序60将存储针对R0所接收的最后的偏移量请求并且称它为R0Si。当程序60接收带有新偏移量的新请求时,程序60将把所述“新偏移量”称为用于当前段偏移量的Sc。
如图2(A-C)中所说明,程序60确定客户端计算机的实际请求大小,其被标注为Cs。Cs总是被设置成所计算的最小的现有的Cs。例如,如果Cs具有的范围为40000,并且服务器接收针对300000-345001的“顺序的范围”的顺序的请求305000,则程序60就将Cs计算为40000和5000(305000-300000)中的较小者,并将Cs设置成5000。
当服务器从一IP地址(诸如客户端计算机20)接收针对新文件的它的第一请求时,服务器设置总连接时间(Tc=0)和总连接(Nc=0)。注意,Tc/Nc是客户端计算机20完成以下内容所要的平均时间:(a)接收它所期望的字节,(b)丢弃到程序60的连接,以及(c)用于程序60检测所述被丢弃的连接。
在步骤200中,程序60接收请求以与文件服务器40建立连接并下载文件的一部分或全部。所述请求在头字段中包括请求者的IP地址,并还包括下载请求Ri、所请求的下载的开端地址Si(其中在来自所述IP地址的初始连接/下载请求期间,i=0)以及将被下载的文件的名字。作为举例,客户端计算机20中的应用27做出请求,并且IP地址指示客户端计算机20。所述请求可以指定或可以不指定所请求的下载的段长度(判决202)。如果指定了所请求的下载的段长度(判决202,“是”分支),则程序60启动访问并始于所指定的开端位置处下载所命名的文件的所指定的段长度(步骤203),并返回步骤200。服务器将不发送比所述文件的大小更多的字节。
然而,如果下载请求没有指定下载段长度(判决202,“否”分支),则程序60比较当前请求者的IP地址和在IP地址的激活列表内的以前请求者的IP地址(判决204)。如果这是来自所述IP地址的第一下载请求(判决204,“否”分支),则程序60初始化总连接时间Tc和总连接数Nc(步骤205),并接着初始化被用于估计并管理算法步骤210的参数。接着,程序60从存储装置46请求始于所述开端位置处的数据,并且当程序60从存储装置访问/取回数据时,对数据到客户端计算机20的下载进行初始化(步骤212)。在步骤212中为了从存储装置46访问数据,程序60从文件系统52做出针对所述数据的请求,文件系统52诸如由IBM AIX操作系统所提供的文件系统,其处理低级处理以访问存储装置46并从其返回数据。在程序60(经由服务器40)下载数据到客户端计算机20时,程序60周期性地检查到客户端计算机20的连接是否仍然是激活的(判决214)。只要程序60没有检测到丢失的连接,程序60将继续访问并下载所述文件(步骤215)。在某些情况下,程序60将下载完整的文件而不会检测丢失的连接。在这种情况下,程序60将在所命名的文件的结尾处停止对存储装置46的访问并停止下载(步骤215)。然而,在其它情况下(判决214,“是”分支),程序60在完成对所命名的文件的下载之前会检测丢失的连接。在这种情况下,程序60将检查请求者的IP地址以察看它是否被跟踪(如下面所解释)(判决218)。如果所述请求者的IP地址当前正被跟踪(判决218,“是”分支),则程序60就记录发送了多少字节RnNi以及从所述连接/下载请求的时间开始直到识别到所述连接已被丢弃为止的时间RnTi(步骤220)。接着,程序60基于在此刻程序60已经发送的字节来计算每个连接将发送的段大小Cs以及顺序的范围RnQ(步骤221)。程序60于是在数据文件管理文件70中将RnTi添加到Tc,并且递增Nc(步骤222)。如果Cs超过所发现的阈值(例如,一兆字节)(判决224),则客户端计算机20很有可能出现段大小将从一个请求到另一个请求发生变化。在这种情况下,程序60将把IPt设置成“假”(FALSE)并且所述IP地址/请求者将不再被跟踪(步骤225),并且接着程序60将返回步骤200。如果Cs不大于被发现的阈值(例如,一兆字节)(判决224,“否”分支),则所述IP地址将继续被跟踪,并且程序60回到步骤200并等待另一连接。
再次参考步骤200,其中程序60等待并接收下一个连接/下载请求。所述请求在头字段中包括请求者的IP地址,并在所述请求的主体中包括下载段偏移量Sc和将被下载的文件的名字。作为举例,应用27还做出该下一个请求,并且IP地址指示客户端计算机20。所述请求可以指定也或可以不指定所请求的下载的段长度。如果所述下载请求指定了段长度(判决202,“是”分支),则程序60始于所指定的开端位置处下载所指定的段。如果所述下载请求没有指定段长度(判决202,“否”分支),则程序60比较当前请求者的IP地址和在激活列表内的以前请求者的IP地址(判决204)。如果这不是来自所述IP地址的第一连接/下载请求(判决204,“是”分支),则程序60确定所述IP地址当前是否正被跟踪(判决206)。如果所述IP地址当前正被跟踪(判决206,“是”分支),则程序60检查段偏移量Sc是否是如更早时候所定义的顺序的偏移量(判决208)。如果它是(判决208,“是”分支),则程序60跳到步骤300。程序60计算用于该IP地址的段大小并命名用于请求客户端段的段大小“RCs”。这将是在第一请求的偏移量(通常是文件的位置零)与当前请求开始地址的位置(例如当前偏移量位置)Sc之间的正差异减去以前的偏移量位置RnSi。如果由客户端计算机20在第一连接期间实际接收并处理的段RCs小于针对所述第一连接发送的整个段Cs(判决302,“是”分支),则新的一组字节将与已经被发送的一些字节重叠。所述新请求是“顺序的请求”,而程序60确定是否应该像以下这样基于该新请求来调整将发送的字节Cs。程序60假设,RCs是客户端计算机20在第一传送期间存储的段大小,并且假设它将是客户端计算机将希望用于这次传送事件的段大小(步骤304)。如果这种假设是正确的(判决306,“否”分支),则服务器40将发送RCs字节(步骤400)并且针对从客户端计算机20接收的每个后续的连接都如此(判决302,“否”分支)。如果这种假设不正确,在某一点处Cx的值将大于零(判决306,“是”分支)。任何时候只要服务器发送超过RCs个字节,就设置Cx(参见稍后描述的步骤404到414)。如果Cx等于Cs(判决308,“是”分支),客户端计算机20在所期望的时间内不断开连接(判决404,“否”分支),并且程序60发送客户端计算机没有接收或没有存储的额外字节。在任何一种情况下,程序60将通过使用原始的Cs计算来继续所述下载,因此程序60将Cx设置到0并且继续下载所述文件(步骤400)。如果Cx不等于Cs(判决308,“否”分支),则程序60前进到步骤310以重新计算段大小,就好像当前请求是来自该客户端的第一请求。然而,在当前例子中,判决306是“否”,也即Cx不大于“0”,并且程序60前进到步骤400。
在步骤400中,程序60从连接/下载请求的开端地址Sc处开始下载文件,即使它重叠了在前面的连接/下载请求RnSi期间所下载的文件的结尾部分。重复下载在前面的连接/下载R0期间所下载的文件的结尾部分的原因是客户端计算机20丢弃了连接并且还没有接收这些结尾部分字节。接着,程序60将超时(TIME-OUT)设置成等于Tc/Nc+增量,其中“增量”是预定的时间段或平均时间Tc/Nc的百分数(步骤402)。一般,所述超时将足够供程序60用来在(从开端位置Sc)访问和下载Cs下载段之后检测被丢弃的连接(判决404,“是”分支),因为客户端计算机20将在接收到它试图获取的字节之后丢弃连接。接着,程序60将跳到步骤220并且收集用于该传送的数据并且针对另一连接进行设置。这是针对大多数连接/下载请求的典型的和所期望的路径。
然而,偶然地,所述超时将过期(判决404,“否”分支)并且在这种情况下,程序60将继续发送字节(步骤406)直到客户端计算机丢弃连接(判决408,“是”分支)或者程序60下载了文件的结尾(判决408,“否”分支)为止。假设客户端计算机在到达文件的结尾之前丢弃所述连接,则程序60记录字节RnNi、时间RnTi,计算顺序的范围,将所述时间添加到Tc,并且递增连接的数目(步骤410)。因为在该连接中发送了超过Cs个字节,程序60在Cx中存储Cs的值(步骤412)。同样,程序60将设置Cx=RnNi。在下一个连接/下载请求中,程序60将在步骤300到步骤304中重新计算Cs。在判决306中,程序60将了解最后的连接经历了超时,并发送额外字节。在判决308中,程序60将得知客户端计算机20是否已经替换(shift)其所期望的段请求(在这种情况下,判决308,“否”分支)。例如,假设Cs最开始被计算为5000并且许多段通过上面所描述的‘所期望的路径’被发送。然而,在某个人点处发生判决404的“否”分支,并且针对该连接的发送的总字节是28000个。在这种情况下,程序60将把Cx设置成5000(步骤41)并且把Cs设置成28000(414)。在这个例子中假设客户端计算机20已经将它正期望的段大小改变到20000。因此,在下一个请求中程序60将前进到判决302的“是”分支并且设置Cs(步骤304)。Cx将大于0(判决306的“是”分支)而Cx(5000)不等于新的Cs(20000),结果导致判决308中的“否”分支。当客户端替换段大小时,程序60采取保守方法并从IP地址的激活列表中移除所述IP地址,并且删除针对所述IP地址的所有Rn。当下一个连接/下载请求到来时,程序60将其视作第一次请求下载的崭新连接。
程序60有效地处理连接/下载请求无序地到达服务器40的情况,例如首先是在开端位置X处的连接/下载请求,第二是始于开端位置X+D+D处的连接/下载请求,而第三是始于开端位置X+D处的连接/下载请求。在这种情况下,在第一和第二连接/下载请求的开端位置之间的开端位置的差是D+D,而正确的下载长度应当是D。程序60用两种方式中的任何一种来处理像这样的情况。程序60维护连接/下载请求中的开端位置的历史,并且可以将用于当前下载请求的长度估计为等于在当前连接/下载请求的开端位置与任何以前的连接/下载请求的开端位置之间的最小正差。例如,存在具有按时间先后顺序排列的开端位置为0、300000、20000、100000的现有连接/下载请求,并且当前连接/下载请求具有开端位置21000。在这个例子中,程序60将基于21000-20000确定所估计的用于当前连接/下载请求的长度是1000字节。然而,如果最小的差不在任何现有连接/请求的“顺序的范围”内,则程序60将当前连接/下载请求视为来自客户端计算机的第一请求,并且持续下载文件直到客户端计算机终止连接。以下内容更加详细地解释了上述例子。
在上述例子中,第一连接/下载请求始于位置0,并且在这个例子中,响应于所述第一请求,服务器40在客户端计算机20终止连接之前在10秒钟内发送40000字节。此刻,R0Si=0,R0Ni-40000,R0Ti=10,以及R0Q=0到400001。接着,程序60将R0Ti添加到Tc,并递增连接的数目Nc=1,以便计算平均超时。因为Cs=0,程序60将使用针对所述第一连接发送的字节作为用于后续下载请求的第一估计,也即Cs=40000。
在上述例子中,第二连接/下载请求始于位置300000,而程序60确定这不是顺序的请求,因为它超出了响应于所述第一连接/下载请求而发送的数据的偏移量。因此,程序60将这存储在R1Si中,并且发送Cs=40000字节,并且对于丢弃的连接等待Tc/Nc=10秒钟+增量。在这个例子中,程序60假设4000字节比完成对于该连接客户端想要的实际字节数要多。由此,丢弃所述连接的时间应当大约相同,例如12秒、R1Si=300000、R1Ni=40000、R1Ti=12和R1Q=300000-340001。接看,程序60将R1Ti添加到Tc=22,并且递增连接的数目Nc=2。
在这个例子中,第三连接/下载请求始于开端位置20000,其在R0Q=0至40001内。因此,程序60设置Cs=20000,发送20000字节并等待超时=增量+11秒(Tc/Nc或22/2)。如果客户端计算机20在超时过期之前终止连接,则那就是响应于当前连接/下载请求的下载的结束。接着,程序60假设所述客户端计算机想要将20000字节或更少字节用于每个后续连接:R0Si=20000,R0Ni=20000,R0Ti=12,R0Q=20000-40001,Tc=33以及Nc=3。
在这个例子中,第四连接/下载请求始于开端位置100000,其再次位于顺序的范围R0Q或R1Q之外,因此程序60将该开端位置存储为R3,并只发送20000字节。程序60存储所发送的字节的数目和时间,例如11秒,R3Si=100000,R3Ni=20000,R3Ti=11,R3R=100000到120001,Tc=44以及Nc=4)。
在这个例子中,第五连接/下载请求始于开端位置21000,其位于R0Q(20000-40001)内。接着,程序60将Cs计算为1000(21000-20000)。在这个例子中,程序60发送1000字节而客户端计算机20在超时过期之前(例如再次是在11秒处)结束连接,程序确定它已经完成了客户端计算机的需要。因此,程序60将随后使用1000字节作为所估计的长度用于所有后续下载/连接请求,R0Si=21000,R0Ni=1000,R0Ti=11,R0Q=21000到22001,Tc=55以及Nc=5。
为了延伸上述例子,假设第六连接/下载请求位于开端位置1000。所述开端位置不在现有连接/下载请求的顺序的范围的任何一个之内,因此程序60将所述第六开端位置存储为R4,发送1000字节,并且等待超时+增量。如果客户端计算机20再次在11秒处终止当前连接,则R4Si=1000,R4Ni=1000,R4Ti=11,R4Q=1000到2001,Tc=66以及Nc=6。
为了进一步延伸上述例子,假设有32个具有从100000到131000的每1000字节一个开端位置的连接/下载请求,并且依照这些连接/下载请求中的每个请求,客户端计算机20在超时窗口内终止连接,而服务器40每次发送1000字节。接着,存在具有开端位置132000的另一连接/下载请求,并且作为响应,服务器40在客户端计算机20终止连接之前再发送33000个字节。因此R3Si=132000,R3Ni=34000,R3Ti=0,以及R3Q=133000到167001。如果下一个顺序的连接/下载请求具有开端位置136000,则程序60将假设段大小已经被改变。程序60将确定段大小现在是3000字节,也即136000-133000。然而,程序60能确切地知道用于所述新段的超时,因为段长度已经有这种变化了。因此,程序60将继续发送字节(不暂停)直到客户端计算机20终止连接,就像这是新IP及其第一连接/下载请求一样。接着,程序60将等待客户端计算机终止连接,并且使用流逝的时间作为Nc为1的新Tc,但是设置Cs=3000并使用其用于下一个顺序的段请求。
客户端计算机的IP地址可以从一个连接到另一连接发生变化。程序60所使用的IP地址只是一种用于标识客户端计算机的技术。它不是可用的唯一技术。本发明包括了对标识客户端计算机的替代性方法的使用,诸如在URL自身上或其里面传递客户端标识符。
程序60可以从诸如磁带或磁盘、光介质、DVD、存储棒、半导体存储器等等计算机可读介质71中装载到服务器40,或者可以经由TCP/IP适配器卡72从因特网下载。
基于上述内容,公开了一种用于管理下载的系统、方法和计算机程序产品。然而,在不偏离本发明的范围的条件下,可以进行许多修改和替代。由此,通过说明性而不是限制性的方式公开了本发明,并且应当参考以下权利要求来确定本发明的范围。
Claims (6)
1.一种用于对文件的下载进行管理的方法,所述方法包括步骤:
接收用以建立会话并且在所述会话中始于指定位置处下载所述文件的当前请求,所述指定位置在所述文件的开端之后,所述当前请求没有指定所述所请求的下载的固定长度;
基于现有的始于其它各位置处下载所述文件的请求,估计所述文件将被下载的长度;
响应于所述当前请求,始于所述指定位置处下载估计的所述文件的长度,并且响应于始于所述指定位置处下载估计的所述文件的长度,在一时间窗口中挂起对所述文件的所述下载,以及
如果对应着所述当前请求的会话在所述时间窗口内未终止,则在对所述当前请求的进一步响应中自动地继续下载所述文件紧接着所述长度之后的部分,以及
如果对应着所述当前请求的会话在所述时间窗口内终止了,则在对所述当前请求的进一步响应中不自动继续下载所述文件紧接着所述长度之后的部分。
2.根据权利要求1所述的方法,其中所述估计所述文件将被下载的长度的步骤基于在各下载请求中的相继的下载开端位置之间的差。
3.根据权利要求1所述的方法,还包括步骤:至少部分地基于以前的建立会话并且在所述会话中始于另一位置处下载所述文件的请求来确定所述时间窗口,以及(a)测量在所述以前的请求的接收与所述会话的终止之间的近似时间,或(b)测量在始于所述其他位置处下载所述文件的所述长度的完成与所述会话的终止之间的近似时间。
4.一种用于对文件的下载进行管理的系统,所述系统包括:
用于接收用以建立会话并且在所述会话中始于指定位置处下载所述文件的当前请求的装置,所述指定位置在所述文件的开端之后,所述当前请求没有指定所述所请求的下载的固定长度;
用于基于现有的始于其它各位置处下载所述文件的请求,估计所述文件将被下载的长度的装置;
用于响应于所述当前请求,始于所述指定位置处下载估计的所述文件的长度,并且响应于始于所述指定位置处下载估计的所述文件的长度,在一时间窗口中挂起对所述文件的所述下载的装置,以及
用于响应于对应着所述当前请求的会话在所述时间窗口内未终止,则在对所述当前请求的进一步响应中自动地继续下载所述文件的紧接着所述长度之后的部分的装置,以及
用于响应于对应着所述当前请求的会话在所述时间窗口内终止,则在对所述当前请求的进一步响应中不自动继续下载所述文件紧接着所述长度之后的部分的装置。
5.根据权利要求4所述的系统,其中所述用于估计所述文件将被下载的长度的装置基于在各下载请求中的相继的下载开端位置之间的差进行所述估计。
6.根据权利要求4所述的系统,还包括用于至少部分地基于以前的建立会话并且在所述会话中始于另一位置处下载所述文件的请求来确定所述时间窗口,以及(a)测量在所述以前的请求的接收与所述会话的终止之间的近似时间,或(b)测量在对所述文件始于所述其他位置处的所述长度的下载的完成与所述会话的终止之间的近似时间的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/612,575 | 2006-12-19 | ||
US11/612,575 US9229933B2 (en) | 2006-12-19 | 2006-12-19 | System, method and program for managing file downloads |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101207575A CN101207575A (zh) | 2008-06-25 |
CN101207575B true CN101207575B (zh) | 2015-05-20 |
Family
ID=39528948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200710192726.XA Active CN101207575B (zh) | 2006-12-19 | 2007-11-16 | 用于对文件下载进行管理的系统和方法 |
Country Status (2)
Country | Link |
---|---|
US (2) | US9229933B2 (zh) |
CN (1) | CN101207575B (zh) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999034555A2 (en) * | 1997-12-24 | 1999-07-08 | America Online, Inc. | Asynchronous data protocol |
US8327266B2 (en) | 2006-07-11 | 2012-12-04 | Napo Enterprises, Llc | Graphical user interface system for allowing management of a media item playlist based on a preference scoring system |
US7970922B2 (en) * | 2006-07-11 | 2011-06-28 | Napo Enterprises, Llc | P2P real time media recommendations |
US8059646B2 (en) | 2006-07-11 | 2011-11-15 | Napo Enterprises, Llc | System and method for identifying music content in a P2P real time recommendation network |
US9229933B2 (en) | 2006-12-19 | 2016-01-05 | International Business Machines Corporation | System, method and program for managing file downloads |
US9224427B2 (en) | 2007-04-02 | 2015-12-29 | Napo Enterprises LLC | Rating media item recommendations using recommendation paths and/or media item usage |
US8112720B2 (en) | 2007-04-05 | 2012-02-07 | Napo Enterprises, Llc | System and method for automatically and graphically associating programmatically-generated media item recommendations related to a user's socially recommended media items |
US9037632B2 (en) | 2007-06-01 | 2015-05-19 | Napo Enterprises, Llc | System and method of generating a media item recommendation message with recommender presence information |
US9164993B2 (en) | 2007-06-01 | 2015-10-20 | Napo Enterprises, Llc | System and method for propagating a media item recommendation message comprising recommender presence information |
US20090049045A1 (en) | 2007-06-01 | 2009-02-19 | Concert Technology Corporation | Method and system for sorting media items in a playlist on a media device |
US8285776B2 (en) | 2007-06-01 | 2012-10-09 | Napo Enterprises, Llc | System and method for processing a received media item recommendation message comprising recommender presence information |
US8429286B2 (en) * | 2007-06-28 | 2013-04-23 | Apple Inc. | Methods and systems for rapid data acquisition over the internet |
US8347286B2 (en) * | 2007-07-16 | 2013-01-01 | International Business Machines Corporation | Method, system and program product for managing download requests received to download files from a server |
US20090094248A1 (en) * | 2007-10-03 | 2009-04-09 | Concert Technology Corporation | System and method of prioritizing the downloading of media items in a media item recommendation network |
US9060034B2 (en) | 2007-11-09 | 2015-06-16 | Napo Enterprises, Llc | System and method of filtering recommenders in a media item recommendation system |
US9734507B2 (en) | 2007-12-20 | 2017-08-15 | Napo Enterprise, Llc | Method and system for simulating recommendations in a social network for an offline user |
US8396951B2 (en) | 2007-12-20 | 2013-03-12 | Napo Enterprises, Llc | Method and system for populating a content repository for an internet radio service based on a recommendation network |
US8117193B2 (en) | 2007-12-21 | 2012-02-14 | Lemi Technology, Llc | Tunersphere |
US8316015B2 (en) | 2007-12-21 | 2012-11-20 | Lemi Technology, Llc | Tunersphere |
US8060525B2 (en) | 2007-12-21 | 2011-11-15 | Napo Enterprises, Llc | Method and system for generating media recommendations in a distributed environment based on tagging play history information with location information |
US8200602B2 (en) | 2009-02-02 | 2012-06-12 | Napo Enterprises, Llc | System and method for creating thematic listening experiences in a networked peer media recommendation environment |
US8326312B2 (en) * | 2009-02-02 | 2012-12-04 | At&T Intellectual Property Ii, Lp | System and method for improving cellular telephone user experience |
WO2013077983A1 (en) | 2011-11-01 | 2013-05-30 | Lemi Technology, Llc | Adaptive media recommendation systems, methods, and computer readable media |
WO2013078597A1 (zh) * | 2011-11-28 | 2013-06-06 | 华为技术有限公司 | 一种判断用户请求的方法、设备及系统 |
EP2750355A1 (en) * | 2012-12-28 | 2014-07-02 | Koninklijke KPN N.V. | Reducing a number of server-client sessions |
US20140337408A1 (en) * | 2013-05-10 | 2014-11-13 | Appsense Limited | Systems, methods and media for minimizing data downloads |
US9537974B2 (en) | 2013-07-03 | 2017-01-03 | Crimson Corporation | Systems, methods and media for collaborative caching of files in cloud storage |
US11070609B1 (en) * | 2013-12-18 | 2021-07-20 | Veritas Technologies Llc | System and method for downloading a file |
US20150373128A1 (en) * | 2014-06-20 | 2015-12-24 | Kobo Incorporated | Automatic discovery and download of application based on location |
US20150373129A1 (en) * | 2014-06-20 | 2015-12-24 | Kobo Incorporated | Automatic discovery and download of media content based on location |
US10666707B2 (en) | 2017-01-11 | 2020-05-26 | Microsoft Technology Licensing, Llc | Nonconsecutive file downloading |
US10855745B2 (en) * | 2018-11-29 | 2020-12-01 | Dell Products L.P. | Systems and methods for downloading data chunks using a varying number of simultaneous connections |
CN111193777B (zh) * | 2019-12-13 | 2021-02-05 | 佛山欧神诺云商科技有限公司 | 一种基于断点续传的文件下载方法、装置及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5946465A (en) * | 1998-03-30 | 1999-08-31 | International Business Machines Corporation | Method and system for recovering system resources used by an inactive Telnet client |
US20020103915A1 (en) * | 2000-04-18 | 2002-08-01 | Shuster Gary Stephen | Method and system for operating a network server to discourage inappropriate use |
US6460087B1 (en) * | 1998-02-25 | 2002-10-01 | Kdd Corporation | Method of transferring file |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6856627B2 (en) * | 1999-01-15 | 2005-02-15 | Cisco Technology, Inc. | Method for routing information over a network |
US6912586B1 (en) * | 1999-11-12 | 2005-06-28 | International Business Machines Corporation | Apparatus for journaling during software deployment and method therefor |
US7047314B2 (en) | 2000-12-28 | 2006-05-16 | Oki Electric Industry Co., Ltd. | Duplicate private address translating system and duplicate address network system |
US20030031178A1 (en) | 2001-08-07 | 2003-02-13 | Amplify.Net, Inc. | Method for ascertaining network bandwidth allocation policy associated with network address |
US20030050074A1 (en) | 2001-09-12 | 2003-03-13 | Kogiantis Achilles George | Method for the simultaneous uplink and downlink conveyance of information between multiple mobiles and a base station equipped with multiple antennas |
US20030084165A1 (en) | 2001-10-12 | 2003-05-01 | Openwave Systems Inc. | User-centric session management for client-server interaction using multiple applications and devices |
US6772202B2 (en) | 2001-11-28 | 2004-08-03 | Gamespy Industries, Inc. | Queuing system, method and computer program product for network data transfer |
US7240090B2 (en) | 2002-11-04 | 2007-07-03 | Hewlett-Packard Development Company, L.P. | Data queueing |
US7308617B2 (en) * | 2004-06-17 | 2007-12-11 | International Business Machines Corporation | Apparatus, system, and method for automatically freeing a server resource locked awaiting a failed acknowledgement from a client |
US8522293B2 (en) * | 2004-12-15 | 2013-08-27 | Time Warner Cable Enterprises Llc | Method and apparatus for high bandwidth data transmission in content-based networks |
US7607170B2 (en) | 2004-12-22 | 2009-10-20 | Radware Ltd. | Stateful attack protection |
CN100514964C (zh) * | 2005-05-17 | 2009-07-15 | 北京立通无限科技有限公司 | 基于邮件的断点续传方法 |
US9229933B2 (en) | 2006-12-19 | 2016-01-05 | International Business Machines Corporation | System, method and program for managing file downloads |
-
2006
- 2006-12-19 US US11/612,575 patent/US9229933B2/en not_active Expired - Fee Related
-
2007
- 2007-11-16 CN CN200710192726.XA patent/CN101207575B/zh active Active
-
2015
- 2015-11-18 US US14/944,283 patent/US9894140B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6460087B1 (en) * | 1998-02-25 | 2002-10-01 | Kdd Corporation | Method of transferring file |
US5946465A (en) * | 1998-03-30 | 1999-08-31 | International Business Machines Corporation | Method and system for recovering system resources used by an inactive Telnet client |
US20020103915A1 (en) * | 2000-04-18 | 2002-08-01 | Shuster Gary Stephen | Method and system for operating a network server to discourage inappropriate use |
Also Published As
Publication number | Publication date |
---|---|
CN101207575A (zh) | 2008-06-25 |
US9894140B2 (en) | 2018-02-13 |
US20080147876A1 (en) | 2008-06-19 |
US20160072874A1 (en) | 2016-03-10 |
US9229933B2 (en) | 2016-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101207575B (zh) | 用于对文件下载进行管理的系统和方法 | |
US20020087623A1 (en) | Method and apparatus for determining network topology and/or managing network related tasks | |
US9781280B2 (en) | Agent device, image-forming-device management system, image-forming-device management method, image-forming-device management program, and storage medium | |
CN110572443B (zh) | 长连接状态更新方法、服务端、服务器及存储介质 | |
US20070088755A1 (en) | System, method and program to synchronize files in distributed computer system | |
US7007077B1 (en) | Remote maintenance method of an information processing apparatus | |
CN105183389A (zh) | 一种数据分级管理方法、装置及电子设备 | |
US8041821B2 (en) | Connection pool management | |
CN102165739A (zh) | 使用散列对经由rdma写入的消息的可靠接收 | |
CN112769652A (zh) | 一种节点服务监控方法、装置、设备及介质 | |
CN105871568B (zh) | 软件升级方法和系统 | |
CN109271193B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
US6092109A (en) | Information matching system and its matching method for matching information between terminal equipment connected via network | |
US20170286440A1 (en) | Method, business processing server and data processing server for storing and searching transaction history data | |
US20120233203A1 (en) | Information presentation device | |
US6557034B1 (en) | Communication control device transmitting data based on internal bus speed of receiving computer | |
CN111555987A (zh) | 限流配置方法、装置、设备及计算机存储介质 | |
JP2014017588A (ja) | 情報処理装置 | |
US11698735B2 (en) | Common storage management device and common storage management method | |
CN116781719A (zh) | 容器镜像预热方法、电子设备及存储介质 | |
JP3904808B2 (ja) | 分散オブジェクト管理方法及びその実施装置並びにその処理プログラムを記録した記録媒体 | |
EP2798812B1 (en) | Process automation method | |
US20090231622A1 (en) | Data transmission method and communication control apparatus | |
JPH11282818A (ja) | クライアント構成情報管理システムおよびクライアント構成情報管理方式 | |
JP2008210050A (ja) | 車載通信システム及び車載通信方法 |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211108 Address after: USA New York Patentee after: Qindarui Co. Address before: Armank, New York, USA Patentee before: International Business Machines Corp. |
|
TR01 | Transfer of patent right |