用于对文件下载进行管理的系统和方法

文档序号:7667137阅读:324来源:国知局
专利名称:用于对文件下载进行管理的系统和方法
技术领域
本发明一般涉及计算机系统和网络,并且更特别地涉及对文件下栽 的管理。
背景技术
众所周知,客户端计算机或应用服务器从文件服务器请求下载文 件。在一种操作模式中,请求者建立与文件服务器的连接、标识文件、 指定下载的开端位置、并且请求下载该文件。作为响应(假设文件服务 器将允许该下载),文件服务器开始从所指定的开端位置下载文件。如 果文件过长,并且通信带宽有限,则完成下载可能花费相当长的时间。 为了緩解这个问题,请求者可以与文件服务器建立多个连接,并且为每 个连接标识文件和不同的错开的各个下栽开端位置,并请求从各个开端
位置进行下栽。例如,对于一个连接,请求者可以请求始于开端位置0 处下载所述文件,对于另一连接,请求者可以请求始于开端位置5000 处下载相同的文件,对于另一连接,请求者可以请求始于开端位置ioooo 处下载相同的文件。 一般地,这将使下载加速,特别在存在从文件服务 器到请求者的并行通信路径的情况下。理想地,当建立多个连接用于对 相同文件并行地分段地下栽时,请求者将指定每个下载请求的段长度, 并且针对每个连接的段长度将延伸到下一个下载请求的开端位置。如果 请求者指定用于连接的下载"^殳长度,则文件服务器始于所指定的开端位 置处下载所指定的段。然而,如果请求者没有指定下载长度,则文件服 务器将从开端位置处开始下载,并且持续下载直到从请求者那接收到 "结束连接"通知为止。当文件服务器直到下栽了与根据下一个连接请 求的下载相重叠的一部分文件之后,文件服务器才接收到"结束连接"通知时,这将导致下载被(冗余的/重叠的)浪费。例如,如果始于位置
0处的第一连接请求导致下载第一 6000个字节,则这将与始于位置5000 处的下一个连接请求重叠,导致1000个字节(也即字节5000到字节 6000)的下载是浪费/冗余的。实际上,在文件的传输期间的重叠总量可 能非常大。
因此,本发明的目的是当按照多个下载请求并行地下载文件并且请 求者没有为每个请求指定下载的长度时,避免部分文件的冗余下栽。

发明内容
本发明属于一种用于对文件下栽进行管理的系统、方法和程序。接 收到用以建立会话的当前请求。在该会话中,存在着始于指定位置处下 载文件的请求,该指定位置在文件的开端之后。当前请求未指定所请求 的下载的固定长度。基于现有的始于其它各位置处下载文件的请求来估 计文件将被下载的长度。响应于当前请求,始于所指定位置处下载所估 计的文件长度。响应于始于所指定位置处下载所估计的文件长度,该文 件下载在一个时间窗口中挂起。如果对应于当前请求的会话在该时间窗 口内未终止,则在对当前请求的进一步响应中自动地继续下载该文件紧 接着该长度之后的部分。如果对应着当前请求的会话在该时间窗口内终 止了 ,则在对当前请求的进一步响应中不会自动地继续下载该文件紧接 着该长度之后的部分。
根据本发明的特征,对文件将被下载的长度的估计基于在各个下载 请求中的相继的下载开端位置之间的差。
根据本发明的另一特征,时间窗口的确定至少是部分地基于(a) 对在以前的请求的接收与会话的终止之间的近似时间的测量,或(b) 对在始于其他位置处的文件长度的下载与会话的终止之间的近似时间 的测量。


图1是包括本发明的分布式计算机系统的框图2 (A)、图2 (B)、图2 (C)形成根据本发明的在图1的分布 式计算一几系统的文件服务器内的文件下载管理程序的流程图。
具体实施例方式
现在,将参考附图来详细地描述本发明。图1图示了包括本发明的 分布式计算机系统,其一般地标为10。根据现有技术,分布式计算机系 统10包括"客户端"计算机20,其具有在公共总线25上的CPU21、 操作系统22、 RAM 23和ROM 24,以及存储装置26。"客户端,,计算 机20可以是向文件服务器40 (或者直接地或间接地供应文件的其它服 务器)请求文件的任何计算机。客户端计算机20还包括应用程序27, 其请求经由因特网30与文件服务器40的连接,并且接着请求从文件服 务器40下载文件50。对于本发明来说,除了它请求文件的下载以外, 应用27的功能并不重要。根据现有技术,文件服务器40包括在公共总 线45上的CPU41、才喿作系统42、 RAM 43和ROM 44,以及具有文件 的存储装置46,所述文件包括数据文件50和数据管理文件70。文件服 务器40还包括诸如由IBMAIX操作系统所提供的公知文件系统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的多个会话并^t出多个请求用于对相同 文件从不同的开端位置处的下载。如果应用27没有指定相同文件中的 每个下载的长度,则服务器40计算针对相继下载请求的相邻开端位置 之间的差,并且起始地假设每个下载请求是针对长度为该差的段。在上 述例子中,其中应用27与服务器40建立三条连接,并且请求从开端地 址0、 5000和10000处下载,程序60将假设每个下载请求针对5000字 节,因为那是在相继的下载请求之间的开端位置的差。对于始于开端地 址0和5000处的下载请求,程序60将启动5000字节的下载,因为那 是在相邻的下栽请求的相继开端位置之间的差,并且接着暂停。对于始 于开端位置10000处的下载请求,服务器40将起始地下载始于开端位 置10000处的5000字节并接着暂停。如果服务器40在下栽了始于位置 O处的下载请求的5000字节中的最后字节之后的预定时间窗口内,从应 用27接收对应着请求始于位置O处的下载的连接的结束连接请求,则 那就是针对第一下载请求的下载的结尾。这将避免对所述文件的一部分(诸如字节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、 Rl、 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-O)。 注意,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诸如由 IBMAIX操作系统所提供的文件系统,其处理低级处理以访问存储装置 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期间所下载的文件的 结尾部分。重复下载在前面的连接/下载RO期间所下载的文件的结尾部 分的原因是客户端计算机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处的连接/下 栽请求。在这种情况下,在第一和第二连4妻/下载请求的开端位置之间的 开端位置的差是D+D,而正确的下载长度应当是D。程序60用两种方 式中的任何一种来处理像这样的情况。程序60维护连接/下载请求中的 开端位置的历史,并且可以将用于当前下载请求的长度估计为等于在当 前连接/下载请求的开端位置与任何以前的连接/下载请求的开端位置之 间的最小正差。例如,存在具有按时间先后顺序排列的开端位置为0、 300000、 20000、 100000的现有连接/下载请求,并且当前连接/下载请
求具有开端位置21000。在这个例子中,程序60将基于21000-20000 确定所估计的用于当前连接/下载请求的长度是IOOO字节。然而,如果 最小的差不在任何现有连接/请求的"顺序的范围,,内,则程序60将当 前连接/下载请求视为来自客户端计算机的第一请求,并且持续下栽文件 直到客户端计算机终止连接。以下内容更加详细地解释了上述例子。
在上述例子中,第一连接/下载请求始于位置0,并且在这个例子中, 响应于所述第一请求,服务器40在客户端计算机20终止连接之前在10 秒钟内发送40000字节。此刻,ROSi=0, R0Ni=40000, ROTWO,以及 ROQ=0到400001。接着,程序60将ROTi添加到Tc,并递增连接的数 目Nc-l,以便计算平均超时。因为Cs-O,程序60将^f吏用针对所述第 一连接发送的字节作为用于后续下载请求的第一估计,也即Cs=40000。
在上述例子中,第二连接/下载请求始于位置300000,而程序60确 定这不是顺序的请求,因为它超出了响应于所述第一连接/下载请求而发 送的数据的偏移量。因此,程序60将这存储在RlSi中,并且发送 Cs-40000字节,并且对于丟弃的连接等待Tc/Nc-10秒钟+增量。在这 个例子中,程序60假设4000字节比完成对于该连接客户端想要的实际 字节凄t要多。由此,丟弃所述连^:的时间应当大约相同,例如12秒、 RlSi=300000、 RlNi=40000、 RlTi=12和R1Q=300000-340001 。接着, 程序60将RITi添加到Tc = 22,并且递增连接的数目Nc = 2。
在这个例子中,第三连接/下载请求始于开端位置20000,其在 R0Q=0至40001内。因此,程序60设置Cs=20000,发送20000字节并 等待超时=增量+ 11秒(Tc/Nc或22/2 )。如果客户端计算机20在超时 过期之前终止连接,则那就是响应于当前连接/下载请求的下载的结束。 接着,程序60假设所述客户端计算机想要将20000字节或更少字节用 于每个后续连4妻R0Si=20000, R0Ni=20000, ROTi =12, R0Q=20000 -40001, Tc-33以及Nc-3。
在这个例子中,第四连接/下载请求始于开端位置100000,其再次 位于顺序的范围ROQ或R1Q之外,因此程序60将该开端位置存储为 R3,并只发送20000字节。程序60存储所发送的字节的数目和时间,
例如11秒,R3Si= 100000, R3Ni = 20000, R3Ti=ll, R3R爿00000到 120001, Tc = 44以及Nc-4)。
在这个例子中,第五连接/下载请求始于开端位置21000,其位于 ROQ (20000-40001 )内。接着,程序60将Cs计算为1000 (21000-20000)。在这个例子中,程序60发送1000字节而客户端计算机20在 超时过期之前(例如再次是在11秒处)结束连接,程序确定它已经完 成了客户端计算机的需要。因此,程序60将随后使用1000字节作为所 估计的长度用于所有后续下栽/连接请求,ROSi-21000, R0Ni= 1000, ROTi-ll, ROQ = 21000到22001, Tc-55以及Nc-5。
为了延伸上述例子,假设第六连接/下载请求位于开端位置1000。
所述开端位置不在现有连接/下栽请求的顺序的范围的任何一个之内,因
此程序60将所述第六开端位置存储为R4,发送1000字节,并且等待 超时+增量。如果客户端计算机20再次在11秒处终止当前连接,则 R4Si= 1000, R4Ni= 1000, R4Ti = ll, R4Q = 1000到2001, Tc = 66以 及Nc-6。
为了进一步延伸上述例子,假设有32个具有从100000到131000 的每1000字节一个开端位置的连接/下载请求,并且依照这些连接/下载 请求中的每个请求,客户端计算机20在超时窗口内终止连接,而服务 器40每次发送1000字节。接着,存在具有开端位置132000的另一连 接/下载请求,并且作为响应,服务器40在客户端计算机20终止连接之 前再发送33000个字节。因此R3S卜132000, R3Ni = 34000, R3Ti = 0, 以及1130 = 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从因特网下载。
基于上述内容,公开了一种用于管理下栽的系统、方法和计算机程 序产品。然而,在不偏离本发明的范围的条件下,可以进行许多修改和 替代。由此,通过说明性而不是限制性的方式公开了本发明,并且应当 参考以下权利要求来确定本发明的范围。
权利要求
1.一种用于对文件的下载进行管理的方法,所述方法包括步骤接收用以建立会话并且在所述会话中始于指定位置处下载所述文件的当前请求,所述指定位置在所述文件的开端之后,所述当前请求没有指定所述所请求的下载的固定长度;基于现有的始于其它各位置处下载所述文件的请求,估计所述文件将被下载的长度。响应于所述当前请求,始于所述指定位置处下载所述文件的所述长度,并且响应于始于所述指定位置处下载所述文件的所述长度,在一时间窗口中挂起对所述文件的所述下载,以及如果对应着所述当前请求的会话在所述时间窗口内未终止,则在对所述当前请求的进一步响应中自动地继续下载所述文件紧接着所述长度之后的部分,以及如果对应着所述当前请求的会话在所述时间窗口内终止了,则在对所述当前请求的进一步响应中不自动继续下载所述文件紧接着所述长度之后的部分。
2. 根据权利要求1所述的方法,其中所述估计所述文件将被下载 的长度的步骤基于在各下栽请求中的相继的下载开端位置之间的差。
3. 根据权利要求1所述的方法,还包括步骤至少部分地基于以 前的建立会话并且在所述会话中始于另一位置处下栽所述文件的请求 来确定所述时间窗口,以及(a)测量在所述以前的请求的接收与所述 会话的终止之间的近似时间,或(b)测量在始于所述其他位置处下载
4. 一种用于对文件的下载进行管理的系统,所述系统包括 用于接收用以建立会话并且在所述会话中始于指定位置处下载所述文件的当前请求的装置,所述指定位置在所述文件的开端之后,所述 当前请求没有指定所述所请求的下载的固定长度;用于基于现有的始于其它各位置处下载所述文件的请求,估计所述 文件将被下载的长度的装置。用于响应于所述当前请求,始于所述指定位置处下载所述文件的所 述长度,并且响应于始于所述指定位置处下载所述文件的所述长度,在 一时间窗口中挂起对所述文件的所述下载的装置,以及用于响应于对应着所述当前请求的会话在所述时间窗口内未终止, 则在对所述当前请求的进一 步响应中自动地继续下栽所述文件的紧接 着所述长度之后的部分的装置,以及用于响应于对应着所述当前"i青求的会话在所述时间窗口内终止,则 在对所述当前请求的进一步响应中不自动继续下栽所述文件紧接着所 述长度之后的部分的装置。
5. 根据权利要求4所述的系统,其中所述用于估计所述文件将被 下载的长度的装置基于在各下载请求中的相继的下载开端位置之间的 差进行所述估计。
6. 根据权利要求4所述的系统,还包括用于至少部分地基于以前 的建立会话并且在所述会话中始于另一位置处下载所述文件的请求来 确定所述时间窗口,以及(a)测量在所述以前的请求的4妄收与所述会 话的终止之间的近似时间,或(b)测量在对所述文件始于所述其他位置处的所述长度的下载的完成与搜书的绘画的种植之间的仅是时间的装置。
7. —种用于对文件的下载进行管理的计算机程序产品,所述计算 机程序产品包括用于执行在权利要求1至3中的任何一项中的方法步骤 的程序指令。
全文摘要
用于对文件下载进行管理的系统和方法。接收到用以建立会话的当前请求。在该会话中,存在着始于指定位置处下载文件的请求,该指定位置在文件的开端之后。当前请求未指定所请求的下载的固定长度。基于现有的始于其它各位置处下载文件的请求来估计文件将被下载的长度。响应于当前请求,始于所指定位置处下载所估计的文件长度。响应于下载始于所指定位置处的所估计的文件长度,该文件下载在一个时间窗口中挂起。如果对应于当前请求的会话在该时间窗口内未终止,则在对当前请求的进一步响应中自动地继续下载该文件紧接着该长度之后的部分。如果对应着当前请求的会话在该时间窗口内终止了,则在对当前请求的进一步响应中不会自动地继续下载该文件紧接着该长度之后的部分。
文档编号H04L12/56GK101207575SQ20071019272
公开日2008年6月25日 申请日期2007年11月16日 优先权日2006年12月19日
发明者D·A·坎贝尔, J·B·西蒙斯, R·F·普赖尔 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1