专利名称:一种基于加权随机早期检测的拥塞避免方法和系统的制作方法
技术领域:
本发明涉及网络拥塞避免领域,尤其涉及一种基于加权随机早期检测的拥塞避免方法和系统。
背景技术:
网络拥塞容易造成延迟和呑吐量等服务质量(QoS)性能指标下降,是影响带宽、系统缓存等资源利用率的关键因素。因此,有效的抑塞避免机制对于提闻网络性能具有重要意义。加权随机早期检测WRED(Weighted Random Early Detection)机制是现有网络一种常用的拥塞避免机制,其目的是通过在ー个接ロ的输出队列将要饱和的时候按照优先级有选择地丢弃数据包以防止发生TCP同歩。WRED机制丢弃数据包的速度取决于当时的队列深度。影响ー个新到达的数据包何时被丢弃的參数包括最小门限min_th、最大门限max_th和最大丢弃概率maxp(该值可设置)。其中,最小门限min_th指定在队列准备丢弃数据包前的平均队列深度。丢弃数据包的可能性随着平均队列深度向最大门限max_th靠近而不断上升。当平均队列深度达到最大门限max_th时,数据包丢弃概率达到设置的最大概率。当平均队列深度超过最大门限max_th时,所有其它试图进入队列的数据包都被丢弃。基于WRED机制队列深度和数据包丢弃概率的曲线图如图I所示。基于WRED机制的拥塞避免过程主要包括平均队列深度计算过程、WRED丢弃概率的计算过程和WRED丢弃判断过程。具体过程如图2所示S201在接收到数据包后,进行平均队列深度计算;平均队列深度能够从总体变化趋势上反映了真实的队列深度,同时可以平滑掉流量突发,不会因为偶尔的流速升高或降低而引起对流量总体情况判定的改变。计算公式为Avg_q_length = Avg’ _q_length+Wq(Q_length-Avg’ _q_length)。其中,Avg’ _q_length和Q_length分别为计算的上次平均队列深度和队列深度,Wq为计算权重,Avg_q_length为当前的平均队列深度;S202比较平均队列深度与丢弃阈值,丢弃阈值包括最小门限min_th和最大门限max_th的关系;当平均队列深度小于或等于最小门限min_th时,转入步骤S206 ;当平均队列深度大于或等于最大门限max_th时,转入步骤S205 ; 当平均队列深度大于最小门限min_th,且小于最大门限max_th时,执行步骤S203 ;
S203计算接收数据包的丢弃概率;现有的接收数据包的丢弃概率的计算公式有两种ー种,不考虑接收数据包的包长,计算公式为(ovg _ q _ length - min_ th) max^ . max_ th - min_ th’另ー种,考虑接收数据包的包长,计算公式为 nuy_ vacket — size {avg_q_length -min_th)maxp ·
i u —-X-,
max— packet — sizemax— th - min— th上述公式中,^^^^即为图I中位于(Mnth,max th)中
max tn-mm_tn— —
任一数值对应的纵坐标值。S204接收数据包的丢弃概率与随机生成的位于
范围内的随机数R进行比较,若Pb或Pb'大于R,则执行步骤S205 ;若Pb或Pb'小于或等于R,执行步骤S206 ;S205丢弃数据包,执行步骤S207 ;S206将接收的数据包存入队列,执行步骤S207 ;S207拥塞避免流程结束。上述拥塞避免流程中,在计算接收数据包的丢弃概率时,对于没有考虑接收数据包的包长的丢弃概率计算方法,其无法区分长短包的丢弃概率,而实际应用时,由于长包相对短包更易造成队列的堵塞,希望长包的丢弃概率略大于短包的丢弃概率。对于考虑了接收数据包的包长的丢弃概率计算方法,其虽然实现了长包的丢弃概率大,短包丢弃概率小
这ー技术效果,但是由于短包“^-. ”过小,以致对短包计算得到的丢弃概率
max packet _ size
非常小,造成短包几乎全部入队,直至平均队列深度大于max_th时,才将接收的数据包丢弃,无法实现提前丢弃报文避免网络拥塞的功能,其效果近似于尾丢弃(TD)算法,严重的时候会造成全局同歩,降低网络利用率。
发明内容
本发明提供了一种基于加权随机早期检测的拥塞避免方法和系统,以解决现有技术基于加权随机早期检测的拥塞避免机制无法有效丢弃短包的技术问题。为解决该技术问题,本发明提供了一种基于加权随机早期检测(WRED)的拥塞避免方法,所述方法包括将可支持的数据包的包长范围划分为若干区间;为每个区间设置不同的等价包长;根据接收数据包的包长查找该接收数据包的归属区间,并根据找到的归属区间确定该接收数据包的等价包长;根据公式声如—叩丄かで-腿—ご1^计算接收数据包的 max— packet — sizemax— th - min th
丢弃概率,其中,packet_size_new表示所述等价包长,max_packet_size表示可支持数据包的最大包长,avg_q_length表示队列的平均深度,max_th表示队列平均深度的最大门限值,min_th表示队列平均深度的最小门限值,maxp表示接收数据包的最大丢弃概率maxp ;依据计算得到的丢弃概率决定是否将接收数据包发送至所述队列。进ー步地,所述为每个区间设置不同的等价包长进ー步包括
将可支持数据包的最大包长作为包含最大数值的区间的等价包长;按照区间包含数值从大到小的顺序,为其余区间设置依次递减的等价包长,且保证依次递减的等价包长与可支持数据包的最大包长位于同一个数量级。进ー步地,当可支持的数据包的包长范围为[8,16K]字节时,划分后的若干区间分别为[8,512)、[512,IK)、[1Κ,2Κ)、[2Κ,3Κ)、[3Κ,4Κ)、[4Κ,8Κ)、[8Κ,12Κ)、[12Κ,16Κ];所述若干区间对应的等价包长依次为4Κ、6Κ、8Κ、10Κ、12Κ、14Κ、15Ι^Ρ 16Κ。进ー步地,依据计算得到的丢弃概率决定是否将接收数据包发送至所述队列进ー步包括当计算得到的丢弃概率大于随机生成的位于
范围内的随机数R吋,丢弃所述接收数据包;当计算得到的丢弃概率小于或等于随机生成的位于
范围内的随机数R吋,将所述接收数据包发送至所述队列。为解决上述技术问题,本发明还提供了一种基于加权随机早期检测(WRED)的拥塞避免系统,所述系统包括等价包长设置模块、等价包长映射模块、丢弃概率计算模块以及数据包入队判断模块,其中,所述等价包长设置模块,用于将可支持的数据包的包长范围划分为若干区间,并为每个区间设置不同的等价包长;所述等价包长映射模块,用于根据接收数据包的包长查找该接收数据包的归属区间,井根据找到的归属区间确定该接收数据包的等价包长;所述丢弃概率计算模块,用于根据公式
一り—十算接收数据包的丢弃概率,其中,max— packet — sizemax th - min th
packet_size_new表示所述等价包长,max_packet_size表示可支持数据包的最大包长,avg_q_length表示队列的平均深度,max_th表示队列平均深度的最大门限值,min_th表示队列平均深度的最小门限值,maxp表示接收数据包的最大丢弃概率maxp ;数据包入队判断模块,用于依据计算得到的丢弃概率决定是否将接收数据包发送至所述队列。进ー步地,所述等价包长设置模块,用于将可支持数据包的最大包长作为包含最大数值的区间的等价包长;按照区间包含数值从大到小的顺序,为其余区间设置依次递减的等价包长,且保证依次递减的等价包长与可支持数据包的最大包长位于同一个数量级。进ー步地,所述等价包长设置模块,用于在可支持的数据包的包长范围为[8,16K]字节时,将可支持的数据包的包长范围划分为[8,512)、[512,IK)、[1K,2K)、[2K,3K)、[3K,4K)、[4K,8K)、[8Κ,12Κ)、[12Κ,16Κ];设置各个包长范围对应的等价包长依次为4Κ、6Κ、8Κ、10Κ、12Κ、14Κ、15Κ 和 16Κ。进ー步地,所述数据包入队判断模块,用于当计算得到的丢弃概率大于随机生成的位于[O,I]范围内的随机数R时,丢弃所述接收数据包;当计算得到的丢弃概率小于或等于随机生成的位于[O,I]范围内的随机数R时,将所述接收数据包发送至所述队列。 上述技术方案,通过将接收数据包的包长映射为等价包长,可实现将短包的包长映射为较大的等价包长,进而提高短包的丢弃概率。
图I为现有技术基于WRED机制队列深度和数据包丢弃概率的曲线图;图2为现有技术基于WRED机制的拥塞避免过程图;图3为本实施例的基于加权随机早期检测(WRED)的拥塞避免方法流程图;图4为本实施例的基于加权随机早期检测(WRED)的拥塞避免系统组成图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意組合。图3为为本实施例的基于加权随机早期检测(WRED)的拥塞避免方法流程图。S301将可支持的数据包的包长范围划分为若干区间;S302为每个区间设置不同的等价包长;将可支持数据包的最大包长作为包含最大数值的区间的等价包长;按照区间包含数值从大到小的顺序,为其余区间设置依次递减的等价包长,且保证依次递减的等价包长与可支持数据包的最大包长位于同一个数量级;S303根据接收数据包的包长查找该接收数据包的归属区间,井根据找到的归属区间确定该接收数据包的等价包长;S304根据公式声如-了 ·x(叩丄たで—腿^^计算接收数据
max— packet — sizemax— th - min th
包的丢弃概率,其中,packet_size_new表示所述等价包长,max_packet_size表示可支持数据包的最大包长,avg_q_length表示队列的平均深度,max_th表示队列平均深度的最大门限值,min_th表示队列平均深度的最小门限值,maxp表示接收数据包的最大丢弃概率maxp ;S305依据计算得到的丢弃概率决定是否将接收数据包发送至所述队列;当计算得到的丢弃概率大于随机生成的位于
范围内的随机数R吋,丢弃所述接收数据包;当计算得到的丢弃概率小于或等于随机生成的位于
范围内的随机数R吋,将所述接收数据包发送至所述队列。下面以ー个具体应用示例对上述实施例进行进ー步说明。在该应用示例中,可支持的数据包的包长范围为[8,16K]字节,划分后的若干区间分别为[8,512)、[512,IK)、[1Κ,2Κ)、[2Κ,3Κ)、[3Κ,4Κ)、[4Κ,8Κ)、[8Κ,12Κ)、[12Κ,16Κ];所述若干区间对应的等价包长依次为4Κ、6Κ、8Κ、10Κ、12Κ、14Κ、15Κ和16Κ,如表I所示。表I
权利要求
1.一种基于加权随机早期检测(WRED)的拥塞避免方法,其特征在于,所述方法包括 将可支持的数据包的包长范围划分为若干区间; 为每个区间设置不同的等价包长; 根据接收数据包的包长查找该接收数据包的归属区间,并根据找到的归属区间确定该接收数据包的等价包长; packet size new {avg q length - min 汸)Inaxij 根据公式^——-7 - . xVS^计算接收数据包的丢弃max_ packet _ sizemax_ tn - min_ tn概率,其中,packet_size_new表示所述等价包长,max_packet_size表示可支持数据包的最大包长,avg_q_length表示队列的平均深度,max_th表示队列平均深度的最大门限值,min_th表示队列平均深度的最小门限值,maxp表示接收数据包的最大丢弃概率maxp ; 依据计算得到的丢弃概率决定是否将接收数据包发送至所述队列。
2.如权利要求I所述的方法,其特征在于所述为每个区间设置不同的等价包长进一步包括 将可支持数据包的最大包长作为包含最大数值的区间的等价包长; 按照区间包含数值从大到小的顺序,为其余区间设置依次递减的等价包长,且保证依次递减的等价包长与可支持数据包的最大包长位于同一个数量级。
3.如权利要求2所述的方法,其特征在于, 当可支持的数据包的包长范围为[8,16K]字节时,划分后的若干区间分别为[8,512)、[512,IK)、[IK, 2K)、[2K, 3K)、[3K, 4K)、[4K, 8K)、[8K, 12K)、[12K, 16K]; 所述若干区间对应的等价包长依次为姐、61(、81(、101(、121(、141(、151(和16K。
4.如权利要求I或2所述的方法,其特征在于,依据计算得到的丢弃概率决定是否将接收数据包发送至所述队列进一步包括 当计算得到的丢弃概率大于随机生成的位于[O,I]范围内的随机数R时,丢弃所述接收数据包; 当计算得到的丢弃概率小于或等于随机生成的位于[O,I]范围内的随机数R时,将所述接收数据包发送至所述队列。
5.一种基于加权随机早期检测(WRED)的拥塞避免系统,其特征在于,所述系统包括等价包长设置模块、等价包长映射模块、丢弃概率计算模块以及数据包入队判断模块,其中, 所述等价包长设置模块,用于将可支持的数据包的包长范围划分为若干区间,并为每个区间设置不同的等价包长; 所述等价包长映射模块,用于根据接收数据包的包长查找等价包长设置模块中设置的该接收数据包的归属区间,并根据找到的归属区间确定该接收数据包的等价包长packet_size_new,将所述等价包长packet_size_new发送至丢弃概率计算模块;所述丢弃概率计算模块,用于根据公式packet size new {avg q length - min 汸)Inaxij-——-7 - .S^计算接收数据包的丢弃概率,其中,max_ packet _ sizemax_ tn - min_ tnmax_packet_size表示可支持数据包的最大包长,avg_q_length表示队列的平均深度,max_th表示队列平均深度的最大门限值,min_th表示队列平均深度的最小门限值,maxp表示接收数据包的最大丢弃概率maxp,并将计算得到的丢弃概率发送至数据包入队判断模块; 所述数据包入队判断模块,用于依据计算得到的丢弃概率决定是否将接收数据包发送至所述队列。
6.如权利要求5所述的系统,其特征在于, 所述等价包长设置模块,用于将可支持数据包的最大包长作为包含最大数值的区间的等价包长;按照区间包含数值从大到小的顺序,为其余区间设置依次递减的等价包长,且保证依次递减的等价包长与可支持数据包的最大包长位于同一个数量级。
7.如权利要求6所述的系统,其特征在于, 所述等价包长设置模块,用于在可支持的数据包的包长范围为[8,16K]字节时,将可支持的数据包的包长范围划分为[8,512)、[512,IK)、[1K,2K)、[2K,3K)、[3K,4K)、[4K,8K)、[8K,12K)、[12K,16K];设置各个包长范围对应的等价包长依次为4K、6K、8K、10K、12K、14K、15K 和 16K。
8.如权利要求5所述的系统,其特征在于, 所述数据包入队判断模块,用于当计算得到的丢弃概率大于随机生成的位于
范围内的随机数R时,丢弃所述接收数据包;当计算得到的丢弃概率小于或等于随机生成的位于
范围内的随机数R时,将所述接收数据包发送至所述队列。
全文摘要
本发明提供了一种基于加权随机早期检测的拥塞避免方法和系统,其中,所述方法包括将可支持的数据包的包长范围划分为若干区间;为每个区间设置不同的等价包长;根据接收数据包的包长查找该接收数据包的归属区间,并根据找到的归属区间确定该接收数据包的等价包长;根据公式计算接收数据包的丢弃概率,其中,packet_size_new表示等价包长,max_packet_size表示可支持数据包的最大包长,avg_q_length表示队列的平均深度,max_th表示队列平均深度的最大门限值,min_th表示队列平均深度的最小门限值,maxp表示接收数据包的最大丢弃概率maxp;依据计算得到的丢弃概率决定是否将接收数据包发送至所述队列。本发明提高了短包的丢弃概率。
文档编号H04L12/56GK102629910SQ20121003245
公开日2012年8月8日 申请日期2012年2月14日 优先权日2012年2月14日
发明者吴风波, 徐金林, 石永亮, 童小九 申请人:中兴通讯股份有限公司