网络链路上的http加速的制作方法

文档序号:7946993阅读:156来源:国知局
专利名称:网络链路上的http加速的制作方法
技术领域
本公开总体上涉及宽带优化,并且更明确地,但并不作为限制,涉及在高等待时间的数据链路上的HTTP优化。
背景技术
宽带地球同步人造卫星加给任意传输的传播时延大约为250ms。这显然有此含义,即任何通信,在接收方能够对任意通信做出反应和响应之前,发送方上的该给定通信被延迟了四分之一秒。TCP/IP协议要求在发送方和接收方之间进行双向交互。这产生了大约500ms的往返时间(RTT),在该时间内接收方能够确认(或者可能响应)发送方的通信。
可以说,使用宽带地球同步人造卫星经历的所有困难能够被追溯到它的相对较长的传播时延这个根本原因。要求越来越小的用户交互元素具有发送方和接收方之间的同步,这样类型的协议放大了时延效应,比如说WWW浏览请求。
通过被称为浏览器的软件组件,例如Intemet ExplorerTM或Netscape NavigatoTM的服务,用户产生WWW事务。浏览器将和运行在源服务器(origin server)上的被称为网络服务器(web server)应用程序(例如,ApacheTM)的另一软件组件进行交互。该交互在因特网上进行,对于整个事务的各种元素,使用UDP和TCP协议。事务可以被分解成五种不同类型的子事务。它们是一个或更多的DNS事务、连接建立事务(即,SYN、SYN-ACK、ACK)、HTTP事务、TCP传输事务以及连接拆除(tear down)事务(即,FIN、FIN-ACK、ACK)。
这里使用的术语事务有这样的含义,即事务是独立的交互,它既封闭(即,具有开始和结束状态)又具有一致性(即,对上下文来说,开始和结束状态是有效的状态)。对于要在通信链路上关闭的一个事务,需要至少一个发送方-接收方的交换。对于宽带地球同步人造卫星来说,这意味着最少大约500ms的事务时间,在这段时间内,事务保持开启状态。
万维网(WWW)事务的一个重要方面就是其中的几个子事务的串行特性。一个事务在前一个事务结束之后才能够开始,这使得整个事务失去了固有的并行性。这并不是说任何子事务和其它所有子事务串行,实际上,在HTTP事务的一些情况下和TCP传输事务的大多情况下,有很多并行机会。
WWW事务开始于请求取回包括主机名的统一资源定位符(URL)。使用DNS查找服务,该主机名转换为IP地址。当考虑到主页中的许多内嵌对象包括了对具有不同主机名的URL的引用,而这需要它们自己的DNS查找时,也就没有什么别的部分的WWW事务部分显得繁重了。此外,DNS作为简单的无状态查询/应答协议,通过使用固定超时之后重传原始查询来处理应用层的分组丢失。如果丢失了初始DNS查询(或应答),则通常被设置为一秒的超时会强加一个时延负荷。
HTTP协议使用TCP作为基本传输协议。TCP本身是一个面向连接的协议,这要求在开始TCP连接时建立连接。这个连接的建立是需要至少一个RTT来完成的三次握手。如果在该三次握手过程中丢失分组,则在能够发送重传之前,默认的以秒测量的定时器必须到时间。同样,也像在DNS查找中的情况一样,分组丢失会引起一个显著的时延负荷。
典型的WWW事务将会产生许多对内嵌在主页中的对象的HTTP GET请求。这些请求的目标经常是不同的服务器,其中通常有一个或更多的为大量请求服务的服务器。HTTP 1.0规范、RFC 1945,以及HTTP 1.1规范、RFC 2616,推荐每个服务器最多同时分别处理最大4个和2个TCP连接。
对于向一个由仅仅这2个或4个连接所服务的服务器的请求,浏览器可以对其进行排队。每个请求在发送下一个请求之前完成。因此,最小时延负荷(当然是以RTT作为单位)是待取得的对象的数目除以同时发生的连接的数目所得的结果。由此得出结论,对于大量的内嵌对象,这个时延负荷将十分显著。作为一个例子给出的是,AmazonTM网页大约有40个内嵌对象位于一个服务器上,将会需要多于10(或20)个RTT来取得所有的内嵌对象。
互利来源于避免因特网上的TCP业务拥塞。因为这个原因,TCP会话使用称为“慢启动”的过程来开始传输或者在一段空闲周期之后继续传输。此外,拥塞窗口,也就是未完成的未确认分段的最大数目,将最大吞吐量减小至由窗口大小除以RTT所得的结果。在宽带地球同步人造卫星的情况下,吞吐量通常被限定在该窗口大小的两倍。
慢启动允许负载以分段为单位从初始负载开始稳定增加,RFC2581要求不能超过两个分段。当然对于高RTT的链路来说,因为每个ACK循环只允许该负载增加一个分段,慢启动将会成为非常沉重的时延负荷。达到完全利用该链路的时间将会相当显著,其中RTT和带宽很大。传输的TCP慢启动阶段会增加取得中等到较大尺寸的网页(即,10到100千字节)的时间。事实上,对于这样的传输来说,这个慢启动阶段支配着吞吐量。
要注意的是,低带宽链路(小于128kbps)引入可测量的传输时延。对于在这样的链路上传送的大的对象,总的事务时延中由于传输时延引起的这一部分变得更加显著。使用前面例子中的AmazonTM网页,所有GET请求的总计尺寸在30千字节的等级上。例如,使用大约为30kbps的返回链路传输速率,将给总的事务时延增加8秒的时间。
如前所述,TCP是面向连接的协议,并且因此当需要时,要建立连接,当不再需要时,要拆除连接。在HTTP 1.0和1.1规范中,服务器可以请求客户机关闭它们的连接。当这个情况发生时,如经常对HTTP 1.0所作的那样,必须在会话拆除过程中继续该连接。类似于会话发起,会话拆除也是需要至少一个RTT来完成的三次握手。
在会话拆除的情况下重要的是,若超过了规范所规定的同时连接数,则浏览器不能和给定的服务器建立新的连接。同样,只有向会话正在被拆除的同一个服务器发出多个连接请求时,才会经历时延负荷。
代理,被定义为充当另一个实体的代表。在软件产业它们被认为是一类软件代理。相对于它们所代理的实体,它们能够被置于或近或远处。它们也可以被分布在它们所服务的实体和它们代表那些被它们服务的实体进行交互的实体之间的几个地方。代理能够被分成对它们的客户机透明的代理(即,隐式代理)或者对它们的客户机不透明的代理(即,显式代理)。此外,它们能够大体被分为API代理或者协议代理,这是通过它们代表其客户机实现的协议来区分的,而不管是在应用层、表示层、会话层或传输层上。
API代理或者协议代理使用称为高速缓存的技术来支持它们所服务的客户机,这并不罕见。这样的代理总是不得不处理高速缓存一致性和重复性的影响。在一些情况下,代理可以优先考虑避免传输时延超出需要,如在宽带卫星链路中,以便避免增加同步事务性元素。这种方法最好的例子是应用于增加同步事务性元素中。这种方法的一个例子是应用于HTTP代理中,其使用因特网通信协议(ICP)来维持高速缓存的一致性。
ICP,能够在实质上减少在HTTP连接上实际传输的数据量,实际上对宽带卫星链路上的用户经历等待时间(UEL)产生了破坏性的冲击,这是因为它为了实现降低在连接上传输的数据而加入了同步事务性元素。
DNS代理(如在本地DNS服务器中)对所有DNS服务器中较靠近进行请求的客户的一个子集进行定位。这使得从用户的角度来看,缩短了DNS查找事务。DNS代理使用维持高速缓存的技术来保存事先为将来的请求所获得的答复。
TCP代理或SOCKS代理提供了一种显式的手段,把所有的客户机的连接委托给该TCP代理。这使得能够为实际交互中的客户机(多个客户机)的联系服务。这考虑到代理将用统一的方法建立连接参数,而不依赖于该连接所服务的客户机。
HTTP代理提供了一种显式的手段,把所有客户机的HTTP(因而也是TCP)事务委托给该HTTP代理。这使得能够缩短总的事务、并且隐藏为WWW事务(包括DNS查找)提供服务的事务元素的基本连接的参数和质量。

发明内容
本公开涉及通过减少获得HTTP网页所需的交互来加速宽带无线链路。在一个实施例中,无线链路包括地球同步人造卫星,其引入大约250ms的时延或等待时间。通过在用户的卫星调制解调器中安装HTTP处理器以及在卫星网关或基站中安装HTTP抓取器(fetcher),降低了卫星链路的等待时间。分辨出特定的URI是一种HTTP类型的请求后,无线调制解调器能够在一次通信中从无线网关请求该初始的HTTP网页。能够并行地请求该HTTP网页的内嵌对象,使得对于所有内嵌对象只需要一个RTT。这减少了传统系统所需要的多个往返时延。
在一个实施例中,在接收HTTP网页请求之前配置好TCP链路或者其它链路。一旦HTTP处理器接收到HTTP网页请求,就将其通过无线链路转发到无线网关。无线网关中的HTTP抓取器执行DNS查找以寻找在该HTTP网页请求中所指示的域名的IP地址。一旦知道了IP地址,无线网关就请求包含到内嵌对象的链接的初始网页,而不需要无线调制解调器的进一步动作。使用已配置的TCP链路,该初始网页被转发到无线调制解调器。能够以并行方式请求该网页的内嵌对象以便在大约一个RTT内接收它们。
还有本公开的各种其它方面。例如,无线调制解调器和/或无线网关可以包括DNS高度缓存和/或HTTP高速缓存。作为另外一个例子,可以在无线链路上对HTTP网页请求进行压缩。一些实施例在无线链路中可以使用卫星和/或蜂窝基站。
无线宽带系统的布局指示出不对称的数据链路,例如,3Mbps的下行链路前向信道和5-40Kbps的上行链路返回信道。根据需要可以调整相对有限的上行链路带宽。每个卫星调制解调器总是可用最小返回信道(即,每秒几千比特或者更多)而不管它是否被使用,这通过避免在卫星链路上的带宽请求事务而允许低等待时间的请求。一旦特定的调制解调器在那个返回信道向上传输数据,它能够请求分配更多的带宽。若带宽允许的话,卫星网关能够授权该卫星调制解调器根据当前需要按比例增加该上行链路的带宽。
在本公开的一个方面,返回信道能够利用压缩来克服低带宽返回信道引起的传输时延(如上所述)。可以使压缩适合于在该返回信道上发送的信息的类型。例如,HTTP请求能够使用文本特定算法以有效地增加相对有限的上行链路带宽的数据携带能力。


通过下列结合附图进行的详细说明,所公开的实施例的特征、目的和优点将变得更明显,在附图中,相似的元件具有相似的参考数字。此外,同一类型的各种组件可以通过参考标号后的划线以及区别相似组件的第二标号来进行区分。只要在说明书中使用了第一参考标号,则该说明同样可以应用于具有相同的第一参考标号的任意一个相似组件,而不管第二参考标号。
图1A和1B是无线宽带系统的实施例的框图;图2A、2B、2C和2D是卫星调制解调器的实施例的框图;图3A和3B是卫星网关的实施例的框图;图4A、4B和4C是通过无线链路下载HTTP对象的处理过程的
具体实施例方式
本公开提供了用来减轻或消除通过宽带卫星数据链路或其它高等待时间数据链路浏览万维网(WWW)所产生的问题的实施例。所述实施例所解决的其中一个问题是减少用户经历的等待时间。在以下的说明中,给出了特定细节以供细致了解所述实施例。然而,本领域的任何一个普通技术人员可以理解,在没有这些特定细节的情况下也可以实现这些实施例。例如,可以以框图示出电路,以便不会在不必要的细节上模糊这些实施例。在其它情况下,可以详细示出众所周知的电路、结构和技术以便不会模糊这些实施例。
同样,要注意的是,这些实施例可以被说明为用流程图描述的处理过程、操作程序图、结构图或者框图。尽管流程图可以把操作描述成顺序的处理过程,但是许多操作能够并行或并发执行。此外,可以重新安排操作的次序。当处理过程的操作完成时,终止该处理过程。处理过程可以对应于方法、函数、过程、子例程、子程序等等。当处理过程对应于函数时,该处理过程的终止对应于函数返回到调用函数或者主函数。
而且,如这里所公开的那样,术语“存储介质”可以表示一个或更多的用来存储数据的设备,包括只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质、闪速存储设备和/或其它用来存储信息的机器可读介质。术语“机器可读介质”包括但并不限于便携式或固定存储设备、光存储设备、无线信道和各种其它可存储、包含或者携带指令和/或数据的介质。
此外,可以以硬件、软件、固件、中间件、微码或者任何它们的组合来实现这些实施例。当以软件、固件、中间件或者微码实现时,执行必要的任务的程序代码或代码段可以存储在诸如存储介质这样的机器可读介质中。处理器可以执行该必要的任务。代码段可以表示过程、函数、子程序、程序、例程、子例程、模块、软件包、类,或者任何指令、数据结构或程序语句的组合。通过传递和/或接收信息、数据、变元、参数或存储器内容,可以把代码段连接到另外的代码段或者硬件电路上。信息、变元、参数、数据等等都可以经由各种适宜的手段来传递、转发或发送,这些手段包括存储器共享、消息传递、令牌传递、网络传输等等。
基于对宽带卫星链路的问题分析和基本原理的考虑,所描述的实施例致力于掩盖(mask)或者减轻在总的WWW事务的每个基本的子事务中发现的固有问题。
DNS子事务在各种实施例中,能够使用至少两种不同的技术减轻或者掩盖DNS子事务。第一种技术是客户端DNS高速缓存代理,其减轻了DNS子事务的开销。这种代理高速缓存了先前获得的较长生存时间(即,到期时间)的答复。当再次发送给定的请求时,原始的时延负荷被通过每个重新提交而摊平了。
第二种技术包括由地面端HTTP抓取器所服务的客户端HTTP处理器,其掩盖了WWW事务中包括DNS子事务在内的几个子事务的开销。该HTTP处理器基本上把整个DNS子事务分配给该HTTP抓取器,从而消除了宽带卫星链路对DNS子事务的影响。此外,也能够减轻TCP子事务的会话发起以及会话拆除。这两种技术节约了一个或者更多的宽带卫星链路往返时间(RTT)并且用地面RTT来代替它们。
会话发起和会话拆除子事务使用地面端HTTP抓取器所服务的客户端HTTP处理器可以减轻这两个子事务。这里,完全掩盖了这些子事务的开销,因为客户机浏览器建立了它和客户端HTTP处理器之间的关系,并且能够根据需要开启和关闭。然而,需要无限(很长的超时)维持HTTP处理器和HTTP抓取器之间的连接。这种技术消除了建立和拆除TCP连接所要求的多个宽带卫星链路RTT,并且用在卫星调制解调器中的HTTP处理器和在网关组件中的HTTP抓取器之间建立和拆除的一个TCP来代替它们。
HTTP子事务(GET/REPLY串行化)HTTP GET/REPLY的串行化来自RFC标准施加的约束。大多浏览器遵守这些约束。使用两种相关的技术能够减轻HTTP GET/REPLY的串行化。
第一种技术,使用从浏览器到卫星调制解调器中的客户端HTTP处理器的并行TCP连接,减轻了HTTP GET/REPLY串行化对HTTP1.0事务的影响。另外,该技术也可用于HTTP 1.1事务,但是受到在RFC中的指定的连接限制的约束。这里应该注意,RFC对客户机浏览器施加了微小的连接限制。客户端HTTP处理器及其地面HTTP抓取器被实现以支持合理的可扩展(open ended)数目的同时连接。
第二种技术,支持实现流水线工作的HTTP 1.1浏览器的HTTP处理器和HTTP抓取器中的GET流水线工作,减轻了HTTPGET/REPLY串行化对HTTP 1.1事务的影响。这两种技术都能够减少串行化影响,特别是对有大量内嵌对象的大站点。此外,能够一起使用这两种技术。
通过这两个方法之一消除了HTTP GET/REPLY的串行化,在这个实施例中对所有对象的访问能够被降低到大约一个或两个总的宽带卫星链路时延,而不是访问每个对象都几乎需要一个宽带卫星链路时延。
TCP传输子事务使用两种技术能够减轻宽带卫星链路对TCP传输的冲击。第一种技术,通过允许750千字节的窗口,抵消了RTT对吞吐量的影响。该技术结合以下列出的第二种技术,允许该链路几乎瞬间达到完全利用率。第二种技术缓和了从TCP堆栈的慢启动。两个端点之间只有未经历链路拥塞的卫星链路的事实,证明这是正确的。TCP操作的这些变型能够从在一个HTTP事务中被请求的对象的传输中消除几个宽带卫星链路往返。
传输时延影响(GET/REPLY尺寸)在HTTP GET和HTTP REPLY上使用数据压缩能够减轻传输时延对HTTP事务的影响。分析多个站点的HTTP GET和HTTP REPLY的内容,显示出可用于HTTP GET的压缩率几乎可达到90%或者更高,并且可用于HTTP REPLY的压缩率大约可达到50%或者更高。这种高数据压缩率,尤其是针对返回链路上的HTTP GET,当为其它系统设计目的而使用低速率返回链路时,能够节约相当多的时间。能够使用任何类型的对文本数据有效的压缩算法,例如,Lempel-Ziv压缩。
首先参考图1A,示出了利用卫星链路的无线宽带系统100-1的实施例的框图。地球同步人造卫星140以双向方式把第一碟型卫星天线(satellite dish)116和第二碟型卫星天线130连接在一起。在各个实施例中,在这个双向链路的每个方向上的等待时间大约为250ms,但是决不会小于100ms或200ms。一些实施例在一个方向使用卫星链路而在其它方向使用一些其它介质,例如,拨号调制解调器连接。一个实施例在卫星链路中使用与地球不同步的近地轨道卫星的星座图。在另一个实施例中,在下行链接到网关或地面站118之前,多个卫星能够在它们自身之间进行路由。
无线宽带系统100允许用户或商业的计算机设备112与因特网110进行通信。计算机设备112可以包括可以与因特网110进行通信的任何个人计算机、大型机、工作站、VOIP终端、PDA、家用电器、商业机器、网络、视频设备等等。计算机设备112中至少包括一个网络浏览器应用程序。计算机设备112对该网络浏览器进行配置,使其使用一个受限于该网络浏览器所使用的协议的显式代理。在一些实施例中,隐式代理会在所有TCP/IP信息中仔细筛查,只挑选出网络浏览器信息。
计算机设备112与卫星调制解调器122进行通信。卫星调制解调器122作为该计算机设备的显式代理。可能必须对该网络浏览器或操作系统进行配置,使得卫星调制解调器122被用作其代理。尽管卫星调制解调器122作为计算机设备112的代理而出现,但是如下所述,在卫星调制解调器122和卫星网关118之间分开代理功能。
在这个实施例中的卫星调制解调器122是独立单元。它包括实现调制解调器122的功能的软件、硬件和一个或更多的处理器。存储可以是易失性或非易失性存储器的形式。调制解调器122中的(多个)高速缓存能够以非易失性磁或光存储器或者易失性固态存储器来实现。在一些实施例中,该(多个)高速缓存的内容随掉电而丢失。网关118接通电源后,被通知该(多个)高速缓存已经被清空并且开始重新存入预存储的处理。
卫星调制解调器122包括与计算机设备112以及碟型卫星天线116进行通信的端口。对于各种调制解调器122的配置,针对计算机设备112的(多个)端口可以包括USB、以太网、IrDA、Firewire(火线)、WiFi、UWB、WiMax、载波电流等等。卫星端口允许与碟型卫星天线116进行通信。典型地,RF信号用于该端口,但是一些实施例可以使用数字接口。
卫星网关118在(多个)碟型卫星天线130和因特网110之间进行通信,以便为计算机设备112的因特网请求进行服务。各种实施例可以拥有以不同方式分布的多个卫星网关118。一个实施例可以从各种位置接收请求并且把它们发送到在某一远程位置上的网关118。其它实施例可以使用一组网关来划分多个请求。执行卫星网关118的功能的任何其它构造都是可能的。
卫星网关118向因特网110提出标准因特网请求。使用域名服务器(DNS)104把域名转换为因特网协议(IP)地址。IP地址对应于提供在统一资源标识符(URI)中指示的对象的源服务器126。尽管没有示出,但因特网构造类型的其它变型也是可能的。例如,源服务器126可以使用内容镜像或内容传送网络。
卫星网关118的实施可以采用任何数目的构造。计算机和服务器执行所有的数字处理和存储任务。路由器、交换机、网关和调制解调器用于与因特网以及卫星网关118的各种组件进行连接。部分卫星网管118能够遍布于地理上不同的网络。与碟型卫星天线130或其它等效的无线设备进行连接的RF功能是在为这个目的所设计的硬件中实现的。
卫星网关118向因特网110提出标准因特网请求。使用域名服务器(DNS)104把域名转换为因特网协议(IP)地址。IP地址对应于提供在统一资源标识符(URI)中指示的对象的源服务器126。尽管没有示出,但因特网构造类型的其它变型也是可能的。例如,源服务器126可以使用内容镜像或内容传送网络。
参考图1B,示出了利用无线蜂窝链路的无线宽带系统100-2的另一个实施例的框图。无线调制解调器140能够是一个插入式的卡,其允许各种类型的计算机设备112与无线网关118进行通信,而不一定要具有电话功能。在一个实施例中,无线调制解调器140和计算机设备112一起被集成到具有浏览器功能的手机内。每个无线网关118被连接到一个蜂窝基站136上,该蜂窝基站无线连接到无线调制解调器140上。在大多数情况下,蜂窝链路的等待时间远小于卫星链路的等待时间。
下面参考图2A,示出了卫星或无线调制解调器122-1的实施例的框图。计算机端口204与计算机设备112进行通信,但是其它的实施例可能支持多种不同的有线或者无线端口204和协议。协议鉴别器(protocol discriminator)206管理计算机端口204所有的TCP/IP业务。通过协议鉴别器206使得HTTP类型的业务和其它TCP/IP业务分开。可以使用IP地址、端口或其它机制以便把HTTP业务和剩余的TCP/IP业务分开。在任何情况下,协议鉴别器206把HTTP业务传送给HTTP处理器212并且把剩余的TCP/IP业务传送给TCP/IP处理器208。
TCP/IP处理器208处理不是HTTP业务的因特网业务。一些实施例可以使用一些这里所描述的技术来增强非HTTP业务的处理。该TCP/IP处理器通过使用压缩功能单元232和解压缩功能单元228,以压缩方式在无线链路上进行通信。射频(RF)发射机220把数字信号调制到载波频率上,而RF接收机216对其进行解调。其它的实施例可以有不同的RF配置。
HTTP处理器212管理HTTP业务。当检测到HTTP业务时,HTTP处理器开启在前向链路和返回链路中卫星调制解调器122和卫星网关118之间的TCP连接。在一段不活动时期之后,例如,20分钟之后,将关闭这个TCP连接。设想没有不活动周期触发连接断开,那么许多不同的HTTP事务将流过该TCP链路。传统的系统将为每个HTTP事务建立和拆除TCP链路。HTTP处理器212收集来自计算机设备112的HTTP GET并且提供相应的HTTP REPLY。
一些实施例可以为前向和/或返回链路使用不同于TCP的协议。在接收HTTP事务之前配置这些协议并且保持开启以便服务许多HTTP事务。典型地,一个RTT时延被用于为返回链路配置协议,但是这个实施例只是在第一次配置该返回链路时经历那个RTT时延。
前向和返回链路使用压缩来降低带宽需求。在这个实施例中该压缩算法适合于特定的数据。例如,一种压缩算法用于文本而另一种压缩算法用于文件。在返回链路上传送的数据是大的文本,因此使用一种有效的文本算法,例如,Lempel-Ziv。前向链路可以使用另外一种对文本和非文本信息有效的算法。无论如何,但是在这个实施例中压缩功能单元232和解压缩功能单元228使用无损压缩。能够以硬件和/或软件实现压缩功能单元232和解压缩功能单元228。当使用了多种算法时,压缩数据的头部能够指示为压缩数据使用了哪种算法以便允许链路的接收端对数据进行解压缩。
参考图2B,示出了包括DNS高速缓存236的卫星或无线调制解调器122-2的另一个实施例的框图。HTTP处理器212和TCP/IP处理器208使用DNS高速缓存236来保存先前获得的由网关118使用的DNS查找。当网络浏览器或其它应用程序请求DNS查找时,能够参考该DNS高速缓存来确定它是否先前已经被确定。任何被高速缓存的IP地址能够用于随后的DNS查找操作。
下面参考图2C,示出了包括对于返回链路的带宽管理的调制解调器122-3的另一个实施例的框图。返回缓冲器224保存针对返回链路的数据,直到该数据能够被返回链路管理器240脱机输出(spoolout)。返回链路标称是一个20-40Kbps的信道,其对于返回链路管理器240来说总是可用的。
如果返回缓冲器224开始填充到增大返回链路的等待时间的一个点,则带宽能够被调整并保持一段时间。返回链路管理器240能够请求更多的带宽或者仅仅向网关118报告填充程度。网关118能够对该请求进行评估并且分配较高的带宽并在该返回链路恢复到较低带宽信道之前保持一段时间。在CDMA布局中,这可以包括发送一个新的具有较高带宽的信道码,但是在各种实施例中可以使用任何布局(TDMA等等)。
参考图2D,示出包括带宽管理和压缩的调制解调器122-4的另一个实施例的框图。在这个实施例中,在返回链路上发送返回缓冲器224中的内容之前,先对其进行压缩。由于该返回缓冲器中的所有信息是针对网关118的,因此对于所有的信息能够使用同一个TCP连接,而不是建立和拆除单独的多个连接。一些实施例能够使用不同于TCP的协议,其能够开启持久连接并且管理信息分组的传送。
下面参考图3A,示出了卫星或无线网关118-1的实施例的框图。在对无线调制解调器122进行镜像的配置中,所描述的实施例使用了压缩功能单元232、解压缩功能单元228、RF发射机220、RF接收机216以及无线端口224。一旦对来自返回链路的信息进行解调和解压缩,业务鉴别器318就确定该信息是否与HTTP相关。HTTP抓取器308处理HTTP业务,TCP/IP抓取器304处理剩余的业务。HTTP抓取器308和TCP/IP抓取器304都与因特网110进行交互,以便收集和返回因特网信息以用于到调制解调器122的前向链路。
HTTP抓取器308对从调制解调器122接收到的、含有它们的域名的URI进行解码。使用因特网110上的DNS 104把该域名转换成IP地址。一旦知道了IP地址,把该URI发送到特定的源服务器126以提供HTTP对象。对被请求的对象和随后被请求的内嵌对象进行压缩并且在来时的前向链路上进行发送。HTTP抓取器的其它实施例继续处理网页对象中的所有内嵌链接,并且如果预料到一个被连接的页面将被请求,还把那些被链接的页面发送到HTTP处理器212。
带宽分配器322从无线宽带系统100中的各种调制解调器122接收对于额外的返回带宽的请求。这些请求可能是要求一定量的带宽或者其仅仅是对于返回缓冲器224中的填充程度的报告。该填充程度可能是被缓冲的数据量或者其可能指示使用了多少缓冲器224。在一个实施例中,在来自调制解调器122的分组的头部中,使用两个比特来指示在该缓冲器中是否达到三个不同的阈值,例如,三分之一满、三分之二满和几乎全满。
参考图3B,示出了卫星或无线网关118-2的另一个实施例的框图。这个实施例把HTTP高速缓存312和DNS高速缓存236集成到了网关118-2中。随着多个调制解调器122请求对象,对DNS信息和HTTP页面进行存储。随后对同样信息的请求能够从高速缓存236和312中得到服务。TCP/IP抓取器304和HTTP抓取器308使用DNS高速缓存236,HTTP抓取器使用HTTP高速缓存312。由于许多对象都是定制的,因此HTTP高速缓存312仅仅返回对于任意一个用户并非唯一的未参数化的信息。
下面参考图4A,示出了用于通过无线链路下载对象的处理过程400-1的实施例的流程图。处理过程400-1中所描述的部分开始于步骤404,在该步骤404中,在这个HTTP GET发送到HTTP处理器之前配置调制解调器122和网关118之间的持久性TCP链路。该TCP链路具有可用来以低等待时间服务任何返回链路数据的有限带宽。配置计算机设备112上的浏览器,使其把HTTP处理器212用作代理,但是在HTTP处理器212和HTTP抓取器308之间划分代理的功能。
在步骤408中,浏览器向HTTP处理器212发出HTTP GET命令。在这个实施例中,浏览器把DNS查找和对外部IP地址的处理委托给HTTP处理器212。在步骤412中,返回链路把HTTP GET命令和相关的URI传送到HTTP抓取器308。在步骤416中,HTTP抓取器308执行DNS查找以便得到URI中域名的IP地址。
在步骤420中,从(多个)源服务器126请求对象。因为该对象是从源服务器126发送的,在步骤424中使用前向链路把它转发到HTTP处理器212。在步骤428中,HTTP处理器212完成网络浏览器的原始HTTP GET命令。通过从步骤428返回到步骤408的循环,完成任何随后的HTTP GET命令。
参考图4B,示出了用于通过无线链路下载对象的处理过程400-2的另一个实施例的流程图。这个实施例支持在前向和返回链路上的压缩。在步骤410中,执行压缩HTTP GET命令的步骤,并且在步骤426中,执行解压缩对象的步骤。其它实施例中的附加步骤能够支持根据协议、内容、应用等等而改变的不同的压缩算法。
参考图4C,示出了用于通过无线链路下载一组对象的处理过程400-3的另一个实施例的流程图。在步骤402中,以非标准方式配置计算机设备112,以便允许连接到调制解调器122中的HTTP连接的数目超过推荐的最大数。对计算机设备进行配置可以包括修改浏览器设置、改变注册表项或其它配置。在各种实施例中,TCP连接的个数可以至少是5、10、16、32、64、128、256或任何其它大于5的整数。
在步骤404中,在卫星链路上建立TCP连接或者其它连接。该TCP连接可以是已经伴随早先的HTTP GET一起建立,或者作为现在的HTTP GET的结果而建立。在任何情况下,在处理过程400-3的剩余时间或者可能更长的时间内该TCP连接保持开启。在这个实施例中,通过步骤406中的HTTP REPLY,对于具有到其它对象的内嵌链接的一个对象的第一个HTTP GET请求得到满足。这将包括在计算机设备112和调制解调器122之间配置一个TCP连接。
一旦在HTTP REPLY中返回第一个对象,计算机设备112提取出许多内嵌链接。在提供非标准数目的TCP连接的情况下,用并行方式,在许多步骤406中,能够请求所有的内嵌链接。特定的网络浏览器可以顺序地频频发出HTTP GET命令,但是由于可用HTTP连接的增加,因此能够继续发送这些HTTP GET命令。如果达到HTTP连接的极限,则网络浏览器需要等待关闭其中一个开启的HTTP连接。
下面参考图5A,示出了用于在无线宽带系统100中加速无线返回链路的处理过程500-1的实施例的流程图。返回链路管理器240和带宽分配器322一起工作,以提供适当的返回链路带宽。处理过程500-1中所描述的部分开始于步骤504,在步骤504中在持久性低带宽返回链路上执行通信。一旦超过了阈值,这个实施例仅仅报告缓冲器填充程度,但是其它的实施例可以利用每个分组、或者周期性地利用分组返回缓冲器状态。
在步骤508中,返回链路管理器240监视返回缓冲器的消耗。只要在步骤512中没有超过预定的阈值,返回链路管理器就不会请求额外的带宽并且处理会回到步骤504。在步骤512中,若超过了缓冲器阈值,则处理继续到步骤516以请求额外的带宽。在这个实施例中,阈值为缓冲器变成三分之一满。其它的实施例把该阈值定义为假定在当前带宽分配的情况下清空缓冲器所需的一个时延。例如,当清空缓冲器将需要大于100ms的时间时,则产生一个额外带宽的请求。
在步骤516中,用下一个分组把缓冲器填充程度报告给网关118。这个报告可以是缓冲器中的总量、清空缓冲器所需的时间和/或仅仅指示已经超出阈值。在步骤520中,带宽分配器322接收填充程度信息,并且针对其他共享该返回链路的设备的需求来分析发出请求的调制解调器122的需要。在不能满足所有的请求的情况下,对请求的批准可以是以循环方式随机允许,或者根据一些其它方式允许,使得等待时间的影响分布在所有的调制解调器122上。
如果允许,则在步骤524中,在一段时间内,分配较高带宽的返回链路。该较高带宽的链路可以是额外的一条链路,或者是替代当前链路的一条链路。当这段时间期满后,可以指示另外一个具有不同带宽的返回链路。带宽分配器322可以指定任意组的链路和时间段。例如,可以立即分配一条持续三秒钟的750Kbps的链路,并且在两秒钟的时延之后可以使用一条200Kbps的链路,且此后该链路在十秒钟之内保持可用。如果带宽分配器322通过用不同的一条或多条链路替代该(多条)链路而改变其位置,那么可以通过告知调制解调器122来稍后执行一个不同的链路分配。
使用新的链路直到定义的时间段期满。在一些情况下,该链路没有截止时间,使得能够继续使用直到另外通知调制解调器122。例如,在下一个十秒之内,可以给予该调制解调器一个500Kbps的链路,并且那之后是一个25Kbps的链路,在调制解调器122收到新的指令之前,可以一直使用这条链路。
参考图5B,示出了用于在无线宽带系统100中加速返回链路的处理过程500-2的另一个实施例的流程图。在这个实施例中,通过循环执行步骤504、508、516和520,用每个分组、每隔几个分组或周期性地报告填充程度。在步骤532中和在步骤520之后,带宽分配器322确定是否需要提供额外的带宽。如果没有额外带宽变得可用,处理从步骤532返回到步骤504。如在步骤532确定多个额外带宽变得可用,则在返回到步骤504之前,执行步骤524和步骤528。
提供了所公开的实施例的以上说明,以使本领域的任何技术人员都能够制造或使用该公开。这些实施例的各种修改对本领域的技术人员是显而易见的,并且在不背离本公开的精神或范围的情况下,这里所定义的一般性原理可以应用于其它实施例。因而,本公开并不是要被限制这里所示出的实施例,而是要符合与这里所公开的原理和新颖特征相一致的最宽范围。
权利要求
1.一种用于通过把卫星调制解调器连接到卫星网关的卫星链路下载超文本传输协议(HTTP)网页的方法,所述方法包括以下步骤开启所述卫星网关和所述卫星调制解调器之间的传输控制协议(TCP)链路;在所述卫星调制解调器处从网络浏览器接收HTTP统一资源标识符(URI),其中所述HTTP URI与源服务器的所述HTTP网页相对应,并且在所述接收步骤之前执行所述开启步骤;通过所述TCP链路把所述HTTP URI发到所述卫星网关;由所述卫星网关确定在所述HTTP URI中指示的域名的因特网协议(IP)地址;取回所述HTTP网页,其中所述取回步骤是由所述发送步骤引起的,并且所述HTTP网页包含多个内嵌URI;把所述HTTP网页发送到所述卫星调制解调器;通过所述TCP链路,把所述多个内嵌URI中的至少五个内嵌URI发到所述卫星网关,其中所述至少五个内嵌URI与五个对象相对应;并且把所述五个对象发送到所述卫星调制解调器,其中所述卫星网关拥有所述至少五个对象,但是所述五个对象中还没有一个被完全发送。
2.根据权利要求1所述的用于通过把卫星调制解调器连接到卫星网关的卫星链路下载HTTP网页的方法,进一步包括在所述发送步骤之前压缩所述HTTP URI的步骤。
3.根据权利要求1所述的用于通过把卫星调制解调器连接到卫星网关的卫星链路下载HTTP网页的方法,进一步包括从所述卫星调制解调器发送所述IP地址的步骤。
4.根据权利要求1所述的用于通过把卫星调制解调器连接到卫星网关的卫星链路下载HTTP网页的方法,其中,从所述网络浏览器的角度来看,所述卫星调制解调器包括显式代理。
5.根据权利要求1所述的用于通过把卫星调制解调器连接到卫星网关的卫星链路下载HTTP网页的方法,进一步包括区分所述HTTP URI和其它因特网请求的步骤。
6.根据权利要求1所述的用于通过把卫星调制解调器连接到卫星网关的卫星链路下载HTTP网页的方法,进一步包括从所述卫星调制解调器发送所述网页的步骤。
7.一种具有计算机可执行的指令的计算机可读介质,所述指令用于执行计算机可实现的根据权利要求1所述的用于通过卫星链路下载HTTP网页的方法。
8.一种用于通过无线链路发送HTTP网页的无线下载系统,所述无线下载系统包括无线调制解调器,其从网络浏览器接收HTTP URI;以及无线网关,其远离所述无线调制解调器,其中所述HTTP URI与源服务器的所述HTTP网页相对应,协议链路连接所述无线调制解调器和所述无线网关;并且在所述无线调制解调器接收所述HTTP URI之前,开启所述协议链路,所述HTTP URI被发到所述无线网关,所述无线网关确定在所述HTTP URI中指示的域名的因特网协议(IP)地址;所述无线网关使用所述因特网取回所述HTTP网页,以及在所述无线调制解调器把所述HTTP URI发到所述无线网关之后没有采取任何动作的情况下,所述HTTP网页被发送到所述无线调制解调器。
9.一种用于通过无线调制解调器和远离该无线调制解调器的点之间的无线链路下载HTTP网页的方法,所述方法包括以下步骤开启所述无线调制解调器和所述点之间的TCP链路;在所述无线调制解调器处从网络浏览器接收HTTP URI,其中所述HTTP URI与源服务器的所述HTTP网页相对应,并且在所述接收步骤之前执行所述开启步骤;把所述HTTP URI发到所述点;从所述点接收所述网页,而无需在所述无线调制解调器处确定IP地址,其中所述IP地址对应于在所述HTTP URI中指示的域名;以及把所述HTTP网页发送到所述网络浏览器。
10.根据权利要求9所述的用于通过无线调制解调器和远离该无线调制解调器的点之间的无线链路下载HTTP网页的方法,进一步包括在所述点处确定在所述HTTP URI中指示的域名的IP地址的步骤。
11.根据权利要求9所述的用于通过无线调制解调器和远离该无线调制解调器的点之间的无线链路下载HTTP网页的方法,进一步包括在所述点处取回所述网页的步骤。
12.根据权利要求9所述的用于通过无线调制解调器和远离该无线调制解调器的点之间的无线链路下载HTTP网页的方法,其中所述点对应于无线网关。
13.根据权利要求9所述的用于通过无线调制解调器和远离该无线调制解调器的点之间的无线链路下载HTTP网页的方法,其中,卫星链路把所述无线调制解调器连接到所述点。
14.根据权利要求9所述的用于通过无线调制解调器和远离该无线调制解调器的点之间的无线链路下载HTTP网页的方法,其中,蜂窝基站把所述无线调制解调器连接到所述点。
15.根据权利要求9所述的用于通过无线调制解调器和远离该无线调制解调器的点之间的无线链路下载HTTP网页的方法,进一步包括压缩所述HTTP URI的步骤。
16.根据权利要求9所述的用于通过无线调制解调器和远离该无线调制解调器的点之间的无线链路下载HTTP网页的方法,进一步包括确定所述域名的IP地址是否被高速缓存在所述无线调制解调器内的步骤。
17.一种具有计算机可执行的指令的计算机可读介质,所述指令用于执行计算机可实现的根据权利要求9所述的用于通过无线调制解调器和远离该无线调制解调器的点之间的无线链路下载HTTP网页的方法。
18.一种电子系统,适于执行计算机可实现的根据权利要求9所述的用于通过无线调制解调器和远离该无线调制解调器的点之间的无线链路下载HTTP网页的方法。
19.一种用于取回从无线网关和远离该无线网关的点之间的无线链路请求的HTTP网页的方法,所述方法包括以下步骤开启所述无线网关和使用分组交换的所述点之间的协议链路;在所述无线网关处从所述点接收HTTP URI,其中所述HTTP URI与源服务器的所述HTTP网页相对应,并且在所述点处准备好所述HTTP URI之前,开启所述协议链路;确定在所述HTTP URI中指示的域名的IP地址;从所述IP地址取回所述网页;并且把所述HTTP网页发送到所述点,其中所述IP地址不被发送到所述点。
20.根据权利要求19所述的用于取回从无线网关和远离该无线网关的点之间的无线链路请求的HTTP网页的方法,其中所述点对应于无线调制解调器。
21.根据权利要求19所述的用于取回从无线网关和远离该无线网关的点之间的无线链路请求的HTTP网页的方法,进一步包括以下步骤接收多个内嵌UPI,其中所述多个内嵌URI与所述HTTP网页相关联;取回与所述多个内嵌UPI相对应的多个对象;并且把所述多个对象发送到所述点,其中,所述多个对象中的至少五个对象已在紧接在前的取回步骤中被请求,但是在所述发送步骤没有被完全发出。
22.根据权利要求19所述的用于取回从无线网关和远离该无线网关的点之间的无线链路请求的HTTP网页的方法,其中卫星链路把所述无线网关连接到所述点。
23.根据权利要求19所述的用于取回从无线网关和远离该无线网关的点之间的无线链路请求的HTTP网页的方法,其中蜂窝基站把所述无线网关连接到所述点。
24.根据权利要求19所述的用于取回从无线网关和远离该无线网关的点之间的无线链路请求的HTTP网页的方法,进一步包括解压缩所述HTTP URI的步骤。
25.一种具有计算机可执行的指令的计算机可读介质,所述指令用于执行计算机可实现的根据权利要求19所述的用于取回从无线网关和远离该无线网关的点之间的无线链路请求的HTTP网页的方法。
26.一种电子系统,适于执行计算机可实现的根据权利要求19所述的用于取回从无线网关和远离该无线网关的点之间的无线链路请求的HTTP网页的方法。
27.一种用于取回从无线网关和远离该无线网关的点之间的无线链路请求的HTTP网页的无线下载系统,所述无线下载系统包括用于开启所述无线网关和所述点之间的TCP链路的装置;用于在所述无线网关处从所述点接收HTTP URI的装置,其中所述HTTP URI与源服务器的所述HTTP网页相对应,并且在所述点处准备好所述HTTP URI之前,开启所述TCP链路;用于确定在所述HTTP URI中指示的域名的IP地址的装置;用于从所述IP地址取回所述网页的装置;以及用于把所述HTTP网页发送到所述点的装置,其中所述IP地址不被发送到所述点。
28.根据权利要求27所述的用于取回从无线网关和远离该无线网关的点之间的无线链路请求的HTTP网页的无线下载系统,进一步包括用于在所述TCP链路的一段不活动时期之后关闭所述TCP链路的装置。
29.一种用于下载因特网信息的无线系统,所述无线系统包括无线调制解调器,其具有返回链路缓冲器;无线网关;持久性数据链路,其连接所述无线调制解调器和所述无线网关,其中所述持久性数据链路具有专用于所述无线调制解调器的第一返回链路带宽,所述无线网关能够至少部分地基于所述返回链路缓冲器的负载,调节所述持久性数据链路以获得第二返回链路带宽,并且所述第一返回链路带宽小于所述第二返回链路带宽。
30.根据权利要求29所述的用于下载因特网信息的无线系统,其中所述持久性数据链路具有其带宽大于第一或第二返回链路带宽的前向链路。
31.根据权利要求29所述的用于下载因特网信息的无线系统,其中所述持久性数据链路具有由多个无线调制解调器共享的前向链路。
32.根据权利要求29所述的用于下载因特网信息的无线系统,其中所述持久性数据链路包括卫星。
33.根据权利要求29所述的用于下载因特网信息的无线系统,其中所述持久性数据链路包括蜂窝基站。
34.根据权利要求29所述的用于下载因特网信息的无线系统,其中所述持久性数据链路具有携带压缩的文本信息的返回链路。
35.根据权利要求29所述的用于下载因特网信息的无线系统,其中所述持久性数据链路具有携带压缩的HTTP URI的返回链路。
36.一种用于管理在无线调制解调器和无线网关之间传送因特网信息所使用的无线数据链路的方法,所述方法包括以下步骤利用返回链路连接所述无线调制解调器和所述无线网关,其中所述返回链路具有专用于所述无线调制解调器的第一带宽;确定在所述无线调制解调器中针对所述返回链路的信息储备尺寸;以及为所述返回链路分配额外带宽,其中所述返回链路被分派所述额外带宽并持续一段时间。
37.根据权利要求36所述的用于管理在无线调制解调器和无线网关之间传送因特网信息所使用的无线数据链路的方法,其中所述确定步骤包括确定所述储备尺寸已达到预定的阈值的步骤。
38.根据权利要求36所述的用于管理在无线调制解调器和无线网关之间传送因特网信息所使用的无线数据链路的方法,进一步包括向所述无线网关通知所述储备尺寸的步骤。
39.根据权利要求36所述的用于管理在无线调制解调器和无线网关之间传送因特网信息所使用的无线数据链路的方法,进一步包括向所述无线网关通知所述储备尺寸已达到预定的阈值的步骤。
40.根据权利要求36所述的用于管理在无线调制解调器和无线网关之间传送因特网信息所使用的无线数据链路的方法,进一步包括压缩用于所述返回链路的数据的步骤。
41.根据权利要求36所述的用于管理在无线调制解调器和无线网关之间传送因特网信息所使用的无线数据链路的方法,进一步包括压缩用于所述返回链路的HTTP信息的步骤。
42.根据权利要求36所述的用于管理在无线调制解调器和无线网关之间传送因特网信息所使用的无线数据链路的方法,进一步包括以下步骤确定数据是文本;并且基于所述确定步骤来压缩所述数据。
43.一种具有计算机可执行的指令的计算机可读介质,所述指令用于执行计算机可实现的根据权利要求36所述的用于管理在无线调制解调器和无线网关之间传送因特网信息所使用的无线数据链路的方法。
44.一种用于管理在无线调制解调器和无线网关之间传送因特网信息所使用的无线数据链路的宽带系统,所述宽带系统包括以下步骤用于利用返回链路连接所述无线调制解调器和所述无线网关的装置,其中所述返回链路具有专用于所述无线调制解调器的第一带宽;用于确定在所述无线调制解调器中针对所述返回链路的信息储备尺寸的装置;以及用于为所述返回链路分配额外带宽的装置,其中所述返回链路被分派所述额外带宽并持续一段时间。
45.根据权利要求44所述的用于管理在无线调制解调器和无线网关之间传送因特网信息所使用的无线数据链路的宽带系统,其中所述无线调制解调器也利用由多个无线调制解调器共享的前向链路与所述无线网关连接在一起。
46.根据权利要求44所述的用于管理在无线调制解调器和无线网关之间传送因特网信息所使用的无线数据链路的宽带系统,其中所述返回链路包括卫星。
47.根据权利要求44所述的用于管理在无线调制解调器和无线网关之间传送因特网信息所使用的无线数据链路的宽带系统,其中所述返回链路包括蜂窝基站。
48.根据权利要求44所述的用于管理在无线调制解调器和无线网关之间传送因特网信息所使用的无线数据链路的宽带系统,其中所述返回链路携带压缩的文本信息。
49.根据权利要求44所述的用于管理在无线调制解调器和无线网关之间传送因特网信息所使用的无线数据链路的宽带系统,其中所述返回链路传播时间的等待时间从不小于100ms。
50.根据权利要求44所述的用于管理在无线调制解调器和无线网关之间传送因特网信息所使用的无线数据链路的宽带系统,其中所述返回链路传播时间的等待时间从不小于200ms。
全文摘要
一种用于通过把调制解调器连接到网关的无线链路下载超文本传输协议(HTTP)网页的方法和装置。在网关和调制解调器之间开启一条传输控制协议(TCP)链路。调制解调器从网络浏览器接收到HTTP统一资源标识符(URI),其中该HTTP URI对应于源服务器的HTTP网页。在网络浏览器提供URI之前,配置好TCP链路。该HTTP URI被发送到网关。网关确定该HTTP URI中指示的域名的因特网协议(IP)地址。网关使用因特网将该HTTP网页取回,而调制解调器没有请求。该HTTP网页被发送到卫星调制解调器。用类似于访问该HTTP网页的方式来访问在该HTTP网页中引用的对象,但是这些对象也可以被并行访问。在一些情况下,根据调制解调器的负载为TCP链路调整带宽。
文档编号H04L12/56GK1957579SQ200580016343
公开日2007年5月2日 申请日期2005年3月22日 优先权日2004年3月22日
发明者柯克·史蒂文·泰勒, 里卡多·乔治·洛佩斯, 杰克·斯滕斯特罗 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1