用于报文转发系统的提供比例丢失率区分的队列管理方法

文档序号:7746818阅读:233来源:国知局
专利名称:用于报文转发系统的提供比例丢失率区分的队列管理方法
技术领域
一种用于报文转发系统的提供比例丢失率区分的队列管理方法属于网络拥塞的控制和避免技术领域,尤其涉及其中链路技术中的主动队列管理方法。
根据算法的实现位置,可以将拥塞控制算法分为两大类链路算法和源算法。链路算法在网络的中间节点(如路由器和交换机)中执行,作用是检测网络拥塞的发生,产生拥塞反馈信息,如“队列管理算法“;源算法在端节点(主机和网络边缘设备等)中执行,作用是根据反馈信息调整发送速率,如“传输控制协议”(TCPTransmission Control Protocol)。
“主动队列管理”(AQMActive Queue Management)算法属于拥塞控制的链路算法。在“主动队列管理”算法出现前,使用“队尾丢弃”(DropTail)的方法。“队尾丢弃”方法只有在网络设备的队列缓冲溢出时才丢弃报文,而AQM在队列缓冲溢出之前就丢弃或标记报文。和“队尾丢弃”方法相比,AQM的主要优点是(1) 减少网关的报文丢失。使用AQM可以保持较小的队列长度,从而增加网关容纳突发流量的能力。(2) 减小报文通过网关的延迟。减小平均队列长度可以有效的减小报文在网络设备中的排队延迟。(3) 避免整个网络系统振荡的发生。
AQM的一个代表是“随机早检测”(REDRandom Early Detection)算法,它的一个扩展算法“加权的随机早检测”(WREDWeighted Random Early Detection)已经实现在Cisco12000系列的路由器中。研究表明RED比DropTail具有更好的性能。但是RED的一个重大缺陷是它的性能对算法的参数设置十分敏感。
目前互联网只提供“尽力发送”(Best-Effort)的功能,既不对报文传输的质量提供保证,也不对报文传输的质量进行区分。互联网的一个发展方向是在网络中提供“区分服务”的功能,即根据用户的需求,对不同类别的网络流量区别对待。这些区别可以表现在带宽、报文丢失率和延迟等方面。“区分服务”的一种实现方法是,当报文在网络中的每个网络设备进行转发时,对不同类别的网络报文进行不同的处理。
更具体的说,本申请的目的是使用“主动队列管理”算法来支持报文的“比例丢失率区分”(Proportional Loss Rate Differentiation)。“比例丢失率区分”的含义是对于两个报文类i和j,经过网关时它们的平均丢失率li和lj满足下面的关系l-il-j=σiσj]]>其中,σi和σj是用户设定的系数,称为“丢失率区分系数”(Loss Rate Differentiation Parameter)。“比例丢失率区分”的特点有2个首先,它的目的是提供报文丢失率的区分;其次,用户可以通过参数设定来不同类报文丢失率的比例关系。
目前,“加权的随机早检测”(WREDWeighted Random Early Detection)和RIO(RED In andOut)算法也提供“丢失率区分”功能,但是它们的缺陷在于不提供“比例的”区分;参数设置方法不明确;对网络的负载变化不能自动适应。
本发明是用于报文转发系统的提供比例丢失率区分的队列管理方法,含有计算机从报文转发用的网络或路由器中采集瞬时队列长度计算报文丢弃或标记的概率和使用计算得到的概率丢弃或按相应的公知标准标记报文的步骤,其特征在于它是一种控制和避免拥塞用的链路方法中的“主动队列管理”方法,依次含有如下步骤(1)初始化设定interval_s,概率值prob的计算周期,设为t(s)秒;interval_l,调整概率平均值avg_p的周期,设为t(l)秒;target,平均队列长度的目标值;α,在调整概率平均值avg_p时用的调整系数,α>1;wi为针对不同类报文类i使用的比例丢失率区分参数;(2)采集瞬时队列长度q;(3)计算队列长度的总和q_sum=q_sum+q;(4)计算新的概率值prob=avg_p*q/target;(5)分别计算每个报文类i的报文丢失率probiprobi=prob*wi(i=1,2,...,N)(6)判断probi>0.5?若probi>0.5,命probi=0.5;若probi<0.5,则执行下一步骤;(7)判断是否到达t(s)秒?;若到达t(s)秒且没有到达t(l)秒,则执行步骤(2);若到达t(s)秒且到达t(l)秒,则执行步骤(8);若没有到达t(s)秒,则等待,直到到达t(s)秒;(8)调整概率平均值avg_p,它依次含以下步骤(8.1) 计算平均队列长度avg_qavg_q=q_sum/(interval_l/interval_s);(8.2) 重置q_sum=0;(8.3) 判断avg_q<target?若avg_q<target,则令avg_p=avg_p/α;若avg_q>target,则令avg_p=avg_p*α;(8.4) 判断avg_p<0.0001?若avg_p<0.0001则令avg_p=0.0001;若avg_p>0.5,则令avg_p=0.5;(8.5) 执行步骤(2)。
其中所述的概率值prob的计算周期interval_s的取值有下面的规律(1) 当“往返延迟”(RTTRound Trip Time)大于100ms时,interval_s最好要比RTT小一个数量级;(2) 当RTT小于100ms时,interval_s取值为10ms就可以达到很好的性能了;(3) interval_s的推荐取值为0.01秒。
其中所述的调整概率平均值avg_p的周期interval_l的取值有下面的规律(1) interval_l的值必须大于RTT,否则算法的性能会严重下降;(2) 同时要求interval_l的值不能太大,否则算法的反应速度太慢。(3) 推荐interval_l的取值为1.0秒。
其中所述的调整系数α的取值在2.0到10.0之间;推荐α的取值为2.0。
验证试验证明它达到了预期目的。
图2.队列的示意图。
图3.主动队列管理算法的基本原理图。
3(a)丢弃或标记概率的计算。
3(b)报文的丢弃或标记。
图4.WSAP算法各部分之间的关系图。
图5.WSAP中基本算法的流程框图。
图6.WSAP中自适应算法的流程框图。
图7.试验用的网络拓扑结构。
如图3所示,“主动队列管理”算法的处理可以分为两大部分计算报文丢弃或标记的概率;使用计算得到的概率丢弃或标记报文。
概率计算的一般流程(见图3(a))是在网络设备中测量采样,获得队列长度、报文丢失率等数据;使用测量采样得到的结果,计算出报文丢弃或标记的概率。报文丢弃或标记的一般流程(见图3(b))是每收到一个报文,就按照概率计算过程得到的结果对收到的报文进行丢弃或者标记。
本专利中的算法是一种“主动队列管理”算法。根据算法的特征,我们将其命名为“加权的简单自适应比例控制器”(WSAPWeighted Simple Adaptive Proportional)。WSAP算法是在“简单自适应比例控制器”(SAPSimple Adaptive Proportional)算法的基础上发展出来的,在很多方面继承了SAP算法的性质。其主要创新点在于针对不同类的报文,使用用户设定的权重,单独计算报文丢弃或标记的概率,从而达到报文“比例丢失率区分”的效果。
和SAP算法类似,WSAP算法包括2个主要部分(1) 基本算法(The Basic Algorithm)使用“比例控制器”(Proportional Controller)计算每类报文对应的报文丢弃或标记的概率值,并根据报文的类型使用相应的概率值对经过网关的报文进行丢弃或标记。(2) 自适应算法(The Adaptive Algorithm)动态的对“基本算法”中使用的参数avg_p进行调整。
WSAP算法各部分之间的关系如图4所示。下面分别说明WSAP的两个主要部分的内容。
图5显示了WSAP的基本算法部分的总体流程。在基本算法中,使用“周期更新”的方式计算概率值。在算法描述中,这个更新周期记为interval_s。根据试验的经验,我们发现interval_s的取值有这样的规律(1)当“往返延迟”(RTTRound Trip Time)大于100ms时,interval_s最好要比RTT小一个数量级;(2)当RTT小于100ms时,interval_s取值为10ms就可以达到很好的性能了。
“周期更新”方式是SAP的一个特色。在RED算法中,每个报文到达时都要进行更新计算。和RED相比,SAP的计算开销大大降低。根据上面的描述,在实现中interval_s可以就取作10ms(或者更小的值)。
在图5中,还显示了概率计算的基本步骤。在以下3点上使用了SAP算法中的方法(1)在概率的计算中使用“瞬时队列长度”(Instantaneous Queue Size),即直接使用采样得到的队列长度,而不使用平均队列长度avg_q。
(2)使用“比例控制器”,根据采样得到的“瞬时队列长度”计算新的概率值,即prob=avg_p*q/target(3)将概率的最大值限制为0.5。根据试验得到的经验,加入这个限制在网络达到一定拥塞程度时可以提高算法的性能。
WSAP的创新体现在对每类报文的丢弃或标记概率的计算方面。如图5中所示,在计算出prob之后,WSAP根据用户提供的参数值wi,分别计算每个报文类的报文丢失率probiprobi=prob*wi这样,在报文到达队列时,就可以根据报文中携带的报文类型标识,使用相应的probi来丢失或标记报文(参见图4)。
WSAP的自适应算法和SAP算法的自适应算法相同,其流程框图如图6所示。它的作用是根据网络的当前状态,动态调整基本算法中使用的系数avg_p。
在WSAP的自适应算法部分中,也使用了“周期更新”的方法。对avg_p的调整每interval_l进行一次。这里对interval_l的取值有2个要求(1)interval_l的值必须大于RTT,否则算法的性能会严重下降;(2)同时要求interval_l的值不能太大,否则算法的反应速度太慢。
根据上面的说明,考虑互联网的实际情况,推荐interval_l的设置为1.0秒。
在avg_p的调整方法中,包含以下4个关键点(1) 在参数调整中根据“平均队列长度”(Average Queue Size)来判断。(2) 参数的调整方法,即如果平均队列长度avg_q大于target,则增大avg_p;如果平均队列小于target,则减小avg_p。SAP的特点是在增大和减小avg_p时,使用的是乘除法,而不是加减法。而且为了简化参数的配置,在增大和减小avg_p的计算中使用了相同的参数。推荐调整系数α的取值为2.0。(3) SAP中,target的取值方法也是SAP算法的一部分。target的大小影响SAP的调整粒度。为了保证足够的调整粒度,要求target最好大于10.0。在设置target时,应该在调整粒度和队列延迟之间进行权衡。(4) 将avg_p的取值限制在0.0001和0.5之间。
在具体实现时,平均队列长度avg_q的计算是分布在基本算法和自适应算法中的。平均队列长度的计算包括以下3个基本步骤(1) 在基本算法中,在每次对队列长度采样后,计算队列长度的和q_sumq_sum=q_sum+q(2) 在自适应算法中,在每次调整avg_p前,进行avg_q的更新计算avg_q=q_sum/(interval_l/interval_s)(3) 在自适应算法中,在完成avg_q的计算后,将q_sum重置为0q_sum=0现结合实例对本发明提出的WSAP算法予以说明。其所用的网络拓扑结构见图7。WSAP算法使用在R1和R2之间。试验时,在节点Si和Di之间建立TCP连接,从0秒开始,在400秒时结束。Si和Di之间的延迟设为40毫秒。R1和R2之间的带宽取值为C=64 Mbps,R1和R2之间队列缓冲的大小设为2000个报文,报文的大小都设为1000字节。使用8个报文类,针对每类报文建立5个TCP连接。在试验中,队列对报文的操作方式为“标记”。
试验中,WSAP的参数设置为interval_s=0.01秒,interval_l=1.0秒,target=40.0个报文,α=2.0。丢失率区分参数的设置为wi=1.0,4.0,9.0,16.0,25.0,36.0,49.0,64.0。
以下举例说明算法中的具体步骤(1) 在0.0秒时,概率值prob=0,probi(i=1,...,8)=0,avg_p=0.1,平均队列长度avg_q=0,队列长度的和q_sum=0。(2) 在0.01秒时,执行WSAP的基本算法□ 采样得到队列长度q=33。
□ 计算队列长度的和(在0.0秒时队列长度的和为0)q_sum=q_sum(0.0)+q=0+33=33
□ 计算概率值prob=avg_p*q/target=0.1*33/40.0=0.0825□ 计算每一类报文的概率值prob1=prob*w1=0.0825*1.0=0.0825prob2=prob*w2=0.0825*4.0=0.33prob3=prob*w3=0.0825*9.0=0.7425,由于大于0.5,调整为0.5prob4=prob*w4=0.0825*16.0=1.32,由于大于0.5,调整为0.5prob5=prob*w5=0.0825*25.0=2.0625,由于大于0.5,调整为0.5prob6=prob*w6=0.0825*36.0=2.97,由于大于0.5,调整为0.5prob7=prob*w7=0.0825*49.0=4.0425,由于大于0.5,调整为0.5prob8=prob*w8=0.0825*64.0=5.28,由于大于0.5,调整为0.5(3)在1.00秒时,首先执行WSAP的基本算法□ 采样得到队列长度q=0。
□ 计算队列长度的和(0.99秒时q_sum的值为1634)q_sum=q_sum(0.99)+q=1634+0=1634□ 计算概率值prob=avg_p*q/target=0.1*0/40.0=0.0□ 计算每一类报文的概率值prob1=prob*w1=0.0*1.0=0.0prob2=prob*w2=0.0*4.0=0.0prob3=prob*w3=0.0*9.0=0.0prob4=prob*w4=0.0*16.0=0.0prob5=prob*w5=0.0*25.0=0.0prob6=prob*w6=0.0*36.0=0.0prob7=prob*w7=0.0*49.0=0.0prob8=prob*w8=0.0*64.0=0.0然后执行WSAP的自适应算法,完成下面的操作□ 计算平均队列长度avg_q=q_sum/(interval_l/interval_s)=1634/100=1.634□ 将q_sum重置为0q_sum=0□ 因为avg_q的值(1.634)小于target的值(40.0),所以减小avg_p的值avg_p=avg_p/α=0.1/2.0=0.05(4)在1.01秒时,执行WSAP的基本算法□ 采样得到队列长度q=0。
□ 计算队列长度的和(在1.0秒时q_sum被重置为0)q_sum=q_sum(1.0)+q=0+0=0□ 计算概率值prob=avg_p*q/target=0.05*0/40.0=0.0□ 计算每一类报文的概率值prob1=prob*w1=0.0*1.0=0.0prob2=prob*w2=0.0*4.0=0.0prob3=prob*w3=0.0*9.0=0.0prob4=prob*w4=0.0*16.0=0.0prob5=prob*w5=0.0*25.0=0.0prob6=prob*w6=0.0*36.0=0.0prob7=prob*w7=0.0*49.0=0.0□ prob8=prob*w8=0.0*64.0=0.0(5)在9.00秒时,首先执行WSAP的基本算法□ 采样得到队列长度q=52。
□ 计算队列长度的和(在8.99秒时q_sum的值为40514)q_sum=q_sum(8.99)+q=40514+52=40566□ 计算概率值prob=avg_p*q/target=0.000391*52/40.0=0.0005083□ 计算每一类报文的概率值prob1=prob*w1=0.0005083*1.0=0.0005083prob2=prob*w2=0.0005083*4.0=0.0020332prob3=prob*w3=0.0005083*9.0=0.0045747prob4=prob*w4=0.0005083*16.0=0.0081328prob5=prob*w5=0.0005083*25.0=0.0127075prob6=prob*w6=0.0005083*36.0=0.0182988prob7=prob*w7=0.0005083*49.0=0.0249067prob8=prob*w8=0.0005083*64.0=0.0325312然后执行WSAP的自适应算法,完成下面的操作□ 计算平均队列长度avg_q=q_sum/(interval_l/interval_s)=40566/100=40.566□ 将q_sum重置为0q_sum=0□ 因为avg_q的值(40.566)大于target的值(40.0),所以增大avg_p的值avg_p=avg_p*α=0.000391*2.0=0.000781

表1.实施例的试验结果(6)在9.01秒时,执行WSAP的基本算法□ 采样得到队列长度q=52。
□ 计算队列长度的和(在9.0秒时q_sum被重置为0)q_sum=q_sum(9.0)+q=0+52=52□ 计算概率值prob=avg_p*q/target=0.000781*52/40.0=0.0010153□ 计算每一类报文的概率值prob1=prob*w1=0.0010153*1.0=0.0010153prob2=prob*w2=0.0010153*4.0=0.0040612prob3=prob*w3=0.0010153*9.0=0.0091377prob4=prob*w4=0.0010153*16.0=0.0162448prob5=prob*w5=0.0010153*25.0=0.0253825prob6=prob*w6=0.0010153*36.0=0.0365508prob7=prob*w7=0.0010153*49.0=0.0497497prob8=prob*w8=0.0010153*64.0=0.0649792试验结果见表1。各类报文之间的丢失率比例(li/ll)和我们设定的参数非常接近。在试验中,没有发生由于队列溢出而导致的报文丢失。在试验中,R1和R2之间的链路利用率为98.94%,得到的平均队列长度为42.24个报文。
上述结果是用网络模拟器ns-2在一台Intel PIII800的PC机上运行而得到的。
由此可见,本发明提出的WSAP算法具有以下特点(1) WSAP继承了SAP的优点,可以在达到高线路利用率(Link Utilization)的同时,保持小的排队延迟(Queuing Delay)。(2) WSAP提供不同类报文之间丢失率的“相对”区分,而不提供“绝对”区分。(3) 由于WSAP算法继承了SAP的自适应算法,所以对区分参数wi的设置,只需要关注它们之间的比例关系,而不必关注每个参数的绝对值。例如设置w1=1.0,w2=2.0和设置w1=0.1,w2=0.2的效果是一样的。(4) 从算法描述可见,WSAP可以很容易的支持很多个类。每增加一个类k,只需要增加一个配置参数wk和一个算法变量probk。(5) WSAP只提供丢失率的区分,而不提供吞吐量和延迟的区分。吞吐量的区分是通过丢失率的区分间接达到的。
权利要求
1.用于报文转发系统的提供比例丢失率区分的队列管理方法,含有计算机从报文转发用的网络或路由器中采集瞬时队列长度计算报文丢弃或标记的概率和使用计算得到的概率丢弃或按相应的公知标准标记报文的步骤,其特征在于它是一种控制和避免拥塞用的链路方法中的“主动队列管理”方法,依次含有如下步骤(1)初始化设定interval_s,概率值prob的计算周期,设为t(s)秒;interval_l,调整概率平均值avg_p的周期,设为t(l)秒;target,平均队列长度的目标值;α,在调整概率平均值avg_p时用的调整系数,α>1;wi为针对不同类报文类i使用的比例丢失率区分参数;(2)采集瞬时队列长度q;(3)计算队列长度的总和q_sum=q_sum+q;(4)计算新的概率值prob=avg_p*q/target(5)分别计算每个报文类i的报文丢失率probiprobi=prob*wi(i=1,2,...,N)(6)判断probi>0.5?若probi>0.5,命probi=0.5;若probi<0.5,则执行下一步骤;(7)判断是否到达t(s)秒?;若到达t(s)秒且没有到达t(l)秒,则执行步骤(2);若到达t(s)秒且到达t(l)秒,则执行步骤(8);若没有到达t(s)秒,则等待,直到到达t(s)秒;(8)调整概率平均值avg_p,它依次含以下步骤(8.1) 计算平均队列长度avg_qavg_q=q_sum /(interval_l/interval_s);(8.2) 重置q_sum=0;(8.3) 判断avg_q<target?若avg_q<target,则令avg_p=avg_p/α;若avg_q>target,则令avg_p=avg_p*α;(8.4) 判断avg_p<0.0001?若avg_p<0.0001,则令avg_p=0.0001;若avg_p>0.5,则令avg_p=0.5;(8.5) 执行步骤(2)。
2.根据权利要求1所述的用于报文转发系统的队列管理方法,其特征在于所述的概率值prob的计算周期interval_s的取值有下面的规律(1) 当“往返延迟”(RTTRound Trip Time)大于100ms时,interval_s最好要比RTT小一个数量级;(2) 当RTT小于100ms时,interval_s取值为10ms就可以达到很好的性能了;(3) interval_s的推荐取值为0.01秒。
3.根据权利要求1所述的用于报文转发系统的队列管理方法,其特征在于所述的调整概率平均值avg_p的周期interval_l的取值有下面的规律(1) interval_l的值必须大于RTT,否则算法的性能会严重下降;(2) 同时要求interval_l的值不能太大,否则算法的反应速度太慢。(3) 推荐interval_l的取值为1.0秒。
4.根据权利要求1所述的用于报文转发系统的队列管理方法,其特征在于所述的调整系数α的取值在2.0到10.0之间;推荐α的取值为2.0。
全文摘要
用于报文转发系统的提供比例丢失率区分的队列管理方法属于网络拥塞控制和避免技术领域,其特征在于:它在网络设备中采集瞬时队列长度计算报文丢弃或标记的概率值这一步骤中,使用了“加权的简单自适应比例控制器”算法,它由使用比例控制器计算每类报文对应的报文丢弃或标记的概率并根据报文的类型使用相应的概率值对经过网关的报文进行丢弃或标记的基本算法和动态的对基本算法中使用的参数avg p即概率的平均值进行调整的自适应算法两部分构成。它具有在达到高线路利用率的同时保持小的排队延迟,提供不同类报文之间丢失率的相对区分,而不提供绝对区分,区分参数的设置方便,而且可以很容易的支持很多个类报文的优点。
文档编号H04L12/54GK1379569SQ0211707
公开日2002年11月13日 申请日期2002年4月29日 优先权日2002年4月29日
发明者吴建平, 章淼 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1