用于业务混合的公平加权随机早期检测的制作方法

文档序号:7620281阅读:168来源:国知局
专利名称:用于业务混合的公平加权随机早期检测的制作方法
技术领域
本发明涉及通信系统的缓冲器中的拥塞管理,并且特别涉及当在缓冲器所接收的业务包括响应(例如TCP)和无响应(例如UDP)业务的混合时管理拥塞的系统和方法。
背景技术
在通信系统的缓冲器中的分组业务的拥塞管理在较差的控制可能显著影响系统性能方面而言是很重要的。当分组业务包括来自响应业务和无响应业务的分组的混合时,管理问题变得关系重大。
响应业务典型地由通过响应协议所控制的源来产生。当分组例如由于拥塞而被丢失或过度延迟时,响应协议在尝试匹配可用容量期间减小了负载。传输控制协议(TCP)是提供响应业务的响应协议的例子。
无响应业务典型地由通过无响应协议所控制的源来产生。当分组被丢失或过度延迟时,无响应协议可以进行检测或选择以忽略该情况,并且因而不调整所述负载。用户数据报协议(UDP)是提供无响应业务的无响应协议的例子。
随机早期检测(RED)算法是一种用于避免拥塞的现用管理机制。与“尾部丢弃(tail drop)”队列管理方案相反,该算法只有当队列溢出时才会丢掉分组,但是其在将该初始拥塞通知给源之前随机地丢弃分组。一种加权RED(WRED)算法提供与RED相同的特性,但其选择性地根据分组的优先级来丢弃分组。
RED算法的性能被确信优于传统的尾部丢弃技术的性能。这是由于对突发业务和全局同步的更好处理。RED使平均队列大小保持较小,这可以更好地调节临时的分组突发。RED还通过避免(由于随机丢弃所引起的)几个连接同时缩小其窗口的情况,来避免多个TCP源的同步。
RED被广泛实现于路由器中。然而,针对RED而言仍然存在近年来广泛研究的突出问题。已说明了响应TCP和无响应UDP业务之间的交互作用可能造成系统的不稳定。通常,如果两种类型的业务都由RED来处理,则在一个存储分区中TCP业务的性能会受到UDP的严重影响。发生了这样的情况UDP业务获得其希望的共享带宽而TCP得到剩余部分,这在两种类型的业务之间是不公平的。
对所述问题的一个解决方案是对存储器硬分区,物理地分开两种类型的业务。TCP分区可以使用RED,而UDP分区可以使用固定阈值以控制所述UDP业务。然而,如果一种类型的业务远比另一种更常用时,该方法会浪费存储器资源。
本申请中所说明的加权RED算法提供了解决方案,其中,TCP和UDP业务可以在单个分区中被混合在一起而最小化对TCP业务的影响。在某种意义上,即使所述两种类型的业务被存储在同一存储分区中,其也是被隔离的。同时,所提出算法的复杂性使其能够容易在硬件中被实现。

发明内容
根据本发明的第一实施例,WRED(加权随机早期检测)算法能在TCP和UDP分组共享同一缓冲器时公平地调节TCP业务。传统的WRED实现没有说明TCP和UDP在响应分细丢弃时的行为的不同。也就是说,TCP将通过减慢其传输速率来对分组丟弃作出反应,而UDP将不作反应。这导致UDP独占缓冲器带宽而对TCP业务不利。本发明通过将拥塞控制算法分别应用于TCP和UDP而解决了所述问题,其中用于UDP业务的丢弃阈值以这样的方式被动态地修改将UDP业务限制于缓冲器的可用带宽的被供给的百分比。
根据本发明的第二实施例,一种加权随机早期检测(WRED)算法通过一种公平的调度器(scheduler)(例如round-robin调度器)来裁决,公平地调节两个队列中的响应(TCP)和无响应(UDP)业务。传统的WRED实现不进行这两种类型的业务之间的区分。由于TCP源通过减慢其传输速率来对随机丢弃作出反应,而UDP源不作反应,因此这两个源之间的区分的缺乏导致了对TCP的严重偏见。特别地,UDP流占用其希望的带宽,而TCP流得到的是UDP剩余的部分。本发明的实施例通过以下方式解决了所述问题将被保存在共享存储器中的两个队列中的两种类型的业务分开、在它们之间公平地裁决(例如通过利用round-robin方案)并通过保持分别对待TCP和UDP分组来减小UDP业务对TCP业务的影响。特别地,即使所到达的业务是不对称的(即如果一种类型的分组比另一种分组更频繁),缓冲器空间也不会被浪费。
通常,如果调度器根据典型地由用户指定的预定分配或参数来服务于被管理的缓冲器,则该调度器的特征在于其公平性。例如,公平的调度器能够以相同的频率(例如,50%对50%)服务于两个队列,或者其能够相对于另一个队列而更频繁地服务于一个队列(例如,70%对30%)。在这两种情况下,达到分配给两个队列的希望的百分比导致了公平。
因此,根据本发明的第一方面,一种通过将拥塞控制算法分别应用于TCP和UDP业务来管理通信系统的缓冲器中的TCP和UDP业务拥塞的方法,该方法包括响应于到达缓冲器的UDP分组,将UDP分组在缓冲器中所占用的空间量与UDP丢弃阈值进行比较,并且响应于超出了UDP丢弃阈值,丢弃到达的UDP分组;并且响应于到达缓冲器的TCP分组,按照丢弃概率来丢弃TCP分组,该丢弃概率根据缓冲器中的仅TCP分组的平均占用率(根据加权随机早期检测)而被确定。
根据本发明的第二方面,提供了一种系统,其用于通过将拥塞控制算法分别应用于TCP和UDP业务来管理通信系统的缓冲器中的UDP和TCP业务,该系统包括这样两种装置第一种装置用于在接收了到达的UDP分组时将UDP分组在缓冲器中所占用的空间量与UDP丢弃阈值进行比较,并且如果超出了所述丢弃阈值则丢弃所述到达的UDP分组;第二种装置用于如果超出了丢弃概率则在缓冲器丢弃到达的TCP分组,该丢弃概率是根据缓冲器中的仅TCP分组的平均占用率(根据加权随机早期检测)而被确定的。
根据本发明的又一方面,提供了一种在能够承载UDP和TCP业务的通信资源上管理业务拥塞的方法,该方法包括将到来的分别的队列中的UDP和TCP业务进行缓冲;在所述队列之间公平地裁决(例如使用工作保养型(work-conserving)、round-robin方案),由此将资源带宽的预定分配提供给分别的队列;以及按照加权随机早期检测(WRED)算法的丢弃概率从所述队列丢弃分组,所述计算取决于仅TCP队列中的TCP分组。
根据本发明的又一方面,提供了一种在能够承载UDP和TCP业务的通信资源上管理业务拥塞的系统,该系统包括将到来的分别的队列中的UDP和TCP业务的分组进行缓冲的共享存储器;在分别的队列之间起作用由此将资源带宽的预定分配提供给该分别的队列的公平的、工作保养型调度器(例如工作保养型、round-robin调度器);以及按照WRED丢弃概率从所述队列丢弃分组的装置,该WRED丢弃概率的计算取决于仅TCP队列中的TCP分组。
根据本发明的另一方面,提供了一种通过将拥塞控制分别应用于响应业务和无响应业务来管理通信系统的缓冲器中的业务拥塞的方法,该方法包括如果到达缓冲器的分组关联于无响应业务,则将无响应业务在缓冲器中所占用的空间量与无响应丢弃阈值进行比较,并且如果超出该无响应丢弃阈值则抛弃所述到达的分组;并且如果到达缓冲器的分组关联于响应业务,则按照基于缓冲器中的仅响应业务的占用率的丢弃概率来丢弃到达的分组。
根据本发明的另一方面,提供了一种用于通过将拥塞控制分别应用于业务来管理通信系统的缓冲器中的响应业务和无响应业务的系统,该系统包括这样两种装置第一种装置用于将无响应业务在缓冲器中所占用的空间量与无响应丢弃阈值进行比较,并且如果超出所述无响应丢弃阈值则丢弃到达的无响应业务分组;以及第二种装置用于如果超出丢弃概率则丢弃到达的响应业务分组,该丢弃概率是根据缓冲器中的仅响应业务的平均占用率而被确定的。


现在将参考附图对本发明进行更详细的描述,其中图1示出了根据本发明的模拟系统的结构;图2示出了基本WRED算法的吞吐量;图3示出了本发明的第一实施例的吞吐量;和图4示出了本发明的第二实施例的吞吐量。
具体实施例方式
如图1所示,本发明涉及一种结构,其中,TCP和UDP源通过由本发明的WRED算法所控制的缓冲器将分组发送到分别的TCP和UDP目的地。
不是优选解决方案的针对管理过程的一种解决方案,是将TCP和UDP业务分到各自的缓冲器中,并将WRED应用到每个缓冲器。这能够实现,但是由于UDP/TCP业务混合通常随时间变化,所以其浪费资源或者导致不必要的丢弃,由此很难预先确定制造适当的缓冲器大小分配。例如,缓冲器可以被制成大小相等,但如果一段时间内没有UDP业务而TCP业务却超出了其丢弃阈值,则由于UDP缓冲器中有可用空间,因此TCP分组的丢弃将是不必要的。
本发明的优选实施例之一通过将WRED分别应用到TCP和UDP,解决了在响应TCP和无响应UDP业务之间的不公平问题。特别地,WRED对TCP业务的处理方式与现有技术的方式相似,而UDP业务以一种新的方式被处理—其受限于被动态修改的阈值。所述阈值依据UDP业务想要占用多大带宽、其当前使用多大带宽以及其被确保了多大带宽而改变。按这种方法所设置的阈值可确保UDP业务不会超出施加于其带宽上的所保证的限制,并且因而维护了TCP和UDP业务之间的公平。同时,这两种业务有效地共享可用缓冲器空间。
包括广泛的模拟结果的本发明的所述和第二实施例的完整细节在由本申请的发明人所撰写的技术论文中被描述,该论文的题目为“Fair treatment of mixedTCP and UDP traffic under WRED”。在此引入该论文的内容作为参考。
本发明包括两个过程每个T周期性所调用的背景过程,以及每次分组到达系统时所调用的到达过程。所述到达过程利用来自背景过程的结果来确定是接收还是丢弃每个到达的分组。
所述到达过程如下-如果所述到达分组是UDP,则该过程将UDP分组所占用的空间量与UDP阈值进行比较,该阈值由所述背景过程来计算。如果超出了所述UDP阈值则丢弃所述UDP分组。否则,接受该UDP分组。
-如果所接收的分组是TCP,则该过程基于由所述背景过程所计算的概率来丢弃分组。
存在所述背景过程的两种实现。它们是相似的,不同之处仅在于如何决定调整UDP阈值。这两种实现保持对阈值的分别设置,一个针对TCP业务而另一个针对UDP业务。TCP阈值是固定的,并且对于TCP业务,算法类似于基本RED。而UDP阈值依据下列内容被动态地修改UDP业务的负载、TCP业务的负载、UDP能占用的允许的带宽部分以及缓冲器的占用率。
所述第一实现称为基于一队列响应安全丢弃的WRED(1QRD-WRED,1-Queue,Responsive-save,Discard-based WRED),其首先计算UDP容量-如果有TCP业务传输到系统时UDP业务能占用的带宽。所述值是总可用带宽的某个部分,udp_limit,其被表达为在长度T的上一个周期中从系统发送的字节数。该部分说明了UDP被保证的可用带宽的百分比。
然后,该算法针对长度T的上一个周期计算下面的值1.到达系统的UDP字节的最大数,udp_in_trunc,也就是可以截短至当前可用带宽的udp_limit部分的字节数;2.到达系统的实际字节数,udp_in;以及3.由于超出UDP阈值而被丢弃的UDP字节数,udp_drop。
注意2和3之间的称为udp_eff的差值,反映了UDP实际获得了多大带宽。
如果udp_eff不同于udp_in_trunc,UDP阈值应当改变的值被如下计算delta=udp_in_trunc-udp_eff=udpin_trunc-(udp_in-udp_drop)例如,考虑当udp_eff小于udp_in_trunc时将出现的情况。在这种情况下,UDP获得的带宽(udp_eff)小于其被允许占用的带宽(udp_in_trunc),因此delta应是正的,以允许UDP业务的较大部分。
如果udp_eff=udp_in_trunc,该算法比较两个UDP占用率当前UDP占用率cur_udp_occ和来自先前周期的占用率prev_udp_occ。如果所述当前UDP占用率小于先前周期的占用率,这意味着现用的UDP资源比以前少。在这种情况下,所述阈值改变(delta)被如下计算delta=cur_udp_occ-prev_udp_occ负的delta将通过所述两个占用率之间的差值来降低所述阈值。
如果当前占用率不小于先前周期的占用率,则delta设置为0,并且UDP阈值保持不变。
最后,如果在长度T的上一个测量周期中没有观察到UDP业务,则将UDP阈值与小于1的正因子相乘。(例如UDP阈值可以被减半)。如果所述UDP阈值没有以这种方式被减少,则将其保持在可能的较高值能够允许大量突发的UDP业务在下一个现用UDP周期进入系统,这将不利地影响TCP性能。
所述背景过程的剩余部分与现有技术的基本RED中所采用的过程很相似而只有一处例外。该不同在于现在只有TCP业务在平均占用率和丢弃概率的计算中被考虑,该计算被用于确定TCP分组应当被接受还是被丢弃。这样,UDP业务对TCP业务只有间接的影响。这个影响涉及到等待时间,该等待时间由TCP源来察觉,并且由于缓冲器中UDP分组的存在而被增加。
称为基于一队列响应安全速率的WRED(1QRR-WRED,1-Queue,Responsive-safe,Rate-based WRED)的所述背景过程的第二实现,与上面介绍的1QRD-WRED很相似。
所述第一和第二实现之间的区别在于,所述第二实现,1QRR-WRED,不依赖分细丢弃来确定UDP业务所占用的带宽是否满足UDP的需要。所述决定现在基于离开WRED系统的UDP字节数udp_dep和进入该系统的UDP字节数之间的差值。所述方法后面的推理为,当离开缓冲器的UDP分组多于到达缓冲器的UDP分组时,则UDP尽可能地得到比所需更大的带宽,并且因此应减少UDP阈值。反过来,当到达缓冲器的UDP分组多于离开缓冲器的UDP分组时,则UDP尽可能地得到很小的带宽,并且因此应增加UDP阈值。
上面介绍的所述UDP阈值的改变,delta,现在被如下计算delta=udp_in_trunc-udp_dep换句话说,delta被计算为到达该系统的被截短的字节数与离开该系统的字节数udp_dep之间的差值。推理与第一实现1QRD-WRED中的相同-目的是确定UDP流想要多大带宽、其实际得到多大带宽,并且因而通过调整所述阈值来行动。
1QRR-WRED中的到达过程与1QRD-WRED中的相同。
第一实施例的两个实现的模拟,及其与不在响应和无响应流之间进行区分的基本WRED的比较,说明了本发明如何很好地解决了UDP和TCP之间的不公平问题。例如,图2示出了下面的情景中针对基本WRED的UDP和TCP业务的吞吐量。在开始模拟之后的起始5秒,TCP源连续地在100%的带宽上发送业务。UDP源在100%的带宽上发送业务15秒,在25%的带宽上发送业务10秒,并保持空闲5秒。然后,整个循环再次开始。
明显地,UDP业务得到了其希望的带宽共享,而TCP得到的是剩余部分(或者当UDP的负载是100%时,几乎什么也得不到)。如上所述,在简单的WRED中,UDP可以使用其能得到的任何数量的带宽。这是由于UDP和TCP协议的固有特性-UDP是攻击性的,而TCP不是,其对UDP业务让步。当TCP与大量UDP业务混合时导致了TCP的性能极差。
图3示出了在与上面相同的环境中的、但现在不由1QRD-WRED算法控制的UDP和TCP流的吞吐量。尽管由1QRR-WRED控制的UDP和TCP流的吞吐量未被说明,但是结果已经表明该吞吐量大约与1QRD-WRED中的吞吐量相同。
根据拥塞管理过程的第二实施例,在分别的队列中的TCP和UDP分组在共享存储器中被缓冲,在该共享存储器中所述TCP和UDP分细通过公平的、工作保养型调度器(例如round-robin、工作保养型调度器)被裁决。所述方案仅保证对每种类型的业务确保50%的带宽,这已经是对基本RED算法的一种改进。
所述算法可以被容易地修改以保证对每种业务类型的不同数量的带宽(不同于每种50%)。可以通过一种加权公平的、工作保养型调度器(例如round-robin。工作保养型调度器)来实现所述目的。在所述方法中,所述调度器相对于来自另一个队列类型的分组,更经常地服务于来自一个队列类型(TCP或UDP)的分组。
在所述实施例中,由WRED执行的丢弃概率的计算仅包括TCP分组-UDP分组被排除在外。这样,在共享存储器中(被分成两个队列的)UDP分组的存在不会增加TCP分组被丢弃的概率。
静态UDP阈值给UDP源提供某个突发容限-UDP业务可突发直至UDP阈值。需要的容限越高,则阈值应被设置的越高。
除了提供突发容限给UDP业务之外,所述UDP阈值还确保在不存在TCP业务的情况下,UDP分组将不占用全部存储器空间。而且,即使流入系统的业务是不对称的,存储器的利用也可以通过适当选择WRED阈值和UDP阈值而被最佳化。
图4示出了在与上面相同的环境中的、但现在由2QR-WRED算法控制的UDP和TCP流的吞吐量。
在两个过程中,即一个或两个队列,TCP和UDP公平地共享可用带宽。
尽管已经说明和描述了本发明的特定实施例,但是对基本概念进行多种改变对本领域的技术人员而言是显而易见的。应当理解,这种改变将在由所附的权利要求所定义的本发明的整个范围之内。例如,应当指出,可以使用任何响应协议的业务来代替上述基于TCP的业务,而可以使用任何无响应协议的业务来代替上述基于UDP的业务。
权利要求
1.一种通过将拥塞控制算法分别应用于UDP和TCP业务来管理通信系统的缓冲器中的UDP和TCP业务拥塞的方法,该方法包括下列步骤a)响应于到达所述缓冲器的UDP分组,将UDP分组在缓冲器中所占用的空间量与UDP丢弃阈值进行比较,并且响应于超出了UDP丢弃阈值,丢弃所述到达的UDP分组;并且b)响应于到达所述缓冲器的TCP分组,按照丢弃概率来丢弃所述TCP分组,该丢弃概率是根据缓冲器中的仅TCP分组的平均占用率而被确定的。
2.根据权利要求1的方法,其中,所述UDP丢弃阈值以这样的方式被动态地修改将UDP业务限制于所述缓冲器的可用带宽的被供给的百分比。
3.根据权利要求1的方法,其中,利用基于响应丢弃的WRED算法来确定所述UDP丢弃阈值,其中,该阈值是基于UDP业务的可用带宽和所接收的UDP业务的。
4.根据权利要求3的方法,其中,所述算法使所述UDP丢弃阈值基于由于超出所述UDP丢弃阈值而被丢弃的业务量的附加因子。
5.根据权利要求3的方法,其中,所述算法使所述UDP丢弃阈值基于从缓冲器系统发射的UDP业务量与被接收到该缓冲器系统的UDP业务量之间的差值的附加因子。
6.一种通过将加权随机早期检测(WRED)算法分别应用于UDP和TCP业务来管理通信系统的缓冲器中的UDP和TCP业务的系统,该系统包括下列两种装置第一种装置,用于在接收了到达的UDP分组时,将UDP分组在所述缓冲器中所占用的空间量与该UDP丢弃阈值进行比较,并且如果超出了该丢弃阈值,则丢弃所述到达的UDP分组;和第二种装置,用于如果超出了丢弃概率则丢弃到达所述缓冲器的TCP分组,该丢弃概率是根据缓冲器中的仅TCP分组的平均占用率而被确定的。
7.根据权利要求6的系统,其中,所述UDP丢弃阈值以这样的方式被动态地修改将UDP业务限制于所述缓冲器的可用带宽的被供给的百分比。
8.根据权利要求6的系统,其中,利用基于响应丢弃的WRED算法来确定所述UDP丢弃阈值,其中,该阈值是基于UDP业务的可用带宽和所接收的UDP业务的。
9.根据权利要求8的系统,其中,所述算法使所述UDP丢弃阈值基于由于超出该UDP丢弃阈值而被丢弃的业务量的附加因子。
10.根据权利要求6的系统,其中,利用基于响应速率的WRED算法来确定所述UDP丢弃阈值,其中,该阈值是基于UDP业务的可用带宽和所接收的UDP业务的。
11.根据权利要求10的系统,其中,所述算法使所述UDP丢弃阈值基于从缓冲器系统发射的UDP业务量与被接收到该缓冲器系统的UDP业务量之间的差值的附加因子。
12.一种在能够承载UDP和TCP业务的通信源上管理业务拥塞的方法,该方法包括下列步骤将到来的分别的队列中的UDP和TCP业务分组进行缓冲;由公平的、工作保养型调度器(例如round-robin、工作保养型调度器)在队列之间进行裁决,由此将资源带宽的预定分配提供给分别的队列;以及按照加权随机早期检测(WRED)算法的丢弃概率从所述队列丢弃分组,所述计算取决于仅所述TCP队列中的TCP分组。
13.根据权利要求12的方法,其中,分配给分别的UDP和TCP队列的带宽的百分比是可编程的。
14.根据权利要求13的方法,其中,对每个队列所分配的百分比是50%。
15.根据权利要求12的方法,其中,静态UDP阈值为UDP源提供突发限制,并确保在不存在TCP业务的情况下UDP分组将不占用分别的队列中的所有带宽。
16.根据权利要求12的方法,其中,即使流入所述系统的业务是不对称的,所述分别的队列的共享存储器的利用也可以通过适当选择WRED阈值而被最佳化。
17.一种在承载UDP和TCP业务的通信源上管理业务拥塞的系统,该系统包括共享存储器,用于将到来的、分别的队列中的UDP和TCP业务分组进行缓冲;公平的、工作保养型调度器(例如round-robin、工作保养型调度器),其在分别的队列之间起作用,由此为所述分别的队列提供资源带宽的预定分配;以及按照WRED丢弃概率从所述队列丢弃分组的装置,该WRED丢弃概率的计算取决于仅所述TCP队列中的TCP分组。
18.根据权利要求17的系统,其中,分配给分别的UDP和TCP队列的带宽的百分比是可编程的。
19.根据权利要求18的系统,其中,对每个队列所分配的百分比是50%。
20.根据权利要求17的系统,其中,静态UDP阈值为UDP源提供突发限制,并确保在不存在TCP业务的情况下UDP分组将不占用分别的队列中的所有带宽。
21.根据权利要求17的系统,其中,即使流入所述系统的业务是不对称的,所述分别的队列的共享存储器的利用也可以通过适当选择WRED阈值而被最佳化。
22.一种通过将拥塞控制分别应用于响应业务和无响应业务来管理通信系统的缓冲器中的业务拥塞的方法,该方法包括下列步骤如果到达所述缓冲器的分组关联于无响应业务,则将无响应业务在所述缓冲器中所占用的空间量与无响应丢弃阈值进行比较,并且如果超出了该无响应丢弃阈值,则丢弃所述到达的分组;以及如果到达所述缓冲器的分组关联于响应业务,则按照基于缓冲器中的仅响应业务的占用率的丢弃概率来丢弃所述到达的分组。
23.一种通过将拥塞控制分别应用于业务来管理通信系统的缓冲器中的响应业务和无响应业务的系统,该系统包括下列两种装置第一种装置,用于将无响应业务在所述缓冲器中所占用的空间量与无响应丢弃阈值进行比较,并且如果超出该无响应丢弃阈值,则丢弃到达的无响应业务分组;以及第二种装置,用于如果超出了丢弃概率,则丢弃到达的响应业务分组,该丢弃概率是根据缓冲器中的仅响应业务的平均占用率而被确定的。
全文摘要
描述了一种加权随机早期检测(WRED)算法。该WRED算法对通信系统的缓冲器中的响应TCP和无响应UDP业务提供了公平。由于TCP业务针对拥塞的发生作出响应而UDP业务不对其作出响应,因此如果不进行控制,UDP将独占缓冲器带宽。本发明通过将拥塞控制算法分别应用于TCP和UDP业务而解决了所述问题。针对UDP业务的丢弃阈值以这样的方式被动态地修改将UDP业务限制于所述缓冲器的可用带宽的被供给的百分比,而传统的WRED算法被应用于TCP业务。
文档编号H04L12/56GK1716914SQ20051008170
公开日2006年1月4日 申请日期2005年6月10日 优先权日2004年6月10日
发明者W·奥列辛斯基, S·德里埃狄格尔 申请人:阿尔卡特公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1