本发明涉及数字通信技术领域,具体涉及到一种应用在交换电路中的加权随机早期检测方法,主要用于网络节点进行主动队列管理。
背景技术
队列管理是端到端拥塞控制的研究热点,通过优化基于路由器技术的队列管理算法可改善拥塞控制,提高网络服务质量(qualityofservice)。
加权随机早期检测算法wred(weightedrandomearlydetection)能够在队列发生拥塞的初期根据不同服务优先级对其进行有效控制。该算法通过平均统计量来计算每个队列长度,而后基于该平均统计量,队列管理器参照wred参数进行一定概率的丢包,从而解决队列拥塞问题。
技术实现要素:
本发明所要解决的技术问题是研究一种支持1024位的wred方法,通过检测即将到来的拥塞情况和抢先丢弃数据包来保持链路的非拥塞状态。wred通过提早有选择性的丢包而非等到缓冲器已满才丢包,避免了发生拥塞后出现一次性大量丢包的现象,能够有效维护链路的利用率。
本发明是根据以下技术方案实现的:
一种应用在交换电路中的加权随机早期检测方法,其特征在于,包括如下步骤:
步骤s1:根据输入描述符的预着色状态,将描述符分为不同丢弃优先级,采用多个阈值参数和丢弃概率参数以提供给不同颜色的数据包,每组参数包括平均队列长度的权值wq;
步骤s2:将计算缓存队列的平均队列长度,设定每4us采样时间,计算公式如下:
avgq新=(1-wq)*avgq旧+q*wq
其中wq为权值,wq=2-weight,q为采样测量时的当前队列长度,avgq初始为0,avgq新=avgq旧+q右移weight位高位不补0后的值-avgq旧右移weight位高位不补0后的值;
步骤s3:计算丢包概率,根据以下公式计算:
其中avg表示平均队列长度,pb为丢包概率,maxp为最大丢弃概率,minth为最小丢弃队列长度,maxth为最大丢弃队列长度;
丢弃率从minth的0%到maxth的maxp以8个统一步长增长,计算时将maxth-minth的值左移3位为一个步长delta,然后判断avg-minth的值在8个区域里的哪段区间,若判断为第n段,则pb值就是maxp*n/8;
步骤s4:根据设置的丢弃概率,扩充一个丢弃概率表,每个在随机丢包时,系统将产生一个随机分布的伪随机数u,u∈(1,800),当pb>u时,丢弃该包,否则进入出口描述符队列;
考虑到计算过程中需要生成伪随机数,生成1024位伪随机数,为了方便对比,将maxp扩大1024倍取整,计算时按照2的倍数进行移位运算;
步骤s5:路由器对到达的数据包实施标记的概率p的计算公式如下:
p=pb/(1-count*pb)
其中,count表示从上次丢包开始到现在进入队列的包的数量,最终的标记概率p是平均队列长度avgq及count的函数,p随着count缓慢增长,从而避免连续丢包,保证被丢弃的数据包能够均匀分布。
与现有技术相比,本发明具有如下的有益效果:
本发明通过生成1024位伪随机数与扩大1024倍后的数据包丢弃概率进行对比,有效的完成了随机丢弃的过程,被丢弃的数据包是随机的而非固定的,这样不会太大程度上影响数据传输的完整性,也维护了数据包传输过程中的公平性;
本发明通过在网络传输链路中进行主动队列管理,在拥塞产生之前就通过wred算法对数据帧进行随机丢弃,从而解决了链路拥塞问题,有效提高了传输效率。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为丢包概率示意图;
图2为本发明的wred方法结构流程图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
本发明的一种应用在交换电路中的加权随机早期检测方法,包括如下步骤:
步骤s1:根据输入描述符的预着色状态,将描述符分为不同丢弃优先级,采用多个阈值参数和丢弃概率参数以提供给不同颜色的数据包,每组参数包括平均队列长度的权值wq;
步骤s2:将计算缓存队列的平均队列长度,设定每4us采样时间,计算公式如下:
avgq新=(1-wq)*avgq旧+q*wq
其中wq为权值,wq=2-weight,q为采样测量时的当前队列长度,avgq初始为0,avgq新=avgq旧+q右移weight位高位不补0后的值-avgq旧右移weight位高位不补0后的值;
步骤s3:计算丢包概率,根据以下公式计算:
其中avg表示平均队列长度,pb为丢包概率,maxp为最大丢弃概率,minth为最小丢弃队列长度,maxth为最大丢弃队列长度;
图1为丢包概率示意图,丢弃率从minth的0%到maxth的maxp以8个统一步长增长,计算时将maxth-minth的值左移3位为一个步长delta,然后判断avg-minth的值在8个区域里的哪段区间,若判断为第n段,则pb值就是maxp*n/8;
步骤s4:根据设置的丢弃概率,扩充一个丢弃概率表,每个在随机丢包时,系统将产生一个随机分布的伪随机数u,u∈(1,800),当pb>u时,丢弃该包,否则进入出口描述符队列;
考虑到计算过程中需要生成伪随机数,生成1024位伪随机数,为了方便对比,将maxp扩大1024倍取整,计算时按照2的倍数进行移位运算;
具体丢弃概率表如下所示。
maxp扩大800倍,分八段,具体如表一所示:
表一maxp扩大800倍后的pb
maxp扩大1024倍,分八段,四舍五入,具体如表二所示:
表二maxp扩大1024倍后的pb
步骤s5:路由器对到达的数据包实施标记的概率p的计算公式如下:
p=pb/(1-count*pb)
其中,count表示从上次丢包开始到现在进入队列的包的数量,最终的标记概率p是平均队列长度avgq及count的函数,p随着count缓慢增长,从而避免连续丢包,保证被丢弃的数据包能够均匀分布。
本发明在设计过程中,需要生成1024位伪随机数以便和pb进行对比,生成伪随机数的算法中,采取低位向高位递推移位的方式。首先设置默认初始值为零,而后生成一位伪随机数,将这一位数进行左移,低位用新生成的伪随机数补齐,保证每一位都是随机生成的数值。
本发明中可嵌套在主动队列管理模块中,通过前期对入队列描述符的标色过程来进行描述符预着色,而后传输到wred模块对这些描述符进行随机丢弃,不同预着色的描述符有着不同的丢弃阈值,可对其丢弃情况进行合理区分。本发明的wred方法结构流程图如图2所示。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。