减轻网络边缘处的缓冲延迟的方法和设备的制作方法

文档序号:7990389阅读:216来源:国知局
减轻网络边缘处的缓冲延迟的方法和设备的制作方法
【专利摘要】一种用于减轻通过网络发送的TCP封装的数据流中的缓冲延迟的方法,该方法包括在所述网络的节点(200)上进行下列步骤:经由第一接口(241)接收第一分组,所述第一分组包括所述TCP封装的数据流的数据;经由第二接口(211)接收第二分组,所述第二分组包括所述TCP封装的数据流的片段的确认;分析所述第一分组和所述第二分组以估计未完成数据的量;用所述未完成数据的量确定缓冲器占用的状态;依据所述缓冲器占用的状态更新所述第二分组中的TCP窗口字段,以及经由所述第一接口发送更新的第二分组。
【专利说明】减轻网络边缘处的缓冲延迟的方法和设备
【技术领域】
[0001]本发明涉及传输层通信领域,更特别是在网络边缘处使用传输控制协议(TCP)信令。
【背景技术】
[0002]无线和蜂窝通信信道通常容量有限,并易于遭受诸如阴影和干扰的结果的传播效应,由于需要重传损坏分组的突发,导致了有用带宽的进一步限制。在端到端的基于TCP的通信中,这些信道通常构成瓶颈链路。此外,第2层的重发机制被用来隐藏空中的损失,从而使诸如TCP会话的往返延迟相当易变。在这些损失事件中,BTS的该数据报传输缓冲器被填充有新的流量,而丢失的数据被重新发送。

【发明内容】

[0003]本发明的一个目的是提供减轻缓冲延迟的方法,特别是在在无线网络中,更特别地在小区边缘。
[0004]根据本发明的第一方面,提供了一种用于减轻通过网络发送的TCP封装的数据流中的缓冲延迟的方法,该方法包括在所述网络的节点上进行下列步骤:经由第一接口接收第一分组,所述第一分组包括所述TCP封装的数据流的数据;经由第二接口接收第二分组,所述第二分组包括所述TCP封装的数据流的片段的确认;分析所述第一分组和所述第二分组以估计未完成数据的量;用所述未完成数据的量确定缓冲器占用的状态;依据所述缓冲器占用的状态更新所述第二分组中的TCP窗口字段,以及经由所述第一接口发送更新的第二分组。
[0005]本发明方法的优点在于提供了一种非侵入的流控制形式而不求助于可能具有不希望结果的丢弃分组光栅严厉措施。本发明的方法的另一个优点是,它可以在TCP通信的路径上的各种现有或新设置的网络节点上以完全透明的方式实现,而没有端点的知识或有效合作。
[0006]本发明的方法的实施例特别地基这样的洞察,即出现在TCP会话的返回流量中对先前发送的TCP数据段的确认可以用来估计未完成数据量。这个未完成数据的量指示发送器和接收器之间的网络一部分的缓冲器占用情况。
[0007]在本发明的方法的实施例中,所述分析包括将第一分组的SEQ字段与第二分组的ACK字段进行比较。
[0008]在本发明的方法的实施例中,确定缓冲器占用状态的包含将未完成的数据的量与预先确定的阈值量进行比较。
[0009]在本发明的方法的实施例中,其中第一接口和第二接口之一包括蜂窝接口。在特定实施例中,第一接口和第二接口之一包括3G无线接口。在特定实施例中,第一接口和第二接口之一包括毫微微蜂窝接口。
[0010]在本发明的方法的实施例中,第一接口和第二接口之一包括WLAN接口。[0011]这些实施方式的优点在于,它们解决了无线或移动网络的传统的最薄弱环节的过度缓冲的问题:基于无线的边缘。另外,本发明的方法的实施例可有利地用于在准备在具有不同的带宽和/或缓冲特性的无线网络之间进行切换时控制TCP流量,以避免当TCP会话正在从一个边缘网络移动到另一个时缓冲分组的异常无序传递。根据本发明的一个方面,提供了一种被配置为使处理器执行如上所述方法的计算机程序。
[0012]根据本发明的一个方面,提供了一种用于减轻通过网络发送的TCP封装的数据流中的缓冲延迟的设备,所述设备包括:第一接口,适于接收包括所述TCP封装的数据流的数据的第一分组;第二接口,适于接收包括所述TCP封装的数据流的片段的确认的第二分组;可操作地连接到所述第一接口和所述第二接口的处理器,所述处理器被配置为分析所述第一分组和所述第二分组以估计未完成数据的量,使用所述未完成数据的量确定缓冲器占用的状态,依据所述缓冲器占用的状态更新所述第二分组中的TCP窗口字段,以及经由所述第一接口发送更新的第二分组。
[0013]在本发明的设备的实施例中,第一接口和第二接口之一包括蜂窝接口。
[0014]在特定实施例中,第一接口和第二接口之一包括3G无线接口。
[0015]在特定实施例中,第一接口和第二接口之一包括毫微微蜂窝接口。
[0016]在本发明的设备的实施例中,其中第一接口和第二接口之一包括WLAN接口。
[0017]根据本发明的一个方面,提供了一种包括如上所述设备的移动节点。
[0018]根据本发明的一个方面,提供了一种包括如上所述的设备的无线基站。
[0019]根据本发明的设备和计算机程序的优点与如上所述的根据本发明的方法的优点类似。
【专利附图】

【附图说明】
[0020]现在通过举例的方式,并参照附图描述根据本发明的设备和/或方法实施例,其中:
[0021]图1提供了根据本发明的实施例的方法的流程图;
[0022]图2是可部署根据本发明的方法和/或设备的网络的示意图;
[0023]图3是使用匪IP代理可部署根据本发明的方法和/或设备的网络的另一示意图;
[0024]图4表示根据本发明方法的第一使用场景;以及
[0025]图5示出了根据本发明的方法的第二使用场景。
[0026]在整个附图中,相同的附图标记用于表示相同或相似的单元。
【具体实施方式】
[0027]当信道具有大带宽时延积时,大量的数据可以在发送者和接收者之间持续传输是基于TCP通信的固有属性。因此,当瓶颈链路允许大量缓冲而不丢包时,TCP基础设施在网络内部产生很大的未传递数据报的队列。更具体地说,如果发送方以比瓶颈链路可以承受的速率更高速率发送,数据将恰好在瓶颈链路之前积聚。
[0028]当这种过度的缓冲与积极的重传策略结合,网络负载会变得不稳定并发生瘫痪网络拥塞:由于排队时延、分组丢失以及丢失分组的数据报重传,分组传输延迟无止境增长。
[0029]过量缓冲的其他缺点包括来自数据报丢失的拖长的反应时间、处理移动性事件时需要时在BTS之间转发大量数据的需求、以及参与端到端TCP通信的网络设备的增加的内存需求。
[0030]缓冲设计是微妙的权衡。一方面,提供足够大的缓冲器避免中间路由器的出站接口耗尽,而在另一方面作为数据报的传输延迟的重要成分的排队延迟与总缓冲器大小成比例增长。
[0031]然而,当部署在具有自动重传机制的第2层基础设施时,即使具有精心设计的缓冲器的尺寸的端到端TCP也可以以次优的方式工作,这里所说的自动重传不会被通知给传输层。如果诸如无线或蜂窝网络的的第2层基础设施经由缓冲和重传来掩盖分组丢失,TCP发送端不知道接收端的信道的性能降低:特别地,由于没有分组丢失,发送方的TCP栈不能检测网络的过载,并会继续增加它的发送方窗口,进一步增加了 BTS中的缓冲数据。
[0032]本发明基于特别的洞察:在无线和蜂窝边缘网络使用TCP接收方窗口来提供关于最后一段(the last leg)即瓶颈链路的流量控制信息,来限制端至端连接的速率,是特别有利的。特别地,TCP接收窗口可用于以信号告知最后一段的带宽。用这种方式能够避免不希望的缓冲器增加,不希望的缓冲器增加会导致增加的端至端延迟。
[0033]目前已知的TCP使用不同的机制来执行拥塞控制和流量控制,前者被用于处理端到端带宽限制,而后者则用于以信号通知在接收机处的数据处理限制:
[0034]-拥塞控制用来保证网络链路在相互竞争的流之间公平地共享。推断网络拥塞的出现是来自数据报流中的分组丢失,当由于饱和的缓冲器造成中间路由器被迫放弃数据报时发生这种情况。分组丢失检测之后,TCP减小其拥塞窗口,即允许的最大未完成数据的量,对每个丢失事件来说这往往造成将发送速率削减一半的影响。
[0035]-流量控制通过让TCP接收方通过“TCP窗口”参数告知发送方在其缓冲器内有多少可用空间来实现,于是无论何时目的地的空闲缓冲器空间的量到达零时,发送方将停止传输。
[0036]目前,在大时延带宽积网络,一般关注的是使接收窗口的值足够大,使得网络可以更有效地被单一 TCP连接使用。因此,认识到通过TCP窗口参数进行协调的TCP流控制对TCP连接进行速率限制目前实际上是相当罕见。
[0037]本发明提出使用TCP流控制机制作为手段来执行无线系统中发现的重缓冲链路的速率限制。本发明是特别地基于以下认识,即透明地修改TCP确认数据报的TCP窗口参数来控制发送方的速率是有利的。
[0038]在实施例中,去往数据发送方的TCP确认数据报的TCP窗口(“WIN”)参数被以BTS内可用于TCP会话最小缓冲空间量以及接收方可用的缓冲空间的量进行调整。这种技术可以在接收方设备和/或在BTS中使用。如果该技术被用于在蜂窝/无线BTS当通过无线信道下载数据时,并且无线信道是瓶颈链路,则至移动节点的估计的信道质量可以用来进一步控制发送方的流量。
[0039]参照图1,现在将描述本发明的方法的实施例,在此示例性网络单元位于快连接和慢连接之间。
[0040]这样的情况可能会发生在如图2所示的节点200:它集中访问或边缘链路210到核心网250,诸如蜂窝基站、RNC、DSLAM,或者甚至聚集低速串行链路的路由器。本领域技术人员将理解,在类似情况下工作时该方法也同样适用于其它类型的网络单元。在下文中,数据从网络节点200行进到慢链路210将被指定为“下游”的流量。反之,数据从慢链路210行进到节点200将被指定为“上游”的流量。正被考虑的TCP流量的发起方被认为是经由快链路240连接到节点200的网络250的一部分。在TCP接收方220以纯粹的示例性的方式被示意为移动节点。
[0041]虽然该方法示于图1和下面的描述为以特定顺序执行的步骤的序列,本领域技术人员将会理解,这仅是为了说明性的目的而进行的,并且以不同的顺序可以进行任何步骤,除非说明书清楚表明特定步骤可以可以在另一个步骤已经完成时进行,或反之亦然。
[0042]在第一步骤110中,优选通过比较下游流量的TCP序列(“SEQ”)数值与的上游流量中广告的TCP确认(“ACK”)数量来生成未完成数据量的估计值,其中,所述下游流量示意性地被示出为在下游缓冲器245中的分组,所述上游流量被示意性地示为上游缓冲器215中的分组。这个值将设置在TCP发送器和接收器220之间的行进中(in flight)的数据的较低界限。行进中数据的实际数量还包括数据网络250上游进一步被缓冲的数据,这超出了网络单元200的视野。在第一步骤110的背景下,所考虑的节点200必须能够考虑未确认的数据量以及缓冲器245中的数据总量来执行每个连接。
[0043]在第二步骤120中,评估缓冲器是否过载。此评估最好通过比较在第一步骤100中获得的未完成数据的估计量与访问或边缘链路可以合理缓冲不会显著降低性能的最大数据量来实施。
[0044]边缘链路的测量的往返时间(RTT)的延迟与最大可接受RTT阈值的比较可以被利用作第二步骤120中的缓冲器占用检测的额外触发。该诊断特别揭示何时无线电信道容量受到严重持久的传播问题而恶化,在这种情况下,第2层的重发机制就会提高往返时间,而不会造成更高层上的分组丢失。
[0045]在第三步骤130中,在向发送方的方向中继上行TCP分组之前,所考虑的网络单元改写所有上行TCP分组中存在的TCP参数确认报头的TCP窗口(“WIN”),以便实现程度速率限制,将下游TCP流降低到可以由边缘连接持续支持的速率。
[0046]新的WIN值优选地被选择为使得对每个TCP连接未完成数据量不超过预定阈值。特别优选预定阈值定义为在最大RTT时延下的缓冲器大小除以竞争TCP连接的数目。
[0047]更佳的粒度可以通过使用每个TCP连接的实际吞吐量的更细粒度来实现。
[0048]在第三步骤130的情况下,所考虑的节点必须能够对其中WIN字段已被修改的TCP分组进行校验和的重新计算。
[0049]如果本发明的方法在无线或蜂窝BTS中实现,可以有利地利用一定的跨层的协同作用。这类节点中关于无线信道的状态的可用的详细信息可以被用于将发送方的速率微调为在任何给定时间都能被物理网络接受的速率。另外,在执行根据本发明的方法中,可考虑第2层的调度选择。此外,应用层信息可以指示特定的持续TCP会话是否是对延迟敏感,并且该信息可以在执行根据本发明的方法时考虑。
[0050]可以在不从根本上增加网络节点的处理能力要求方面来实现本发明的方法。诸如基站的设备在网络的边缘相连接,通常服务的同时连接数有限(通常约小于一千个),其处理不禁止用于本发明的方法的部署。
[0051]本发明的方法的优点在于提供了流控制而不会带来丢失数据报所导致的不可预知的影响。参照图2,可以看出这里绘出的设备200包括用于与第一网络链路240相接的第一接口 241以及用于与第二网络链路210相接的第二接口 211。本领域技术人员能理解,这些接口 241、211只示意性地描绘,并且它们实际上意味着使网络节点根据一组特定的协议进行通信的所有必需的硬件和逻辑。设备200进一步包括可操作地连接到这些接口 241、211以及更特别地连接到上述缓冲器215、245的处理器230,其操作对应于那些参照图1所描述的操作。应当理解的是,处理器230和数据缓冲器245与“ACK”缓冲器215之间的互连使得处理器能够执行所描述的过程。
[0052]虽然该设备200在图2中被示为BTS,但可能实际上被实施为BTS或移动节点的一部分,或者是独立的功能网络节点。如果设备200被集成在较大的网络节点中,清楚的是,接口 241、211可由内部接口代替,所述内部接口可以包括物理背板接口、有线接口、一组机上微带或甚至包括在软件中实现的逻辑接口。
[0053]还应当指出的是,处理器230可以被实现为微处理器或者可选地实现为一个或多个专用的和/或可编程或可配置硬件组件,包括ASIC、FPGA、以及类似的技术。
[0054]在图3所示的网络是在图2所示的网络的变体。移动节点220通过慢链路210连接到BTS(未单独示出)。不失一般性,无线链路210是假定的。与图2的网络不同,图3的网络配置被为在两个不同的地方呈现根据本发明的方法的一个实施例的主机逻辑:与移动节点220关联实施的匪IP移动节点代理(NMP) 200a内,以及与BTS相关联实现的匪IP网络代理(NNP) 200b内。
[0055]所有对NMIP的引用都按照US-A-2010135301提供的定义,该申请于2010年6月3日公布,其内容在此引入作为参考。
[0056]图4和图5示出了在图3所示的网络的环境中的本发明的使用。为说明起见,并且不失一般性,在3G的移动节点(MN)220和3G BTS200之间的无线连接210被假定为有问题的链路。又不失一般性,假定通过WLAN接入点(AP) 200’的可选的无线局域网(WLAN)连接210’是可用的。
[0057]图4着眼于移动节点(MN)220正在接收经由BTS200 (下行链路)从相应节点(CN)260始发的数据的情况。
[0058]设置3G和WLAN之间发生切换。在没有本发明的情况下,流量在3G无线链路210上被缓冲;在这种情况下,PPP被用于封装去往移动电话220的串行线路的流量,在该点的数据报经过瓶颈无线链路210。
[0059]与3G无线链路210相关联的缓冲器是非常大的,通常大于80KB。因此,当匪IP切换完成,最近产生的分组在WLAN链路210’上传递,同时较早的分组仍然在3G接口的缓冲器中。接收器220的TCP堆栈将指定这种情况为反常现象,并重置连接。
[0060]本发明用于控制经由边缘瓶颈210行进的数据的量,以限制缓冲的影响,特别是避免诸如连接重置的不希望的后果。
[0061]当使用本发明时,NNP200b修改从丽220发送回CN260的TCP确认(ACK)的TCP窗口字段以透明地执行出现问题的较慢链路210中的流量控制。由于接收器220通常将TCP窗口值设置得很大(典型地2~16或更多,因为它的缓冲器被快速冲刷到应用),可以基于指定的最大期望延迟来减少窗口值以反映可以容忍的缓冲量。透明地执行该操作:丽220或者CN260都不知道NNP200B在连接的中间进行的数据报重写。
[0062]图5着眼于移动节点(丽)220向BTS200 (上行链路)发送去往通信节点(CN) 260的数据。
[0063]考虑如在图4的上下文中描述的类似的情况,我们将假设设置3G和WLAN之间的发生切换。没有本发明的情况下,流量被缓冲在3G无线链路210上,在这种情况下,容易出现拥塞的发送器缓冲器位于MN200,从那里来的数据报行经瓶颈无线链路210。
[0064]本发明用来控制在边缘瓶颈210上行进的数据量以限制缓冲的影响。
[0065]当采用本发明时,则NMP200a修改从CN260发送回MN220的TCP确认(ACK)的TCP窗口字段以透明地执行有问题的慢链路210上的流量控制。由于接收器260通常将TCP窗口值设置得很大(典型地2~16或更多,因为它的缓冲器被快速冲刷到应用),可以基于指定的最大期望延迟来减少窗口值,以反映可以容忍的缓冲量。透明地执行该操作:MN220或者CN260都不知道NNP200B在连接的中间进行的数据报重写。
[0066]本领域技术人员容易认识到上述各个方法的步骤可以通过编程的计算机来执行。本文中,一些实施例还旨在涵盖程序的存储设备,例如,数字数据存储介质,它是机器或计算机可读并编码机器可执行或计算机可执行的指令的程序,其中所述指令执行一些所述上述方法中的步骤或全部。程序存储设备可以是,例如数字存储器如磁盘和磁带的磁存储介质、硬盘驱动器或者或光学可读数字数据存储介质。本实施例还旨在涵盖被编程为执行上述方法的步骤的计算机。
【权利要求】
1.一种用于减轻通过网络发送的TCP封装的数据流中的缓冲延迟的方法,该方法包括在所述网络的节点上进行下列步骤: -经由第一接口接收第一分组,所述第一分组包括所述TCP封装的数据流的数据; -经由第二接口接收第二分组,所述第二分组包括所述TCP封装的数据流的片段的确认; -分析所述第一分组和所述第二分组以估计未完成数据的量; -用所述未完成数据的量确定缓冲器占用的状态; -依据所述缓冲器占用的状态更新所述第二分组中的TCP窗口字段, -经由所述第一接口发送更新的第二分组。
2.根据权利要求1所述的方法,其中所述分析包括比较所述第一分组的SEQ字段与所述第二分组的ACK字段。
3.根据权利要求1或2所述的方法,其特征在于,所述确定缓冲器占用的状态包括比较所述未完成数据的量与预定的阈值量。
4.如前述权利要求任一项所述的方法,其中所述第一接口和所述第二接口之一包括蜂窝接口。
5.根据权利要求4所述的方法,其中所述第一接口和所述第二接口之一包括3G无线接□。
6.根据权利要求4所述的方法,其中所述第一接口和所述第二接口之一包括毫微微蜂窝接口。
7.根据权利要求1-3任一项所述的方法,其中所述第一接口和所述第二接口之一包括WLAN 接口。
8.—种被配置为使处理器执行如前述权利要求的方法的计算机程序。
9.一种用于减轻通过网络发送的TCP封装的数据流中的缓冲延迟的设备,所述设备包括: -第一接口,适于接收包括所述TCP封装的数据流的数据的第一分组; -第二接口,适于接收包括所述TCP封装的数据流的片段的确认的第二分组; -可操作地连接到所述第一接口和所述第二接口的处理器,所述处理器被配置为分析所述第一分组和所述第二分组以估计未完成数据的量,使用所述未完成数据的量确定缓冲器占用的状态,依据所述缓冲器占用的状态更新所述第二分组中的TCP窗口字段,以及经由所述第一接口发送更新的第二分组。
10.根据权利要求9所述的设备,其中所述第一接口和所述第二接口之一包括蜂窝接□。
11.根据权利要求10所述的装置,其中所述第一接口和所述第二接口之一包括3G无线接口。
12.根据权利要求10所述的装置,其中所述第一接口和所述第二接口之一包括毫微微蜂窝接口。
13.根据任一权利要求9所述的装置,其中所述第一接口和所述第二接口之一包括WLAN 接口。
14.一种移动节点,包括根据权利要求9-13任一项所述的设备。
15.一种无线基站,包括权利要求9-13任一项所述的设备。
【文档编号】H04W80/06GK103583026SQ201280027202
【公开日】2014年2月12日 申请日期:2012年5月29日 优先权日:2011年6月3日
【发明者】F·皮安尼斯, P·博施 申请人:阿尔卡特朗讯公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1