用于智能包分发的系统、方法和计算机程序的制作方法
【专利说明】用于智能包分发的系统、方法和计算机程序
[0001]本申请是申请日为2011年7月12日、申请号为201180041068.9、发明名称为“用于智能包分发的系统、方法和计算机程序”的申请的分案申请。
技术领域
[0002]本发明涉及网络业务流包(packet)分发。本发明更具体地涉及智能包分发系统、方法和计算机程序。
【背景技术】
[0003]绑定和聚集技术使得两个或更多网络设备能够跨多个通信链路发送和接收数据包。绑定或聚集技术通常使用轮转(Round-Robin)调度以跨所有组合的较低链路来发送和接收数据包。在轮转算法中,负载均衡器基于轮转基将包请求分配给链路列表。对于随后的请求,负载均衡器遵循圆形顺序对该请求进行重定向。一旦一个请求被分配给一个链路,该链路被移动到列表的结尾。这使链路被平等地分配。
[0004]当被绑定或聚集的线路的性能实质不同时,轮转调度导致吞吐量降低。当这些网络被组合时,被绑定的线路继承最差情况延迟的延迟。类似地,传输率取决于最慢的绑定线路。
[0005]这不利于通过多个通信链路提供一致的、均衡的且最佳的带宽流的能力,对于VoIP之类对抖动和跨多个较低链路的变化的延迟高度敏感的实时应用而言尤其如此。
[0006]这一小于最佳的性能源于这样的事实:当依靠较低级通信链路时,每个较低链路可能具有不同的特性,包括不对称的速度和延迟变化。绑定的或聚集的通信会话的聚集吞吐量的速度仅与最小公共速度与较低链路的数目的乘积一样。这样获得的是非高效的聚集或绑定,其没有对组合中可用的带宽进行最佳使用。
[0007]在快速故障恢复技术中存在相似的问题,其中例如涉及较低级链路的对聚集或绑定连接的故障恢复的性能小于最优。
[0008]以下事实加剧了上述问题:即使在使用相似的接入方法时,不同载波可能具有不同的延迟特性。载波差异性可能导致旧有对称电路与较新的非对称型宽带电路的组合,这在任一方向中混合了较快速度和较慢速度,使组合的所有较低链路具有变化的延迟。
[0009]例如,当对两个较低通信链路(例如,具有相同速度)进行均衡时,轮转分发通常导致对组合的较低链路的所有可用带宽的充分利用。但是,当两个较低链路中的一个不平衡时,轮转分发通常导致性能低于组合的较低链路。当使用每个具有不同速度和延迟的三个较低链路时,轮转分发导致性能非常差并且在很多应用中实际上是不可用的。
[0010]已提出分发算法用于解决这些问题。例如,已提出加权轮转分配。加权轮转是消除了其一些缺点的轮转的升级版本。在加权轮转的情况下,可以向组中每个链路分配权重,使得如果一个链路能处理另一链路负载的两倍,较大的链路获得权重为2。在这种情况下,负载均衡器将向较大的链路分配两个请求,每一请求分配给较小的链路。同时,美国专利6438135和7580355,公开了加权轮转算法的动态方法。
[0011]除了性能降低,网络拥塞也提出了问题。当网络连接被通过连接传送的数据淹没时,将会发生网络拥塞。这导致服务质量(Q0S)变差,一般体现为排队延迟、丢包或不能处理新连接。
[0012]避免网络拥塞是网络中用以避免拥塞的处理。网络中的拥塞使运行在网络上的所有服务降低,因为所有可用的容量被消耗。这可以发生,因为单个网络应用消耗所有可用的容量。这影响延迟和时间敏感的应用,例如语音、视频流等。
[0013]为了补偿和/或避免在网络链路中发生拥塞,使用排队机制以保证可用容量被公平地分发在链路的所有消费者中。有几种通常实现的排队机制,包括:先进先出(FIFO)、加权公平排队(WFQ)、定制排队(CQ)、优先级排队(PQ)。当它从发送器被接收且在它通过接口被传送之前,所有这些机制管理业务流。
[0014]其他排队机制包括尾部丢弃、随机早期丢弃(RED)、加权随机早期检测(WRED)以及Blue。通过丢弃多余包使用拥塞管理机制例如丢弃尾部执行协议无关的速率限制的最一般形式。其他方法使用包排队、在运输中对包增加延迟或通常不被大多数实时应用支持的具体协议内置拥塞控制机制。使用拥塞管理机制例如对速率限制带宽使用丢弃尾部导致高抖动和丢包,降低实时应用的质量。这个实现不能用于低成本访问解决方案中的实时应用。因为与带宽使用相比延迟和丢失指数上升,当带宽使用接近上限阈值时这个问题更加复杂。图5A和5B图示了现有技术中相对于带宽的延迟。可以看出延迟在特定带宽使用率突然开始到峰值。
[0015]尾部丢弃(也称为丢弃尾部)是不对业务流进行区分的简单的队列管理算法。丢弃尾部允许队列填充到其最大容量并且然后当新包到达时丢掉新包直到队列具有附加容量。尾部丢弃与以前提到的机制不同,因为它允许在采取行动之前队列填充,而其他在队列管理中更主动。
[0016]尾部丢弃的一个缺点是:在传送大量数据的网络中,实时应用可能变差因为数据可以容易地填充队列,使语音包被丢掉。
[0017]此外,在VOIP (SIP)之类的特定应用中,信令业务流和包含呼叫音频的RTP包可以被丢弃。信令业务流可被再次传送,但是用于传送的定时器对于SIP是约500ms,并且如果SIP会话中关键包不被确认,所述呼叫将丢掉。同时,RTP包使用UDP被传送。这导致被丢弃的包将被丢失。虽然包丢失消除(PLC)的实现可以掩盖VOIP中丢包的一些影响,大量丢掉的呼叫将影响呼叫质量。
[0018]同时,主动的队列管理机制实现了一种机制,用以通过如下方式来缓解尾部丢弃的一些问题:减少丢弃包的数目,减少触发TCP会话中的拥塞控制机制增加链路的使用率,减小队列大小,并且减少流所见的延迟和抖动并且尝试在多种流中平等地共享连接带宽。主动的队列管理算法包括RED、WRED和Blue。
[0019]尾部丢弃的另一缺点是导致特定网络链路的消费者进入慢启动(slow-start)状态(其减少数据吞吐量),并且甚至导致全局同步通常足够,影响是对网络吞吐量有害的。虽然RED、WRED和Blue避免了上述问题,由于它们依赖于使用机制TCP内嵌的机制以及包被丢掉而不是排队这个事实,RED和WRED通常适用于仅IP网络。
[0020]RED监测平均队列大小并且基于统计概率丢掉包。也可以用显式拥塞通知(ECN)标记包。但是,ECN仅被TCP/IP支持,其使作为用于和基于UDP的流一起使用的机制是不利的。而且,虽然ECN出现在最近的TCP/IP协议组中,它们一般在出厂时被禁用。
[0021]WRED通过基于相关联的IP优先或DSCP值提供几个不同队列阈值来扩展RED。这使得如果队列填满了,较低优先级包被丢掉,保护同一队列中较高优先级包。但是,WRED也仅和基于TCP的会话一起工作。其他协议例如IPX不使用滑动窗的概念。当面对丢弃的包时,这些协议以与以前相同的速率简单地再次传送。RED和WRED在利用非TCP协议的网络中是低效的。
[0022]Blue队列保持丢弃/标记概率,并且以它们进入队列的概率丢弃/标记包。当队列溢出时,丢弃/标记概率以小的常数增加,并且当队列为空时,丢弃/标记概率以小于用于增加概率的小常数的常数减少。Blue的主要缺陷,其共享大多数单队列排队规定,是它在流之间不区分,并且将所有流视为单个聚集。因此,单个进攻的流可推出属于其他、更好表现的流的队列包。
[0023]当运行处理实时业务流例如VOIP或流视频的网络时,丢包是需要被避免的拥塞的副作用,因为它们对丢包敏感。Blue的主要缺陷,其共享大多数单队列排队规定,是它在流之间不区分,并且将所有流视为单个集合。因此,单个进攻的流可推出属于其他、更好表现的流的队列包。
[0024]因此,需要一种排队和分发算法,其使用双向信息来支持非对称环境,并且充分利用绑定或聚集网络连接的带宽,即使连接中的链路展现出实质上不同的性能。
【发明内容】
[0025]在一个方面,本公开涉及一种智能包分发系统,用于在多个不同链路所定义的绑定或聚集连接上分发一个或多个包,所述系统包括智能包分发引擎,其操作以基于决策树来确定在该一个或多个链路中的哪些链路上分发该一个或多个包。
[0026]在另一方面,本公开涉及一种用于在多个不同链路定义的绑定或聚集连接上分发一个或多个包的智能包分发的方法,该方法包括:执行决策树以用于确定在一个或多个链路中的哪些链路上分发所述一个或多个包;以及借助于智能包分发引擎基于该确定在一个或多个链路上分发该一个或多个包。
[0027]在又一个方面,本公开涉及一种用于管理在绑定或聚集连接中的一个或多个通信链路上的业务流的方法,包括步骤:(a)借助于智能包分发引擎检测影响连接性能的一个或多个数据业务流参数;以及(b)基于所述数据业务流参数,通过在实时或接近实时基础上间歇地规避一个或多个这种通信链路上的选定包的通信来对一个或多个这种通信链路应用速率限制,从而减缓一个或多个这种通信链路上的业务流,以便改进连接的性能而不考虑数据业务流参数。
[0028]在这个方面,在详细解释本发明的至少一个实施方式之前,要理解本发明不限于其对下列说明或图示中提出的构造和组件的布置的细节的应用。本发明能有其他实施方式并且以多种方式实现和执行。而且,要理解这里使用的措辞和术语是为了说明且不应被视为限制。
【附图说明】
[0029]图1是示出了使用网络工具的智能包分发的实现的系统框图。
[0030]图2示出了根据本发明的智能包分发引擎。
[0031]图3A示出了基于权重包分发参数的智能包分发引擎的实现和决策树中考虑的性能标准。
[0032]图3B示出了基于速率限制规避分