用于分割传输控制协议流控制管理的方法和数据处理系统的制作方法

文档序号:8002964阅读:170来源:国知局
用于分割传输控制协议流控制管理的方法和数据处理系统的制作方法
【专利摘要】本发明涉及一种用于分割传输控制协议流控制管理的方法和数据处理系统。本发明的实施例提供了一种用于蜂窝宽带网络中的分割传输控制协议(TCP)流控制管理的方法、系统和计算机程序产品。在本发明的一个实施例中,提供一种用于蜂窝宽带网络中的分割TCP流控制管理的方法。所述方法包括首先确定作为蜂窝宽带网络的基站中的数据流的一部分接收的分组的上下文,然后选择端到端TCP连接或分割TCP连接以支持所述数据流。之后,使用所选择的连接来路由所述数据流。
【专利说明】用于分割传输控制协议流控制管理的方法和数据处理系统
【技术领域】
[0001]本发明涉及TCP连接管理,更具体地说,涉及蜂窝宽带网络中的TCP连接管理。
【背景技术】
[0002]TCP是调节基于网际协议(IP)的网络中的两个联网端点之间的分组流的传输协议。TCP旨在使两个联网端点可以调节它们之间的分组流,并且可以根据网络中的同期阻塞调整分组流而不涉及中间网络节点。因此,TCP已证明非常适合于各种网络和链路特征。但是,TCP也有自身的缺点。具体而言,在特定网络条件下,TCP流控制可导致整体分组吞吐量远未达到最佳水平。对于网络的无线链路而言,情况尤其如此,其中由于网络的无线部分较差的无线传播特征,链路可能发生严重且相关的分组丢失。
[0003]现有解决TCP流控制次优性的方法分为三类:(a)链路层协议,这些协议使用包括转发错误校正和分组重传的各种技术防止传输层发生分组丢失现象,(b)分割TCP协议(split TCP protocol),其中整个端到端连接被分为两部分:一部分用于无线段,另一部分用于有线段(假设无线段在网络的一端);以及(c)端到端协议,这些协议修改TCP,以使修改后的传输协议专门适应无线链路的特征。
[0004]这三种极为不同的解决方案类型的出现是因为在不同网络中遇到不同的特征。这三种解决方案中的每一种都具有公知的缺点。例如,链路层协议可防止传输层发生分组丢失现象,但代价是需要较长的往返时间。因此,它可能在实际链路条件状况方面误导传输层。在此方面,即使链路层已经重新传输了丢失的分组,但是由于重复确认,传输层可能无谓地重新传输丢失的分组。同样,分割TCP协议分割端到端语义,并且不会在用户的移动导致分割TCP代理移出网络分组流时无声地失效。最后,端到端协议需要更改两个端点的TCP堆栈,并且单个端到端协议无法始终有效地处理在混合无线网络中遇到的各种联网状况。
[0005]要指出的是,分割TCP协议一般用于解决具有较长往返时间的TCP问题。典型的系统例如使用分割TCP改善卫星链路上的TCP性能。分割TCP通过将端到端连接分为多个连接并使用不同的参数跨不同的段(leg)传输数据来工作。端系统使用标准的未修改TCP,并且无需了解其中间是否存在代理。而是,分割TCP拦截来自端系统的TCP连接并终止它们。这允许端系统在未修改的情况下运行,并且可以克服端系统上针对卫星通信设置得太低的TCP窗口大小的某些问题。即使这样,分割TCP在无线环境中仍有具有一些缺点。分割TCP协议在无线环境中的主要缺点是:(a)不遵循端到端语义;(b)很难在基站或无线接入点之间切换(需要传输TCP状态);(c)需要基站中的更改;以及(d)无线跃点可能需要新的传输协议来实现最佳性能。

【发明内容】

[0006]本发明的实施例解决了本领域中有关TCP流控制管理的缺陷并提供了新颖且非显而易见的方法、系统和计算机程序产品来实现蜂窝宽带或其它无线网络中的分割TCP流控制管理。在本发明的一个实施例中,提供一种用于蜂窝宽带网络中的分割TCP流控制管理的方法。所述方法包括首先确定作为蜂窝宽带网络的基站中的数据流的一部分接收的分组的上下文,然后选择端到端TCP连接或分割TCP连接以支持所述数据流。之后,使用所选择的连接来路由所述数据流。
[0007]在所述实施例的一方面,如果根据所接收的第一分组不能确定上下文,则系统将自动选择端到端TCP连接,同时继续监视和缓冲所有入站分组,直到(a)识别到将从分割TCP连接中获益的新上下文并且选择分割TCP连接,或者(b)识别到的新上下文不能从分割TCP连接中获益,所有缓冲的分组被丢弃并且端到端TCP连接继续。
[0008]在所述实施例的一方面,使用深度分组检查确定所述上下文。在所述实施例的另一方面,在深度分组检查之前,初始使用浅度分组检查确定所述上下文,如果使用浅度分组检查确定所述上下文,则可以避免深度分组检查。但是,如果浅度分组检查无法确定所述上下文,则随后可以使用多个顺序分组的深度分组检查确定所述数据流的上下文。通过这种方式,借助识别网络流的上下文,可以避免分割TCP连接的不期望的副作用。例如,当网络流的上下文要求遵循端到端语义时,可以选择端到端TCP连接,但是,当可使用分割TCP协议实现优化并且不需要端到端语义时,可以通过分割TCP代理使用分割TCP连接。
[0009]在所述实施例的一方面,如果发生上下文切换,要求系统在初始选择端到端连接的情况下,根据深度分组检查选择分割TCP连接,则通过在TCP堆栈中创建两个与网络中的端到端流同步的项来启动分割TCP连接。
[0010]在本发明的另一实施例中,可针对分割TCP流控制管理配置蜂窝宽带数据处理系统。所述系统可以包括不同的基站,每个基站位于蜂窝宽带网络的相应不同的蜂窝站中。所述系统还可以包括不同的主机计算系统,每个主机计算系统布置在所述基站中的相应不同基站内,并且每个主机计算系统包括具有至少一个处理器和存储器的至少一个计算机。所述系统还可以包括不同的边缘路由模块,每个边缘路由模块在所述主机计算系统中的相应不同主机计算系统内执行,并在不同TCP连接上将数据流路由到不同的指定内容服务器。最后,所述系统可以包括不同的分割TCP选择模块,每个分割TCP选择模块耦合到所述边缘路由模块中的一个不同边缘路由模块。所述分割TCP选择模块中的每个分割TCP选择模块包括程序代码,所述程序代码被使能确定作为数据流的一部分接收的分组的上下文,选择从包括端到端TCP连接和分割TCP连接的组中选择的连接以支持所述数据流,以及引导所述边缘路由模块中的一个耦合的边缘路由模块使用所选择的连接来路由所述数据流。
[0011]本发明的其它方面将部分地在下面的描述中列出,部分地通过所述描述变得显而易见,或者可以通过实践本发明而获知。本发明的各方面通过所附权利要求中具体列出的元素和组合来实现和获取。将理解,上面的一般描述和下面的详细描述都只是示例性和解释性的,并非对所要求保护的发明进行限制。
【专利附图】

【附图说明】
[0012]在本说明书中纳入并构成其一部分的附图示出本发明的实施例,它们结合说明书共同解释本发明的原理。此处示出的实施例当前是优选的,但是将理解,本发明并不限于所示的精确配置和手段,这些附图是:
[0013]图1是用于蜂窝宽带网络中的分割TCP流控制管理的过程的图示;
[0014]图2是针对分割TCP流控制管理配置的蜂窝宽带数据处理系统的示意图;[0015]图3是示出用于蜂窝宽带网络中的分割TCP流控制管理的过程的流程图;以及
[0016]图4是示出用于在分割TCP连接和端到端连接之间进行选择的过程的流程图。
【具体实施方式】
[0017]本发明的实施例提供蜂窝宽带网络中的分割TCP流控制管理。根据本发明的一个实施例,可在蜂窝宽带网络内的基站中接收分组。可以对分组执行检查以判定底层应用是否需要分割TCP未保留的端到端语义或其它特性。例如,如果客户机被确定为是移动设备,并且如果在TCP连接的寿命期间,预期客户机将移动到其中分割TCP无法重定向和处理客户机业务的转发路径,则必须保留端到端语义。
[0018]如果不需要分割TCP未保留的端到端语义和其它特性,则可使用分割TCP将分组路由到目标端点,否则,可以使用端到端TCP连接将分组路由到端点。通过这种方式,可以仅在与接收的分组关联的底层应用不需要分割TCP未保留的端到端语义和其它特性的情况下,采用分割TCP。
[0019]在进一步的说明中,图1是用于蜂窝宽带网络中的分割TCP流控制管理的过程的图示。如图1所示,移动设备可以参与具有不同蜂窝站170A、170B的蜂窝移动网络中的语音和数据通信,这些蜂窝站(cell site)包括通过到计算机通信网络的回程链接彼此耦合的不同蜂窝塔(cell tower)110A、110B。每个蜂窝站170A、170B可以包括边缘服务器160,该服务器对从移动设备120接收的针对内容服务器190的内容的数据请求执行边缘处理,另外还可以包括高速缓存150,当高速缓存150中存在所请求的内容时,可以从中提供所请求的内容,从而无需内容服务器190在端到端TCP连接130B上对相应的数据请求做出响应。
[0020]要指出的是,分割TCP选择逻辑300可以与边缘服务器160以及代理服务器140耦合,通过代理服务器140,可以建立和管理到内容服务器190的分割TCP连接130A。分割TCP选择逻辑300可以接收蜂窝数据内的数据分组100,并且可以确定分组100的上下文。当需要确定分组10的上下文时,分割TCP选择逻辑300可以提交分组100以进行深度分组检查。利用该上下文,分割TCP选择逻辑300可以判定分组100是否为能够使用分割TCP连接130A在移动设备120与内容服务器190之间最佳传输的数据流的一部分(例如,如在无状态计算会话或在将媒体从内容服务器190流式传输到移动设备120期间那样),或者判定是否使用端到端TCP连接在移动设备120与内容服务器190之间最佳地传输数据流(例如,如移动设备120与内容服务器190之间的有状态计算会话那样)。之后,分割TCP选择逻辑300可以相应地引导使用分割TCP连接130A或端到端TCP连接130B。
[0021]结合图1描述的过程可以在诸如蜂窝基站之类的蜂窝宽带数据处理系统中实现。在更进一步的说明中,图2是针对分割TCP流控制管理配置的蜂窝宽带数据处理系统的示意图。所述系统可以包括基站210,该基站包括具有一个或多个计算机的主机计算系统220,每个计算机具有至少一个处理器和存储器。主机计算系统210可以支持操作系统230的执行,操作系统230支持一个或多个边缘应用240和高速缓存250 (从中将所请求的数据提供给发出请求的移动设备(未示出))的操作。
[0022]网际协议(IP)分离(breakout)模块260也可以在操作系统230中操作,该模块可被配置为从蜂窝数据提取不同的IP数据分组。边缘路由模块280也可以在操作系统230中操作,并且可被配置为使用端到端TCP连接,或者使用分割TCP选择模块290所引导的分割TCP连接,将IP分离模块260提取的IP数据分组路由到目标目的地。在此方面,分割TCP选择模块290也可以在操作系统230中操作并且可以包括程序代码,所述程序代码被使能将数据流中已接收的数据分组提交给深度分组检查模块270,以便确定数据流的上下文,例如利用该数据流的应用类型。分割TCP选择模块290的程序代码还可以根据从深度分组检查模块270接收的所确定的上下文,在分割TCP表200中查找连接类型的选择,即,端到端TCP连接还是分割TCP连接。之后,分割TCP选择模块270的程序代码可以引导边缘路由模块280根据所选择的连接类型来路由数据流的数据分组。
[0023]在对分割TCP选择模块290的操作的更进一步说明中,图3是示出用于蜂窝宽带网络中的分割TCP流控制管理的过程的流程图。从方框310开始,可以在基站中接收数据流,并且可以在方框320从数据流中提取分组。在方框330,可使用浅度分组检查确定分组的上下文,例如只在分组标头中显示的信息。例如,从源IP地址,方框330可以得出客户机的身份,取回移动简档,以及判定客户机是移动设备还是固定节点。如果节点是固定的,则TCP连接不需要端到端语义,但是可以将TCP连接重定向到分割TCP代理。除了移动简档之夕卜,还可使用附加信息做出决策:例如,移动简档可以指示节点是移动的,但是在未来三小时内不会移动。然后,从目的地IP地址,方框330可以取回连接简档并观察到:到该服务器的所有连接持续时间小于10分钟,因此,在此TCP连接的寿命期间,不需要端到端语义,并且可将连接重定向到分割TCP代理。在决策方框340,如果可以仅从上下文确定选择分割TCP连接来路由数据流,则在方框370,可使用分割TCP代理将数据流路由到目标内容服务器。否则,过程可以继续执行方框350。
[0024]在方框350,可以提交分组以执行深度分组检查。在此方面,可在深度分组检查期间解析和分析分组的数据有效负载以确定数据流的上下文,即:数据流的上下文需要分割TCP连接还是端到端TCP连接。例如,使用浅度分组检查只能了解用户将在一个小时后移动,并且与已识别的服务器的连接可以持续若干小时。深度分组检查可以进一步揭示用户正在下载小文件,或正在收听简短的音频文件(其可能仅持续5分钟)。因此,深度分组检查可以帮助确定连接可重定向到分割TCP代理。在决策方框360,如果确定可以使用分割TCP连接将数据流最佳地导向目标内容服务器,则在方框370,可以使用分割TCP代理将数据流路由到目标内容服务器。否则,如果在决策方框360确定可以使用端到端TCP连接将数据流最佳地导向目标内容服务器,则在方框380,可以使用端到端TCP连接将数据流路由到目标内容服务器。
[0025]在另一实施例中,无论上下文为何,都可使用分割TCP连接来开始连接。以这样的方式创建分割TCP连接:在客户机与TCP代理之间的连接中的TCP代理端点内以及在TCP代理与服务器之间的连接中的服务器端点内,序号初始匹配。在客户机与TCP代理之间的连接中的客户机内以及在TCP代理与服务器之间的连接中的TCP代理内,序号也必须如此匹配。
[0026]初始地,对分割TCP节流,使得这些序号保持完全匹配或接近匹配。例如,如果TCP代理与服务器之间的连接运行较快,则对其进行节流,以便其序号不会超过分割TCP连接的其它侧太多。这为连接管理器提供了机会来检查上下文(例如,通过对请求/响应标头进行深度检查)以确定连接是否应以分割TCP的方式继续。如果连接应以分割TCP的方式继续,则允许连接两侧的序号漂移。但是,如果端到端连接不应以分割TCP状态继续,则修补分割TCP并从网络路径中删除TCP代理。
[0027]在更进一步的说明中,图4是示出在分割TCP连接和端到端连接之间进行选择的过程的流程图。初始地,在方框410,可以对入站分组执行深度分组检查,在方框420,可以将分组路由到端到端TCP连接而不考虑上下文。然后,在方框430,如果分割TCP选择模块确定流应该由TCP分割代理处理,则在方框450,切换到分割TCP连接,其中流被重定向到TCP分割代理,并且TCP分割代理被插入TCP连接。否则,在方框440,可以根据端到端连接处理分组。
[0028]所属【技术领域】的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0029]可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一但不限于一电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0030]计算机可读的信号介质可以包括例如在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括一但不限于一电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0031]计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括一但不限于一无线、有线、光缆、射频等等,或者上述的任意合适的组合。
[0032]可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的各个方面的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言和常规的过程式程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN) —连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0033]上面已经参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各个方面。在这点上,附图中的流程图和框图显示了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现的体系结构、功能和操作。例如,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0034]还应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
[0035]也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其它设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
[0036]最后,在此使用的术语只是为了描述特定的实施例并且并非旨在作为本发明的限制。如在此所使用的,单数形式“一”、“一个”和“该”旨在同样包括复数形式,除非上下文明确地另有所指。还将理解,当在此说明书中使用时,术语“包括”和/或“包含”指定了声明的特性、整数、步骤、操作、元素和/或组件的存在,但是并不排除一个或多个其它特性、整数、步骤、操作、元素、组件和/或其组的存在或增加。
[0037]以下的权利要求中的对应结构、材料、操作以及所有功能性限定的装置(means)或步骤的等同替换,旨在包括任何用于与在权利要求中具体指出的其它单元相组合地执行该功能的结构、材料或操作。所给出的对本发明的描述其目的在于示意和描述,并非是穷尽性的,也并非是要将本发明限定到所表述的形式。对于所属【技术领域】的普通技术人员来说,在不偏离本发明范围和精神的情况下,显然可以作出许多修改和变型。对实施例的选择和说明,是为了最好地解释本发明的原理和实际应用,使所属【技术领域】的普通技术人员能够明了,本发明可以有适合所要的特定用途的具有各种改变的各种实施方式。
[0038]按照上面的方式参考本发明的实施例详细地描述了本申请的发明之后,在不偏离下列所附权利要求中限定的本发明范围的情况下,很明显可以做出修改和变型。
【权利要求】
1.一种用于蜂窝宽带网络中的分割传输控制协议TCP流控制管理的方法,所述方法包括:确定作为蜂窝宽带网络的基站中的数据流的一部分接收的分组的上下文;选择从包括端到端TCP连接和分割TCP连接的组中选择的连接以支持所述数据流;以及使用所选择的连接来路由所述数据流。
2.根据权利要求1的方法,其中使用深度分组检查来确定所述上下文。
3.根据权利要求2的方法,还包括:在深度分组检查之前,使用浅度分组检查确定所述上下文;以及如果使用浅度分组检查来确定所述上下文,则放弃深度分组检查,否则使用深度分组检查来确定所述分组的上下文。
4.根据权利要求1的方法,其中当选择所述分割TCP连接以支持所述数据流时,将所述数据流路由到分割TCP代理,并且在选择端到端TCP连接时,使用所述端到端TCP连接将所述数据流直接路由到目标内容服务器。
5.根据权利要求1的方法,其中首先使用端到端TCP连接路由所述数据流,并且当确定了新的上下文时,切换到分割TCP连接。
6.一种针对分割传输控制协议TCP流控制管理配置的蜂窝宽带数据处理系统,所述系统包括:多个基站,每个基站在蜂窝宽带网络的相应不同蜂窝站中;多个主机计算系统,每个主机计算系统布置在所述基站中的相应不同基站内,所述主机计算系统中的每个主机计算系统包括具有至少一个处理器和存储器的至少一个计算机;多个边缘路由模块,每个边缘路由模块在所述主机计算系统中的相应不同主机计算系统内执行,并在不同TCP连接上将数据流路由到不同的指定内容服务器;以及多个分割TCP选择模块,每个分割TCP选择模块耦合到所述边缘路由模块中的一个不同边缘路由模块,所述分割TCP选择模块中的每个分割TCP选择模块包括程序代码,所述程序代码被使能确定作为数据流的一部分接收的分组的上下文,选择从包括端到端TCP连接和分割TCP连接的组中选择的连接以支持所述数据流,以及引导所述边缘路由模块中的一个耦合的边缘路由模块使用所选择的连接来路由所述数据流。
7.根据权利要求6的系统,其中使用深度分组检查来确定所述上下文。
8.根据权利要求7的系统,其中所述分割TCP选择模块中的每个分割TCP选择模块在深度分组检查之前,使用浅度分组检查确定所述上下文,并且如果使用浅度分组检查来确定所述上下文,则放弃深度分组检查,否则使用深度分组检查来确定所述分组的上下文。
9.根据权利要求6的系统,其中当选择所述分割TCP连接以支持所述数据流时,所述边缘路由模块中的每个边缘路由模块将所述数据流路由到分割TCP代理,并且在选择端到端TCP连接时,所述边缘路由模块中的每个边缘路由模块使用所述端到端TCP连接将所述数据流直接路由到目标内容服务器。
10.根据权利要求6的系统,其中首先使用端到端TCP连接路由所述数据流,并且当确定了新的上下文时,切换到分割TCP连接。
【文档编号】H04L29/06GK103634288SQ201310320871
【公开日】2014年3月12日 申请日期:2013年7月26日 优先权日:2012年7月31日
【发明者】D·阿格拉瓦尔, B·O·小安东尼, T·V·(F)·勒, R·B·尼克尔森, V·帕帕斯, M·土玛, D·维尔马 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1