用于减少将信息从通信网络投递到用户的时间的系统及方法

文档序号:7732635阅读:229来源:国知局
专利名称:用于减少将信息从通信网络投递到用户的时间的系统及方法
技术领域
本发明通常涉及通信领域,特别涉及在计算机网络上信息的有效传输。
背景技术
在过去的几十年中,因特网的范围从政府和大学之间的研究网络迅速成长为由企业和个人进行个人及商务交易的工具。因特网最初是设计为无组织的,使得在崩溃发生时实现通信的概率高。传输信息的方法是基于与通过邮件发送信件类似的概念。一条消息可以分解为多个TCP/IP分组(即,信件)并发送至收信人。与信件类似,每一分组可以采用不同的路径到达收信人。尽管许多路径上的许多小分组提供了相对低廉的用户对例如网站的访问,但是这比用户和网站之间的点对点连接慢许多。
图1是显示现有技术中用户到因特网的连接的框图。通常,用户110经由接入点(PoP)112连接至因特网,在现有技术中,接入点(PoP)112是由因特网服务提供者(ISP)运营的。PoP连接至ISP的主干网114,例如ISP1。例如ISP1和ISP2的多个ISP主干网由例如NAP 170这样的网络接入点连接在一起,形成因特网“云”160。
更特别的,在个人计算机(PC)120处的单个用户具有多种选择以连接至PoP 112,诸如在例如固定无线PC或移动电话上的直接用户线(DSL)调制解调器122、TV电缆调制解调器124、标准拨号调制解调器126或无线收发器128。这里使用术语个人计算机或PC以描述具有处理器和内存的任一设备,而不限于传统的桌面PC。在PoP 112处,对每一种类型的调制解调器(或收发器)有一个对应的访问设备,以从/向用户110接收/发送数据。对于DSL调制解调器122,PoP 112在其访问设备处有一数字用户线访问复用器(DSLAM)。对于电缆调制解调器124,PoP 112在其访问设备处有一电缆调制解调器终端系统(CTMS)头端器。DSL和电缆调制解调器连接允许几百千比特每秒(Kbps)的速率,远远快于通过拨号远程访问服务器(RAS)134在PoP 112接收数据的标准拨号调制解调器126。无线收发器128可以是个人数字助理(PDA)或移动电话的一部分,并且在PoP 112处连接至例如基站这样的无线收发器136。
企业用户(或具有家庭办公室的个人)可以具有局域网(LAN),例如通过以太网链路连接至LAN服务器144的PC 140和142。企业用户可以具有到PoP 112的T1(1.544Mbps)、分数T1连接或更快的连接。来自LAN服务器144的数据通过路由器(未显示)发送至例如信道服务单元/数据服务单元(CSU/DSU)146这样的数字连接设备,然后该数字连接设备通过T1(或分数T1)线148将数字数据发送至PoP 112处的CSU/DSU。
PoP 112可能包括连接了DSLAM 130、CTMS头端器132、RAS134、无线收发器136或CSU/DSU 150的ISP服务器152。ISP服务器152可以提供诸如电子邮件、新闻组或域名服务器(DNS)这样的用户服务。或者DSLAM 130、CTMS头端器132、RAS 134、无线收发器136或CSU/DSU 150可以绕过ISP服务器152,直接连接至路由器154(虚线)。服务器152连接至路由器154,路由器154将PoP 112连接至具有例如路由器162、164、166和158的ISP1的主干网。ISP2具有提供诸如电子邮件和用户网络主机这样的竞争用户服务的ISP2服务器180。向用户110提供在线内容的万维网服务器182和184连接至因特网“云”160。
尽管因特网为企业和个人提供了进行商业交易的基本功能,但是在例如万维网服务器和企业或个人用户之间传输信息的很长的时延是一个大问题。例如PC 120处的用户需要来自万维网服务器182处的网站的信息。数据从万维网服务器182回到用户PC 120需要许多“路程段”。而且因为信息以分组“邮”回,所以分组通常通过不同路径返回。这些不同的路径由其它用户的分组共享,并且一些路径可能较慢。于是即使在万维网服务器182和用户120之间的所有链路都有足够的容量,也将有显著的时延。然而,由于还有瓶颈,即流量超过容量的地方,所以甚至还会有进一步的延迟。
两个主要的瓶颈是最后和倒数第二英里。最后一英里是从PoP 112至用户110。具有例如LAN服务器144、PC 140和PC 142以及核心ISP主干网114的局域网运行得很快。局域网通常以10/100兆比特每秒(Mbps)运行。核心ISP主干网以例如光载波(OC)48操作,即,2.5吉比特每秒 Gbps)或OC-192,即10Gbps。大多数最后一英里的访问是拨号的,通常速度为56Kbps。即使使用大约512Kbps的DSL调制解调器下载图片也非常慢。于是PoP 112和用户110之间的最后一英里是两个大型通信管路之间的瓶颈。
倒数第二英里在ISP之间。具有PoP 112的ISP可能通过其主干网114连接至更高层的ISP(未显示),以达到地区/国家/全球覆盖。由于到更高层ISP的带宽增加提高了本地ISP的成本,所以具有例如PoP 112的本地ISP可能减少用户110的可用带宽量。效果是在万维网服务器182和PC 120之间的流量大于链路容量,于是有严重的延迟问题。在今天快节奏的世界中,这个问题大大妨碍了因特网作为商业工具的使用。
因此需要减少用户对于来自诸如因特网这样的通信网络的信息的等待时间。

发明内容
本发明提供了一种用于减少用户等待从通信网络上的远程服务器,例如因特网上的万维网服务器,请求的信息所需的时间的系统及方法。在一个示例性实施例中,系统是用户中心的,并且目的是尽可能实际接近用户地保存用户需要的所有数据。用户的特性和使用模式用于确定高速缓存什么以及多久、预存取什么以及取回什么。另外,通过将信息段并利用并行通信信道,可以显著增加在最后一英里上传输的数据。
本发明的一个实施例包括一种由计算机上的浏览器使用,用于高速缓存数据的方法。该方法包括将由浏览器从服务器取回的一数据项保存在高速缓存中;在浏览器没有任何动作时,自动更新高速缓存中的项;在浏览器上显示来自该高速缓存的经更新的项。
本发明的另一实施例包括一种用于从第二计算机系统中的第二数据刷新第一计算机系统的高速缓存中的第一数据的方法,其中第一计算机系统由通信网络连接至第二计算机系统。该方法包括当第一计算机系统不忙时,将对于第一数据的刷新请求发送至第二计算机系统;使用该刷新请求定位第二数据;当第二数据是第一数据的较新的版本时,将第二数据发送至第一计算机系统;以及由高速缓存中的第二数据替换第一数据。
本发明的另一实施例包括一种用于在通信网络上的多个高速缓存间分布从主机服务器中选择的数据的方法。该系统包括多个高速缓存的第一高速缓存,连接至主机服务器并且具有选择的数据的第一复本;多个高速缓存的第二高速缓存,经由接入点访问设备连接至第一高速缓存并连接至用户PC,其中第二高速缓存具有选择的数据的第二复本,并且其中第二和第一复本被链接在一起;和在用户PC上执行的浏览器,用于通过首先使用第二复本而取回所选择的数据。
本发明的另一实施例包括一种第一计算机系统对来自具有高速缓存的第二计算机系统的数据的用户请求进行响应的方法。该方法包括接收对于来自第二计算机系统的数据的用户请求;对应于该用户请求取回响应数据;将具有响应数据的第二计算机系统的网络地址存储在高速缓存中;以及将响应数据发送至第二计算机系统。
一种第一计算机系统对来自具有高速缓存的第二计算机系统的数据的用户请求进行响应的方法。该方法包括接收对于来自所述第二计算机系统的数据的所述用户请求;取回对应于所述用户请求的响应数据;将具有所述响应数据的所述第二计算机系统的网络地址存储在所述高速缓存中;以及将所述响应数据发送至所述第二计算机系统。
本发明的另一实施例包括一种用于经由通信网络从第二计算机为第一计算机系统处的用户预取数据的方法。该方法包括确定由第一计算机发送的对于来自第二计算机系统的选择的数据的用户请求中的频率;以及由第一计算机以高于该频率的值请求所选择的数据,使得所选择的数据的一项在第一计算机系统处,在发送相应的用户请求之前是可用的。
本发明的另一实施例包括一种用于在第一计算机和第二计算机之间经由公共通信网络提供虚拟专用网络(VPN)的方法。该方法包括通过使用包括第一计算机的地址和第二计算机的地址的集中许可表,在第一计算机和第二计算机之间建立一VPN;以及当第一计算机具有到第二计算机的多个并行通信链路时,将这多个并行通信链路分组,以增加第一和第二计算机之间的数据流。
本发明的另一实施例包括一种用于调节从第一计算机到第二计算机的数据流量的方法,数据流量需要支持第二计算机的计算机监视器上的图片。该方法包括将包括分辨率的第一数目的计算机监视器显示特性发送至第一计算机;对于图片项评价分辨率的第二数目;当第二数目大于第一数目时,由具有减少的分辨率数目的图片项创建经修改的图片项;以及将经修改的图片项发送至第二计算机。
本发明的另一实施例包括一种用于从计算机的代理栈中的多个代理服务器中选择一代理服务器的方法。该方法包括由中央代理栈管理器为代理栈中的多个代理服务器设置顺序;以及每次由该计算机作出对于多个代理服务器的一个代理服务器的请求时,选择按照顺序在代理栈中的多个代理服务器中的下一个代理服务器。
本发明的一个实施例包括一种用于向计算机上执行的浏览器提供包括动态数据和静态图片在内的网络内容的系统。该系统包括高速缓存,用于将静态图片的实质部分提供给该浏览器,其中高速缓存由局域网连接至计算机;和虚电路,连接至万维网服务器,用于提供具有动态数据的实质部分的浏览器。
本发明的另一实施例包括一种用于对经由第一和第二计算机之间的多条通信链路从第一计算机传输至第二计算机的数据进行负载均衡的方法。该方法包括对多条通信链路的每一通信链路建立一TCP/IP连接;以及基于因素划分多条通信链路间的数据,以显著减少数据的传输时间。
本发明的另一实施例包括一种用于减少经由多条通信链路在第一计算机和第二计算机之间传输文件或数据块所用时间的方法。该方法包括由第一计算机使用多条通信链路中的第一链路发送文件或数据块;由第一计算机使用多条通信链路中的第二链路发送文件或数据块的一部分;以及第二计算机在接收文件或数据块的所有部分而不是所有文件或数据块之后,重构该文件或数据块。
参考下面的说明书、所附权利要求和附图,可以更好的理解本发明的这些及其它实施例、特征、方面和优点。


图1是显示现有技术中到因特网的用户连接的框图。
图2是图1的简化而扩展的框图。
图3是根据本发明实施例的浏览器和万维网服务器之间的通信路径的框图。
图4是根据本发明实施例,插入到图2的现有系统中的超级模块的框图。
图5显示了本发明实施例的超级高速缓存结构的一个例子。
图6是显示根据本发明的一个实施例,超级高速缓存系统的刷新处理的简化例子。
图7是根据本发明的一个实施例的超级高速缓存的自动刷新处理的流程图。
图8是将来自多个用户请求的数据以及请求器IP地址保存在接收超级模块的高速缓存中的例子。
图9显示了根据本发明的一个方面,通过因特网在用户和万维网服务器之间图片和文本或动态数据的数据流的例子。
图10显示了本发明的一个实施例的连接组合的例子。
图11给出了根据本发明的一个方面,由于文件传输增加而引起的时间节省的例子。
图12是根据本发明的一个实施例,使用代理栈的例子。
图13显示了现有的站点到站点VPN和现有的远程VPN的例子。
图14显示了根据本发明的实施例的两个虚拟专用网(VPN)的例子。
具体实施例方式
在下面的说明书中,给出了众多特定细节,以提供本发明特定实施例的更充分的说明。然后,对于本领域技术人员显然可以看出,本发明不限于所给出的所有特定细节。在其它示例中没有具体说明众所周知的特征,从而更突出本发明。
为了使个人和企业将因特网作为有效的商业工具而使用,用户请求和接收信息所需的时间必须比现在典型的所需时间大为缩短。本发明提供了可以叠加在因特网基础设施的部件上的“超级”系统和技术,以增加网络中的信息流量,该系统和技术无论单独还是联合使用,都显著减少了用户对于来自例如万维网站点或其它用户的信息的等待时间。
图2是图1的简化而扩展的框图,用于帮助解释本发明。其中图2使用了与和图1相同的标签。调制解调器210包括图1的DSL调制解调器122、电缆调制解调器124、拨号调制解调器126和无线收发器128。类似地,访问设备220包括图1的相应DSLAM 130、CMTS头端器132、RAS 134和无线收发器136。数字连接设备212和222包括CSU/DSU设备146和150,另外还包括卫星、ISDN或ATM连接设备。图2在LAN服务器144和调制解调器210之间具有附加连接,以说明LAN的另一选择,以连接至除数字连接设备212以外还连接到PoP 112。图2中显示的多数计算机和网络系统使用标准传输通信协议/因特网协议(TCP/IP)协议进行通信。
图3是根据本发明实施例的浏览器和万维网服务器之间的通信路径的框图。上面说明了当用户使用浏览器512请求来自万维网服务器182的网页514时,在浏览器512和万维网服务器182之间的现有的交换。本发明的一个实施例创建了包括超级用户540、超级应用532、超级中央办公室(CO)服务器534、超级CO集中器536和超级主机538在内的多个“超级”模块,提供了可选的超级高速公路路径,以在浏览器512和万维网服务器182之间交换数据。对于网页514的用户请求由PC 140上执行的浏览器512发送至同样运行在PC 140上的超级用户软件530。然后超级用户530将用户请求发送至LAN服务器144上运行(或在另一实施例中,在其自己的服务器上执行)的超级应用532。然后超级应用532将用户请求发送至超级CO服务器534,后者将请求发送至超级CO集中器536。超级CO服务器534和超级CO集中器536可以是单独的服务器也可以是在PoP服务器152上运行的软件。超级CO集中器536通过因特网160将用户请求发送至超级主机538(或在另一实施例中,主机538是万维网服务器182上运行的软件)。用户请求从超级主机548前进至万维网服务器182,后者从万维网服务器182上运行的网站中取回网页154(万维网服务器182可以包括服务器的万维网群和多个网站)。然后网页514通过超级主机538、超级CO集中器536、超级CO服务器534、超级应用532和超级用户530返回浏览器512。
在另一实施例中,可能没有一个或多个超级模块,例如,超级应用532。在没有超级应用532的情况中,超级CO服务器534通过LAN服务器144与超级用户530交换信息。另一个例子是,如果不存在超级主机548,则万维网服务器182与超级CO集中器536交换信息。于是如果缺少一个超级模块,使用相应的一般模块,例如PC 140、LAN服务器144、PoP服务器150、PoP路由器154和万维网服务器182,作为替代。可以使用所有或一些超级模块,并且只要在至少两个不同的超级模块之间有至少一条通信链路,流过该链路的信息将会显著提高。
图4是根据本发明实施例,插入到图2的现有系统中的超级模块的框图。对于相同或相似的设备,在图4中使用了与图2相同的标签。超级用户540通过调制解调器210经由访问设备220连接至PoP服务器152。具有超级用户530、超级用户542和超级应用532的局域网连接至调制解调器210或数字连接设备212,其中数字连接设备212由数字连接设备222连接至PoP服务器152。超级应用532包括在LAN服务器144上执行的软件。服务器152通过交换机420连接至路由器154,交换机420使分组业务转向超级CO服务器534和超级CO集中器536。路由器154连接至因特网云160。从因特网160开始,业务可以到达连接至万维网服务器182的超级主机538或者连接至万维网服务器184的超级主机550或者连接至ISP服务器180的超级主机552。
超级系统部件下面说明的是图5的超级系统的各个部件的一个实施例,包括超级用户540、超级应用532、超级CO服务器534、超级CO集中器536和超级主机538。
超级用户530包括位于用户PC,例如PC 140,中的软件。浏览器,例如Microsoft的Internet Explorer,被设置为到超级用户530的代理,以使所有浏览器数据请求都由超级用户530提供。另外,通过浏览器的所有用户请求都被发送至超级用户530。于是浏览器由超级用户与网络的其它部分隔离。超级用户在用户的PC上的本地高速缓存中对用户请求的所有数据进行高速缓存,使得当用户再次请求数据时,如果可用即从本地高速缓存中本地取回。如果被高速缓存的数据超过预定的文件大小,则超级用户分析本地高速缓存中的所有数据,并删除最不常使用的数据。例如,可以使用一种现有的最近不常使用算法丢弃旧数据。超级用户540的一些软件功能有1.高速缓存如果浏览器请求在本地高速缓存中存在的数据并且数据满足高速缓存寿命需求,则从本地高速缓存提供该数据。否则从更新的数据是可访问的最近的超级模块高速缓存,例如超级应用532或超级CO服务器534、超级CO集中器536或超级主机538,中取回该数据,或者如果对于任一超级高速缓存都是不可访问的,则可从万维网服务器取回该数据。每一数据元素具有一高速缓存寿命,即它在需要刷新之前可以被高速缓存使用多久。
2.刷新高速缓存当超级用户PC空闲时(没有活跃地取回来自因特网的数据),超级用户检查本地高速缓存并自动刷新达到高速缓存寿命的数据。超级用户使用人工智能(AI)或其它技术,基于其确定的用户最可能请求哪些而把刷新区分优先次序。例如,超级用户可以对用户访问一网页的频率进行计数。较高的计数表示用户更可能在将来请求该网页,并且超级用户将自动刷新该页。
3.预取超级用户在空闲时间期间,使用AI或其它技术预取被用户需要的可能性高的网页(即,取回用户还没有请求的网页)。例如,如果用户正在浏览目录站点上的某些网页,则用户将浏览同一目录中的站点上的其它页的概率高。超级用户将预取这些页。预取增加了用户从本地高速缓存获得数据的概率。
4.信使分组(后面描述)被分组,并且经分组的数据在发送至超级应用或超级CO服务器之前由超级用户压缩。信使分组被拆包,并且被拆包的数据在发送至浏览器之前由超级用户解压缩。
超级应用532包括在LAN服务器144上执行的软件。超级应用532执行的一些功能包括防火墙安全、全局高速缓存、分群、智能主机以及电子邮件管理。超级应用软件执行的功能还包括1.如果超级应用连接到超级CO服务器,则它们之间传输的所有数据被压缩并分组为信使分组,否则使用标准因特网请求并且响应在被发送至超级用户之前被分组为信使分组。
2.超级应用还自动复制并保留其用户频繁使用的网站。
3.如果超级应用连接到超级CO服务器,则它只有当被通知来自超级CO服务器的改变时,才更新网站的拷贝。如果超级应用没有连接到超级CO服务器,则它在空闲时间期间和/或在周期性的预定间隔期间检查网站的更新。
4.如果超级用户连接到超级应用,则所有数据响应以压缩的格式传输至超级用户。如果固定用户连接到超级应用,则数据响应在超级应用中被解压缩并发送至用户。如果超级用户正在保留网站,则只要网页在超级应用上被更新时,就将一条提醒发送至超级用户,使得超级用户可以请求该变化。
5.超级用户还向超级应用提醒诸如存储器、CPU和PC监视器密度这样的有关用户的可用资源的信息。超级应用使用各超级用户的可用资源信息确定转发信息的最有效方法。例如,在PC监视器密度的情况,可以对局域网上传输的图片进行调整。向不能显示图片的监视器发送高密度图片是网络资源的浪费。超级应用中的软件在传输数据之前调整图片密度。
6.如果多于一个超级用户请求同一数据,则超级应用发出请求并仅发送一个请求至下一超级模块,例如,超级CO服务器。如果在超级应用和网站之间没有另一超级模块,则请求仍然内爆(implode)并且作出标准TCP/IP请求。当接收到对于内爆的请求的响应时,超级应用发出该数据并且数据被发送至合适的超级用户。
超级应用保留的网站越多,网页的访问速度越接近局域网的速度。超级用户处保留的网页越多,网络访问速度越接近硬盘访问速度。超级应用和超级用户上能复制和保留的网页越多,最后一英里距离越不会成为响应时间的瓶颈。
超级CO服务器534是因特网主干网114和用户110之间的桥梁。超级CO服务器534的一个目的是将用户和因特网之间的流量最小化。超级CO服务器通过复制超级用户或一般用户经由超级CO服务器访问的网站而实现这一点。超级CO服务器上的网站越多,通过减少数据在网络上的移动而对网络的优化越大。如果超级CO服务器上的网站来自超级CO集中器536存储的网站,则无论何时超级CO集中器536向超级CO服务器534提醒网页已经变化,超级CO服务器534都请求更新的网页。来自超级CO集中器536的网页以压缩且重分组的格式存储。如果超级CO服务器上的网站没有存储在超级CO集中器中,则超级CO服务器以预定的间隔检查在主万维网服务器的网站中的变化。超级CO服务器保留在每一超级应用532高速缓存上的网站的日志。当超级应用高速缓存上存在的网站发生变化时,向超级应用发送发生变化以及超级应用应请求改变的网页的更新拷贝的提醒。当数据从非超级CO集中器站点接收时,它被压缩、分组并保存在超级CO服务器上。超级CO服务器从其请求日志确定被用户访问的网站,并确定复制并在超级CO服务器534高速缓存中保留哪一网站。超级CO服务器还将删除未被使用的站点。如果一个网站没有被存储和保留,则该网页保留在单独的全局高速缓存中,使得如果被再次请求则可以从全局高速缓存中提供。在全局高速缓存和网络主机中应维持正确的均衡。如果超级应用请求一网页,则该网页以超级压缩且重分组的格式发送,否则该网页被解压缩并发送至请求用户。使用的优化涉及应用于可变数据(通常为文本)的压缩量和网页上可变数据的量。因特网上使用的Rich数据格式越多,得到的优化越大。Flash软件、文件、java程序、java script等都存储在超级CO服务器。
来自超级应用的没有被超级CO服务器高速缓存满足的数据请求发送至负责为请求的URL(网站)服务的超级CO集中器536。请求被根据优化机制而分组压缩并内爆。在一个实施例中,在超级CO服务器发生数据内爆的第一级。在另一实施例中,内爆由超级应用完成。超级CO服务器由ISP地理组织,使得区域定向的复制使用特性可以在请求上内爆并在响应上外爆(explode)。不能由超级CO服务器的高速缓存中的数据响应的所有请求和内爆的请求被传递至超级CO集中器。
超级CO集中器536由网站(URL的)组织。这增加了用户需要的网站数据在CO集中器的高速缓存中的概率。它还增加了请求能被内爆以及网络流量能得到减小的概率。每一超级CO集中器负责高速缓存以及与超级主机,例如538,和其它非超级主机网站接口。对于非超级主机网站,超级CO集中器536是遇到的第一个超级模块,并且发生了所有图片的初始重分组、第一压缩、最终内爆、第一外爆、转化至优化的压缩格式,例如PGN或合适的压缩算法,以及发生超级高速缓存的第一级。这里也是其它超级模块发生所有检查和刷新的地点。当来自网站的数据被刷新并更新时,通知超级CO服务器,使得所有高速缓存都可以被更新和刷新。
万维网服务器作为连接到因特网的一个或多个网站的主机。超级主机,即超级主机538,响应超级CO集中器例如536作出的请求。每次作出下载万维网服务器上任一网站的请求时,超级主机53 8从万维网服务器中取回网页并在将内容发送至请求的超级CO集中器之前将内容压缩并分组。这通过有效的压缩率以及通过对所有被请求的网页数据发送单个数据块,提高了网络传输的效率。或者,超级主机不将请求的网页的所有数据作为一个单独的数据块而发送,而是将信息作为大于一个数据块而转发至超级CO集中器以最大化整体传输性能。在一个实施例中,超级主机可以转发初始HTML文档,同时取回、分组并压缩剩余的数据。然后剩余的数据可以作为一个单独的数据块或多个块而转发。作为单独块或多个块而转发的决定是基于许多因素的,这些因素用于通过均衡到超级用户的数据投递速率与超级主机的数据取回速率而最小化整体传输时间。使用对于数据的特定类型执行的最好的技术,分析并压缩每一条信息。当接收到每一超级CO集中器请求时,超级主机记录超级CO集中器的IP地址。超级主机检查在万维网服务器中包含的网站,并将任何变化的网页通知曾经请求来自网站的数据的任一超级CO集中器。这使得超级CO集中器能够知道何时需要刷新其网站版本,并通过允许超级CO集中器从超级CO集中器的高速缓存中的网页的版本直接为用户对于网页的请求提供服务而最小化万维网流量。网页的超级CO集中器版本需要刷新的时间仅仅是其改变的时刻。这使得可以最小化从万维网主机站点到ISP站点的流量。在每一网站处有许多ISP站点访问数据。这是将网站移至因特网的外缘并将压缩和分组带至因特网的内部工作中的一个步骤。将网站移至因特网的外缘的困难是确保数据是流通的,超级模块高速缓存的互锁保证了这一点。
高速缓存由于当今网站内容及图片丰富的特点,从万维网服务器到用户的网络浏览器的信息投递占用大量时间。结果是失意的用户往往放弃了网站而不是继续等待。这导致电子商务网站操作者的困境,他不得不使用具有低分辨率图像(如果有的话)的简单文本或冒失去用户的风险。
已经作出了通过在ISP处引入高速缓存服务器而解决该问题的尝试。已经证明,因为高速缓存服务器保留了用户及其它用户最近取回的网页的拷贝,所以高速缓存服务器成功地减少了用户等待时间。然而,高速缓存服务器对于对新网页(即以前没有请求的网页)的请求没有作出贡献,也没有利用万维网服务器上作出的改变而更新在本地保留的网页(即网页是静止的)。另外,高速缓存服务器具有有限的存储大小,因此为了保留较新的内容必须丢弃较旧的内容。由于这种基于“先进先出”(FIFO)的方法,应当被高速缓存的内容有可能在再次需要之前就被丢弃。
对于上述问题的一种解决方案包括本发明的一个实施例,其目的是只要用户有可能需要就尽可能靠近用户地保留用户需要的数据。通过尽力经由超级高速缓存最大化在超级用户或超级应用处所需数据的存储,在最后一英里上传输的数据量以及用户的等待时间都显著减少。为了达到这一点,具有超级高速缓存的超级模块基本上保留一个选中网站或其部分的自保留链接镜像。镜像信息的内容是基于用户需求的,并且通过在空闲时间期间或预定时间周期期间的自动更新而保持为当前的。于是,如果主网站发生了改动或修改,则改动或修改通过超级高速缓存传播。另外,与仅保存之前请求的网站部分的高速缓存服务器不同,智能高速缓存包括网站的一个或多个链接级,即使是很少使用的链接。因为有可能用户使用同一等级上的另一链接,所以选择使用链接级。例如,链接级0是主页以及到其内嵌对象(例如图片和文件)的链接。链接级1还将包括从主页链接的网页以及到这些网页上的内嵌对象的链接。于是链接级形成了链接的三角,链接级0在最顶端。随着链接级的数目进一步增加,链接的页面量及其相关的链接对象的数目持续增大,直至最终取回了整个网站。于是所有或部分网站被复制。在另一实施例中,在选择可能的链接时可以使用深度优先算法,而不用广度优先算法(breath first algorithm)。进一步,超级高速缓存中仅有的被删掉的部分是通过人工智能或其它途径确定为用户不再需要的部分。例如,由用户的访问数加权的最近最不常用算法可以用于确定何时应丢弃一网页。
最后,超级高速缓存和高速缓存服务器不是互相排斥的;它们可以协调工作,为用户提供最好的服务。如果请求的网页恰好不在超级高速缓存之一(例如超级高速缓存644(图5))中,则请求被转发至高速缓存服务器,例如具有ISP高速缓存630的ISP服务器152(图5)。如果请求的网页既不在超级高速缓存也不在高速缓存服务器中,则该请求被转发至网站。
超级高速缓存位于网络中的所有点。超级高速缓存可以位于LAN服务器,因此可以由LAN上的所有网络用户共享。超级高速缓存也可以位于单个用户的PC上。智能高速缓存离用户越近,高速缓存的内容投递给用户越快。超级高速缓存通过其超级用户或超级应用,超级模块可以通过用户到因特网的任何类型的连接(包括拨号、电路调制解调器、DSL以及其它任何网络访问(见图1))而操作。
图5显示了本发明实施例的超级高速缓存结构的一个例子。在图5中,由连接至接入点(PoP)614的两个用户请求器组610和612。PoP614通过因特网(未显示)连接至数据提供器组616。数据请求器组610包括连接至具有超级高速缓存622的超级用户540的浏览器620。数据请求器组612具有连接至具有可选超级高速缓存632的超级用户530的浏览器512。超级用户530也连接至具有超级高速缓存642的超级应用532。PoP 614包括具有ISP高速缓存630的ISP服务器152,其中ISP服务器152连接至具有超级高速缓存644的超级中央办公室(CO)服务器534。超级CO服务器534连接至具有超级高速缓存646的超级CO集中器536。数据提供器组616包括具有超级高速缓存648的超级主机538,其中超级主机538连接至万维网服务器182。
超级高速缓存642、644、646和648被互联在一起(分别是虚链路650、654和656),使得它们保留当前数据的公共集,例如,万维网服务器182处的网站的一些或全部。可选地,超级用户540的超级高速缓存622与超级高速缓存644互联(虚链路652)。而且当存在超级用户530的超级高速缓存632时,超级高速缓存632可以可选地链接到超级高速缓存642(虚链路634)。
超级用户530或540通过人工智能或其它方法确定用户需要哪些网站,并将这些网站载入用户的超级高速缓存632或622(或超级应用642)。例如,用户需要的网站可以由用户的当前和历史使用情况而确定。多数人在80%的时间使用网站的20%,这意味着超级用户(或超级应用)高速缓存应具有能够保留在用户PC上的合理的有限大小。在超级用户加载并保留用户PC上的超级高速缓存时,相同的网页存储在其它超级高速缓存中,例如642、641、646和648。
一旦初始网页位于互链接的超级高速缓存,它们就必须保持为当前的,即被刷新或更新。图6是显示根据本发明的一个实施例,超级高速缓存系统的刷新处理的简化例子。用户组612、PoP 614(除ISP服务器152和ISP高速缓存630之外)以及数据提供器616都与图5中的相同。包括单独刷新请求662、664、666、668和669在内的刷新请求流660开始于超级用户530并且前进至万维网服务器182。包括单独数据响应672、674、676、687和679在内的数据响应流670开始于万维网服务器182并且前进至超级用户530。为了帮助解释,向每一超级高速缓存提供一等级数,即,超级高速缓存632在等级1(L1),超级高速缓存642在等级2(L2),超级公司缓存644在等级3(L3),超级高速缓存646在等级4(L4),超级公司缓存648在等级5(L5)。等级越高,超级高速缓存越靠近万维网服务器182,相反,等级越低,超级高速缓存越靠近浏览器512。
在处理器没有执行更高优先级的任务(例如,用户请求数据或接收数据响应或执行应用指令或任一其它用户请求)期间,发生刷新。如果超级用户是孤立的(没有其它超级模块),则超级用户软件使用本领域熟练技术人员所熟知的任一现有步骤从因特网中取回数据并刷新用户的超级高速缓存632。当超级用户530附着于超级应用532时,刷新请求到达超级应用超级高速缓存624(如果如图5所示,超级用户,例如540,附着于超级CO服务器534,则刷新请求发送至超级高速缓存644)。每一超级模块接收来自其较低等级的超级模块的刷新请求。如果请求的数据在其高速缓存中当前可用,则响应超级模块使用其高速缓存以实现请求。如果响应超级用户的高速缓存当前不可用,则刷新请求被转发至下一较高超级模块。重复这个过程,直至没有更高等级的超级模块。然后该等级回复到标准因特网协议,以将刷新请求发送至万维网服务器以满足刷新请求。这个过程包括超级高速缓存在所有超级高速缓存等级中都是当前的。
图7是根据本发明的一个实施例的超级高速缓存的自动刷新处理的流程图。等级N处的超级高速缓存680(其中“N”是整数)请求来自等级N+1处的超级高速缓存682的刷新。在步骤684,具有等级N的高速缓存680的第一超级模块基于例如预定时间、高速缓存寿命过期或接收到更新通知,而请求来自具有等级N+1的高速缓存的第二超级模块的数据的刷新。在决策节点686,如果第一超级模块忙,则回到节点685,发生等待循环。当第一超级模块是空闲时,则在步骤688,刷新请求被发送至等级N+1处的超级高速缓存682。在步骤690,第二超级模块接收该刷新请求,在步骤692,第二超级模块检查其高速缓存,以了解请求的数据是否在等级N+1超级高速缓存中存在并当前可用。如果请求的数据不在超级高速缓存中存在或当前可用,则当第二超级模块空闲时,第二刷新请求发送至具有等级N+2的超级高速缓存的第三超级模块(步骤696)。当第二超级模块是超级主机538时,刷新请求发送至万维网服务器192。如果请求的数据在高速缓存中当前可用,则在步骤698,将第一超级模块的IP地址与请求的数据一起保存在N+1等级超级高速缓存中。在步骤700,从N+1等级高速缓存取回请求的数据,在步骤702,数据被发送至第一超级模块。第一超级模块接收该数据响应(步骤704)并更新其超级高速缓存中的数据(步骤706)。可选地,如果需要,将更新通知发送至具有等级N-1处的高速缓存的前一超级模块(可选步骤708)。
图6中的超级主机538(或者在没有超级主机538的情况下,超级CO集中器536或超级CO服务器534)积极地保存并监控万维网服务器182上的网站。当网站有变化时,超级主机538更新其等级5的超级高速缓存648。然后超级主机538将更新通知652(图6)发送至超级CO集中器536。当空闲时,超级CO集中器536将刷新请求668发送至超级主机538。超级主机538得到存储在其超级高速缓存648中的网站改变,并将数据响应674返回超级CO集中器536。超级CO集中器536更新其超级高速缓存646,然后将更新通知676发送至超级CO服务器534。该过程重复,更新通知650到达较低等级,刷新请求666到达较高等级,并且响应数据请求到达较低等级,直至超级用户的等级1的超级高速缓存632更新了改变。由于一个网站有许多用户,所以改变的一对多的多播是更新用户高速缓存的有效途径。
在本发明的一个实施例中,用户请求IP分组中发送器的IP源地址与接收超级模块的超级高速缓存时响应于用户请求的数据一同保存。随着数据请求提升超级高速缓存等级,即等级数增加,请求超级模块(例如等级N)的识别地址与接收超级模块的超级高速缓存(例如等级N+1)中的响应数据一同保存。向所有较低等级的高速缓存传播导致数据更新的任一情况,例如,检查万维网服务器的用户请求或者超级主机,以及该更新。由于这是一对多的活动,所以保留高速缓存刷新的效率非常好。
图8是将来自多个用户请求的数据以及请求器IP地址保存在接收超级模块的高速缓存中的例子。图8显示了四个超级模块,具有超级高速缓存712的超级模块1 710,具有超级高速缓存716的超级模块2 714,具有超级高速缓存717的超级模块3 715,和具有超级高速缓存720的超级模块4 718。超级模块710、714和715连接至超级模块4 718。超级模块1 710经由通信链路732将用户1的请求730发送至超级模块4 718。超级模块4 718执行用户1的请求730并取回响应数据1 762。超级模块4 718将响应数据1 762与用户1的请求730的IP源用户1地址766(例如,在例如数据结构740的行742中的超级模块1 710的IP地址)联合。超级模块4 718将响应数据1 750返回给超级模块1 710,超级模块1 710将数据存储在其超级高速缓存712中。类似地,超级模块2 714经由链路736将用户2请求734发送至超级模块4 718,超级模块3 715经由链路737将用户3的请求735发送至超级模块4 718。超级模块4 718类似地处理该用户请求,并在数据结构720中创建具有带有用户2的IP地址768的响应数据2 764-1的行744、和具有带有用户3的IP地址769的响应数据2 764-2(即响应数据2 764-1的复制)的行746。类似地,超级模块4 718将754-1和754-2中相同的响应数据2分别发送至超级模块714和715。注意,当相应数据2(764-1和764-2)改变时,数据结构720指示用户2的IP地址768和用户3的IP地址769需要被发送一更新通知。于是更新可以沿高速缓存等级向下多播。
对于使用动态IP地址的系统,740的数据结构包括对于用户ID的附加项目,以最大化超级高速缓存的性能,例如用户1的ID 770、用户2的ID 772和用户3的ID 774。每次具有动态分配的IP地址的超级高速缓存等级N连接至超级高速缓存等级N+1时,超级高速缓存N+1检查其数据表740,以将唯一的用户IP与新动态分配的IP地址匹配,以保证IP地址字段一直是当前可用的,例如具有用户2的IP地址768的用户2的ID 772。这种方法使得超级高速缓存N+1可以对于具有动态分配的IP地址的每一用户,将之前高速缓存的信息的使用最大化,即使用户的IP地址可能已经改变。一个实施例包括在数据结构740中的用户ID字段,例如用户ID 770、772和774,或者创建一个独立的数据结构。
在另一实施例中,超级用户(或超级应用)通过人工智能或其它方法确定用户到达没有请求的网页的可能性。例如,很有可能用户将到达连接到已经存储在超级用户的超级高速缓存中的网页的链接,或者很有可能用户将使用该用户以前从未访问过的网站的页面上的某些链接。然后在空闲时间期间,超级用户可以预取网页,以试图增加用户能够从其超级用户高速缓存(或超级应用高速缓存)满足以后请求的可能性。预取请求与刷新请求类似地对待,只是具有最低的优先级,即在用户请求、更新和刷新请求的优先级之下。同样,不刷新预取的网页,除非网络上没有其它活动。
在检查用户取回的网页时,网页包括文本数据和图片。尽管对于文本压缩有有效且简单的算法,但是图片数据的压缩要困难得多。幸好许多网页图片没有太大变化。在本发明的另一方面中,图片靠近用户存储在超级用户超级高速缓存和/或超级应用超级高速缓存中。
图9显示了根据本发明的一个方面,通过因特网在用户和万维网服务器之间图片和文本或动态数据的数据流的例子。图9显示了经由超级用户530、具有超级高速缓存642的超级应用532、PoP 810和因特网812连接至万维网服务器814的浏览器512。超级高速缓存642存储网页上的图片,这些图片通常不变化并且具有低压缩率。这些网络图片由超级高速缓存642经由路径820提供给浏览器512。容易压缩并且具有高压缩率的通常变化的文本和动态请求由浏览器通过路径822向万维网服务器814请求。
上述方法在支持电子商务的网站与在线购物相结合。用户与超级高速缓存642交互,以接收描述网站的产品的高分辨率的动画或3D图片。因为这个内容仅需要从超级高速缓存642投递至用户的浏览器,而在整个因特网上传输,所以交互是明确且快速的。当用户作出请求,请求动态服务器网页(ASP)中提供的保密购买或数据库查询时,超级高速缓存642不处理该请求,而是经由路径822之间传送给万维网服务器814。由于多数请求小,所以它们迅速返回到万维网服务器814,万维网服务器814执行其标准处理。结果通过超级用户530投递回用户。
如图9所示,动态数据和标记为不可高速缓存的数据通常不保存在高速缓存中,因为它需要在每一网页请求上刷新。对于具有对于动态数据的频繁而期望的请求的多个用户的超级应用,以高于期望或平均频率请求数据在需要之前对数据进行预取并减少用户的等待时间。当数据由多于一个人频繁请求时,使用人工智能或其它方法创建一动态预取列表。可以输入参数以定义频率和定时。
根据本发明的另一方面,智能模块以对待一般页面数据相同的方法高速缓存流文件。除非流数据是实时的,流数据在尽可能靠近用户的超级高速缓存中被高速缓存。在下一次请求非实时流文件时,它靠近用户地存在,于是显著减少了投递所需的网络资源。
分组在本发明的一个实施例中,任一类型的多个链接可以“分组”在一起,以提供更高的带宽。这更高的带宽提供了比同类型的单链接更快的网页取回、图片和文件下载。分组需要具有到达一个或多个目的地的两个或多个通信链路的超级模块。由于超级模块软件在现有通信网络(例如标准调制解调器软件)顶部,所以超级模块可以与两个或多个通信链路的每一个交换应用数据,即使每一通信链路都具有不同的通信协议。
分组通常发生在具有两个或多个通信链路的两个超级模块之间。负载均衡算法动态调整TCP/IP分组业务量,以试图将数据的传输时间最小化。负载均衡算法种使用的因数包括但不限于连接的速度、连接上的当前负载、连接的服务质量以及上次使用的连接。例如,如果有一快速DSL连接和一慢拨号调制解调器连接连接至一超级模块,并且二者都未被使用,则很可能首先使用快速DSL链接。
连接分组与同样联合多个链接的标准多链路点对点协议(MLPPP)不同。MLPPP将多个链接作为单独管路对待。在发送侧的MLPPP接收来自较高层协议或应用的网络协议数据单元(PDU),并将这些PDU分段为较小的分组,向各段添加一MLPPP报头,并在所有可用链路上发送它们。在接收端,MLPPP软件从不同链路得到经分段的分组,基于它们的MLPPP报头按照正确的顺序放置它们,并将它们重新恢复至它们原始的网络层PDU。MLPPP标准没有说明流量是如何在这些元件PPP链路上均衡的。另一方面,链接分组无需除标准TCP/IP协议之外的另一特殊通信协议,即点对点协议(PPP),并且分组使用可用链路(并且可以不使用一些)。
图10显示了本发明的一个实施例的连接分组的例子。具有浏览器908的超级用户910经由两个拨号连接线路912和914连接至PoP935。浏览器920连接至超级用户922,并且浏览器软件和超级用户软件都在用户的PC上执行。超级用户922连接至具有超级高速缓存926的超级应用924。超级应用924具有到PoP 935的高速链路928和两个低速调制解调器链路930和932。PoP 935由高速数据链路937连接至因特网940。万维网服务器942也连接至因特网940。
例如,观察超级用户和具有超级CO服务器534(未示出)的PoP935之间的分组链接912和914。两个链接912和914都需要同时在线。这意味着,如果使用模拟调制解调器,则需要两个调制解调器、两条电话线,并且通常需要两个ISP帐户(或者支持同时登录的一个ISP帐户)。在另一实施例种,可以使用不同类型的不止两个连接。
为了分组如何工作,使用经由超级用户922、超级应用924、PoP 935和因特网940的向/从浏览器到万维网服务器942的样本路径。用户将单独请求输入他的浏览器920,例如http//www.gm.com。请求在样本路径上发送至万维网服务器942。万维网服务器942通过将单独HTML文件发送回浏览器920而作出响应。HTML文件包含许多附加链接,通常用于构成网页的内嵌图片图像。万维网服务器920自动生成对于这些链接的请求,有时有几十个。在例如超级应用924中的连接分组软件检测到许多相关请求由网络浏览器920生成的事实。使用负载均衡的超级应用924可以在一些或所有可用连接928、930和932上传播这些请求,或者可以通过高速连接928发送大部分请求并在低速连接930和932之间拆分剩余的请求。
使用通用汽车(GM)主页的例子,可以自动生成多达36个内嵌图片请求。如果没有连接分组,一个连接将必须自己处理所有36个请求。使用具有两个连接的连接分组,每一连接仅需处理18个请求。如果对于连接分组可用四个连接,则负载将进一步减少至每一连接仅处理9个请求。于是使用并行连接显著减少了数据传输时间。
文件传输复用器超级应用包含基于从诸如网络浏览器这样的终端用户的应用接收的HTTP、HTTP-FTP或FTP请求作出决策的智能。这些决策可以对于传输文件和网页图片显著改善因特网访问性能,尤其是在最后一英里。除了HTTP、HTTP-FTP或FTP,超级模块使用文件传输复用器以减少任一应用传输很大量数据的时间。
诸如网络浏览器这样的终端用户应用被配置为将其HTTP和HTTP-FTP转发至超级应用。当终端用户输入地址或点击网络浏览器920中的链接时,从特定的HTTP或HTTP-FTP服务器接收信息的请求由浏览器920生成并转发至超级一个应用(或者经由一般PC或者经由超级用户)。在接收到这个请求时,超级应用与万维网服务器942联系,并获得有关文件的一定的初始数据,即文件信息,包括1.来自目的服务器的请求的文件可用的确认;2.请求的文件的“时间戳”(即日期和时间);3.请求的文件的字节数;4.目的服务器支持的协议(特别地,检查是否运行支持“部分接收”功能的HTTP 1.1协议或支持“传输重启”特征的FTP协议);5.是否有能够传输文件或部分文件的另一服务器。
当超级应用接收该文件信息时,它在取回实际文件时作出若干决策1.如果请求的文件存在与超级应用的超级高速缓存926中,并且具有与从万维网服务器942发送的文件信息相同的时间戳,则超级应用924将文件的拷贝从超级高速缓存926之间投递至终端用户的浏览器920。这省去了在因特网上取回同一文件的必要,向终端用户提供了显著的性能改进。
2.如果来自万维网服务器942的文件信息具有比超级应用的高速缓存926中的文件详细更新近的时间戳,或者文件还没有存在于超级应用的高速缓存926中,则超级应用924在从另一超级高速缓存(见图6)或从万维网服务器942开始的最后一英里上取回文件。在这种情况中,需要文件传输复用器技术(本发明一个实施例的一部分,并在下面说明),以改善在最后一英里上传输文件的效率。
文件传输复用器技术利用兼容HTTP 1.1的万维网服务器中发现的优点以及FTP服务器中发现的特征“传输重启”。这些特征的每一个都提供了相同的基本能力,它们使得超级模块可以确定下载文件的什么部分。文件传输复用器技术与请求是否用于在网页上显示大图片图像或者使用HTTP-FTP协议的文件传输(网络浏览器生成的FTP的形式)无关的工作。从用户的观点,他们从浏览器920简单地作出响应,响应被转发至超级应用924。然后超级应用924确定下一等级的超级模块高速缓存、或处理该请求的万维网或FTP服务器是否支持HTTP 1.1或FTP传输重启特征。如果是,则超级应用924在一个或多个连接上请求文件的不同部分。如果万维网或FTP服务器不支持所需的允许拆分文件的特征,则超级应用924在一个连接上接收该文件,与正常完成的一样。
更特别地,超级应用924生成对于文件的多个请求。第一请求要求Web/FTP服务器(或其它超级模块)发送整个文件。其它请求要求Web/FTP服务器,例如万维网服务器942,(或其它超级模块)发送文件的其它部分。超级应用924并行地接收文件的第一片段和其它片段。当文件的第一片段由超级应用接收时,它被经由超级用户922迅速转发至浏览器920,正如浏览器所期望的。文件的其它片段在被接收时被存储在超级应用PC上,并可能立即或在一段延迟后转发至浏览器。由于通常LAN网络速度比最后一英里链路的高,所以用户在减少的时间中接收整个文件。如果由于任一原因,对于文件其它段的请求失败或者以低于第一请求的速度接收,则超级应用取消其它请求并允许第一请求接收整个文件。如果有多个服务器可以发送该文件,则超级应用可以从不同服务器请求文件的不同部分,从而对流量进行负载均衡并且得到更快的投递。
由于并行发送文件的多个段,文件传输复用得到了性能提高。当使在具有到因特网的单个连接的环境中使用文件传输复用时,通过更好的使用该单独连接收到了性能提高。对于单独请求的吞吐量,称为ISP的“节流”并不少见,因此ISP的带宽可以为他的许多用户传播许多请求。例如,在终端用户的PC和ISP之间可以有416Kbps的DSL连接。ISP可能表现出限制,即任一请求都不应以超过带宽值200Kbps接收。如果没有文件传输复用,对于文件的单独请求可能不快于所允许的200Kbps,留下216Kbps带宽没有使用。如果使用文件传输复用,则对于文件作出多个请求(一个请求对于文件的第一段,其它对于文件的第二段)。在具有每个请求200Kbps的同样限制的环境中,文件的每一请求得到200Kbps带宽,这些带宽联合起来时提供400Kbps,以降低文件的第一半部分和第二半部分。这显著增加了未使用的带宽。
当在具有超级应用的连接分组特征的环境中使用文件传输复用管理多个连接时,通过经一个连接发送一个或多个请求并经其它连接发送其它请求提高了得到的性能。在没有由ISP“节流”的情况,所有请求将得到各连接的满带宽,以下载文件的段。在发生了节流的情况,剩余带宽将由超级应用使用,用于处理其它用户的其它请求,或由来自其它服务器的请求部分使用。
图11给出了根据本发明的一个方面,由于文件传输增加而引起的时间节省的例子。水平轴1010具有“0”开始时间1012、时间“T”1014和时间“2T”1016(即(2×T))的时间指示。假设在通信链路930(图10)上传播的文件占用时间周期2T 1016。通过将文件1020拆分为二并在链路930上发送文件1020的第一段1044,同时在第二链路932(图10)上发送文件1020的第二段1032,传输整个文件1020所用的时间是T或者时间被减半。而且,整个文件1020可以在链路930上发送,同时第二段1032在链路932上发送。如果第二段1032成功到达,则不需要链路930上传输的第二部分。如果一个链路是高速DSL链路928(图10),并且第二链路930(图10)是拨号调制解调器链路,则文件1020可以不成比例地分割。第一大段1040在DSL链路928上发送,文件1020剩余的小部分1042在慢链路930上发送。
上面略述了在应用服务器和距用户最远的超级模块之间的“外部文件传输复用器”的过程。外部文件传输复用器需要应用服务器支持文件拆分标准,诸如HTTP 1.1部分接收或FTP传输重启。超级模块还使用“内部文件传输复用器”,以与应用服务器是否支持文件拆分特征无关地减少在超级模块之间的投递时间。为了达到这一点,各个超级模块支持数据拆分功能,数据拆分功能使得在超级模块之间发送的信息能够被划分为并行而非串行转发至下一超级模块的若干块。除了独立于应用之外,内部文件传输复用器可以加速来自多个源的数据的投递。内部文件传输复用器改善了在单个高速线路上传输的数据、或者在分组被用于在多条线路上将信息投递至下一超级模块的情况中的传输时间。内部文件传输复用器是双向的,并且改善了数据上载(诸如发送带有大附件的发送电子邮件)和数据下载(诸如来自远程服务器的文件传输)。
如图11所示,当在不同速度的访问连接之间拆分信使分组或文件时,数据通常不被划分为相等大小的文件,而是将数据划分为匹配访问速度的文件,使得所有传输在同一时间完成。作为另一例子,假设超级模块需要在两条线路上传输“n”字节的数据,其中一条线路比另一条快4倍,则快的线路将要传输占数据大小4/5的文件,而慢的线路将要传输占数据大小1/5的文件。这使得传输可以在大致相同的时间完成。如果文件已经被均匀拆分,则快的线路将完成,而慢的线路将延迟有效响应时间。
文件的分割以及文件段的并行传输可以以任一数目的访问线路完成。由于请求超级模块不知道它从发送超级模块请求的数据的大小,所以必须由请求模块使用访问线路的速度推断出这个信息。当发送超级模块接收对于需要拆分的文件的请求时,它将把文件拆分为段,段大小基于段要被发送到的访问线路的速度。这些段在相应的访问线路上发送,从而请求超级模块可以通过访问线路的速度协调段传输。该技术消除了由于慢线路而对完成传输的等待。这在数据被重分组为大的信使分组时尤其有价值。
监视器分辨率在本发明的一个实施例中,超级用户540或超级应用532向超级CO服务器534通知PC监视器的特性,例如支持的每英寸像素数、最大分辨率以及最大色彩数。例如如果监视器的分辨率比图片的分辨率小,则图像的图片分辨率在从超级CO服务器534发送至超级用户540或超级应用532之前被减少。公司也可以选择它需要支持的监视器特性,并且超级CO服务器534调节网页的所有图片元素以满足这些参数。
代理栈代理服务器是位于用户的PC上的应用(例如浏览器)和因特网上的服务器之间的中间计算机。代理服务器截取到服务器的所有请求并试图自己满足该请求。如果它不能,则请求被转发至服务器。例如,当用户在他的浏览器上访问网站时,浏览器将请求发送至分配的代理服务器。如果代理服务器最近访问过该站点(因为其它用户已经去过),则代理服务器将已经在其硬盘上保存了很可能相同的网页。所以用户的PC无需从万维网服务器下载这些网页,而是从代理服务器下载这些网页,从而加速访问时间。一些主要的在线服务,诸如Compuserve和America Online使用一组代理服务器。
在本发明的另一实施例中,使用了具有两个或更多代理服务器的代理栈。每一超级用户具有可以以优先顺序使用或根据各用户请求切换的两个或更多基本代理服务器,例如超级应用。并且每一超级应用具有两个或更多作为代理服务器,例如超级CO服务器。用户在到达因特网之前通过至少两个代理服务器,即连接至超级CO代理服务器的超级应用代理服务器。
图12是根据本发明的一个实施例,使用代理栈的例子。三个超级用户1110、1112和1114由交换机1116连接至超级应用1120和1122处的代理服务器。超级应用1120进一步经由交换机1124连接至超级CO服务器1130和1132上的两个其它代理服务器。并且超级应用1122经由交换机1126连接至超级CO服务器1130和1132上的代理服务器。超级用户1110具有第一代理栈,第一代理栈中,超级应用1120代理后跟随超级应用1122代理。超级用户1112具有第二代理栈,第二代理栈中,超级应用1120代理后跟随超级应用1122代理。超级用户1110具有第三代理栈,第三代理栈中,超级应用1120代理后跟随超级应用1122代理。超级用户1120具有第四代理栈,第四代理栈中,超级CO服务器1130代理后跟随超级CO服务器1132代理。超级用户1122具有第五代理栈,第五代理栈中,超级CO服务器1130代理后跟随超级CO服务器1132代理。
因为高速缓存服务器通常是代理服务器,所以具有超级高速缓存的各个超级模块可以用作代理服务器。于是代理服务器的例子不限于超级应用或超级CO服务器,而是包括超级CO集中器和超级主机。
在一个实施例中,有一个称为代理分解器的中央代理栈管理器,其管理网络中各个超级模块内的代理栈。通过修改集中的代理分解器位置处的代理栈列表,可以修改网络中各个超级模块的代理栈。实施例的优选方法是对于Artera系统,从启动或以特定的间隔连接至代理分解器,以取回超级模块应该使用的代理栈。这使得对于超级模块的代理定义从中央控制更新。
在上述图12的例子中,各个超级用户具有两个或多个主要代理服务器,例如超级应用,该代理服务器可以按照优先级顺序使用或者根据各用户请求而切换。如果一个代理服务器暂停则使用栈中的下一代理服务器,这创建了容错(无停止)的系统。如果每次作出一请求都使用栈中的下一代理服务器,则可以实现负载均衡。超级应用还可以具有两个或多个超级CO服务器的代理栈以备使用。可以配置这个应用栈以优先级顺序使用或按照各个请求而切换。如果以优先级顺序使用,且如果优先代理应该暂停,则下一代理用作备份。如果交替地被使用,则它均衡代理之间的网络负载。任何时候代理分解器都可以将新的代理列表载入Artera应用,从而改变网络的处理性质。
VPN虚拟专用网(VPN)是一种使用诸如因特网这样的公众网资源的专用网络,诸如公司内部网。两种典型的VPN是站点到站点和远程访问。每一类型利用一VPN网关,其是可信专用网络和不可信公众网之间的关守,通常是特定的硬件。该关守具有访问可信专用网络的“客人”列表。如果分组不在列表上,则没有访问。
图13显示了现有的站点到站点VPN 1440和现有的远程VPN 1446的例子。对于站点到站点VPN 1440,具有PC 1412、PC 1414和LAN服务器1416的第一内部网通过VPN网关1420由数字连接设备1526和PoP 1514连接至因特网1530。从因特网1530,VPN 1440经由PoP1540、调制解调器1542和VPN网关1430连接至具有PC 1434、PC 1436和LAN服务器1432的第二内部网。于是第一内部网和第二内部网通过因特网连接在一起以形成联合的内部网。对于远程VPN 1446,远程PC处的用户通过调制解调器1534拨号到PoP 1532,以经由因特网1530、PoP 1540、调制解调器1542和VPN网关1430访问LAN服务器1432。PC将具有VPN客户端软件,还可以具有固定的IP地址或由动态DNS/URL服务提供的动态IP地址,动态DNS/URL服务提供要由PC使用的URL(统一资源定位符)。动态DNS/URL服务向VPN网关1430通知PC的IP地址,使得PC访问LAN服务器1432。
如图13所示的现有VPN具有若干局限。首先,通常需要特别的网关硬件。第二,用户不能访问多个VPN。本发明的一个实施例克服了这些问题。超级模块站点的任何组合可以形成一个或多个VPN。有一个中央站点1538(图16)具有哪一超级模块访问哪一其它超级模块,即谁可以访问谁,的许可表。
图14显示了根据本发明的实施例的两个虚拟专用网(VPN)的例子。超级用户1510属于VPN 1552和VPN 1550。超级用户通过远程VPN 1550远程连接至超级应用1524,其中超级应用1524是在LAN服务器1416上执行的软件网关。当超级应用1524和超级应用1544启动时,它们将它们的IP地址发送至中央站点1538处的许可表。超级用户1510通过调制解调器1512拨号入PoP 1514,PoP向超级用户分配一IP地址。接下来,超级用户1510登录进入中央站点,并且超级用户1510将其IP地址报告给中央站点。当超级用户1510希望通过超级应用1524访问PC 1412时,检查许可表。由于超级用户1510有访问权,所以建立超级用户1510的IP地址和超级应用1524的IP地址之间的通道,即VPN 1550。超级用户1510也如中央站点1538处的许可表所指示的,访问超级用户1536和创建应用1544,从而建立VPN 1552。于是超级用户能够访问多个VPN和其它超级用户。
在另一实施例中,超级用户1536还可以是远程用户并且可以在超级VPN 1552创建时不登录。当超级用户1536登录时,它被分配一个IP地址并且根据许可表,建立包括超级用户1536、超级用户1510和超级应用1544的三方VPN。
对于超级传输系统的上述优化可以应用于本发明的实施例的任一VPN,只要在VPN的两侧上都安装了超级应用模块。作为一个例子,两个超级模块可以使用VPN而连接,并且使用上述的文件传输复用器和分组来传输所有数据,无论数据文件、电子邮件还是网页。特别地,如果,例如,从超级用户1510到PoP 1514有两条调制解调器线路而不是一条,则由于在PoP 1510到超级应用1524之间有一快速数字连接,经由VPN 1550从超级用户1510到超级应用1524的数据传输将显著增加。
结论尽管已经描述了本发明的特定实施例,但是在本发明的范围也可以涵盖多种改进、变化、其它构造和等同物。所述的发明不限于在某一特定的数据处理环境中的操作,而是在多种数据处理环境中自由操作。另外,尽管使用特定的事务和步骤顺序描述本发明,对于本领域熟练技术人员可以理解,本发明不限于所述的事务和步骤的顺序。
进一步,尽管本发明是使用硬件和软件的特定组合描述的,但是应当理解,硬件和软件的其它组合也在本发明的范围之内。本发明可以仅以硬件或仅以软件或使用二者的结合而实现。
因此,说明书和附图应看作描述性的而不是限制性的。然而,很显然可以在不脱离权利要求所给出的本发明的更宽的精神和范围的前提下,对本发明作出增加、删剪和其它修改及变化。
权利要求
1.一种由计算机上的浏览器或应用程序使用,用于高速缓存数据的方法,该方法包括将所述浏览器或应用程序从服务器取回的一数据项保存在高速缓存中;在所述浏览器或应用程序没有任何动作时,自动更新所述高速缓存中的所述项;在所述浏览器或应用程序中显示来自所述高速缓存的所述经更新的项。
2.如权利要求1的方法,其中所述自动更新发生在所述服务器修改所述项的时候。
3.如权利要求1的方法,其中所述自动更新发生在所述项的高速缓存寿命过期的时候。
4.如权利要求1的方法,其中对所述自动更新所述项包括从位于接入点(PoP)的另一高速缓存中取回所述经更新的项。
5.如权利要求1的方法,其中所述自动更新在所述计算机不在请求和/或取回数据时进行。
6.一种用于从第二计算机系统中的第二数据刷新第一计算机系统的高速缓存中的第一数据的方法,所述第一计算机系统由通信网络连接至所述第二计算机系统,所述方法包括当所述第一计算机系统不忙时,将对于所述第一数据的刷新请求发送至所述第二计算机系统;使用所述刷新请求定位所述第二数据;当所述第二数据是所述第一数据的较新的版本时,将所述第二数据发送至所述第一计算机系统;以及由所述高速缓存中的所述第二数据替换所述第一数据。
7.如权利要求6的方法,其中当对所述第二数据进行所述定位失败时,将所述刷新请求转发至第三计算机,所述第三计算机由所述通信网络连接至所述第二计算机系统。
8.如权利要求6的方法,还包括当所述第二数据是所述第一数据的较新的版本时,将所述第一计算机系统的通信网络地址与所述第二数据联合。
9.如权利要求7的方法,其中所述通信网络地址是IP地址。
10.一种用于在通信网络上的多个高速缓存间分布从主机服务器中选择的数据的系统,所述通信网络包括所述多个高速缓存的第一高速缓存,连接至所述主机服务器并且具有所述选择的数据的第一复本;所述多个高速缓存的第二高速缓存,经由接入点访问设备连接至所述第一高速缓存并连接至用户PC,其中所述第二高速缓存具有所述选择的数据的第二复本,并且其中所述第二和第一复本被链接在一起;和在所述用户PC上执行的浏览器,用于通过首先使用所述第二拷贝而取回所述选择的数据。
11.如权利要求10的方法,其中所述第二复本在所述第二高速缓存的空闲时间期间或者在预定时期期间由所述第一复本刷新。
12.如权利要求10的方法,其中所述选择的数据是由用户使用特征而确定的。
13.一种第一计算机系统对来自具有高速缓存的第二计算机系统的数据的用户请求进行响应的方法,包括接收对于来自所述第二计算机系统的数据的所述用户请求;取回对应于所述用户请求的响应数据;将具有所述响应数据的所述第二计算机系统的网络地址存储在所述高速缓存中;以及将所述响应数据发送至所述第二计算机系统。
14.如权利要求13的方法,其中当所述网络地址是动态分配的IP地址时,还存储所述第二计算机系统的名称。
15.如权利要求13的方法,其中当第三计算机系统的所述网络地址与所述高速缓存中的所述响应相关联时,所述响应数据被多播至所述第三计算机系统。
16.一种用于经由通信网络从第二计算机为第一计算机系统处的用户预取数据的方法,包括确定由所述第一计算机发送的对于来自所述第二计算机系统的选择的数据的用户请求中的频率;以及由所述第一计算机以高于所述频率的值请求所述选择的数据,使得所述选择的数据的一项在发送相应的用户请求之前在所述第一计算机系统处是可用的。
17.一种用于在第一计算机和第二计算机之间经由公共通信网络提供虚拟专用网络(VPN)的方法,包括通过使用包括所述第一计算机的地址和所述第二计算机的地址的集中许可表,在所述第一计算机和所述第二计算机之间建立一VPN;以及当所述第一计算机具有连接到所述第二计算机的多个并行通信链路时,将所述多个并行通信链路分组,以增加所述第一和第二计算机之间的数据流。
18.一种用于调节从第一计算机到第二计算机的数据业务量的方法,所述数据业务量需要支持所述第二计算机的计算机监视器上的图片,所述方法包括将包括每英寸像素的第一数目的所述计算机监视器显示特性发送至所述第一计算机;对于图片项评价每英寸像素的第二数目;当所述第二数目大于所述第一数目时,根据具有减少的每英寸像素数目的所述图片项来创建经修改的图片项;以及将所述经修改的图片项发送至所述第二计算机。
19.一种用于从计算机的代理栈中的多个代理服务器中选择一代理服务器的方法,包括由中央代理栈管理器为所述代理栈中的所述多个代理服务器设置顺序;以及每次由所述计算机作出对于所述多个代理服务器的一个代理服务器的请求时,在所述代理栈中选择所述多个代理服务器中按照顺序的一代理服务器。
20.如权利要求19的方法,还包括,当从所述多个代理服务器中选择的第一代理服务器暂停时,在所述代理栈中选择所述多个代理服务器中按照顺序的第二代理服务器。
21.一种用于向计算机上执行的浏览器提供包括动态数据和静态图片在内的网络内容的系统,包括高速缓存,用于将所述静态图片的实质部分提供给所述浏览器,其中所述高速缓存由局域网连接至所述计算机;和虚电路,连接至万维网服务器,用于向所述浏览器提供具有所述动态数据的实质部分。
22.一种用于对经由所述第一和第二计算机之间的多条通信链路从第一计算机传输至第二计算机的数据进行负载均衡的方法,所述方法包括对所述多条通信链路的每一通信链路建立一TCP/IP连接;以及基于多种因素划分所述多条通信链路间的所述数据,以显著减少所述数据的传输时间。
23.如权利要求22的方法,其中所述多种因素包括所述多条通信链路的相对速度、各通信链路上的当前负载、各通信链路的服务质量以及上一次使用的通信链路或它们的任何组合。
24.一种用于减少经由多条通信链路在第一计算机和第二计算机之间传输文件或数据块所用时间的方法,包括由所述第一计算机使用所述多条通信链路中的第一链路发送所述文件或数据块;由所述第一计算机使用所述多条通信链路中的第二链路发送所述文件或数据块的一部分;以及所述第二计算机在接收所述文件或数据块的所有所述部分而不是所有所述文件或数据块之后,重构所述文件或数据块。
全文摘要
提供了一种用于减少用户等待从通信网络上的远程服务器(538),例如因特网上的万维网服务器(182),请求的信息所需的时间的系统及方法。在一个示例性实施例中,系统是以用户为中心的,并且目的是尽可能实际接近用户地保存用户需要的所有数据。用户的特性和使用模式并且用于确定高速缓存什么以及多久、预存取什么以及取回什么。另外,通过将信息分段并利用并行通信信道,可以显著增加在最后一英里上传输的数据。
文档编号H04L29/08GK1513144SQ02811255
公开日2004年7月14日 申请日期2002年6月4日 优先权日2001年6月4日
发明者迈克尔·J·Sr·帕雷拉, 迈克尔 J Sr 帕雷拉, 拉什, 约翰·拉什, M 梅特科夫, 杰里·M·梅特科夫, 小迈克尔·J·帕雷拉, 尔 J 帕雷拉, 布雷, 谢里尔·布雷 申请人:Nct集团公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1