基于硬件提高多队列随机丢弃报文精度的方法及装置的制造方法

文档序号:8265605阅读:530来源:国知局
基于硬件提高多队列随机丢弃报文精度的方法及装置的制造方法
【技术领域】
[0001]本发明涉及网络通信领域,尤其涉及一种基于硬件提高多队列随机丢弃报文精度的方法及装置。
【背景技术】
[0002]在现有的交换机系统中,为了提高网络的稳定性,以及为了方便管理员对网络进行管理,通常在报文传递过程中,将随机丢弃算法广泛应用于网络芯片以避免网络拥塞,随机丢弃算法旨在提前采取丢包动作,而不是等到网络实际拥塞了以后再采取措施。
[0003]现有技术中,如图1所示,随机丢弃算法是在系统中设置两个阀值,理论上,在队列长度介于两个阀值之间的时候,队列被丢弃的概率和队列的长度成正比,然而由于芯片硬件实现的限制性,很难在队列长度增加的情况下准确按比例丢弃报文。

【发明内容】

[0004]本发明的目的在于提供一种基于硬件提高多队列随机丢弃报文精度的方法及装置。
[0005]为实现上述目的之一,本发明一实施方式的基于硬件提高多队列随机丢弃报文精度的方法,所述方法包括:
预置数值存储器、队列属性配置存储器、队列指针存储器、队列长度存储器;
所述数值存储器的每一个深度空间内对应存储一个判断阈值;
所述队列属性配置存储器用于存储每一个队列的最大丢弃阈值、最小丢弃阈值,以及随机丢弃比例值;
所述队列指针存储器用于存储每个所述队列访问所述数值存储器的指针读数;
所述队列长度存储器用于存储每个队列的队列长度;
根据输入数据所在队列编号访问所述队列长度存储器,获取其对应队列的队列长度,以及访问所述队列属性配置存储器,获取其对应队列的最大丢弃阈值、最小丢弃阈值、随机丢弃比例值;
根据所述队列长度判断接收或是丢弃所述输入数据;
若输入数据所在队列的队列长度大于最大丢弃阈值,则丢弃全部的所述输入数据;
若输入数据所在队列的队列长度小于最小丢弃阈值,则接收全部的所述输入数据;
若输入数据所在队列的队列长度介于最大丢弃阈值和最小丢弃阈值之间,则根据所述最大丢弃阈值、最小丢弃阈值、随机丢弃比例值,以及当前队列的队列长度获取当前队列的丢弃概率;
同时,根据输入数据所在队列编号访问所述队列指针存储器,获取访问所述数值存储器的队列指针读数;
根据所述队列指针读数访问所述数值存储器,获取与所述队列对应的判断阈值; 根据所述丢弃概率和所述判断阈值,决定是否丢弃所述输入数据。
[0006]作为本发明的进一步改进,所述方法还包括:
每次根据输入数据所在队列编号访问所述队列指针存储器后,均对所述队列指针存储器内相应的所述队列指针读数加1,并将更新后的队列指针读数保存到所述队列指针存储器。
[0007]作为本发明的进一步改进,所述方法还包括:
每次接收所述输入数据后,均对所述队列长度存储器内相应的所述队列长度加1,并将更新后的队列长度保存到所述队列长度存储器。
[0008]作为本发明的进一步改进,所述方法还包括:
所述丢弃概率根据所述队列长度和最小丢弃阈值的差值所属的丢弃区间进行确定。
[0009]作为本发明的进一步改进,所述方法还包括:
将当前队列的最大丢弃阈值和最小丢弃阈值所在区间划分为N个所述丢弃区间,N个所述丢弃区间按照其区间取值范围从小到大依次为丢弃区间1、丢弃区间2…丢弃区间N,每个所述丢弃区间N内、所述队列长度和最小丢弃阈值的差值的丢弃概率依次为1/N、2/N…N/N ;所述N为2的幂次方。
[0010]作为本发明的进一步改进,所述“根据所述丢弃概率和所述判断阈值,决定是否丢弃所述输入数据。”具体包括:
将丢弃概率值和所述判断阈值进行比较,判断所述丢弃概率值是否大于所述判断阈值;
若是,按照所述随机丢弃比例值丢弃所述输入数据;
若否,接收所述输入数据进入当前所述队列;
所述丢弃概率值=所述随机丢弃比例值*所述丢弃概率。
[0011]为实现上述目的之一,本发明一实施方式的基于硬件提高多队列随机丢弃报文精度的装置,所述装置包括:
存储模块,所述存储模块中预置数值存储器、队列属性配置存储器、队列指针存储器,以及队列长度存储器;
所述数值存储器的每一个深度空间内对应存储一个判断阈值;
所述队列属性配置存储器用于存储每一个队列的最大丢弃阈值、最小丢弃阈值,以及随机丢弃比例值;
所述队列指针存储器用于存储每个所述队列访问所述数值存储器的指针读数;
所述队列长度存储器用于存储每个队列的队列长度;
数据处理模块,用于根据输入数据所在队列编号访问所述队列长度存储器,获取其对应队列的队列长度,以及访问所述队列属性配置存储器,获取其对应队列的最大丢弃阈值、最小丢弃阈值、随机丢弃比例值;
根据所述队列长度判断接收或是丢弃所述输入数据;
若输入数据所在队列的队列长度大于最大丢弃阈值,则丢弃全部的所述输入数据;
若输入数据所在队列的队列长度小于最小丢弃阈值,则接收全部的所述输入数据;
若输入数据所在队列的队列长度介于最大丢弃阈值和最小丢弃阈值之间,则根据所述最大丢弃阈值、最小丢弃阈值、随机丢弃比例值,以及当前队列的队列长度获取当前队列的丢弃概率; 同时,根据输入数据所在队列编号访问所述队列指针存储器,获取访问所述数值存储器的队列指针读数;
根据所述队列指针读数访问所述数值存储器,获取与所述队列对应的判断阈值; 根据所述丢弃概率和所述判断阈值,决定是否丢弃所述输入数据。
[0012]作为本发明的进一步改进,所述数据处理模块还用于:
每次根据输入数据所在队列编号访问所述队列指针存储器后,均对所述队列指针存储器内相应的所述队列指针读数加1,并将更新后的队列指针读数保存到所述队列指针存储器。
[0013]作为本发明的进一步改进,所述数据处理模块还用于:每次接收所述输入数据后,均对所述队列长度存储器内相应的所述队列长度加1,并将更新后的队列长度保存到所述队列长度存储器。
[0014]作为本发明的进一步改进,所述数据处理模块还用于:
根据所述队列长度和最小丢弃阈值的差值所属的丢弃区间进行确定所述丢弃概率。
[0015]作为本发明的进一步改进,所述数据处理模块还用于:
将当前队列的最大丢弃阈值和最小丢弃阈值所在区间划分为N个所述丢弃区间,N个所述丢弃区间按照其区间取值范围从小到大依次为丢弃区间1、丢弃区间2…丢弃区间N,每个所述丢弃区间N内、所述队列长度和最小丢弃阈值的差值的丢弃概率依次为1/N、2/N…N/N ;所述N为2的幂次方。
[0016]作为本发明的进一步改进,所述数据处理模块还用于:
将丢弃概率值和所述判断阈值进行比较,判断所述丢弃概率值是否大于所述判断阈值;
若是,按照所述随机丢弃比例值丢弃所述输入数据;
若否,接收所述输入数据进入当前所述队列;
所述丢弃概率值=所述随机丢弃比例值*所述丢弃概率。
[0017]与现有技术相比,本发明的有益效果是:本发明的基于硬件提高多队列随机丢弃报文精度的方法及装置,通过引入数值存储器,并根据所述存储器的存储空间实时计算多队列的丢弃概率值,如此,在多队列情况下,能够满足不同队列按照预先配置的丢弃精度进行丢弃,提高了丢弃报文的精度,在避免网络拥塞的同时,降低丢弃报文的数量,优化系统的运行。
【附图
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1