用于增加通信网络的有效带宽的系统及方法 【技术领域】
本发明通常涉及通信领域,特别涉及在计算机网络上信息的有效传输。
背景技术
在过去的几十年中,因特网的范围从政府和大学之间的研究网络迅速成长为由企业和个人进行个人及商务交易的工具。因特网最初是设计为无组织的,使得在崩溃发生时实现通信的概率高。传输信息的方法是基于与通过邮件发送信件类似的概念。一条消息可以分解为多个TCP/IP分组(即,信件)并发送至收信人。与信件类似,每一分组可以采用不同的路径到达收信人。尽管许多路径上地许多小分组提供了相对低廉的用户对例如网站的访问,但是这比用户和网站之间的点对点连接慢许多。
图1是显示现有技术中用户到因特网的连接的框图。通常,用户110经由接入点(PoP)112连接至因特网,在现有技术中,接入点(PoP)112是由因特网服务提供者(ISP)运营的。PoP连接至ISP的主干网114,例如ISP1。例如ISP1和ISP2的多个ISP主干网由例如NAP170这样的网络接入点连接在一起,形成因特网“云”160。
更特别的,在个人计算机(PC)120处的单个用户具有多种选择以连接至PoP112,诸如在例如固定无线PC或移动电话上的直接用户线(DSL)调制解调器122、TV电缆调制解调器124、标准拨号调制解调器126或无线收发器128。这里使用术语个人计算机或PC以描述具有处理器和内存的任一设备,而不限于传统的桌面PC。在PoP112处,对每一种类型的调制解调器(或收发器)有一个对应的访问设备,以从/向用户110接收/发送数据。对于DSL调制解调器122,PoP112在其访问设备处有一数字用户线访问复用器(DSLAM)。对于电缆调制解调器124,PoP112在其访问设备处有一电缆调制解调器终端系统(CTMS)头端器。DSL和电缆调制解调器连接允许几百千比特每秒(Kbps)的速率,远远快于通过拨号远程访问服务器(RAS)134在PoP112接收数据的标准拨号调制解调器126。无线收发器128可以是个人数字助理(PDA)或移动电话的一部分,并且在PoP112处连接至例如基站这样的无线收发器136。
企业用户(或具有家庭办公室的个人)可以具有局域网(LAN),例如通过以太网链路连接至LAN服务器144的PC140和142。企业用户可以具有到PoP112的T1(1.544Mbps)、分数T1连接或更快的连接。来自LAN服务器144的数据通过路由器(未显示)发送至例如信道服务单元/数据服务单元(CSU/DSU)146这样的数字连接设备,然后该数字连接设备通过T1(或分数T1)线148将数字数据发送至PoP112处的CSU/DSU。
PoP112可能包括连接了DSLAM130、CTMS头端器132、RAS134、无线收发器136或CSU/DSU150的ISP服务器152。ISP服务器152可以提供诸如电子邮件、新闻组或域名服务器(DNS)这样的用户服务。或者DSLAM130、CTMS头端器132、RAS134、无线收发器136或CSU/DSU150可以绕过ISP服务器152,直接连接至路由器154(虚线)。服务器152连接至路由器154,路由器154将PoP112连接至具有例如路由器162、164、166和158的ISP1的主干网。ISP2具有提供诸如电子邮件和用户网络主机这样的竞争用户服务的ISP2服务器180。向用户110提供在线内容的万维网服务器182和184连接至因特网“云”160。
尽管因特网为企业和个人提供了进行商业交易的基本功能,但是在例如万维网服务器和企业或个人用户之间传输信息的很长的时延是一个大问题。例如PC120处的用户需要来自万维网服务器182处的网站的信息。数据从万维网服务器182回到用户PC120需要许多“路程段”。而且因为信息以分组“邮”回,所以分组通常通过不同路径返回。这些不同的路径由其它用户的分组共享,并且一些路径可能较慢。于是即使在万维网服务器182和用户120之间的所有链路都有足够的容量,也将有显著的时延。然而,由于还有瓶颈,即流量超过容量的地方,所以甚至还会有进一步的延迟。
两个主要的瓶颈是最后和倒数第二英里距离。最后一英里距离是从PoP112至用户110。当用户120使用最大速度为56Kbps的拨号调制解调器时,这很明显。即使使用512Kbps的DSL调制解调器,下载图片也很慢。倒数第二英里距离在ISP之间。具有PoP112的ISP可能通过其主干网114连接至更高层的ISP(未显示),以达到地区/国家/全球覆盖。由于到更高层ISP的带宽增加提高了本地ISP的成本,所以具有例如PoP112的本地ISP可能减少用户110的可用带宽量。效果是在万维网服务器182和PC120之间的流量大于链路容量,于是有严重的延迟问题。在今天快节奏的世界中,这个问题大大妨碍了因特网作为商业工具的使用。
因此需要提供在例如因特网这样的通信网络上信息传输的效率,使得无论单独还是共同,用户对信息的等待时间都显著减少。
【发明内容】
本发明通过将一“超级”传输及高速缓存结构叠加在例如因特网这样的现有TCP/IP通信网络上,提供了一种用于增加通信网络的有效带宽的系统和方法,其增加了通信网络中的信息传输速率。
“超级”传输及高速缓存结构包括向由通信网络中的通信链路分隔的至少两个模块添加的硬件和/或软件。在任两个“超级”模块之间建立通信链路,允许信息的快速有效传输,其中信息的传输与正传输的原始比特的数目不同,而是仅包括必须的数据比特且排除例如附加控制比特或冗余数据比特。由于通信链路具有固定的容量,所以增加信息比特且减少非信息比特减少了带有非信息比特的链路容量的共享量。于是一些信息比特无需等待首先传输一些非信息比特。因此信息的传输延迟显著减小。
“超级”传输及高速缓存结构以及因此得到的信息传输速率的提高的最终结果是,通信网络的用户访问和/或取回信息的时间显著减少,并且通信网络,尤其是例如因特网这样的大型网络,成为企业及个人进行商业交易的有效工具。
本发明的一个实施例提供了一种由第一计算机系统对经由通信网络传输至第二计算机系统的数据进行压缩的方法。首先,由第一计算机系统选择数据的一段。然后,使用第一计算机的系统操作条件对于多个压缩算法的每一压缩算法确定一成本值。基于最小成本值从多个压缩算法中选择一个。使用选择的压缩算法压缩该段,并且将经压缩的数据段发送至第二计算机系统。
本发明的另一实施例提供了用于由第一计算机系统对经由通信网络传输至第二计算机系统的数据进行压缩的方法,该方法包括:由第一计算机系统选择数据的一段;确定该段的数据格式;使用压缩算法压缩该段,其中压缩算法是基于数据格式而从多个压缩算法中自动选择的;以及将经压缩的段发送至第二计算机。
本发明的另一实施例提供了用于由第一计算机系统对经由通信网络传输至第二计算机系统的数据进行压缩的方法。该方法包括:由第一计算机系统选择数据的一段;当通信链路上的数据通信量低于传输容量时,基于压缩该段的时间以及该段的链路延迟计算一函数结果;根据结果压缩该段;以及将经压缩的段发送至第二计算机。
本发明的一个实施例提供了由第一计算机系统对具有公共目的地的多个分组进行重分组的方法,其中第一计算机系统由通信链路连接至第二计算机系统。该方法包括:接收多个分组,其中每一分组包括应用数据;从多个分组中提取包括应用数据的信息;创建包括该信息的新的分组;以及将新的分组发送至第二计算机系统。
本发明的另一实施例用于使用TCP/IP协议在第一计算机系统和第二计算机系统之间提供半永久传输控制协议(TCP)的方法。该方法包括:在第一计算机系统和第二计算机系统之间建立TCP连接;由第一计算机系统接收来自多个源地址的应用信息;由第一计算机系统在TCP连接上发送第二应用信息;以及断开TCP连接。
本发明的另一实施例提供了使用第一计算机系统修剪来自多个第二计算机系统的多个复制数据请求的方法,这多个复制数据请求具有公共目的地。该方法包括:由第一计算机系统接收多个复制数据请求;记录多个第二计算机系统的返回地址;以第一计算机系统作为源地址,创建包括来自多个复制数据请求的公共数据的统一数据请求;以及发送统一数据请求。
本发明的另一实施例包括由与公众通信网络连接在一起的多个计算机提供多个虚拟专用网的方法。该方法包括:通过使用包括多个计算机的第一计算机的地址和多个计算机的第二计算机的地址的集中许可表,在第一计算机和第二计算机之间建立多个虚拟专用网的第一虚拟专用网;以及通过使用进一步包括多个计算机的第三计算机的地址的集中许可表,在第一计算机和第三计算机之间建立多个虚拟专用网的第二虚拟专用网。
本发明的另一实施例包括由第一计算机系统对具有公共目的地的多个分组进行重分组的方法,其中第一计算机系统由通信链路连接至第二计算机系统。该方法包括:接收多个分组,其中每一分组包括应用数据;从多个分组中提取包括应用数据的信息;创建包括该信息的许多新分组;其中新分组的数目是基于通信链路上的数据流量而确定的;以及将许多新分组发送至第二计算机系统。
本发明的另一实施例包括用于增加具有标准通信协议的通信网络中的信息流的系统。该系统包括:第一模块,其使用标准通信协议发送具有第一应用信息和第一控制信息的分组;第二模块,用于使用标准通信协议接收该分组并发送一超级分组,该超级分组具有第二应用信息和第二控制信息,其中第二应用信息包括第一应用信息和一些第一控制信息;和第三模块,用于使用标准通信协议接收超级分组。
本发明的另一实施例包括用于减少请求者计算机系统经由中间计算机系统从远程数据存储器中取回信息所需的时间的方法。该方法包括:由中间计算机系统接收请求以从数据存储器中取回数据;由该中间计算机系统从数据存储器中取回第一数据项;以及中间计算机系统在从数据存储器中取回第二数据项的同时将第一数据项发送至请求者计算机系统。
本发明的一个实施例包括用于提高通信网络中多个超级模块的两个超级模块之间的网段的性能的系统。该系统包括:多个超级模块的第一超级模块,用于接收多个IP分组并发送经修改的数据分组,其包括从多个IP分组联合的应用数据;和多个超级模块的第二超级模块,用于接收经修改的数据分组,其中第二超级模块包括带有附加应用层的TCP/IP通信协议栈以处理经修改的数据分组。
参考下面的说明书、所附权利要求和附图,可以更好的理解本发明的这些及其它实施例、特征、方面和优点。
【附图说明】
图1是显示现有技术中到因特网的用户连接的框图。
图2是图1的简化而扩展的框图,用于帮助解释本发明。
图3显示了TCP/IP协议栈以及各层的相关数据单元。
图4是根据本发明实施例的浏览器和万维网服务器之间的通信路径的框图。
图4-1是现有TCP/IP的例子以及根据本发明实施例的两个改进的TCP/IP协议栈。
图5是根据本发明实施例,插入到图2的现有系统中的超级模块的框图。
图6显示了根据本发明的实施例,在浏览器和万维网服务器之间的压缩的数据通道。
图7显示了根据本发明的实施例,基于传输数据的数据格式的压缩算法。
图8是根据本发明的另一实施例,确定是否应压缩数据的流程图。
图9显示了根据本发明的另一实施例的另一压缩过程的流程图。
图10A是根据本发明的实施例,在超级用户处对多个应用数据单元进行重分组的流程图。
图10B是根据本发明的另一实施例,在超级用户处对多个应用数据单元进行重分组的流程图。
图10C具体解释了图10B的步骤。
图11显示了根据本发明的一个方面,从超级用户到超级主机的信使分组的例子。
图11-1说明了根据本发明一个方面,并行实现数据取回和传输的例子。
图12显示了从超级用户向超级主机内爆数据请求的例子。
图13A是根据本发明的实施例,向同一目的地内爆复制数据请求的过程的流程图。
图13B显示了根据本发明的实施例,向内爆的请求发送响应的过程。
图14A显示了在传输层的发送器和接收器之间现有的TCP/IP连接、数据传输和断开。
图14B显示了根据本发明的实施例,对于半永久连接的TCP/IP连接、数据传输和断开。
图15显示了现有的站点到站点VPN1440和现有的远程VPN1446的例子。
图16显示了根据本发明的实施例的两个虚拟专用网(VPN)的例子。
【具体实施方式】
在下面的说明书中,给出了众多特定细节,以提供本发明特定实施例的更充分的说明。然后,对于本领域技术人员显然可以看出,本发明不限于所给出的所有特定细节。在其它示例中没有具体说明众所周知的特征,从而更突出本发明。
为了使个人和企业将因特网作为有效的商业工具而使用,用户请求和接收信息所需的时间必须比现在典型的所需时间大为缩短。本发明提供了可以叠加在因特网基础设施的部件上的“超级”系统和技术,以增加网络中的信息流量,该系统和技术无论单独还是联合使用,都显著减少了用户对于来自例如万维网站点或其它用户的信息的等待时间。
图2是图1的简化而扩展的框图,用于帮助解释本发明。其中图2使用了与和图1相同的标签。调制解调器210包括图1的DSL调制解调器122、电缆调制解调器124、拨号调制解调器126和无线收发器128。类似地,访问设备220包括图1的相应DSLAM130、CMTS头端器132、RAS134和无线收发器136。数字连接设备212和222包括CSU/DSU设备146和150,另外还包括卫星、ISDN或ATM连接设备。图2在LAN服务器144和调制解调器210之间具有附加连接,以说明LAN的另一选择,以连接至除数字连接设备212以外还连接到PoP112。图2中显示的多数计算机和网络系统使用标准传输通信协议/因特网协议(TCP/IP)协议进行通信。
图3显示了TCP/IP协议栈以及各层的相关数据单元。TCP/IP协议栈310包括应用层312、传输层314、因特网层316和网络访问层318。应用层接收应用程序或用户数据320、数据的一个块或单元,我们可以称其为应用数据单元。例如,对于网页的用户请求可以是一个应用数据单元。在TCP/IP中有多种应用级协议,包括用于电子邮件的简单邮件传输协议(SMTP)和邮局协议(POP)、用于万维网的超文本传输协议(HTTP)、以及文件传输协议(FTP)。
传输层314包括传输控制协议(TCP)和用户数据报协议(UDP)。TCP是基于连接的协议,在源和目的地之间提供可靠的虚电路。TCP保证使用其的应用程序以字节发送的顺序投递字节流,即使IP分组投递服务不可靠也不会发生重复或数据损失。传输层通过TCP报头322向数据320添加控制信息,这称为TCP数据单元。UDP不能保证分组投递,并且使用UDP的应用程序必须提供它们自己的保证投递的方式。
因特网层316是由于TCP/IP对网际互联的强调而命名的。这是发送并接收因特网协议(IP)分组的无连接层。尽管IP分组具有IP分组的原始源地址和最终目的地址,但是如果分组达到其最终目的地,则在特定节点的IP层无需任何知识便将IP分组路由至下一节点。IP分组包括添加至TCP数据单元(TCP报头322和数据320)的IP报头324。
网络访问层318是底层,处理IP分组的物理传输。网络访问层318将现存的数据链路和物理层标准集合,而不是定义其自身的标准。这一层定义了网络硬件和设备驱动。报头326和尾部(未显示)添加至IP分组,以允许IP分组在通信线路上的物理传输。
图2中TCP/IP协议的使用的一个例子是PC140处的用户请求来自万维网服务器182的网页。用户通过其浏览器在应用层312创建对于网页的用户请求,即应用数据单元320(图3)。TCP/IP栈310创建一个或多个TCP数据单元,其中每一TCP数据单元具有应用数据单元320的部分,其附有TCP报头322。PC140处的传输层314与万维网服务器182处的传输层314的TCP建立对等连接,即虚电路。每一TCP数据单元被分为一个或多个IP分组。IP分组被发送至LAN服务器144,然后发送至PoP服务器152,然后通过PoP路由器154发送至因特网154。IP分组通过因特网160上的多条路径到达万维网服务器182。然后万维网服务器182处的传输层314从IP分组重组TCP数据单元,并将TCP数据单元传递至应用层312,以重组用户请求。然后执行得到网页的用户请求。为了将网页发回到用户,可以在万维网服务器182和PC140的传输层之间使用相同的TCP虚电路。然后网页被分解为TCP数据单元,然后TCP数据单元被分解为IP分组并通过因特网160、PoP路由器154、PoP服务器152、LAN服务器144发送至PC140。
在用户和万维网服务器之间的现有互联的上例中出现了若干问题。首先,以太网框架中的最大传输单元(MTU),即最大数据量,是1500字节。然而,TCP/IP中数据320的最大值约为64,000字节。例如一16Mbps令牌环具有约18,000字节MTU并且使用调制解调器的拨号连接具有约576字节MTU。这意味着,即使离开LAN服务器144的MTU也可能大于1500字节,但PC140和万维网服务器182之间的虚电路通常以用户和万维网服务器之间的最低MTU使用分组,即,将有许多小IP分组来回发送。第二,在用户使用网站时,不仅仅存在一个请求和一个响应,而是发生一系列的浏览器请求和万维网服务器响应。例如,对于有图片的网页的用户请求实际上被浏览器分解为多个请求,一个对于超文本链接标示语言(HTML)的请求后跟随若干对于图片的请求。第三,尽管压缩可以大大减小文件尺寸,但是文本和图片通常是以未压缩的格式发送的。于是这些和其它问题导致现有的TCP/IP网络在从万维网服务器向用户获得数据中具有显著延迟。
图4是根据本发明实施例的浏览器和万维网服务器之间的通信路径的框图。上面说明了当用户使用浏览器512请求来自万维网服务器182的网页514时,在浏览器512和万维网服务器182之间的现有的交换。本发明的一个实施例创建了包括超级用户540、超级应用532、超级中央办公室(CO)服务器534、超级CO集中器536和超级主机538在内的多个“超级”模块,提供了可选的超级高速公路路径,以在浏览器512和万维网服务器182之间交换数据。对于网页514的用户请求由PC140上执行的浏览器512发送至同样运行在PC140上的超级用户软件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交换信息。于是如果缺少一个超级模块,使用相应的一般模块,例如PC140、LAN服务器144、PoP服务器150、PoP路由器154和万维网服务器182,作为替代。可以使用所有或一些超级模块,并且只要在至少两个不同的超级模块之间有至少一条通信链路,流过该链路的信息将会显著提高。另外,可以配置更多的超级模块,以在网络上延伸超级层的粒度。
除了上述用户到服务器的应用,因特网或网络结构内部的超级模块可以用于在那些网段上提高性能。在这样的一个实施例中,优化了在网络结构内部的多个超级模块之间传输的所有数据。例如,在网络的不同部分中的超级CO服务器模块之间的通信在提高诸如洲际线路或卫星通信这样的昂贵或有限带宽链路的效率方面,格外引人注目。该实施例还提高了具有超级模块的任意两个网络点之间的通信的性能并降低了其成本。任何超级模块的互操作性也允许了分层的方法,以对于一个逻辑或物理区域优化通信。例如,若干本地超级CO服务器可以对于区域超级模块排成层列,而后者又对于国家超级模块排成层列。这种分层方法在整个网络上,与应用程序或原始源无关地,对于超级模块之间的所有网络流量扩展了超级应用层的粒度(即,可以有来自任意数目的超级模块源或任意数目的一般模块源的数据的组合)。
图4-1是现有TCP/IP的例子以及根据本发明实施例的两个改进的TCP/IP协议栈。应用层312、传输层314、因特网层316和网络访问层318与图3的TCP/IP协议栈310中的层相同,并且是对于例如PC140这样的一般模块460。应用层420和440、“超级”应用层422和442、传输层424和444、因特网层426和446以及网络访问层428和448是实施例的改进的TCP/IP协议栈,并且是对于例如超级应用532和超级用户530这样的超级模块462和464的。一般模块460通过通信链路418连接至超级模块462,超级模块462通过通信链路450连接至超级模块464。
超级模块462在接收来自一个或多个一般模块460的IP分组时,从IP分组的IP和TCP报头中抽取所有应用层数据和可应用数据至超级应用层422。来自一般模块和应用层420的应用层数据可能是任何协议,例如HTTP1.0、HTTP1.1、FTP、POP、SMTP等。超级应用层将应用数据和合适的TCP层及IP层数据分组为一个大的应用层数据单元。在超级模块462和464之间使用一般TCP/IP传输机制。这意味着,当在超级模块462和超级模块464之间有一个或多个中间一般节点时,与一般模块460中类似,TCP/IP栈用于传输这一个大的应用层数据单元。例如,当超级模块464必须将应用程序分组投递至一般模块时。这一个大应用层数据单元由超级应用层442拆包,TCP/IP分组被重构并发送至一般节点。于是许多部分填充的数据分组(每一个都具有额外的地址信息)能够被有效地重新组合为一个大分组。对于例如跨海这样的长途传输通信,逻辑类似于集装箱运输而导致的成本节约。
图5是根据本发明实施例,插入到图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,例如PC140,中的软件。浏览器,例如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.超级用户还向超级应用提醒有关用户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服务器还将删除未被使用的站点。如果一个网站没有被存储和保留,则该网页保留在单独的全局高速缓存中,使得如果被再次请求则可以从全局高速缓存中提供。在全局高速缓存和网络主机中应维持正确的平衡。全局高速缓存和超级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作出的请求。每次作出下载万维网服务器上任一网站的请求时,超级主机538从万维网服务器中取回网页并在将内容发送至请求的超级CO集中器之前将内容压缩并分组。这通过有效的压缩率以及通过对所有被请求的网页数据发送单个数据块,提高了网络传输的效率。使用对于数据的特定类型执行的最好的技术,分析并压缩每一条信息。当接收到每一超级CO集中器请求时,超级主机记录超级CO集中器的IP地址。超级主机检查在万维网服务器中包含的网站,并将任何变化的网页通知曾经请求来自该网站的数据的任一超级CO集中器。这使得超级CO集中器能够知道何时需要刷新其网站版本,并通过允许超级CO集中器从超级CO集中器的高速缓存中的网页的版本直接为用户对于网页的请求提供服务而最小化万维网流量。网页的超级CO集中器版本需要刷新的时刻仅仅是其发生改变时。这使得可以最小化从万维网主机站点到ISP站点的流量。在每一网站处有许多ISP站点访问数据。这是将网站移至因特网的外缘并将压缩和分组带至因特网的内部工作中的一个步骤。将网站移至因特网的外缘的困难是确保数据是当前的,超级模块高速缓存的互锁保证了这一点。
压缩及有效文件格式
数据压缩在通信中非常有用,因为它使得设备能够以更少的比特传输相同数量的信息。有多种数据压缩技术,但是仅有几种已经标准化。另外,还有文件压缩格式,诸如ARC、GZIP和ZIP。
本发明的一个方面尽可能接近数据源来压缩数据,并将压缩的数据沿网络传输至其需要解压缩的点。压缩的数据以压缩的格式存储在源和目的地之间的各超级模块处,压缩格式不必相同。这使得压缩能够随网络的负载动态而改变。现有的浏览器技术需要解压缩的数据,于是网站的数据应被压缩并且只有在由浏览器处理之前才解压缩。对于压缩的突出需求是最后一英里距离,因为那里存在带宽限制。于是在超级CO服务器534和超级应用532或超级用户540之间发生压缩是很重要的。
图6显示了根据本发明的实施例,在浏览器和万维网服务器之间的压缩的数据通道。浏览器512使用未压缩的数据610,万维网服务器182使用未压缩的数据614。未压缩的数据610由超级用户530压缩,压缩的数据612经由超级应用532发送至超级CO服务器534至超级CO集中器536至超级主机538,超级主机538将数据解压缩为未压缩的数据614,以供万维网服务器182使用。类似地,来自万维网服务器182的网页数据由超级主机538压缩并作为压缩的数据612发送至超级用户530,在超级用户530处,压缩的数据612被解压缩为未压缩的数据610以供浏览器512使用。于是,在从万维网服务器182传输至浏览器512以及相反的过程期间,数据以压缩的格式保存尽可能长的时间。
本发明的另一实施例对于不同的数据格式使用不同压缩算法,其中一种数据格式是对于数据建立的一种布局。通常,数据格式包括描述图象和/或声音模式的位图(1和0的串)、二进制(可执行计算机程序)、文本格式(其中通常各字节值映射到一个字符)和数值数据格式(由电子数据表和其它数据库程序使用)。数据格式还可能包括用于矢量图片动画、音频信息和动作视频信息的flash,其用于嵌入布局控制字符的多媒体应用程序和字处理文档。通过基于数据格式选择压缩算法,可以得到比对于所有数据格式都使用一种通用算法更好的结果,例如更小的压缩文件大小。例如,与图片或二进制文件相比,可以对文本数据使用效果更高的压缩技术。
图7显示了根据本发明的实施例,基于传输数据的数据格式的压缩算法。在步骤710,数据的一段,例如一个应用程序数据单元、文件、文件的部分,被选中由发送器超级模块发送。该段中的数据的数据格式由发送器超级模块确定(步骤712)。在步骤714,检查该段中的数据,以确定其是单一格式还是混合格式,例如在Microsoft Outlook的电子邮件消息中的文本和附图是混合格式。如果数据格式是混合的,则在步骤716,该段被分解为子段,例如Microsoft Outlook的电子邮件消息被分解为文本段和图片段,并且在过程712对于每一子段重复该过程。如果该段中的数据是单一格式,则在步骤718,选择基于数据格式的压缩算法。例如对于文本段,可以使用例如GZIP,对于图片段,可以使用例如小波压缩。有一种默认的压缩算法以保证数据被压缩。在步骤720,使用选中的压缩算法压缩该段中的数据,并且在完成压缩的特定时刻为各个数据段标上所使用的算法。在步骤722,被压缩的段被发送至具有解压缩算法的接收器超级模块。
在由于压缩而减少的传输延迟以及处理器压缩数据段所用的时间之间有折中。目标是最小化用户对于数据的等待时间。于是,有时压缩及发送数据段所用的时间更多,则发送未压缩的数据段;于是数据段应不被压缩。在选择具有不同压缩量和压缩次数的不同压缩算法中,诸如有效处理周期或有效暂时存储器空间这样的系统操作条件也必须考虑。每一超级模块基于网络的操作状况选择压缩算法。这个操作状况在超级模块之间与信使分组中的数据一同传递。例如,如果超级模块忙,即几乎没有有效处理周期,则应当使用计算强度较小的压缩,即实际上增加了压缩时间。这使得压缩可以随网络的负载动态改变。
图8是根据本发明的另一实施例,确定是否应压缩数据的流程图。在步骤810,数据的一段被选中由第一超级模块在通信链路上发送至第二超级模块。在步骤812,第一超级模块确定通信链路是否满,即满链路容量。在步骤814,如果链路满容量,则使用通用算法,例如运行长度或哈夫曼编码,或者使用图7的流程图压缩该段(步骤820)。如果链路不是满容量,则在步骤816,要发生压缩(步骤820),压缩数据段的时间不应大于链路延迟,即数据端从第一超级模块传输至第二超级模块的时间。如果压缩数据的时间比传输数据的时间长,则不压缩(步骤818)。在步骤822,发送数据,数据或者是来自步骤820的压缩形式或者是来自步骤818的未压缩形式。
图9显示了根据本发明的另一实施例的另一压缩过程的流程图。在步骤840,选择要发送数据的一段。在步骤842,对于一组压缩算法中的每一压缩算法,考虑系统操作条件确定压缩数据的该段的成本。选择该组中成本最小的一个压缩算法(步骤846)。例如,一个成本公式是压缩数据的一段的时间与压缩短数据段的链路延迟之和,其中压缩的时间是在压缩时刻可用处理周期的平均数的函数(系统操作条件的一个例子)。对于每一压缩算法,使用这个成本公式计算成本,即和,并且选择具有最小和的压缩算法。在步骤848,使用选中的压缩算法压缩该段中的数据,在步骤850,发送经压缩的段。
除了考虑哪些要被压缩以及如何压缩(即,最佳压缩算法),数据的位置也很重要。在一个实施例中,通常不变化且更可能不可压缩的图片及二进制网页数据、java script、flash程序以及其它数据保留在超级用户或超级应用站点处。通常变化但可高度压缩的包含于网页中的可变数据,即通常为文本数据,可以从最后一英里距离的因特网侧上的万维网服务器或某些中间超级模块更新。
另外,对于压缩具有以高效格式存储的数据,即提供较小文件大小的格式,具有与压缩类似的效果。在本发明的一个实施例中,遇到低效数据格式的第一超级模块将低效数据格式转换为高效数据格式。这在系统的其余部分都改进了经转换的数据的传输及高速缓存。一个例子是所有图片数据从位图和GIF格式到JPEG格式的转换。这对于位图提供了十比一的改进,对GIF提供了五比一的改进。因为网页图片的约90%以GIF格式存储,到JPEG的转换对于网页图片显著改善了信息传输和存储。
重分组
如今典型的网页包括一超文本链接标示语言(HTML)文档以及许多内嵌的图象。浏览器的现有行为是取回基础HTML文档,然后,在接收到基础HTML文档之后,浏览器对许多内嵌的对象进行二次取回,这些内嵌的对象通常位于同一万维网服务器上。每一内嵌对象,即应用数据单元,被放入一TCP数据单元,并且每一TCP数据单元被分割为一个或多个IP分组。为许多内嵌对象发送许多TCP/IP分组而不是例如一个大的TCP/IP分组,意味着网络耗费的时间比发送控制数据所需的时间更多,换言之,控制数据/时间对应用数据/时间的比率太大。将许多内嵌对象联合为一个大的应用数据单元然后创建一个(或至少是最小数目的)大的TCP数据单元是更为有效的。对于一个大的TCP数据单元,该发送器超级模块和下一接收器超级模块之间的链路的最大传输单元(MTU)用于IP分组。发送器超级模块将通过尝试使各个IP分组尽可能实际地靠近MTU,而试图将发送的IP分组的数目最小化。对于在超级模块发送器和超级模块接收器之间的各个链路,对于该链路确定MTU并且IP分组的大小可以改变。现有技术中,通常使用在用户和万维网服务器之间的通信链路的所有MTU中的最小公分母MTU,与现有技术不同,在本实施例中,使用各个链路的MTU。
在本发明的一个实施例中,当需要时,在每一超级模块,例如超级用户、超级应用、超级中央办公室(CO)服务器、超级CO集中器和超级主机,将例如用户请求及万维网服务器响应这样的应用数据单元重分组(或拆包)为一较大(或多个较小)的经修改的应用数据单元。例如,将两个IP分组联合为一个IP分组,这是“信使”分组的一个例子。第一IP分组具有第一IP报头、第一TCP报头和第一应用数据单元。第二IP分组具有第二IP报头、第二TCP报头和第二应用数据单元。创建第一修改应用数据单元,其具有第一应用数据单元和第一伪报头,第一伪报头具有来自第一IP报头和第一TCP报头的控制数据,诸如重构第一IP分组所需的源地址、源及目的端口以及其它控制信息。创建第二修改应用数据单元,其具有第二应用数据单元和第二伪报头,第二伪报头具有来自第二IP报头和第二TCP报头的控制数据,诸如重构第二IP分组所需的源地址、源及目的端口以及其它控制信息。令联合应用数据单元具有连接至第二修改应用数据单元的第一修改应用数据单元。向联合应用数据单元添加一新的TCP报头和IP报头,并且形成信使分组。于是必需的控制信息嵌入联合应用数据单元,并且TCP/IP协议用于在超级模块发送器和超级模块接收器之间移动联合应用数据单元。当接收器不是超级模块时,将联合应用数据单元拆离,并且第一IP分组和第二IP分组被重建并由超级模块发送器发送至一般接收器。
图10A是根据本发明的实施例,在超级用户处对多个应用数据单元进行重分组的流程图。在步骤910,超级用户将具有同一目的地的多个应用数据单元联合为一个联合数据单元。例如,对于一个万维网服务器的多个用户请求被联合。在步骤912,从这一个应用数据单元形成一个TCP数据单元(或最小数目的TCP数据单元)。在步骤914,创建一个IP分组(或最小数目的IP分组),即信使分组,其中每一IP分组被填充以尽可能接近链路的字节的MTU数目或直至转发计时器T过期。在步骤916,信使被发送至目的路径中的下一超级模块,例如超级应用或超级CO服务器。
图10B是根据本发明的另一实施例,在超级用户处对多个应用数据单元进行重分组的流程图。在步骤920,超级模块接收具有同一目的地的多个IP分组。在步骤922,从多个IP分组提取应用信息。在步骤924,提取的应用用于形成重分组的分组(即,信使分组)。在步骤926,重分组的分组被发送至到公共目的地的路径上的下一超级模块。
图10C具体解释了图10B的步骤922。在步骤932,从IP分组中提取应用数据单元。对于每一应用数据单元,检查相关的TCP报头和IP报头控制信息。并且将应用控制信息,例如源、源及目的端口和数据长度,添加至响应的应用数据单元以形成修改应用数据单元(步骤934)。在步骤936,集合修改应用数据单元以形成一个TCP数据单元(或最小数目的TCP数据单元)。在步骤938,使用发送器和接收器超级模块之间的链路的MTU,从TCP数据单元中形成新的重分组的IP分组。
是否在步骤936形成一个大TCP数据单元或者多个小TCP数据单元的判定是根据在离开发送者超级模块的链路上的业务负载而动态确定的。例如,如果链接几乎满载,则发送多个小TCP数据单元更加有效,并因此是小IP分组,而一个(或者几个)大IP分组将不得不等待。
图11显示了根据本发明的一个方面,从超级用户到超级主机的信使分组的例子。超级用户530根据图10A的流程图,将用户请求1020和1022,即应用数据单元D1和D2,联合为信使分组1024。超级用户1010具有IP分组1026中的其用户请求D3,超级用户具有IP分组1028中的用户请求D5。这两个单超级用户请求都被重分组为信使分组并发送至合适的超级应用。在第一超级应用530,信使分组1024和IP分组1026被根据图10B的流程图而接收并重分组以形成更大的应用信使分组1030。应用信使分组1030具有例如已经过修改以包括来自IP分组1024的TCP和IP报头H1的控制信息的应用数据单元D1。第二超级应用1014接收信使分组1028-1,不改变它(1028-2)并将其转发至超级CO服务器534。超级CO服务器534接收来自超级应用532的应用信使分组1030和来自超级应用1014的信使分组1028-2。根据图10B的流程图对信使分组1030和1028-2重分组,以形成被发送至超级CO集中器536的CO信使分组1034。超级CO服务器1036具有也被发送至超级CO集中器536的CO信使分组1038。超级CO集中器536对CO信使分组1034和1038重分组为CO集中器信使分组1040,CO集中器信使分组1040被发送至超级主机538。超级主机拆包CO集中器信使分组1040以得到用户请求D1、D2、D3、D4、D5、D6和D7(例如,HTTP或FTP请求),并且这些请求被发送至万维网服务器。对于从万维网服务器到超级用户538再经由超级CO集中器536、超级CO服务器534和超级应用532返回超级用户530的数据响应,也发生根据图10A、B和C的拆包。
在两个方向上,当各超级模块接收信使分组时,信使分组被检查、拆包并且数据用户更新该超级模块的高速缓存。当信使分组被捆绑及拆离时,执行数据请求的内爆和数据响应的外爆。
数据请求和数据传输并行性
在用户请求网页的例子中,浏览器的现有行为是取回基础HTML文档,然后浏览器使用该基础HTML文档,对许多内嵌对象进行随后的取回,这些内嵌对象通常位于一个和多个万维网服务器上。内嵌对象可以放入一个大的TCP数据单元并返回至浏览器。一种改进将使得万维网服务器既得到基础HTML文档又得到内嵌对象并且将二者都返回一个大的TCP数据单元中。这意味着万维网服务器连续取回基础HTML文档和内嵌对象,然后将二者都发送至浏览器。本发明的另一实施例通过首先得到基础HTML文档并将基础文档发送至浏览器,将该串行过程,即取回和发送,并行化。当基础文档在传输中时,万维网服务器取回内嵌对象。然后发送内嵌对象。于是发送基础HTML文档的时间比串行过程节省了。用户使用这种并行过程在更短的时间量中得到了整个网页。
图11-1说明了根据本发明一个方面,并行实现数据取回和传输的例子。图11-1显示了两个模块,现有模块1110和超级模块1112。水平轴1114代表时间间隔1120(时刻0和t1之间)、1122(时刻t1和t2之间)、1124(时刻t2和t3之间)、1126(时刻t3和t4之间)和1128(时刻t4和t5之间)。在时间间隔1122,模块1110和1112都取回第一数据项(1132和1142)。在时间间隔1124,模块1110和1112的操作开始不同。模块1110取回第二数据项1134,在时间间隔1126发送第一数据项1136,在时间间隔1128发送第二数据项1138(即,串行过程)。而超级模块1112在时间间隔1124在发送第一数据项1146的同时取回第二数据项1144。在时间间隔1126,超级模块发送第二数据项1148。于是超级模块节省了时间间隔1128。图11-1说明了在管线的开始处数据的取回和发送,当管线满时甚至会节省更多时间。
内爆/外爆
因为有许多用户请求来自有限个网站的数据,所以对于数据的请求为多个用户复制的概率增加。这些复制请求是不必要的网络流量,应联合起来。本发明的一个实施例在各个超级模块内爆这些复制请求,即将复制请求修剪为一个请求,和外爆响应,即将一个响应复制为若干拷贝。
图12显示了从超级用户向超级主机发送数据请求的例子。我们来考虑股票交易公司。当四个股票经纪人同时请求一支热门股票的股票报价时,三个经纪人,即超级用户1210、1212和1214,向超级应用1216发送他们的请求,即1240、1242和1244,超级应用1216存储请求的超级用户1210、1212和1214的IP地址并仅向超级CO服务器1220发送一个请求,即Req4 1246。超级CO服务器1220接收这一个请求1246,并检查是否有来自其它超级应用532或未使用超级应用的其它单独超级用户的其它复制请求。在这个实施例中,第四经纪人,超级用户1218将复制请求1248发送至超级CO服务器1220。然后超级CO服务器1220存储超级应用1216和超级用户1218的所有复制请求的IP地址,并将复制内爆为一个单独的请求,即1250,并将请求1250发送至超级CO集中器1224。然后超级CO集中器1224检查来自其它CO服务器的其它复制请求,即来自ISP服务器1222的请求1252,存储所有复制请求的IP地址,并将一个请求1254发送至超级主机1230。如果可行,超级主机1230也将检查并内爆来自其它超级CO集中器的复制请求。在这个例子中,没有其它超级CO集中器和超级主机接收1230请求1254。
尽管图12没有显示外爆过程,但它从超级主机1230开始,以相反的顺序跟随内爆过程。超级主机1230取回来自万维网服务器(未显示)的响应数据,例如网页,并对于请求它的每一超级CO集中器外爆它(复制)。超级CO集中器1224接收该响应数据并为请求它的所有超级CO服务器,即超级CO服务器1220和1222,外爆它。超级CO服务器,例如1220,接收该响应数据并为超级应用1216和超级用户1218外爆它。超级应用1215接收该响应数据并为请求该数据的超级用户1210、1212和1214外爆它。
图13A是根据本发明的实施例,向同一目的地发送数据请求的过程的流程图。在步骤1110,父超级模块接收对于同一目的地的复制子数据请求。在步骤1112,子请求者的返回的地址被记录在列表中并存储在父系统中。在步骤1114,提取来自复制子数据请求的公共数据,即,由于所有数据(不包括控制信息)是相同的,所以只检查在一个子数据请求中的数据。在步骤1116,创建具有公共数据和父返回地址的一个父请求。在步骤1118,将父数据请求发送至到公共目的的路径上的下一超级模块。
图13B显示了根据本发明的实施例,向发送的请求发送响应的过程。在步骤1120,目的地将响应数据发送至父请求者,即发送内爆数据请求的最后的超级模块。在步骤1122,父超级模块取回具有子请求者地址的列表。在步骤1124,复制响应数据并且向列表上的各个孩子发送一拷贝(步骤1126)。
数据的内爆和外爆对于流式传输音频和/或视频(特别对于广播)非常有价值。当多于一个用户请求同一TV、视频、无线电或音乐时,这些请求被内爆并且传输被外爆。节省的带宽很大,尤其对于实时广播。如果许多人在收听因特网无线电台,则该请求在到达万维网主机服务器时被内爆并且在返回给用户时被外爆。由于因特网无线电台正在广播在时间上同步的相同数据,所以在超级主机处内爆约为100%(在超级主机处所有请求内爆为一个请求),外爆约为100%(从万维网服务器到超级主机的一个流提供所有用户)。
重分组和内爆/外爆
分组的重分组方法与内爆/外爆方法联合,显著增加信息流。超级用户530请求来自万维网服务器182的网页内容的过程的一个实施例是:
1.超级用户530对其不能满足的所有数据请求从其本地高速缓存分组为单独信使分组,并将其发送至超级应用532。
2.超级应用532得到从另一超级用户到同一目的地的所有同时发生的请求,即来自其它用户的信使分组,并将它们重分组为一个更大的应用信使分组。内爆任何复制用户请求。这一个应用信使分组被发送至超级CO服务器534。
3.超级CO服务器532从多个超级应用(和直接相连的任何超级用户)得到具有相同目的地的所有应用信使分组并将更大的CO信使分组发送至超级CO集中器536。复制用户请求再次被内爆。
4.超级CO集中器536重分组同时发生的CO信使分组,内爆任何复制请求,并将较大CO集中器信使分组发送至合适的超级主机538。
5.超级主机538接收并拆包CO集中器信使分组。超级主机将请求转换为标准HTTP请求以供标准万维网服务器处理。
然后万维网服务器182处HTTP请求并生成HTTP响应,HTTP响应被发送至超级主机538。响应处理包括:
6.超级主机538接收从万维网服务器182返回的数据响应,并且超级主机538更新其高速缓存并将响应拆包为返回CO集中器信使分组,将返回CO集中器信使分组发送至请求超级CO集中器536。
7.超级CO集中器536接收返回CO集中器信使分组并将其拆包以更新超级CO集中器536高速缓存。超级CO集中器536外爆该数据并将该数据重分组为返回CO信使分组,并将它们发送至合适的超级CO服务器,例如534。
8.超级CO服务器534接收返回CO信使分组并将其拆包,为超级应用外爆数据,更新超级CO服务器的高速缓存,将数据重分组为返回应用信使分组,并将返回应用信使分组发送至合适的请求超级应用,例如532。
9.超级应用532拆包返回应用信使分组,更新超级应用532高速缓存,外爆数据,将数据重分组为返回用户信使分组,并将分组发送至合适的请求超级用户,例如530。
10.超级用户530接收返回用户信使分组并将其拆包,更新其高速缓存并使用标准HTTP协议将数据传递至浏览器512。
重分组通过将网页数据存储在一个或多个有效块中而改变了高速缓存的效率。这通过减少磁盘寻找次数而显著减少了磁盘访问。
半永久TCP/IP连接
在对于每一浏览器请求和网页响应的HTTP 1.0下,建立了新的TCP/IP虚电路。由于当用户浏览网站时有许多请求/响应配对,这造成了充足的延迟,并且各个虚电路需要一三方握手以建立虚电路以及一个双方或三方握手以断开虚电路。HTTP 1.1通过在万维网服务器和HTTP 1.1浏览器之间建立持续连接而提供减少的延迟。于是,可以在一个TCP数据单元中发送多个请求,并且在一个响应TCP数据单元中接收多个响应。然而,HTTP 1.1仍然有一些问题。首先,如果浏览器接收来自单独网页中的第二万维网服务器的数据,则或者到第一万维网服务器的持续连接丢失或者必须建立另一持续连接。第二,对于同一网站的多个用户不能使用同一持续连接。第三,HTTP持续连接仅用于万维网内容,不覆盖其它应用层协议,例如FTP。第四,持续连接是用于整条路径的,不适用于万维网服务器和浏览器之间的路径部分。
本发明的一个实施例在任两个超级模块,例如超级应用或超级用户和超级CO服务器(最后一段),之间建立半永久TCP虚电路,该TCP虚电路或者持续一段预定时间间隔“T”或者持续至超级模块之一关闭。该半永久TCP虚电路是由典型的三方TCP/IP握手建立的,由典型的双方或三方TCP/IP握手断开。在数据传输期间,所有类型(例如HTTP、FTP或SMNP)并且从不同终端源到公共终端目的地(例如多个用户到万维网服务器或多个万维网服务器到一个用户)的应用数据可以在该虚电路上传输。
对于数据类型或数据源没有限制的原因是信使分组的使用。在发送器超级模块处接收的信使分组具有在一个大应用数据单元中到同一目的地的所有请求或响应应用数据单元的集合,其中每一请求或响应应用数据单元具有带有相关控制数据(诸如源地址、源及目的TCP端口等)的伪报头。在接收器超级模块处,如果有必要,例如终端用户不是超级用户,则包含伪报头的大应用数据单元可以拆离成分离的TCP数据单元和IP分组,并被转发至公共目的地。实际上,应用层掩藏了来自较低三层的协议和源差异,并且数据传输周期是非常大的应用数据单元的传输。
图14A显示了在传输层的发送器和接收器之间现有的TCP/IP连接、数据传输和断开连接。为了在发送器1312和接收器1314之间建立虚电路,从发送器1312发送一TCP同步数据单元、SYNC1316至接收器1314。接收器1314返回确认SYNC ACK1318。发送器1312既发送数据1320的N1字节作为大小为N1+N2的应用数据单元的第一TCP数据单元,还发送SYNC ACK1318的确认ACK以完成三方连接握手。接收器1314返回确认ACK N1 1322。然后发送器1312发送数据1324的N2字节,并设置第TPC数据单元中指示数据传输完成的最终标志位(FIN)。接收器1314将确认ACK FIN1326返回以确认数据的传输并关闭虚电路连接。当发送器1312希望发送M1+M2字节的另一应用数据单元时,必须由SYNC1330、SYNC ACK1332和ACK1334建立新的虚电路。发送器1312发送具有M1字节数据1334的第一TCP数据,接收器1314返回确认1336。发送器1312发送具有M2字节数据1338的第二TCP数据单元以及FIN比特组。接收器1314以ACK FIN1340确认最终比特,并关闭虚电路连接。
图14B显示了根据本发明的实施例,对于半永久连接的TCP/IP连接、数据传输和断开连接。发送器1352通过将SYNC1356发送至接收器1354而建立初始虚电路连接。接收器1354以SYNC ACK1358确认,SYNC ACK1358进一步由发送器1352通过ACK1360确认。这完成了初始三方握手以建立持久虚TCP/IP连接。在预定的时间间隔“T”1362后,请求虚电路连接关闭的发送器1352发送具有一组FIN比特1364的TCP数据单元。接收器1354以ACK FIN1366响应并关闭虚电路。在预定时间T1362中,传输具有N1、N2、M1和M2字节的TCP数据单元。来自发送器1352的N1字节的数据1370被传输至接收器1354,并且接收器1354以ACK N1 1372响应。然后数据1374的N2字节被传输至接收器1354,接收器1354以ACK N2 1376响应。然后数据1378的M1字节被传输至接收器1354,接收器1354以ACKM1 1380响应。最后,数据1382的M2字节被传输至接收器1354,接收器1354以ACK M2 1384响应。于是在时间间隔T期间,打断为四个TCP数据单元的N1+N2+M1+M2字节的一个大应用数据单元被从发送器1352传输至接收器1354。如果需要传输更多应用数据,则新的应用数据单元附加于N1+N2+M1+M2字节的一个大应用数据单元,并在半永久连接上发送。
VPN
虚拟专用网(VPN)是一种使用诸如因特网这样的公众网资源的专用网络,诸如公司内部网。两种典型的VPN是站点到站点和远程访问。每一类型利用一VPN网关,其是可信专用网络和不可信公众网之间的关守,通常是特定的硬件。该关守具有访问可信专用网络的“客人”列表。如果分组不在列表上,则没有访问。
图15显示了现有的站点到站点VPN1440和现有的远程VPN1446的例子。对于站点到站点VPN1440,具有PC1412、PC1414和LAN服务器1416的第一内部网通过VPN网关1420由数字连接设备1526和PoP1514连接至因特网1530。从因特网1530,VPN1440经由PoP1540、调制解调器1542和VPN网关1430连接至具有PC1434、PC1436和LAN服务器1432的第二内部网。于是第一内部网和第二内部网通过因特网连接在一起以形成联合的内部网。对于远程VPN1446,远程PC处的用户通过调制解调器1534拨号到PoP1532,以经由因特网1530、PoP1540、调制解调器1542和VPN网关1430访问LAN服务器1432。PC将具有VPN客户端软件,还可以具有固定的IP地址或由动态DNS/URL服务提供的动态IP地址,动态DNS/URL服务提供要由PC使用的URL(统一资源定位符)。动态DNS/URL服务向VPN网关1430通知PC的IP地址,使得PC访问LAN服务器1432。
如图16所示的现有VPN具有若干局限。首先,通常需要特别的网关硬件。第二,用户不能访问多个VPN。本发明的一个实施例克服了这些问题。超级模块站点的任何组合可以形成一个或多个VPN。有一个中央站点1538(图16)具有哪一超级模块访问哪一其它超级模块,即谁可以访问谁,的许可表。
图16显示了根据本发明的实施例的两个虚拟专用网(VPN)的例子。超级用户1510属于VPN1552和VPN1550。超级用户通过远程VPN1550远程连接至超级应用1524,其中超级应用1524是在LAN服务器1416上执行的软件网关。当超级应用1524和超级应用1544启动时,它们将它们的IP地址发送至中央站点1538处的许可表。超级用户1510通过调制解调器1512拨号入PoP1514,PoP向超级用户分配一IP地址。接下来,超级用户1510登录进入中央站点,并且超级用户1510将其IP地址报告给中央站点。当超级用户1510希望通过超级应用1524访问PC1412时,检查许可表。由于超级用户1510有访问权,所以建立超级用户1510的IP地址和超级应用1524的IP地址之间的通道,即VPN1550。超级用户1510也如中央站点1538处的许可表所指示的,访问超级用户1536和创建应用1544,从而建立VPN1552。于是超级用户能够访问多个VPN和其它超级用户。
在另一实施例中,超级用户1536还可以是远程用户并且可以在超级VPN1552创建时不登录。当超级用户1536登录时,它被分配一个IP地址并且根据许可表,建立包括超级用户1536、超级用户1510和超级应用1544的三方VPN。
对于超级传输系统的上述优化可以应用于本发明的实施例的任一VPN,只要在VPN的两侧上都安装了超级应用模块。作为一个例子,两个超级模块可以使用VPN而连接,并且使用例如压缩技术、信使分组、持久TCP/IP、内爆/外爆、和/或上述有效的文件格式传输所有数据,无论数据是文件、电子邮件还是网页。
结论
尽管已经描述了本发明的特定实施例,但是在本发明的范围也可以涵盖多种改进、变化、其它构造和等同物。所述的发明不限于在某一特定的数据处理环境中的操作,而是在多种数据处理环境中自由操作。另外,尽管使用特定的事务和步骤顺序描述本发明,对于本领域熟练技术人员可以理解,本发明不限于所述的事务和步骤的顺序。
进一步,尽管本发明是使用硬件和软件的特定组合描述的,但是应当理解,硬件和软件的其它组合也在本发明的范围之内。本发明可以仅以硬件或仅以软件或使用二者的结合而实现。
因此,说明书和附图应看作描述性的而不是限制性的。然而,很显然可以在不脱离权利要求所给出的本发明的更宽的精神和范围的前提下,对本发明作出增加、删剪和其它修改及变化。