用于具有移动性管理的移动数据通信的对象缓存方法及系统
技术领域
本发明涉及具有移动性管理的移动数据通信的优化领域。具体地说,本发明涉及使用用于具有移动性管理的移动数据通信的对象缓存的体验质量优化。
背景技术
无线移动数据终端(用户设备(UE))与连接的固定网络上的服务器进行通信。移动数据终端可以是可经由无线网络(其中所述网络提供移动性管理)发送数据的任何设备。网络实例包括:GPRS(通用分组无线业务)(2G)网络;WCDMA(宽带码分多址)(3G)网络;或LTE(长期演进)或WiMAX(全球互通微波存取)(4G)网络。本发明的背景及说明将就第三代移动电话网络、UMTS(统一移动电话系统)/WCDMA 进行说明。
参考图1,示意图显示UMTS架构100,其通过第三代合作计划(3GPP) 标准化。
无线设备(手机、膝上型计算机的3G网卡、平板设备等)在3GPP 术语中又称为用户设备(UE)101。其无线连接110至基站,该基站标记为基站(BS)102及在3GPP术语中又称为节点B(Node B)。约100个节点B经由微波或光纤120连接至无线电网络控制器(RNC)103,RNC103 向后连接至服务GPRS支持节点(SGSN)104(其支持数个RNC)及接着连接至网关GPRS支持节点(GGSN)105。最后,GGSN向后连接至运营商服务网络(OSN)106,OSN 106在互连点连接至因特网107。
在基站向后至GGSN之间的协议是各种3GPP特定协议,来自UE的 IP业务经由所述协议隧穿。在RNC 103及GGSN 105之间使用GPRS隧穿协议(GTP)130。在GGSN 105、OSN 106及因特网107之间使用标准因特网协议(IP)140。注意,OSN 106在3GPP术语中称为“Gi”参考点。
经由移动网络进行通信的一个主要问题是数据业务的快速增加。移动计算平台密度按指数速率增加。移动计算平台包括传统平台,诸如电话、平板及启用移动宽带的膝上型计算机,还有越来越多的启用移动数据的设备,诸如GPS系统、汽车、甚至移动医疗设备。随着数据成为移动网络运营商(MNO)递送的内容的主要部分,此指数性增加带给MNO许多新的挑战。具体地说,虽然很容易部署额外基站以增加可用的合计“空中接口”带宽,但从基站向后连接至RNC(通常实施为微波链路)却在带宽上受到约束。将其升级到光纤连接又相当昂贵。同样地,增加RNC及核心网络的可用带宽一样昂贵。
在移动设备上加载网页所花费的时间通常比从固定连接加载相同网页长很多。这部分是因为如上述的有限带宽及网络拥塞,但即使忽略这些因素,移动网络上的往返时间仍比固定链路上的长很多。此增加的往返延迟时间(RTT)有一些与UE至基站的无线电接口有关,及有一些与从基站经由微波回到核心网络的连接及核心网络本身有关。对空中接口所进行的修改正在改善空中接口延时:“演进型HSPA(高速分组存取)”(有时非正式称为3.5G)及“长期演进”(非正式称为4G),但穿过微波及核心的延时仍将存在。
背景-移动因特网优化
解决此问题的一个技术是从移动电话协议“分出”数据业务并使其优化。数家公司销售设计为从网络分出数据业务的设备。实例包括Stoke Inc. 的移动数据卸除(MDO)产品及Continuous Computing销售的因特网卸除工具。这些实例的每一者均在RNC处将业务自3GPP协议分出。正出现类似技术以在基站分出IP业务。
一旦自网络分出IP业务,即可在RNC处或在基站中将优化平台放在移动电话网络的边缘。此平台可托管各种优化及其他应用。
背景-UMTS移动性管理
参考图2A至2C,一系列示意方块图示出用户设备(UE)201在网络边缘移动时的移动性管理网络架构200。附图显示四个名为节点B的基站 211-214。基站子集211-212、213-214与个体RNC 221、222通信。此通信称为在基站及电话公司网络核心之间的回程链路231、232。RNC 221、222 与SGSN 241通信,SGSN 241使用连接至因特网260的GGSN 251,因特网260包括多个服务器,诸如显示的服务器261。服务器261具有TCP(传输控制协议)套接字262,在用户想要从服务器261访问数据时,TCP套接字262与UE 201处的TCP套接字202通信。在图2A至2C中,以笔直实线箭头显示数据传输,及将信令控制显示为弯曲的虚线箭头。
如上所述,UMTS系统产生从GGSN 251至用户设备(UE)201的隧道270。在图2A中,UE201正在与基站节点B 1211进行通信,因为用户与此基站最近。显示用户业务的IP隧道270。在图2A至2C为例示目的显示IP隧道270,及IP隧道270实际上穿过中间组件,诸如图2A中的RNC 221及SGSN 241。
随着UE 201开始从一个小区移动至下一个小区,RNC 221检测到UE 201的移动及开始移动性事件,并配合GSN 241、251(GPRS支持节点) 运作以随着UE 201从基站211移动至基站212而移动隧道270。
图2B显示UE 201移动至基站节点B 2212及隧道270对应地移动。
图2C显示随着UE 201从具有第一RNC 1221的基站移动至具有第二 RNC 2222的基站且隧道270相应地移动,UE 201移动至基站节点B 3213 造成RNC之间的移动性。
重点在于UMTS系统维持隧道270跨移动性事件的完整性。流动通过隧道270的TCP连接未被中断。可能的是,可在移动性事件期间丢弃一个或多个IP分组,但TCP设计为在有损链路上操作,因而很容易可恢复此分组丢弃。
随着UE继续移动至由新的RNC 222服务的区域,将隧道270无缝地从一个RNC 221切换至另一个RNC 222。
在基站中使用对象缓存的业务优化解决方案
存在周知的技术将缓存http正向代理布置在基站中及从此代理提供内容。因为可在因特网上采取回到Gi或服务器的往返行程来缓存对象,故此法大幅减少所缓存对象的页面加载时间。这些往返行程的每一者可花费100ms或100ms以上,其中可节省60ms以上。由于典型页面可含有数十个对象,此延时的累积效应将很惊人。
在基站仅仅新增缓存正向http代理的问题是其对移动性管理的冲击。 UE具有终止于基站的TCP连接。如果UE移动至另一个基站,则极难维持在数据业务不再从中行进的网络部分具有状态的TCP连接。文献中存在一些解决方案,其谈及从UE正在使用的基站将这些连接的业务转发回到 TCP连接终止的基站,但此方案具有若干缺点。
●其需要在基站之间的覆盖网络以使业务能够从一个基站转发至另一个基站。管理此覆盖是很困难的。
●其耗尽额外带宽以在基站之间转发业务及潜在地增加延时。
其余问题
考虑所有现有技术,并无解决方案可在不影响移动性的情况下大幅减少由基站处的对象缓存提供的页面加载时间。
发明内容
根据本发明的第一方面,提供一种具有移动数据通信的移动性管理的用于对象缓存的方法,所述方法包括:在基站处拦截和监听在用户设备与内容服务器之间的数据通信而不终止通信;在所述基站处使用所监听的数据通信实施对象缓存;在网络中的对象缓存服务器处实施对象缓存,其中所述对象缓存服务器代理从所述用户设备至所述内容服务器的通信;及维持所述基站处的对象缓存与所述对象缓存服务器处的对象缓存之间的同步。
根据本发明的第二方面,提供一种具有移动数据通信的移动性管理的用于对象缓存的系统,所述系统包括:处理器;网络,其包含一个或多个基站,其中所述网络支持来往于用户设备的数据传输的移动性管理;在基站处的对象缓存组件,其用于拦截和监听在用户设备与内容服务器之间的数据通信而不终止通信;在所述网络中的对象缓存服务器,其中所述对象缓存服务器代理从所述用户设备至所述内容服务器的通信;及在所述基站和对象缓存服务器处的同步化组件,其用于维持所述基站处的对象缓存与所述对象缓存服务器处的对象缓存之间的同步。
根据本发明的第三方面,提供一种计算机程序,其存储于计算机可读介质上并可载入数字计算机的内部存储器,所述计算机程序包括软件代码部分,当所述程序在计算机上运行时,所述软件代码部分用于执行本发明的任何第一方面的方法。
附图说明
现在将仅通过实例的方式参考在附图中例示的优选实施例描述本发明,这些附图是:
图1是显示根据现有技术的其中可实施本发明的一个优选实施例的移动网络架构的示意图;
图2A至2C是显示根据现有技术的其中可实施本发明的一个优选实施例的跨移动网络的移动管理的示意方块图;
图3是根据本发明的一个优选实施例的系统的方块图;
图4是根据现有技术的其中可实施本发明的一个优选实施例的计算机系统的方块图;
图5是根据本发明的一个优选实施例的方法的一方面的流程图;
图6是根据本发明的一个优选实施例的方法的一方面的流程图;
图7是根据本发明的一个优选实施例的方法的一方面的流程图;
图8是根据本发明的一个优选实施例的方法的一方面的流程图;
图9是根据本发明的一个优选实施例的方法的一方面的流程图。
应明白,为了例示简单清楚之故,图中显示的组件未必按比例绘制。例如,为了清楚之故,一些组件的尺寸可能相对于其他组件而被夸大。此外,在认为适当处,可在诸图中重复参考数字以指示对应或类似特征。
具体实施方式
在以下详细说明中,将提及大量特定细节以期全面了解本发明。然而,本领域技术人员应明白,在没有以上特定细节的情况下,亦可实施本发明。在其他例子中,未详细说明公知的方法、程序、及组件以免模糊本发明的重点。
描述了用于减少在无线移动数据终端(用户设备(UE))从服务器取回数据对象时所见的延时的解决方案。
减少延时是移动宽带提供者的主要目标,因为其对终端用户感受到的服务质量具有极大的影响。终端用户希望立即加载信息,但目前网络的实情是,即使经由最先进的技术,载入网页仍可花费数百毫秒或甚至若干秒。
所描述的方法和系统用于优化在无线移动数据终端(用户设备(UE)) 及在连接的固定网络上的服务器之间的通信。移动数据终端可以是可经由无线网络(其中所述网络提供移动性管理)发送数据的任何设备。实例网络包括GPRS(2G)网络、WCDMA(3G)网络、或LTE或WiMAX(4G) 网络。然而,出于此描述的目的,将使用3G UMTS/WCDMA网络。
在UE使用HTTP(超文本传输协议)协议取回网页对象的实施例中描述解决方案,但这些概念亦适用于其他协议,诸如FTP(文件传输协议) 或RTP(实时传输协议)。
所描述的解决方案提出提供相同节省延时的方式,其通过以下方式实现:将对象缓存布置在基站处同时亦提供移动性。也就是说,如果UE在由基站缓存提供内容的同时移动至新的位置,则UE继续接收内容而没有中断。即使在UE已经移动至尚未针对此解决方案进行修改的基站时,仍保留此能力。另外,此技术可与有效改进其缓存能力的字节缓存相结合。
对象缓存服务器可在称为“Gi”的参考点插入网络。此服务器称为“OCGi”(对象缓存Gi)。在Gi,不再隧穿业务。Gi很像习知的WAN,这是使互连点与因特网进行连接之处。此OCGi组件含有HTTP正向缓存代理,其具有一些将进一步说明的额外功能性。
部分或所有基站扩增有分出及对象缓存组件。分出本身的细节由于是现有技术,故不加以说明。基站处的分出及对象缓存组件称为“OCNB” (对象缓存节点B)。OCNB含有缓存,但是如将说明的,其操作方式与传统正向缓存代理略微不同。
参考图3,方块图显示所描述系统300的一个实施例。
用户设备(UE)301在多个基站(在此实例中仅显示两个)311-312 之间的网络边缘移动,在3G术语中,这些基站称为节点B。UE 301具有传输协议套接字302,用于在因特网360上与服务器361的套接字362进行数据传输。
基站311-312与RNC 321通信。此通信称为在基站及电话公司网络核心之间的回程链路331。RNC 321与SGSN 341通信,SGSN 341又与GGSN 351通信。
所描述的系统在网络连接至互连点与因特网360的点处包括对象缓存服务器380,其在此称为“对象缓存Gi(OCGI)”。对象缓存服务器380 作为具有额外功能性的HTTP正向缓存代理工作。对象缓存服务器380包括传输协议套接字381、382及对象缓存结构383。
对象缓存服务器380亦可包括同步化组件384,用于将其对象缓存结构383与基站312的对象缓存组件390的对象缓存结构392同步化。对象缓存服务器380亦可包括检测组件385,用于检测用户设备从一基站小区的移动及接管提供请求的对象。
因特网360提供与多个内容服务器(诸如所显示的内容服务器361) 的通信。内容服务器361具有传输协议套接字362。
在此实施例中,基站之一312包括对象缓存组件390,其称为对象缓存节点B(OCNB)且包括分出及对象缓存功能性以优化数据传输。对象缓存组件390包括对象缓存结构392。
在基站312处的对象缓存组件390的一个实施例包括用于分出业务的分出组件391,对象缓存组件390包括伪套接字398,其仿真对象缓存服务器380中真实套接字的行为及状态。对象缓存组件390亦包括监听组件 393,用于监听来往于UE 301的业务。其亦包括缓存查找组件397,用于判定所监听的请求或响应是否在基站对象缓存组件390的对象缓存392中进行缓存。其亦包括仿真组件394,用于生成仿真对象缓存服务器380的响应的响应。
对象缓存组件390亦可包括同步化组件395,用于将其对象缓存392 与对象缓存服务器380的对象缓存383同步化。其可另外包括通知组件 396,用于将在基站312的对象缓存组件390处的缓存命中通知发送至对象缓存服务器380。
参考图4,实施本发明诸方面的例示性系统包括数据处理系统400,其适于存储及/或执行程序代码且包括至少一个处理器401,至少一个处理器 401通过总线系统403直接或间接耦合至存储器组件。存储器组件包括:在实际执行程序代码期间所用的本地存储器、大容量存储设备、及高速缓冲存储器,高速缓冲存储器暂时存储至少某个程序代码,以减少执行期间必须自大容量存储设备取回程序代码的次数。
存储器组件可包括系统存储器402,其形式为只读存储器(ROM)404 及随机存取存储器(RAM)405。基本输入/输出系统(BIOS)406可存储在ROM 404中。系统软件407(包括操作系统软件408)可存储在RAM 405 中。软件应用410亦可存储在RAM 405中。
系统400亦可包括主要存储构件411(诸如磁性硬盘驱动器)及次要存储构件412(诸如磁盘驱动器及光盘驱动器)。诸驱动器及其相关联计算机可读介质提供计算机可执行指令、数据结构、程序模块及用于系统400 的其他数据的非易失性存储。软件应用可存储在主要及次要存储构件411、 412以及系统存储器402上。
计算系统400可经由网络适配器416使用到一个或多个远程计算机的逻辑连接在网络环境中操作。
输入/输出设备413可直接或通过中介I/O控制器耦合至系统。用户可通过诸如键盘、指点设备之类的输入设备或其他输入设备(例如,麦克风、游戏杆、电玩控制板、卫星接收碟、扫描仪等),将命令及信息输入系统 400中。输出设备可包括扬声器、打印机等。显示设备414亦经由诸如视频适配器415之类的接口连接至系统总线403。
参考图5,流程图500显示所描述方法的一个实施例。所述方法包括在基站处拦截和监听501网络上在用户设备及内容服务器之间的数据通信。在基站处使用所监听的通信实施502对象缓存以优化数据传输。亦在网络中提供的对象缓存服务器处实施503对象缓存。对象缓存服务器代理从用户设备至内容服务器的通信。维持504基站处的对象缓存与服务器处的对象缓存之间的同步。
现在描述一种实例状况以更详细地示出所描述的解决方案。实例状况是其中UE在UMTS网络中使用HTTP协议取回网页对象。
参考图6,描述方法600的一方面的一个实例实施例。UE建立601与网络的隧道。UE及UMTS网络可在UE及Gi之间建立无线承载及隧道。注意,此操作通常在不同请求中再三使用的相同隧道下预先发生。
UE可能需要建立602新的TCP连接(经由隧道)至其想要从中取回网页对象的内容服务器的HTTP端口。在OCGi中代理603此连接。
创建此TCP连接涉及无线电网络上针对SYN-SYN-ACK TCP建立阶段的一个往返行程延迟;然而,应注意,HTTP协议通常在许多请求上使单一TCP连接保持开放,因此,其假设TCP连接在许多情况中将已存在且因而没有按请求的往返行程。
UE以正常方式经由其TCP连接进行604网页对象的HTTP GET请求。承载TCP连接的隧道(HTTP GET请求在其上流动)可利用现有技术已知的分出功能重新引导605至基站(节点B)处的OCNB工具。
在OCNB工具中,TCP连接未被终止或代理,而只是被监听606。HTTP GET请求流动通过隧道至核心,该核心是TCP连接在OCGi中终止之处。
参考图7,描述在OCNB处实施的方法700的一方面的一个实例实施例。OCNB监听701来自UE的请求。OCNB使用所监听的HTTP请求以在OCNB本地缓存中执行702查找。接下来发生的操作取决于是存在缓存命中还是缓存未命中703。
如果OCNB中存在缓存未命中,则OCNB继续监视709TCP连接及在响应从OCGi至UE未经改变的流经OCNB时监听响应。更详细地解释此监听:当响应到达时,OCNB监听响应的内容及检查响应以判定所述响应是否可缓存。如果所述响应可缓存,则OCNB将响应放入710其缓存并允许其未经改变的流至UE。请求是否可缓存的判定包括逻辑,该逻辑用于确保如果尚未在OCGi处缓存事物,则该事物也未在OCNB处缓存。
在OCNB处的缓存命中意味着当OCNB监听请求时,其可确定OCNB 在其本地缓存中具有服务所请求对象所需的数据。此方案亦保证完全相同的对象存在于OCGi缓存中。从缓存取回704请求的对象。
此外,由于将OCNB及OCGi的设计同步化,故OCNB可精确知道 OCGi将针对响应发送的HTTP响应的每个细节。此知识在每个细节上可为精确地正确,使得OCNB能够创建包括OCGi将创建的所有标头的相同字节序列。由于OCNB亦监视TCP连接,故其亦知道OCGi处的TCP状态,并可预测将用于发送响应的TCP序列号。以此方式,OCNB可使其伪套接字保持与OCGi中的真实套接字同步化。
OCNB创建705响应,作为其知道OCGi在OCGi处理请求时将创建的TCP分组序列。OCNB通过使其伪TCP套接字模仿OCGi中的真实 TCP套接字,在朝向UE的方向将OCGi所将创建的TCP分组序列插入 TCP连接,发送706响应给UE。由于OCNB处的伪套接字保持与OCGi 处的真实套接字同步化,从伪套接字发送的分组在各方面将等同于从 OCGi发送的分组。
OCNB可在请求已达到OCGi之前执行此任务。随着TCP分组从OCNB流向UE,UE将开始使用含有被确认的序号的TCP ACK分组确认这些分组。这些ACK分组由OCNB监听707以更新其伪套接字的状态,但并不拦截这些ACK分组。这些ACK分组流回OCGi,所述分组在此用于维持OCGi中TCP套接字的状态,使其保持与数据传输同步化。这在以下显示的移动性的情况中很重要。
注意,这意味着OCGi可看到其尚未生成的分组的确认。必须修改 OCGi处的TCP堆栈以识别此可能性。
当在OCNB处发生缓存命中时,OCNB发送708通知给OCGi,以指示这是缓存命中。可以多种方式发送通知。一些实例如下:
●修改来自UE的HTTP GET以包括内容被缓存的通知。这需要 HTTP GET被延迟达缓存查找的持续时间。
●OCNB可经由UDP将带外消息发送至公知的端口及IP地址并且此消息在OCGi处被拦截。此方式的优点是不需要延迟HTTP GET请求。
参考图8,描述在核心的方法800的一方面的一个实例实施例。OCGi 正向缓存代理接收801请求。OCGi代理802连接及开始以正常方式处理 HTTP正向缓存代理的请求。
判定803请求的对象是否在OCGi处的对象缓存中。如果对象在缓存中且是新的,则OCGi准备从OCGi的缓存提供804对象。
如果对象不在缓存中或不是新的,则从原始内容服务器取回807对象,且稍后将此对象新增808至OCGi及OCNB处的缓存。在此情况中,可保证请求在OCNB亦是缓存未命中。以正向缓存代理处理缓存未命中的正常方式处理请求。
在处理OCGi处的缓存命中时,OCGi可从OCNB接收805此请求在 OCNB中是缓存命中的指示。如果接收此指示,OCGi并不提供809内容,而是仅仅维护镜像连接状态的TCP状态机。OCGi不发送分组,但接收 OCNB代表其发送的分组的ACK。
如果OCGi未从OCNB接收已有OCNB缓存命中的指示,则OCGi 开始提供806对象。这有以下三个可能的原因:
●没有OCNB存在于数据路径中。
●有OCNB在数据路径中,但其有缓存未命中。
●有OCNB在数据路径中且有缓存命中,但通知尚未到达。在此情况中,OCGi将在接收OCNB的缓存命中的指示之前开始提供分组。 OCGi可生成复制在OCNB处生成的分组的一些分组。它们都将流至UE,但这并不是问题。只要分组相同,TCP允许重复分组。最后,OCGi将接收通知及停止发送分组。
参考图9,描述形式为移动性事件的方法900的一方面的一个实例实施例。
在经由TCP提供对象的某个点处,UE可移动901至新的基站。
OCGi可检测902UE已移动至新的基站。此检测可以数个方式发生。以下是三个实例:
●由网络通知OCGi。
●OCGi维持与OCNB的心跳(heartbeat)。
●OCGi发送由OCNB移除的UDP数据报至UE。如果OCNB不存在,则UE将接收这些UDP数据报及生成ICMP端口无法到达的错误。 OCGi注意到其尚未接收UE对所发送分组的确认,并在假设没有OCNB 的情况下重新传输。
当OCGi检测到UE已移动至新的基站时,OCGi接管903提供对象。 OCGI可以这么做是因为其具有TCP连接的最新状态。OCGI只需要在 OCNB停止发送分组的点处开始发送分组。
可选地,如果UE移动至具有OCNB的新基站,则OCGi可在带外与 OCNB进行通信以安排让新的OCNB接管904对象的提供。这么做将需要连同当前偏移及TCP信息一起传送原始请求的细节。
注意,如果新的基站具有OCNB但对象不在其缓存中,则这将以没有 OCNB的基站的相同方式来处理。
缓存一致性
基站对象缓存组件(OCNB)处的缓存必须与对象缓存服务器(OCGi) 处的缓存一致。此一致性可保证如果在OCNB处缓存对象,则在OCGi 处缓存完全相同的对象,并且OCGi不需要回到起源内容服务器(如果缓存的对象过期)。
如果OCGi具有对象的不同版本或如果其需要回到起源内容服务器以取回对象,则OCNB生成的TCP分组序列有可能与OCGi生成的TCP分组序列不同。
可通过以下操作实现此一致性:
●每个OCNB缓存可为固定大小。
●OCGi处的缓存可等于所有OCNB缓存大小的总和。
●OCGi可分割其缓存及单独管理针对系统中存在的每个OCNB 缓存的已缓存对象。
●在以下情况时,OCNB及OCGi中的缓存逻辑及参数可相同:
·在缓存响应时;
·当超过缓存大小时的逐出策略;
·当对象被视为过期时。
组合后的对象缓存和字节缓存
所描述的方法和系统可与基站及Gi之间的字节缓存相组合。
可在Gi的中央拦截服务器与基站子集中的一组拦截功能之间实施字节缓存。该实现拦截但不终止传输协议连接。其在传输协议连接流经具有优化功能的基站时优化传输协议连接。如果UE移动至另一具有优化功能的基站,则继续优化。如果UE移动至没有优化功能的基站,则传输协议连接不受影响但未被优化。
字节缓存服务器可在称为“Gi”的参考点处插入UMTS网络。此服务器可称为“BCGi”(字节缓存Gi)并可与所描述的对象缓存服务器(OCGi) 相结合。此BCGi组件作为常规透明TCP代理操作但具有额外字节缓存行为。
可在与所描述的基站对象缓存组件(OCNB)结合的一个或多个基站处提供字节缓存组件(称为“BCNB”(字节缓存节点B))。与上述OCNB 功能一样,只要有关用户平面数据,BCNB功能如“打线凸块(bump in the wire)”般操作。其并非代理。与OCNB一样,在UE及核心之间的传输协议连接未被终止,而是有时由BCNB所操纵,有如BCNB将其终止那样。
UE可以正常方式与网络建立隧道。UE在其想要从中接收数据的内容服务器的端口处进行TCP连接。此TCP连接可由BCGi透明地代理。来自服务器端口的响应可往回流经代理且可往回传播至UE。BCGi完全不更改TCP流但的确开始检查数据、计算Rabin指纹及在字节缓存中存储以它们的SHAT散列为关键字的文件块。在此未完整描述字节缓存,因为这在现有技术参考文献中已充分说明。可以说BCGi开始填充标准字节缓存结构,但在UE移动至具有BCNB功能的基站之前没有任何动作。
BCNB可通过生成UE不会生成及BCGi会拦截的标记IP分组,发信号给BCGi,告知其现已存在于数据路径中。当BCGi得知BCN存在于数据路径中时,BCGi可停止发送正常TCP业务,并反而可开始将针对此业务的“字节缓存记录”(BCR)发送至BCNB。精确地说,通过GTP隧道发送这些记录,有如这些记录是要发送至UE,但并不在TCP连接内部发送。而是经由UDP发送至BCGi识别的端口。事实上有许多方式可以发送这些记录,至特殊端口的UDP即是一个实例。
BCR可含有:
●所有TCP元数据,以允许在BCGi重新创建与BCR有关的TCP 分组;
●TCP标头的起始32位序号;
●字节缓存令牌,其基本上是代表数据块(通常大小大约8K)的关键字。
在BCNB处,可创建伪TCP套接字。此伪套接字行为等同于针对 OCNB描述的伪套接字。
BCNB可从BCGi接收字节缓存令牌并可使用这些令牌重新组成原始数据。重新组成原始数据的细节与字节缓存有关。简单地说,BCNB处的字节缓存查找其缓存中的令牌以寻找对应的完整数据及重建TCP分组。重要的是BCNB不需要对数据执行昂贵的Rabin指纹法运算,这些全部可在 BCGi处进行。BCNB只要访问有关令牌的数据及重新创建TCP分组。 BCNB使用BCR中的数据在从字节缓存取回的数据周围重新组成TCP帧。
重要的是注意,由于TCP段中从BCR重新创建的数据完全相同,如果BCNB不存在将由BCGi逐字节发送数据,伪套接字中的TCP状态精确地保持与BCGi同步化。
还有,注意,字节缓存不需要完全以逐个TCP段的基础进行操作。 BCR可含有匹配数个段的TCP数据的令牌。事实上,字节缓存边界不必落在段边界上。
将对象缓存和字节缓存相结合提供允许部分缓存命中的进一步好处。这将允许以更有效的方式管理OCNB处的有限大小的缓存。
在此情况中,OCNB缓存将持有以HTTP请求细节为关键字的字节缓存令牌序列。HTTP请求的初始查找将产生字节缓存令牌序列。
字节缓存将位于此序列下及可持有一些或所有这些令牌的数据。在一些令牌的数据不在缓存中的情况中,数据将被取回。本领域技术人员将明白,在字节缓存实现与对象缓存实现之间,在OCNB将数据插入TCP流的过程完全相同。在任一情况中,节点B处的伪套接字都发出真实TCP 套接字将产生的TCP分组序列。
所描述的特定优化如下:
●减少在无线电接入网络(RAN)及核心网络的回程上发送的数据量。
●明显减少UE所经历的往返时间及因而明显减少加载网页的时间。
●不需要对UE硬件或软件进行任何修改,也不需要对服务器进行修改。
●不会妨碍移动性管理。
所属技术领域的技术人员知道,本发明的各方面可以体现为系统、方法、计算机程序产品或计算机程序。因此,本发明的各方面可以具体实现为以下形式,即,可以是完全的硬件、完全的软件(包括固件、驻留软件、微代码等)、或者本文一般称为“电路”、“模块”或“系统”的软件与硬件方面的组合。此外,本发明的各方面还可以采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,该介质中包含计算机可读程序代码。
可以使用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质,计算机可读存储介质例如可以是—但不限于—电的、磁的、光的、电磁的、红外线的、或半导体的系统、装置、器件、或前述各项的任何适当的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括以下:有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或前述各项的任何适当的组合。在本文语境中,计算机可读存储介质可以是任何含有或存储供指令执行系统、装置或器件使用的或与指令执行系统、装置或器件相联系的程序的有形介质。
计算机可读信号介质可以包括例如在基带中或作为载波的一部分传播的带有计算机可读程序代码的数据信号。这样一种传播信号可以采取任何适当的形式,包括—但不限于—电磁的、光的或其任何适当的组合。计算机可读信号介质可以是不同于计算机可读存储介质的、可以传达、传播或传输供指令执行系统、装置或器件使用的或与指令执行系统、装置或器件相联系的程序的任何一种计算机可读介质。
包含在计算机可读介质中的程序代码可以采用任何适当的介质传输,包括-但不限于-无线、有线、光缆、射频等等、或上述各项的任何适当的组合。
用于执行本发明的各方面的操作的计算机程序码,可以以一种或多种程序设计语言的任何组合来编写,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++之类,还包括常规的过程式程序设计语言—诸如“C”程序设计语言或类似的程序设计语言。程序码可以完全地在用户的计算上执行、部分地在用户的计算机上执行、作为一个独立的软件包执行、部分在用户的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户的计算机,或者,可以(例如利用因特网服务提供商来通过因特网)连接到外部计算机。Java和所有基于Java的商标和徽标是Oracle和/或其子公司的商标或注册商标。
以下参照按照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。要明白的是,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得通过计算机或其它可编程数据处理装置的处理器执行的这些指令,产生实现流程图和/ 或框图中的方框中规定的功能/操作的装置。
也可以将这些计算机程序指令存储在能指令计算机或其它可编程数据处理装置或其他设备以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令产生一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令的制造品。
也可以将计算机程序指令加载到计算机、其它可编程数据处理装置或其他设备上,使得在计算机、其它可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而在计算机或其它可编程装置上执行的指令就提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
为避免歧义,如此处在说明书和权利要求书中使用的术语“包括”不应被解释为“仅由…构成”。