使用http的计算机网络的性能优化的制作方法

文档序号:7574184阅读:189来源:国知局
专利名称:使用http的计算机网络的性能优化的制作方法
技术领域
本发明涉及提高联网计算机系统的性能,特别涉及提高访问因特网上万维网(Web)的计算机系统的性能。
因特网是一个为世界范围内通信信息、思想和消息提供通路的网络。虽然因特网已为学术界使用数十年之久,但直到最近才对因特网及其上的信息的兴趣开始剧增。万维网对因特网普及的增加起到重要部分的原因,也许是因为浏览器的用户友好的图形用户接口(“GUI”),它能容易地用于访问万维网。
万维网使超文本文件可为因特网的用户使用。超文本文件不像一本书一样线性提供信息,而是用链接或指针提供读者其它位址,以便使用户可以从一个位址跳到另一个。万维网上的超文本文件通过超文本传输协议(“HTTP”)的客户机/服务器协议访问。
因特网使用传输控制协议/网际协议(“TCP/IP”)将非常不同和不相似的系统连成网络。在视窗3.X环境下,浏览器通常使用动态链接库WINSOCK.DLL与以基于TCP/IP的因特网通信。虽然因特网的硬件主干网是在教育、研究、政府和商业领域中的大型计算机系统之间一系列高速通信链路,但是大量访问万维网的用户使用的浏览器,是通过较慢或较弱的链路(例如通过模拟电话线连接的28.8K的调制解调器)连接到与因特网联网的网络接入设备。
网络接入设备通常具有一个对因特网的高速连接(例如以1.54MB的T-1连接)。网络接入设备可以是一个远程访问服务器以允许远程用户连接到内部网络和因特网资源。这种远程访问服务器,LanRoverTM访问交换远程访问服务器,由马萨诸塞州的Bedford市的Shiva公司生产。其它类型的网络接入设备由因特网服务提供商(“ISP”)使用,以提供客户机对因特网的访问。这样,网络接入设备在运行浏览器的计算机和为用户提供所谓的存在点(point of presence-POP)的万维网服务器之间通过网络连接。
一般来说网络性能会受到阻碍,因为在用户和其POP之间的网络链路通常比POP和万维网服务器之间的网络链路带宽低很多。另外,在客户机等待来自万维网的响应的同时,在常规网络中存在相当数量的传输延迟。因此,需要有提高计算机网络性能的系统和方法,优选不需要修改现有浏览器。
本发明提供提高计算机网络-特别是连接用户到万维网的网络-性能的系统和方法。可以通过减少客户机在发送对服务器的请求和接收到响应之间经历到的传输延迟来提高网络性能。可以由一个在网络接入设备上的代理器(agent)维持一个连接超高速缓冲存储器来更快响应对服务器的网络连接的连接请求。另外,该代理器可以维持一个信息超高速缓冲存储器以更快响应获得曾被修改的目标的请求。可以单独或者结合实现这些增强,通过节省代理器和服务器之间的往返时间来减少在发送对服务器各个请求中涉及的传输延迟。本发明补充由浏览器和其它部件(例如代理服务器)提供的超高速缓冲存储。
还可以通过由网络接入设备根据对HTTP请求的分析给万维网服务器或者代理服务器发送HTTP请求来提高网络性能。然后万维网浏览器可以透明地使用一个代理服务器,不必专门给代理服务器发送请求。
另外,可以通过有效地增加在客户机和网络接入设备之间的弱链路的有效带宽来提高网络性能。一个客户机钩(client hook)截取客户机对服务器的请求,并修改该客户机请求来提高性能。然后把修改后的请求发送到代理器,代理器从修改后的请求重建客户机请求并把该客户机请求发送到服务器。例如,可以把多个客户机请求组合为一个修改后的请求,或者把单个客户机请求智能压缩以便更有效地使用弱链路。
在一个实施例中,本发明提供一种由在一个位于客户机和服务器之间的计算机网络中的代理器执行的方法,以提高客户机和服务器之间的性能,该方法包括步骤从客户机接收一个第一请求以打开到服务器的一个单一网络连接;发送多个请求到服务器以打开到该服务器的多个网络连接;从该客户机接收一个第二请求;使用多个网络连接中的一个发送该第二请求到服务器。因此,响应客户机打开单一网络连接的第一请求打开到服务器的多个网络连接。
在另一实施例中,本发明提供一种由在一个位于客户机和服务器之间的计算机网络中的代理器执行的方法,以提高客户机和服务器之间的性能,该方法包括步骤从客户机接收一个第一请求以从服务器获取一个在特定的时间印记后已被修改的对象;发送该第一请求到服务器;从该服务器接收一个第一响应,说明该对象在特定时间印记后还未被修改;发送该第一响应到客户机;在超高速缓冲存储器中存储该对象的标识符和一个时间印记;从该客户机接收一个第二请求以从服务器获取一个在特定时间印记后被修改的对象;如果存储在超高速缓冲存储器中的时间印记在从当前时间开始的一个预定时间量内,则发送一个第二响应到服务器,说明该对象在特定时间印记后还未被修改,而不给服务器发送第二请求。
在另一个实施例中,本发明提供一种由在一个位于客户机和万维网和代理服务器之间的计算机网络中的代理器执行的方法,以提高客户机和万维网服务器之间的性能,该方法包括步骤从客户机接收一个HTTP请求;根据该HTTP请求发送该HTTP请求到万维网服务器或者代理服务器,代理服务器存储该万维网服务器上的可用信息。因此,客户机不需被修改或配置来使用该代理服务器。
在另一个实施例中,本发明提供一种方法,使用客户机计算机上的客户机钩以及在客户机计算机和服务器之间的代理器以提高在客户机计算机上的客户机和服务器之间的性能,包括步骤客户机钩截取从客户机到服务器的请求;客户机钩修改该客户机请求;客户机钩发送修改后的请求到代理器;代理器根据修改后的请求重建客户机的请求;代理器发送客户机请求到服务器。客户机钩可以截取客户机请求以打开对该服务器的网络连接并立即响应,以便该客户机不必等待网络连接被打开的响应。代理器可以在需要时打开该网络连接或存储打开的网络连接的超高速缓冲存储器到该服务器。另外,客户机钩可以截取客户机请求来将信息压缩为不同于前一请求信息的变化。代理器具有存储的先前的信息并从这一变化重建开始信息(hew information)。这样,在客户机钩和代理器之间的通信提高了客户机和服务器之间的通信性能。
本发明的特征是不必修改客户机或服务器而提高性能。由于不需修改万维网浏览器,所以能够实现透明地提高浏览器的性能而不管所使用的浏览器。本发明的其它特征和优点在阅读本说明书和附图的其余部分后将十分明显。


图1表示用于执行本发明实施例的软件的一个计算机系统的例子;图2表示用于执行本发明实施例的软件的一个典型计算机系统的系统方框图;图3表示通过因特网连接的多个计算机的图4表示通过包括代理器的网络接入设备连接到一个万维网服务器的浏览器的方框图;图5表示响应打开一个单一网络连接的请求而打开到服务器的多个网络连接的过程的高层流程图;图6表示使用超高速缓冲存储器响应打开一个单一网络连接的请求而打开到服务器的多个网络连接的另一过程的流程图;图7A和7B表示使用超高速缓冲存储器提高获取服务器上已被修改的对象的请求的性能的过程的流程图;图8表示周期刷新在图7A和7B中使用的超高速缓冲存储器中信息的过程的流程图。
图9是一个通过网络接入设备连接到一个万维网服务器的浏览器的方框图,它使用一个代理服务器来提高性能;图10表示根据一个HTTP请求引导该HTTP请求到万维网服务器或代理服务器的过程的流程图;图11是通过网络接入设备连接到一个万维网服务器的浏览器的方框图,其中一个客户机钩截取来自浏览器的请求;图12表示一个客户机钩的立即响应过程的流程图,响应打开对服务器一个网络连接的请求已经打开了网络连接;图13表示代理器的一个过程的流程图,该代理器接收来自客户机钩的一个请求,它包括一个客户机请求和一个该请求要发送到的服务器的标识符;图14表示代理器存储一个头标和从头标之间的差别重建另一头标的过程的流程图;图15表示客户机钩和代理器提高头标传输性能过程的流程图。
在下面的叙述中,本发明将参考提高使用对网络存取设备弱链接的万维网浏览器性能的优选实施例说明。然而,本发明不限制于任何特定实施例或计算机网络。因此,下面实施例的叙述仅为说明的目的而并不加以限制。
图1表示用于执行本发明实施例的软件的一个计算机系统的例子。图1表示一个计算机系统1,它包括监视器3、屏幕5、机箱7、键盘9和鼠标11。鼠标11可以具有一个或多个按钮,例如鼠标按钮13。机箱7内安放一个CD-ROM驱动器15、系统存储器和可以用于存储和检索包括实现本发明的计算机代码的软件程序、用于本发明的数据的硬盘驱动器(见图2),等等。虽然所示CD-ROM17是作为示例的计算机可读存储介质,但是也可以使用其它计算机可读存储介质,包括软盘、磁带、快速存储器、系统存储器和硬盘驱动器。机箱7还安放熟悉的计算机部件(未示出),例如中央处理器、系统存储器、硬盘等。
图2表示用于执行本发明的一个实施例的软件的计算机系统1的系统方框图。如同图1,计算机系统1包括监视器3和键盘9。计算机系统1进一步包括各种子系统,诸如中央处理器102、系统存储器104、I/0控制器106、显示适配器108、可拆卸盘112(例如CD-ROM驱动器)、固定盘116(例如硬盘驱动器)、网络接口118和扬声器120。适用于本发明的其它计算机系统可以包括另外的或者较少子系统。例如,另一计算机系统可以包括多于一个的处理器102(亦即一个多处理器系统)或一个超高速缓冲存储器。
诸如122的箭头表示计算机系统1的系统总线结构。然而,这些箭头是用以表示连接各子系统的任何互联方案。例如,可以使用一个局部总线来连接中央处理器到系统存储器和显示适配器。图2所示计算机系统1只是适用于本发明的计算机系统的一个例子。适用于本发明的子系统的其它配置对熟悉本技术领域的人来说十分明显。
本发明的优选实施例提高万维网浏览器(或客户机)对因特网上的万维网的访问的性能。图3表示通过因特网相连的多个计算机。计算机202、204和206由因特网208互联,因特网是在世界范围内位于教育、研究和商业计算机站点之间一系列高速通信链路。因特网计算机使用TCP/IP作为通信协议。
万维网使用HTTP客户机/服务器协议,它是一种请求-响应协议,HTTP事务处理包括4个步骤连接、请求、响应、拆除连接。在连接阶段,客户机打算打开对服务器的网络连接。除另外说明外,HTTP打算使用服务器的端口80用于此连接。建立连接包括从客户机请求打开网络连接到服务器和服务器响应报告网络连接已经打开的一个往返时间。虽然此间的讨论集中于HTTP的1.0版本,但是本发明不局限于HTTP的任何版本或特定HTTP。
在网络连接被打开之后,客户机可以在请求阶段发送一个HTTP请求到服务器。请求阶段包括往返时间的一半,其为该请求从客户机前往服务器。一旦服务器接收到该请求,则服务器通过在响应阶段发送对该客户机的响应来响应。如同请求一样,响应阶段包括往返时间的一半,其为响应从服务器到客户机。
拆除连接阶段关闭对服务器的网络连接。这一阶段包括往返时间的一半,并可以以许多不同方式发生。服务器可以在响应发出后关闭该连接,或者由客户机通过发送一个停止序列(例如用户点击浏览器的停止按钮或回退/向前按钮)。常规浏览器在屏幕的状态行显示四阶段之一。
术语“客户机”和“服务器”是相对的术语。客户机是一个实体,它向一个服务器发出请求,而服务器通常给该客户机响应。然而,这些符号是请求-响应特定的,而并不指示这些实体的作用是固定的。在优选实施例中,客户机是一个浏览器,而服务器是一个万维网服务器。浏览器可以在类似于图1和图2所示计算机上执行。服务器可以是类似的计算机,但通常是功能上强大得多的系统,包括更快的子系统和更多存储容量。
图4是通过包括一个代理器的网络接入设备连接到万维网服务器的浏览器的方框图。所示计算机网络包括一个万维网浏览器252、网络接入设备254和万维网服务器256。该浏览器经由网络协议(例如TCP/IP)栈258、通过一条链路与网络接入设备通信。浏览器和网络协议堆栈驻留在客户机计算机系统中。网络接入设备通常是一个电子箱,可以包括图2所示的某些子系统。万维网服务器驻留在通常为远程计算机系统的服务器中。
网络接入设备包括一个代理器260。代理器是一个包括本发明实施例的程序。代理器的计算机代码可以驻留在任何计算机可读存储介质,包括动态随机存取存储器、电子可擦写可编程只读存储器、或快速存储器,仅举几例。在优选实施例中,代理器驻留在由马萨诸塞州Bedford市Shiva公司生产的LanRoverTM存取交换远程访问服务器中。
图5表示响应打开一个单一网络连接的请求打开对服务器多个网络连接的过程的高层流程图。所示过程由在网络接入设备上的一个代理器执行。在步骤302,该代理器接收到一个打开到服务器单一网络连接的客户机请求。
响应打开到服务器的单一网络连接的客户机请求,在步骤304,代理器发送多个请求给服务器,打开对该服务器的多个网络连接。这样,响应客户机打开一个单一网络连接的请求而打开对该服务器的多个网络连接。优选地,代理器保持网络连接。一旦打开一个网络连接,代理器将从服务器接收一个响应,并把该响应发送给客户机。然后,该客户机将通过打开的网络连接发布对该服务器的一个请求,其由代理器接收。在步骤306,代理器使用打开的网络连接发送后继的客户机请求给服务器。
经常是代理器要接收另外对该服务器打开单一网络连接的客户机请求。由于该代理器先前打开多个网络连接,因此代理器立即响应,说明网络连接已经可用,这样节省了在代理器和服务器之间的往返时间。然后客户机通过打开的网络连接发布后继的客户机请求。代理器可以存储打开的网络连接到超高速缓冲存储器,将参考图6对其详细叙述。
为简单起见,此间的讨论叙述代理器与单一客户机浏览器和单一万维网服务器的相互作用。然而,在实际上,代理器通常与多个客户机和多个万维网服务器通信。本发明的方法并不孤立地单独提高每一个别客户机的性能。例如,一个客户机可以通过发布打开一个单一网络连接的请求而打开对服务器的多个网络连接。接着,另一客户机可以请求打开对同一服务器的一个单一网络连接。代理器然后可以立即把一个网络连接授与该客户机,因为网络连接已经打开。这样,一个客户机的动作也可以导致提高其它客户机的性能。代理器优选打开对该服务器的另一网络连接来替换已经被使用的一个。
图6表示使用超高速缓冲存储器响应打开一个单一网络连接的请求打开对服务器的多个网络连接的另一过程的流程图。在该实施例中,代理器维护对该服务器(或多个服务器)的网络连接的超高速缓冲存储器。在步骤352,代理器接收打开对该服务器单一网络连接的客户机请求。
在步骤354,代理器扫描超高速缓冲存储器寻找打开的对服务器的网络连接。如果在步骤356在超高速缓冲存储器中不存在对服务器的打开的网络连接的话,则代理器给服务器发送一个打开一个网络连接的请求。虽然本实施例在此点打开一个单一网络连接,并随后判定连接超高速缓冲存储是否改善了性能,但是在另外的实施例中,代理器给服务器发送多个请求要求打开多个网络连接而旁路随后的判定。
如果在超高速缓冲存储器中存在对该服务器可用的打开的网络连接的话,则代理器给客户机发送一个响应,说明网络连接被打开。该客户机使用这一打开的网络连接给服务器发送一个客户机请求,该请求由代理器在步骤360发送给服务器。
在步骤362,代理器判定对该服务器的网络连接超高速缓冲存储是否改善了性能。这一判定可从许多因素确定,包括该代理器在超高速缓冲存储器中的“命中”的次数、维护该超高速缓冲存储器需要的开销、服务器是否能响应该连接“保持打开”(亦即持续连接)的请求而允许该网络连接保持打开,等等。代理器可以请求服务器“保持打开”该连接,但是实践这一请求却由服务器决定。
在步骤364,代理器检查超高速缓冲存储器中对服务器的所有网络连接是否在使用。如果连接超高速缓冲存储确实改善了性能以及所有对服务器的网络连接都在使用的话,则代理器在步骤366给服务器至少发送一个请求,要求打开一个网络连接。如果确定多个网络连接改善了性能的话,则可以打开对服务器的多个连接。例如,在超高速缓冲存储器中具有预定数目(例如,用户指定的或由代理器在监视性能时确定的)的对一个服务器打开的网络连接也许是有利的。如果打开的连接数少于该预定数,则代理器至少发送一个请求,要求打开对该服务器的一个网络连接。
在一个优选实施例中,超高速缓冲存储器存储所有网络连接和一个指示符,指明该网络连接被打开、在使用或是关闭。在代理器打开网络连接时,它们被标记为“打开”。当代理器接收到打开对服务器的一个网络连接的请求且当超高速缓冲存储器中有一个对该服务器打开的网络连接时,则代理器标记该网络连接为“正在使用”或“被使用”。当代理器从服务器接收到超高速缓冲存储器中的网络连接已经关闭时,则代理器标记该网络连接为“关闭”。
在另一个实施例中,超高速缓冲存储器只存储打开的网络连接。每次在超高速缓冲存储器中的一个网络连接被使用或者关闭时,代理器从超高速缓冲存储器中清除该网络连接。代理器也可以给服务器发送一个请求,要求打开一个网络连接以替换从超高速缓冲存储器中清除的网络连接。
在常规网络系统中,当一个客户机希望从服务器获取一个对象时需要在该客户机和服务器之间两个往返时间一个是打开连接,一个是获取对象。而在本发明中,可以避免在代理器和服务器之间的一次往返时间,这样将总时间减少为在客户机和服务器之间一个半的往返时间。这样明显提高客户机的性能。
图7A和7B表示使用超高速缓冲存储器在一个对象被修改后提高请求获取服务器上该对象的性能的过程的流程图。利用HTTP,客户机能够请求服务器发送一个从指定时间和日期以来还未被修改的对象。为方便起见,这一指定的时间和日期下面将称为时间印记。更具体说,一个HTTP获取消息的头标可以包括一个具有指定“是否自...以来被修改”(If-Modified-Since)的字段和在另一字段的时间印记的头标。如果服务器确定该对象自该指定时间印记以来还未被修改,则服务器不需发送该对象到该客户机,而只需发布一个未修改(304)响应。
虽然浏览器可以使用本特征来维护它自己的超高速缓冲存储器,但是本发明的一个代理器使用该特征维护一个信息超高速缓冲存储器以进一步提高该计算机网络的性能。一般来说,可以使用两个客户机请求来建立信息超高速缓冲存储器和一个第三客户机请求来实现性能的提高。为完整起见,下面假定浏览器在自己的超高速缓冲存储器中没有希望的对象。
在图7A中的步骤402,代理器接收一个客户机请求,要求从服务器获取一个对象。代理器然后发送该客户机请求到服务器。在步骤404,代理器从服务器获取该对象并将其发送给客户机。常规浏览器具有一个用于存储用于未来参考(例如当用户重新访问该万维网页面时)的对象的超高速缓冲存储器。浏览器超高速缓冲存储器包括指示在超高速缓冲存储器中的对象的传播的时间印记。
当客户机想要在其超高速缓冲存储器中的一个对象时,浏览器发送一个请求,要求获取该对象,如果该对象自在浏览器超高速缓冲存储器中指定的时间印记以来已经被修改的话。在步骤406,代理器接收该请求并将其发送给服务器。
在步骤408,代理器从服务器接收一个响应(304),指明该对象自时间印记以来未曾被修改。代理器发送该响应给客户机。代理器在步骤410在超高速缓冲存储器中存储该对象的一个标识符和当前时间印记(亦即在服务器指示该对象还未改变时的时间印记)。这一当前时间印记被用作该对象未被修改时的时间的估计。超高速缓冲存储器可以是包括该对象的地址(例如一个标识符)、在浏览器超高速缓冲存储器中该对象的时间印记和当前时间印记的一张表。代理器不需在该超高速缓冲存储器中存储该对象。
如果该对象已被修改的话,则代理器在步骤412接收一个请求从服务器中获取该对象。代理器通过扫描超高速缓冲存储器来确定该请求是否指定在其超高速缓冲存储器中的一个对象。由于上述前一客户机请求同一对象,并且接收到一个未被修改的响应,因此该对象在超高速缓冲存储器中被指定。
现在参考图7B,在步骤414代理器判定,策略是否指示在浏览器的超高速缓冲存储器中的该对象足够为当前的。所谓策略可以是当前时间印记与超高速缓冲存储器中当服务器最后指示该对象未被修改时的时间印记的比较。如果在这两个时间印记之间的差别在一个预定数量的时间内,则在浏览器超高速缓冲存储器中的该对象是足够当前的。预定时间可以由管理员设定或者由代理器预先设定。可以应用另外的策略考虑。如果服务器不经常改变自己的内容(例如由代理器通知),则可以延长该时间数量。另一方面,如果服务器确实经常改变其内容(例如股票行情),则可以缩短该时间数量。这样,对一个仍为当前的对象的时间量可以是对服务器,万维网页或统一资源定位器(“URL”)特有的。
在步骤416,代理器确定浏览器的超高速缓冲存储器中的该对象足够当前,而且该代理器发送一个未修改响应给客户机。代理器响应该客户机而不给服务器发送请求,从而节省在代理器和服务器之间的一次往返时间。
如果代理器确定浏览器的超高速缓冲存储器不足够新,则在步骤418代理器发送一个请求从服务器获取一个对象,如果该对象已被修改的话。这样,代理器发送客户机请求给服务器。在步骤420,当代理器接收到服务器的一个响应时,该代理器发送该响应给客户机。在步骤422,代理器根据该响应更新超高速缓冲存储器。例如,代理器可以存储当前时间印记到超高速缓冲存储器中,以指示在这一时间点服务器指示该对象还未被修改。如果收到该对象的新的副本,则代理器可更新超高速缓冲存储器中的时间印记,指示浏览器接收到该对象的最后时间。
利用本发明,用于请求已被修改的对象的一个客户机的时间可以从在该客户机到服务器之间的一次往返时间减少到在该客户机和代理器之间的一次往返时间(暂时忽略连接和拆除连接时间)。虽然在超高速缓冲存储器中的条目是客户机特有的,然而本发明对发出请求以获取已被修改的对象的客户机提供明显的性能改善。
图8表示周期刷新在图7A和7B中使用的超高速缓冲存储器中信息的一个过程的流程图。在步骤452,代理器周期地(例如使用一个定时器)获取超高速缓冲存储器中一个对象的标识符。然后在步骤454代理器判定该对象是否足够新。这可以由代理器通过进行和客户机请求获取已被修改的对象的同样的计算来实现。
如果该对象不够新,则在步骤456代理器给服务器发送一个请求,要求获取该对象,如果它已被修改的话。这一请求起源于代理器而非客户机。然后在步骤458代理器根据服务器的响应更新其超高速缓冲存储器。如果服务器响应该对象还未被修改,则代理器可以更新该对象保持未被修改的时间的估计。反之,如果服务器发送该对象的一个新的副本,则代理器通常抛弃该新对象并且更新超高速缓冲存储器,指示该对象已被修改。在另一实施例中,代理器可以存储该对象的新副本以便满足未来的客户机请求。
在步骤460,客户机判定是否有在超高速缓冲存储器中标识的另外对象。如果有的话,则代理器试图为该对象更新超高速缓冲存储器。通过周期地更新超高速缓冲存储器,客户机浏览器的性能将会提高,因为可以更多取消在代理器和服务器之间的往返时间。
图9是一个浏览器的方框图,该浏览器通过使用一个代理服务器的网络接入设备连接到一个万维网服务器以提高性能。所示计算机网络包括一个万维网浏览器502、网络接入设备504和一个万维网服务器506。浏览器通过一条链路经由一个网络协议堆栈508与网络接入设备通信。浏览器和网络协议堆栈驻留在客户机计算机系统中。而万维网服务器驻留在通常为远程计算机系统的服务器中。
网络接入设备包括一个代理器510。所示代理器是一个程序,它接收HTTP请求并把它们引导到万维网服务器或者代理服务器512。该代理器通常接收几种协议的消息,但是这里的讨论集中于HTTP消息。代理服务器是一个计算机系统,它存储来自万维网服务器的可用信息。一般来说,从代理服务器访问信息可能比从万维网服务器更快。
虽然代理服务器的使用已经公知,但是常规系统需要客户机指定HTTP消息是发送到万维网服务器还是代理服务器。在本发明中,客户机无需明确指定该代理服务器使其性能由于使用了该代理服务器而得以提高。本发明的代理器根据对HTTP请求的分析发送该HTTP消息给万维网服务器或者代理服务器。
图10表示根据请求引导一个HTTP请求到万维网服务器或者代理服务器的过程的流程图。在步骤552,代理器从客户机接收一个HTTP请求。在步骤554代理器分析该HTTP请求。这一分析可以包括判定该请求是获取信息还是发布信息。发布信息的请求可以送给万维网服务器。然而,获取信息的请求可以送往代理服务器。也可以有其它包括判定该信息是否可能驻留在代理服务器中的因素。
如果在步骤556确定该HTTP请求可以由代理服务器服务,则在步骤558代理器发送该HTTP请求到代理服务器。代理器也可以在该请求被送往代理服务器之前需要转换该请求为一个不同的协议。否则,在步骤560,代理器发送该HTTP请求到万维网服务器。
本发明允许客户机得到代理服务器的益处而无需被修改来明确发送请求到代理服务器。这样,代理服务器可以被改变或由对网络接入设备进行的改变而修改,而客户机保持不变。
图11表示通过网络接入设备连接到一个万维网服务器的浏览器的方框图,其中一个客户机钩截取来自浏览器的请求。所示计算机网络包括一个万维网浏览器602、网络接入设备604和一个万维网服务器606。浏览器通过一条链路经由一个网络协议堆栈608与网络接入设备通信。在带有浏览器和网络协议堆栈的客户机计算机系统上有一个客户机钩610,该客户机钩截取浏览器和网络协议堆栈之间的呼叫。
在优选实施例中,客户机钩使用DLL链截取浏览器和网络协议堆栈之间的呼叫。例如,重命名动态链接库WINSOCK.DLL为WINSOCKZ.DLL.新的WINSOCK.DLL安装在客户机计算机系统中,它具有和在原来的WINSOCK.DLL中同样名字的例程。然而,新的WINSOCK.DLL在其例程(亦即客户机钩)中有在呼叫被执行之前对之截取的指令。在许多实例中,WINSOCK.DLL的许多例程在该例程的某一点调用WINSOCKZ.DLL中的例程。
网络接入设备包括一个代理器612。所示代理器是一个程序,它从该客户机钩接收HTTP请求。客户机钩和代理器以这样一种方式通信来提高计算机网络的性能而无需修改该客户机。因此,用户自由选择浏览器而仍可明显提高性能。
一般来说,客户机钩截取从客户机到服务器的HTTP请求。客户机钩修改来自客户机的HTTP请求并将修改后的请求发送给代理器。代理器接收修改后的请求,并根据修改后的请求从客户机重建原来的HTTP请求。然后代理器从客户机发送该HTTP请求到服务器。不要求客户机钩和代理器通过HTTP通信。然而,正是在客户机钩和代理器之间的通信提高在客户机和服务器之间通信的性能。
可以使用图11所示计算机网络来提高许多过程的性能。例如,可以改善打开对服务器网络连接的过程。另外,可以增强在对服务器的请求内发送头标的过程。但是这些只是本发明的几个例子,后面将参考图12-15详细叙述。
图12表示客户机钩的一个立即响应过程的流程图,该响应说明响应打开对服务器一个网络连接的请求,该网络连接已经打开。在步骤622,客户机钩截取打开对服务器一个网络连接的客户机请求。在步骤624,客户机钩立即响应客户机,一个伪网络连接已经打开。伪网络连接不是实际网络连接,但是允许客户机开始下一客户机请求。
在步骤626,客户机钩截取指定伪网络连接的对服务器的客户机请求。在步骤628,客户机钩发送该客户机请求和服务器标识符到代理器。服务器标识符(例如地址)从打开一个网络连接的客户机请求中获得。由于客户机钩和代理器在计算机网络中通信,因此不需要在这两者之间的消息符合HTTP。这样,所使用的实际协议可以为实际链路而优化。
图13表示从客户机钩接收一个请求的代理器的一个过程的流程图,客户机钩包括该客户机的一个请求应和一个该请求应送往的服务器的标识符。在步骤652,代理器从包括一个服务器标识符的客户机钩接收一个请求。代理器从客户机钩接收请求,不必首先接收要求打开对服务器一个网络连接的一个HTTP客户机请求。
在步骤654,代理器产生并发送一个HTTP请求给服务器,要求打开一个网络连接。优选地,代理器请求持续的网络连接。服务器由从客户机钩接收到的标识符标识。一旦代理器从服务器接收到网络连接已经打开的响应,则在步骤656代理器产生并给服务器发送一个HTTP请求形式的客户机请求。
代理器可以发送一个HTTP请求以打开对服务器的一个网络连接。代理器还可以维护一个网络连接的超高速缓冲存储器,其已在参考图6的说明中叙述。以这种方式,可以消除在代理器和服务器之间的往返时间。
本发明以许多方式提高性能。当打开对服务器的一个网络连接时可以消除在客户机和代理器之间的往返时间。这一点也许特别有意义,因为该链路可能是在该计算机网络中的弱链路。另外,在客户机钩和代理器之间的协议不限制为HTTP,因此它可以更加优化。
图14表示代理器存储一个头标和从头标之间的差别重建另一头标的过程的流程图。最初,客户机钩截取客户机请求并将其发送给代理器。下面将要说明,客户机钩和代理器之间的通信在其优化时优选不是HTTP。另外,虽然所述实施例是针对请求中的头标,但是本发明可用于请求中的任何信息。
当代理器接收客户机钩的一个请求时,在步骤672代理器存储其头标。然后代理器产生并给服务器发送一个相应HTTP请求。在步骤674,代理器接收客户机钩的另一请求,其包含前一头标和这一头标之间的差别。头标之间的差别现在不是HTTP中头标的标准格式。
在步骤676,代理器使用存储的头标及其差别为客户机钩的当前请求重建头标。在步骤678,代理器使用重建的头标产生和给服务器发送一个相应的HTTP请求。
头标通常包括关于浏览器的信息(例如名字和版本号)、可接受的数据格式等,类似一个多用途因特网邮寄扩展(“MIME”)头标。因此,头标的大部分在不同请求间不改变。在本发明中,一个HTTP请求可以从几百字节减少为不到20字节。这一点特别有意义,因为在客户机钩和代理器之间的链路通常是计算机网络中的弱链路。下面详细叙述这一过程的实现。
图15表示提高头标传输性能的客户机钩和代理器的一个过程的流程图。在步骤702,客户机钩截取对服务器的一个客户机请求,该请求包括客户机钩存储的一个头标。该客户机请求是一个HTTP请求,而客户机钩在给代理器发送该客户机请求时使用更加优化的协议(亦即非HTTP)。
在步骤704,客户机钩给代理器发送客户机请求以便传输给服务器。一旦代理器接收到该客户机请求,则代理器在步骤706存储客户机请求中头标的副本。如果客户机请求不是HTTP,则代理器产生一个相应的HTTP客户机请求。在步骤708,代理器发送该客户机请求到服务器。
在步骤710,客户机钩截取客户机对服务器的一个请求,它包含一个头标。在步骤712,客户机钩修改该客户机请求,使其包括一个指定在该头标和前一头标之间差别的头标。这样,客户机请求将包含头标之间的差别。
在步骤714,代理器接收修改后的客户机请求。利用修改后的客户机请求,在步骤716,代理器从存储的头标和头标之间的差重建头标。代理器产生一个HTTP请求,它相应于客户机请求并包括重建的头标。在步骤718,代理器发送该客户机请求到服务器。
本发明以多种方式提高性能。当打开对服务器的一个网络连接时,可以消除客户机和代理器之间的往返时间。这一点可能特别有意义,因为在客户机钩和代理器之间的链路可能比代理器和服务器之间的链路慢许多。另外,在客户机钩和代理器之间的协议不限制为HTTP,因此这可能更加优化。
虽然上面是本发明的优选实施例的完整说明,但是可以使用各种替代、修改和等价物。显然,本发明在进行适当修改后同样可应用于上述实施例。例如,虽然分别说明各实施例,但是可以结合多个实施例以进一步提高性能。因此,上述说明不应视为是用以限制本发明的范围,本发明的范围由所附权利要求的边界定义再加上等价方法的全部范围。
权利要求
1.在一个计算机网络中由在该计算机网络中客户机和服务器之间的一个代理器执行的方法,用以提高客户机和服务器之间的性能,所述方法包括步骤接收一个客户机的第一请求打开对服务器的一个单一网络连接;给服务器发送多个请求打开对该服务器的多个网络连接;接收该客户机的一个第二请求;使用多个网络连接中的一个给服务器发送第二请求;其中对服务器的多个网络连接是响应客户机要求打开一个单一网络连接的第一请求而打开的。
2.权利要求1所述方法,进一步包括步骤接收客户机要求打开对服务器的一个单一网络连接的第三请求;给客户机发送一个响应,说明网络连接被打开;接收客户机的一个第四请求;使用先前响应第一请求获得的多个网络连接中的一个发送第四请求到服务器。
3.权利要求2所述方法,进一步包括的步骤有给服务器发送请求,要求打开对该服务器的一个网络连接,以便替换正被使用的多个网络连接中的一个。
4.权利要求1所述方法,进一步包括在网络连接的一个超高速缓冲存储器中存储多个网络连接的步骤。
5.权利要求4所述方法,进一步包括步骤接收客户机一个第三请求,要求打开对该服务器的一个单一网络连接;扫描超高速缓冲存储器以判定在该超高速缓冲存储器中是否存在对该服务器打开的网络连接;如果在该超高速缓冲存储器中存在一个打开的网络连接,则给客户机发送一个响应,说明已经打开一个网络连接,以此使该被打开的网络连接被使用。
6.权利要求5所述方法,进一步包括步骤判定网络连接超高速缓冲存储是否提高了客户机和服务器之间的性能;如果网络超高速缓冲存储提高了性能,则给服务器发送一个请求,要求打开对该服务器的一个网络连接,以便在超高速缓冲存储器中存储另一打开的网络连接来替换被使用的网络连接。
7.权利要求4所述方法,进一步包括步骤确定存储在超高速缓冲存储器中对服务器打开的网络连接的数目;如果打开的网络连接数目小于一个预定数目,则给服务器发送一个请求,要求打开对该服务器的一个网络连接,以便在超高速缓冲存储器中存储另一打开的网络连接。
8.权利要求4所述方法,进一步包括步骤判定超高速缓冲存储器中一个对服务器打开的网络连接是否已经关闭;如果在超高速缓冲存储器中有一个关闭的网络连接,则给服务器发送一个请求,要求打开对该服务器的一个网络连接,以便在超高速缓冲存储器中存储一个打开的网络连接。
9.权利要求5所述方法,进一步包括从超高速缓冲存储器中清除使用过的网络连接的步骤。
10.权利要求5所述方法,进一步包括步骤给服务器发送一个请求,要求打开对该服务器的一个网络连接,以便在超高速缓冲存储器中存储另一打开的网络连接以替换被使用的网络连接。
11.权利要求1所述方法,其中客户机是一个万维网浏览器。
12.一个计算机网络,包括运行一个万维网浏览器的一个客户机计算机;与客户机计算机联网的一个万维网服务器;与客户机计算机联网的一个代理服务器计算机,用于存储在该万维网服务器上可用的信息;在客户机计算机和万维网以及代理服务器之间联网的网络接入设备,包括一个代理器,它接收来自万维网浏览器的一个HTTP请求,要求打开对该服务器的一个单一网络连接以及给服务器发送多个请求,要求打开对该服务器的多个网络连接;其中对服务器的多个网络连接是响应来自万维网浏览器的打开一个单一网络连接的HTTP请求而打开的。
13.在一个计算机网络中由在该计算机网络中在客户机和服务器之间的一个代理器执行的一种方法,用以提高客户机和服务器之间的性能,所述方法包括步骤接收一个客户机的第一请求从服务器获取一个对象,如果该对象在一个特定的时间印记后已被修改过的话;发送该第一请求给服务器;接收服务器的一个第一响应,该响应说明该对象在特定时间印记后未被修改;发送该第一响应给客户机;在一个超高速缓冲存储器中存储该对象的标识符和一个时间印记;接收该客户机的一个第二请求从服务器中获取在特定时间印记后已被修改的对象;如果在超高速缓冲存储器中存储的时间印记在从当前时间开始一预定的时间量之内,则给客户机发送一个第二响应,说明该对象在该特定时间印记后未被修改,而不给服务器发送第二请求。
14.权利要求13所述方法,其中,存储步骤包括的步骤有存储该对象的一个地址作为标识符、存储特定时间印记和存储该时间印记作为当前时间,以便估计在何时该对象保持未被修改。
15.权利要求14所述方法,进一步包括步骤周期地给服务器发送请求,要求获取在超高速缓冲存储器中标识的那些对象,即在特定时间印记后被修改的对象,以便更新超高速缓冲存储器中的时间印记。
16.权利要求13所述方法,进一步包括设定预定时间量的步骤。
17.权利要求13所述方法,其中客户机是一个万维网浏览器。
18.一个计算机网络,包括运行一个万维网浏览器的一个客户机计算机;与客户机计算机联网的一个万维网服务器;与客户机计算机联网的一个代理服务器计算机,用于存储在该万维网服务器上可用的信息;在客户机计算机和万维网和代理服务器之间联网的网络接入设备,包括一个代理器,它为对象存储标识符和时间印记,以便在该代理器接收来自万维网浏览器的一个请求,要求从服务器获取在一个特定时间印记后已被修改的一个对象时,该代理器响应该请求,不给万维网服务器发送请求。
19.在一个计算机网络中由在该计算机网络中在一个客户机和一个万维网服务器和代理服务器之间的一个代理器执行的一种方法,用以提高客户机和万维网服务器之间的性能,所述方法包括步骤接收一个客户机的一个HTTP请求;根据该HTTP请求,发送该HTTP请求到万维网服务器或代理服务器,代理服务器存储在该万维网服务器上的可用信息;其中不需修改该客户机来使用万维网服务器。
20.权利要求19所述方法,其中,如果该HTTP请求可以由代理服务器服务的话,则将该HTTP请求发送到代理服务器,否则发送该HTTP请求到万维网服务器。
21.权利要求19所述方法,其中,如果该HTTP请求是邮寄信息给服务器的话,则将该HTTP请求发送到万维网服务器,否则发送该HTTP请求到代理服务器。
22.权利要求19所述方法,进一步包括在该HTTP请求被发送到代理服务器之前转换该HTTP请求为一个不同的协议的步骤。
23.权利要求19所述方法,其中客户机是一个万维网浏览器。
24.一个计算机网络,包括运行一个万维网浏览器的一个客户机计算机;与该客户机计算机联网的一个万维网服务器;与该客户机计算机联网的一个代理服务器计算机,用于存储在该万维网服务器上可用的信息;在该客户机计算机和万维网和代理服务器之间联网的网络接入设备,包括一个代理器,它接收HTTP请求并根据每一HTTP请求,发送该HTTP请求到万维网服务器或代理服务器;其中不需修改客户机计算机上的软件来使用该代理服务器。
25.权利要求24所述计算机网络,其中,可以由代理服务器服务的HTTP请求被发送到代理服务器,否则发送HTTP请求到万维网服务器。
26.权利要求24所述计算机网络,其中,给服务器邮寄信息的HTTP请求被发送到万维网服务器,否则HTTP请求被发送到代理服务器。
27.权利要求24所述计算机网络,其中,HTTP请求被发送到代理服务器之前转换该HTTP请求为一个不同的协议。
28.在一个计算机网络中,使用客户机计算机上的一个客户机钩和在该客户机计算机和服务器之间的一个代理器提高在客户机计算机上的客户机和服务器之间性能的方法,包括步骤客户机钩截取从客户机到服务器的请求;客户机钩修改来自客户机的请求;客户机钩发送修改后的请求到代理器;代理器根据修改后的请求重建客户机的请求;代理器发送客户机请求到服务器;其中,在客户机钩和代理器之间的通信提高在该客户机和服务器之间的通信性能。
29.权利要求28所述方法,进一步包括步骤客户机钩截取客户机的第一请求,要求打开对服务器的一个网络连接,该第一请求包括服务器的一个标识符;客户机钩立即响应,说明对服务器的网络连接已经对该服务器打开并存储该服务器的标识符;客户机钩截取要通过打开的网络连接送往服务器的客户机的一个第二请求;客户机钩发送该第二请求和服务器标识符到代理器。
30.权利要求29所述方法,进一步包括步骤代理器发送第三请求,要求打开对由所述标识符标识的服务器的一个网络连接;代理器通过一个打开的网络连接发送第二请求给服务器。
31.权利要求29所述方法,进一步包括步骤代理器识别在超高速缓冲存储器中对服务器的一个打开的网络连接;代理器通过打开的网络连接发送第二请求到服务器。
32.权利要求29所述方法,进一步包括步骤代理器不是首先接收客户机请求,打开对服务器的网络连接,而是接收从客户机到服务器的一个第一请求和该服务器的一个标识符;使用该服务器的标识符,代理器发送一个第二请求给服务器,要求打开一个网络连接;代理器通过一个打开的网络连接给服务器发送第一请求。
33.权利要求28所述方法,进一步包括步骤代理器存储包含在从客户机到服务器的第一请求中的第一信息;代理器接收从该客户机到服务器的一个第二请求,该第二请求包含在第一信息和第二请求的第二信息之间的差,而不是第二信息;代理器从存储的第一信息和在第一和第二信息之间的差重建第二信息;代理器发送包含重建的第二信息的第二请求给服务器。
34.权利要求28所述方法,进一步包括步骤客户机钩截取从客户机到服务器的一个第一请求,它包括第一信息;客户机钩发送该第一请求到代理器,以便发送给服务器;代理器存储该第一信息的一个副本;代理器发送第一请求给服务器;客户机钩截取从客户机到服务器的一个第二请求,它包含第二信息;客户机钩修改该第二请求使之包含在第一和第二信息之间的差而不是第二信息;代理器从客户机接收修改过的第二请求;代理器从存储的第一信息和第一和第二信息之间的差重建第二信息;代理器给服务器发送包含重建的第二信息的第二请求。
35.权利要求28所述方法,其中,在客户机计算机和代理器之间的网络链路比代理器和服务器之间的网络链路慢很多。
36.在一个计算机网络中,使用客户机计算机上的一个客户机钩和在该客户机计算机和服务器之间的一个代理器提高在客户机计算机上的客户机和服务器之间性能的方法,包括步骤客户机钩截取客户机的一个第一请求,要求打开对服务器的一个网络连接,该第一请求包含该服务器的一个标识符;客户机钩立即响应,说明对服务器的网络连接已经对该服务器打开并存储该服务器的标识符;客户机钩截取要通过打开的网络连接送往服务器的客户机的一个第二请求;客户机钩发送该第二请求和服务器标识符到代理器。
37.权利要求36所述方法,进一步包括步骤代理器发送第三请求,要求打开对由所述标识符标识的到服务器的一个网络连接;代理器通过一个打开的网络连接发送第二请求给服务器。
38.权利要求36所述方法,进一步包括步骤代理器识别在超高速缓冲存储器中对服务器的一个打开的网络连接;代理器通过打开的网络连接发送第二请求到服务器。
39.权利要求36所述方法,其中,对服务器要求打开一个网络连接的第二请求包含一个保持该网络连接为打开状态的请求。
40.在一个计算机网络中由在该计算机网络中在一个客户机和一个服务器之间的一个代理器执行的一种方法,用以提高该客户机和该服务器之间的性能,所述方法包括步骤不是首先接收来自客户机的请求,打开对服务器的网络连接,而是接收从客户机到服务器的一个第一请求和该服务器的一个标识符;使用该服务器的标识符,发送一个第二请求给服务器,要求打开一个网络连接;通过一个打开的网络连接给服务器发送第一请求。
41.权利要求40所述方法,其中,对服务器要求打开一个网络连接的第二请求包含一个保持该网络连接为打开状态的请求。
42.权利要求40所述方法,其中客户机是一个万维网浏览器。
43.在一个计算机网络中由在该计算机网络中在一个客户机和一个服务器之间的一个代理器执行的一种方法,用以提高该客户机和该服务器之间的性能,所述方法包括步骤存储包含在从该客户机到该服务器的第一请求中的第一信息;接收从该客户机到服务器的一个第二请求,该第二请求包含第一信息和第二请求的第二信息之间的差,而不是第二信息;从存储的第一信息和在第一和第二信息之间的差重建第二信息;发送包含重建的第二信息的第二请求给服务器。
44.权利要求43所述方法,其中第一和第二请求是HTTP请求。
45.在一个计算机网络中,使用客户机计算机上的一个客户机钩和在该客户机计算机和服务器之间的一个代理器提高在客户机计算机上的客户机和服务器之间的性能的方法,包括步骤客户机钩截取从客户机到服务器的一个第一请求,它包括第一信息;客户机钩发送该第一请求到代理器,以便发送给服务器;代理器存储该第一信息的一个副本;代理器发送第一请求给服务器;客户机钩截取从客户机到服务器的一个第二请求,它包含第二信息;客户机钩修改该第二请求使之包含在第一和第二信息之间的差而不是第二信息;代理器从客户机接收修改过的第二请求;代理器从存储的第一信息和第一和第二信息之间的差重建第二信息;代理器给服务器发送包含重建的第二信息的第二请求。
46.权利要求45所述方法,其中客户机钩使用动态链接库链截取客户机请求。
47.权利要求45所述方法,其中第一和第二请求是HTTP请求。
48.权利要求45所述方法,其中客户机是一个万维网浏览器。
全文摘要
提供了提高计算机网络(208),特别是连接用户到万维网的网络的性能的系统和方法。通过减少客户机(252)在给服务器(256)发送请求到接收到一个响应之间所经历的传输延迟而提高性能。可以通过在网络接入设备(254)上的一个代理器(260)维护一个连接超高速缓冲存储器以便更快响应对服务器(256)建立网络连接的请求。另外,该代理器可以维护一个信息超高速缓冲存储器以便更快响应获取一个已被修改的对象的请求。可以单独或者结合实现这些增强措施和在此间叙述的其它增强措施以通过节省在计算机网络部件之间的往返时间而减少给服务器发送请求时涉及的传输延迟。
文档编号H04L29/06GK1251671SQ9718146
公开日2000年4月26日 申请日期1997年11月20日 优先权日1996年11月20日
发明者C·W·比德, J·辛格, D·奥斯特赖克 申请人:英特尔网络系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1