CN104580008B - 基于硬件提高多队列随机丢弃报文精度的方法及装置 - Google Patents
基于硬件提高多队列随机丢弃报文精度的方法及装置 Download PDFInfo
- Publication number
- CN104580008B CN104580008B CN201510005311.1A CN201510005311A CN104580008B CN 104580008 B CN104580008 B CN 104580008B CN 201510005311 A CN201510005311 A CN 201510005311A CN 104580008 B CN104580008 B CN 104580008B
- Authority
- CN
- China
- Prior art keywords
- queue
- memory
- threshold
- input data
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种基于硬件提高多队列随机丢弃报文精度的方法及装置,所述方法包括:预置数值存储器、队列属性配置存储器、队列指针存储器、队列长度存储器;获取输入数据所在队列的队列长度、最大丢弃阈值、最小丢弃阈值、第一数值以及队列指针读数;若输入数据所在队列的队列长度介于最大丢弃阈值和最小丢弃阈值之间,则根据最大丢弃阈值、最小丢弃阈值、第一数值,以及当前队列的队列长度获取当前队列的丢弃概率;根据队列指针读数访问数值存储器,获取与所述队列对应的判断阈值;根据丢弃概率和判断阈值,决定是否丢弃输入数据。本发明在多队列情况下,能够满足不同队列按照预先配置的丢弃精度进行丢弃,提高了丢弃报文的精度。
Description
技术领域
本发明涉及网络通信领域,尤其涉及一种基于硬件提高多队列随机丢弃报文精度的方法及装置。
背景技术
在现有的交换机系统中,为了提高网络的稳定性,以及为了方便管理员对网络进行管理,通常在报文传递过程中,将随机丢弃算法广泛应用于网络芯片以避免网络拥塞,随机丢弃算法旨在提前采取丢包动作,而不是等到网络实际拥塞了以后再采取措施。
现有技术中,如图1所示,随机丢弃算法是在系统中设置两个阀值,理论上,在队列长度介于两个阀值之间的时候,队列被丢弃的概率和队列的长度成正比,然而由于芯片硬件实现的限制性,很难在队列长度增加的情况下准确按比例丢弃报文。
发明内容
本发明的目的在于提供一种基于硬件提高多队列随机丢弃报文精度的方法及装置。
为实现上述目的之一,本发明一实施方式的基于硬件提高多队列随机丢弃报文精度的方法,所述方法包括:
预置数值存储器、队列属性配置存储器、队列指针存储器、队列长度存储器;
所述数值存储器的每一个深度空间内对应存储一个判断阈值;
所述队列属性配置存储器用于存储每一个队列的最大丢弃阈值、最小丢弃阈值,以及第一数值;
所述队列指针存储器用于存储每个所述队列访问所述数值存储器的指针读数;
所述队列长度存储器用于存储每个队列的队列长度;
根据输入数据所在队列编号访问所述队列长度存储器,获取其对应队列的队列长度,以及访问所述队列属性配置存储器,获取其对应队列的最大丢弃阈值、最小丢弃阈值、第一数值;
根据所述队列长度判断接收或是丢弃所述输入数据;
若输入数据所在队列的队列长度大于最大丢弃阈值,则丢弃全部的所述输入数据;
若输入数据所在队列的队列长度小于最小丢弃阈值,则接收全部的所述输入数据;
若输入数据所在队列的队列长度介于最大丢弃阈值和最小丢弃阈值之间,则根据所述最大丢弃阈值、最小丢弃阈值、第一数值,以及当前队列的队列长度获取当前队列的丢弃概率;
同时,根据输入数据所在队列编号访问所述队列指针存储器,获取访问所述数值存储器的队列指针读数;
根据所述队列指针读数访问所述数值存储器,获取与所述队列对应的判断阈值;
将第二数值和所述判断阈值进行比较,判断所述第二数值是否大于所述判断阈值;
若是,按照所述第一数值丢弃所述输入数据;
若否,接收所述输入数据进入当前所述队列;
所述第二数值=所述第一数值*所述丢弃概率;
其中,所述丢弃概率根据所述队列长度和最小丢弃阈值的差值所属的丢弃区间进行确定;将当前队列的最大丢弃阈值和最小丢弃阈值所在区间划分为N个所述丢弃区间,N个所述丢弃区间按照其区间取值范围从小到大依次为丢弃区间1、丢弃区间2…丢弃区间N,每个所述丢弃区间N内、所述队列长度和最小丢弃阈值的差值的丢弃概率依次为1/N、2/N…N/N;所述N为2的幂次方。
作为本发明的进一步改进,所述方法还包括:
每次根据输入数据所在队列编号访问所述队列指针存储器后,均对所述队列指针存储器内相应的所述队列指针读数加1,并将更新后的队列指针读数保存到所述队列指针存储器。
作为本发明的进一步改进,所述方法还包括:
每次接收所述输入数据后,均对所述队列长度存储器内相应的所述队列长度加1,并将更新后的队列长度保存到所述队列长度存储器。
为实现上述目的之一,本发明一实施方式的基于硬件提高多队列随机丢弃报文精度的装置,所述装置包括:
存储模块,所述存储模块中预置数值存储器、队列属性配置存储器、队列指针存储器,以及队列长度存储器;
所述数值存储器的每一个深度空间内对应存储一个判断阈值;
所述队列属性配置存储器用于存储每一个队列的最大丢弃阈值、最小丢弃阈值,以及第一数值;
所述队列指针存储器用于存储每个所述队列访问所述数值存储器的指针读数;
所述队列长度存储器用于存储每个队列的队列长度;
数据处理模块,用于根据输入数据所在队列编号访问所述队列长度存储器,获取其对应队列的队列长度,以及访问所述队列属性配置存储器,获取其对应队列的最大丢弃阈值、最小丢弃阈值、第一数值;
根据所述队列长度判断接收或是丢弃所述输入数据;
若输入数据所在队列的队列长度大于最大丢弃阈值,则丢弃全部的所述输入数据;
若输入数据所在队列的队列长度小于最小丢弃阈值,则接收全部的所述输入数据;
若输入数据所在队列的队列长度介于最大丢弃阈值和最小丢弃阈值之间,则根据所述最大丢弃阈值、最小丢弃阈值、第一数值,以及当前队列的队列长度获取当前队列的丢弃概率;
同时,根据输入数据所在队列编号访问所述队列指针存储器,获取访问所述数值存储器的队列指针读数;
根据所述队列指针读数访问所述数值存储器,获取与所述队列对应的判断阈值;
将第二数值和所述判断阈值进行比较,判断所述第二数值是否大于所述判断阈值;
若是,按照所述第一数值丢弃所述输入数据;
若否,接收所述输入数据进入当前所述队列;
所述第二数值=所述第一数值*所述丢弃概率;
其中,所述处理模块还用于根据所述队列长度和最小丢弃阈值的差值所属的丢弃区间进行确定所述丢弃概率;将当前队列的最大丢弃阈值和最小丢弃阈值所在区间划分为N个所述丢弃区间,N个所述丢弃区间按照其区间取值范围从小到大依次为丢弃区间1、丢弃区间2…丢弃区间N,每个所述丢弃区间N内、所述队列长度和最小丢弃阈值的差值的丢弃概率依次为1/N、2/N…N/N;所述N为2的幂次方。
作为本发明的进一步改进,所述数据处理模块还用于:
每次根据输入数据所在队列编号访问所述队列指针存储器后,均对所述队列指针存储器内相应的所述队列指针读数加1,并将更新后的队列指针读数保存到所述队列指针存储器。
作为本发明的进一步改进,所述数据处理模块还用于:每次接收所述输入数据后,均对所述队列长度存储器内相应的所述队列长度加1,并将更新后的队列长度保存到所述队列长度存储器。
与现有技术相比,本发明的有益效果是:本发明的基于硬件提高多队列随机丢弃报文精度的方法及装置,通过引入数值存储器,并根据所述存储器的存储空间实时计算多队列的第二数值,如此,在多队列情况下,能够满足不同队列按照预先配置的丢弃精度进行丢弃,提高了丢弃报文的精度,在避免网络拥塞的同时,降低丢弃报文的数量,优化系统的运行。
附图说明
图1是本发明一实施方式中基于硬件提高多队列随机丢弃报文精度的方法的流程图;
图2是本发明一实施方式中基于硬件提高多队列随机丢弃报文精度的装置的模块图。
具体实施方式
以下将结合附图所示的具体实施方式对本发明进行详细描述。但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。
如图1所示,在本发明的一实施方式中,基于硬件提高多队列随机丢弃报文精度的方法,包括:
预置数值存储器、队列属性配置存储器、队列指针存储器、队列长度存储器。
所述数值存储器的每一个深度空间内对应存储一个判断阈值;本发明的一具体实施方式中,所述数值存储器的深度为128,位宽为7。相应的,将数值0到127共128个数值随机配置在数值存储器的128个空间内作为数值存储器每个空间的判断阈值,以供输入数据调用。当然,在本发明的其他实施方式中,由于硬件电路通常按照2进制进行编码,故,所述数值存储器的深度也可以按照2的幂次方进行调整,在此不做详细赘述。
所述队列属性配置存储器用于存储每一个队列的最大丢弃阈值、最小丢弃阈值,以及第一数值;所述最大丢弃阈值、最小丢弃阈值,以及第一数值均可根据需要具体设定。
所述队列指针存储器用于存储每个所述队列访问所述数值存储器的指针读数。
所述队列长度存储器用于存储每个队列的的队列长度;所述队列长度存储器的深度跟总的队列数量保持一致,其初始数值为0。
进一步的,本实施方式中,所述方法还包括:根据输入数据所在队列编号访问所述队列长度存储器,获取其对应队列的队列长度,以及访问所述队列属性配置存储器,获取其对应队列的、最大丢弃阈值、最小丢弃阈值、第一数值。
所述输入数据为报文,所述队列为报文在转发过程中,需要进行排队等候的转发通道。
进一步的,本实施方式中,所述方法还包括:根据所述队列长度判断接收或是丢弃所述输入数据。
若输入数据所在队列的队列长度大于最大丢弃阈值,则丢弃全部的所述输入数据;
若输入数据所在队列的队列长度小于最小丢弃阈值,则接收全部的所述输入数据;
若输入数据所在队列的队列长度介于最大丢弃阈值和最小丢弃阈值之间,则判断是否需要对输入数据进行丢弃,若是,按照所述输入数据所在队列预设的第一数值进行丢弃。
进一步的,当队列长度介于最大阈值和最小阈值之间时,所述方法还包括:根据所述最大丢弃阈值、最小丢弃阈值、第一数值,以及当前队列的队列长度获取当前队列的丢弃概率。
进一步的,根据所述丢弃概率获取所述输入数据的第二数值。
所述第二数值=所述第一数值*丢弃概率。
本示例中,所述第一数值为2的幂次方。
所述丢弃概率依据所述最大丢弃阈值、最小丢弃阈值,以及当前队列的队列长度进行计算。
本实施方式中,将当前队列的最大丢弃阈值和最小丢弃阈值所在区间划分为N个丢弃区间,N个丢弃区间按照其区间取值范围从小到大依次为丢弃区间1、丢弃区间2…丢弃区间N,每个丢弃区间N内数值的空间丢弃概率依次为1/N、2/N…N/N;所述N为2的幂次方,例如:1、2、4、8、16…。
例如:预设当前队列的最小丢弃阈值为10,最大丢弃阈值为90,丢弃区间的数量为8,那么,按照上述计算方式,将当前队列的丢弃区间划分为8个,其区间取值范围依次为[10,20]、[20,30]、[30,40]、[40,50]、[50,60]、[60,70]、[70,80]、[80,90],每个丢弃区间N内数值的空间丢弃概率依次为1/8、2/8、3/8、48、5/8、6/8、7/8…8/8。
进一步的,判断所述队列长度和最小丢弃阈值的差值所分布的丢弃区间,并获取相应丢弃区间的丢弃概率;如此设置后,当所述队列长度介于最大丢弃阈值和最小丢弃阈值之间时,丢弃报文的概率根据队列长度的增加按比例增加,以基于硬件提高多队列随机丢弃报文精度。
如上示例,假定所述队列的队列长度为55,其与最小丢弃阈值的差值为45,则其差值处于丢弃区间4内,那么,当前队列的丢弃概率为1/2,再根据获取的第一数值,即可以得到当前队列的第二数值。
进一步的,本实施方式中,在计算第二数值的同时,根据输入数据所在队列编号访问所述队列指针存储器,获取访问所述数值存储器的队列指针读数;并进一步的根据所述队列指针读数访问所述数值存储器,获取与所述队列对应的判断阈值。
每次根据输入数据所在队列编号访问所述队列指针存储器后,均对所述队列指针存储器内相应的所述队列指针读数加1,并将更新后的队列指针读数保存到所述队列指针存储器,进而根据获取的所述队列指针读数获取数值存储器的空间内存储的判断阈值。
可以理解的是,所述队列指针读数为循环数值,其最大数值依据数值存储器的深度设定,即初始状态下,队列指针读数的数值为0,之后每次加1,当所述队列指针读数的数值增加到所述数值存储器的深度大小时,本示例中,所述队列指针读数的数值增加到127之后,再次访问所述数值存储器时,其数值重新变为0,依次类推,在此不做详细赘述。
进一步的,本实施方式中,所述方法还包括:根据所述第二数值和所述判断阈值,决定是否丢弃所述输入数据。
本示例中,将所述第二数值和所述判断阈值进行比较,判断所述第二数值是否大于所述判断阈值;
若是,按照所述第一数值丢弃所述输入数据;
若否,接收所述输入数据进入当前所述队列;并在每次接收所述输入数据后,均对所述队列长度存储器内相应的所述队列长度加1,并将更新后的队列长度保存到所述队列长度存储器。
可以理解的是,上述示例中,仅针对一个队列的情况做具体描述,在实际应用过程中,多队列的输入数据是依次输入的,其他队列与上述一个队列的执行过程相同,在此不做详细赘述。
另外,需要说明的是,上述示例中,由于数值存储器的每一个存储空间内,将数值0到127共128个数值随机配置在数值存储器的128个空间内作为数值存储器每个空间的判断阈值,如此,需要根据丢弃概率、所述第一数值计算第二数值与相应的判断阈值进行比较,而在实际应用中,也可以预先对所述判断阈值进行处理,即:将对应所述数值存储器每个空间的数值均除以所述第一数值作为判断阈值,之后将该判断阈值直接与所述丢弃概率进行比较,如此,同样能达到本发明的技术效果,在此不做详细赘述。
结合图2所示,在本发明的一实施方式中,基于硬件提高多队列随机丢弃报文精度的装置包括:存储模块100、数据处理模块200;存储模块100中预置数值存储器101、队列属性配置存储器103、队列指针存储器105以及队列长度存储器107。
数值存储器101的每一个深度空间内对应存储一个判断阈值;本发明的一具体实施方式中,所述数值存储器的深度为128,位宽为7。相应的,将数值0到127共128个数值随机配置在数值存储器的128个空间内作为数值存储器每个空间的判断阈值,以供输入数据调用。当然,在本发明的其他实施方式中,由于硬件电路通常按照2进制进行编码,故,所述数值存储器的深度也可以按照2的幂次方进行调整,在此不做详细赘述。
队列属性配置存储器103用于存储每一个队列的最大丢弃阈值、最小丢弃阈值,以及第一数值;所述最大丢弃阈值、最小丢弃阈值,以及第一数值均可根据需要具体设定。
队列指针存储器105用于存储每个所述队列访问数值存储器101的指针读数。
队列长度存储器107用于存储每个队列的的队列长度;所述队列长度存储器的深度跟总的队列数量保持一致,其初始数值为0。
进一步的,本实施方式中,数据处理模块200用于根据输入数据所在队列编号访问队列长度存储器107,获取其对应队列的队列长度,以及访问队列属性配置存储器103,获取其对应队列的、最大丢弃阈值、最小丢弃阈值、第一数值。
所述输入数据为报文,所述队列为报文在转发过程中,需要进行排队等候的转发通道。
进一步的,本实施方式中,数据处理模块200用于根据所述队列长度判断接收或是丢弃所述输入数据。
若输入数据所在队列的队列长度大于最大丢弃阈值,则丢弃全部的所述输入数据;
若输入数据所在队列的队列长度小于最小丢弃阈值,则接收全部的所述输入数据;
若输入数据所在队列的队列长度介于最大丢弃阈值和最小丢弃阈值之间,则判断是否需要对输入数据进行丢弃,若是,按照所述输入数据所在队列预设的第一数值进行丢弃。
进一步的,当队列长度介于最大阈值和最小阈值之间时,数据处理模块200用于根据所述最大丢弃阈值、最小丢弃阈值、第一数值,以及当前队列的队列长度获取当前队列的丢弃概率。
进一步的,数据处理模块200用于根据所述丢弃概率获取所述输入数据的第二数值。所述第二数值=所述第一数值*丢弃概率。
本示例中,所述第一数值为2的幂次方。
所述丢弃概率依据所述最大丢弃阈值、最小丢弃阈值,以及当前队列的队列长度进行计算。
本实施方式中,将当前队列的最大丢弃阈值和最小丢弃阈值所在区间划分为N个丢弃区间,N个丢弃区间按照其区间取值范围从小到大依次为丢弃区间1、丢弃区间2…丢弃区间N,每个丢弃区间N内数值的空间丢弃概率依次为1/N、2/N…N/N;所述N为2的幂次方,例如:1、2、4、8、16…。
例如:预设当前队列的最小丢弃阈值为10,最大丢弃阈值为90,丢弃区间的数量为8,那么,按照上述计算方式,将当前队列的丢弃区间划分为8个,其区间取值范围依次为[10,20]、[20,30]、[30,40]、[40,50]、[50,60]、[60,70]、[70,80]、[80,90],每个丢弃区间N内数值的空间丢弃概率依次为1/8、2/8、3/8、48、5/8、6/8、7/8…8/8。
进一步的,数据处理模块200用于判断所述队列长度和最小丢弃阈值的差值所分布的丢弃区间,并获取相应丢弃区间的丢弃概率;如此设置后,当所述队列长度介于最大丢弃阈值和最小丢弃阈值之间时,丢弃报文的概率根据队列长度的增加按比例增加,以基于硬件提高多队列随机丢弃报文精度。
如上示例,假定所述队列的队列长度为55,其与最小丢弃阈值的差值为45,则其差值处于丢弃区间4内,那么,当前队列的丢弃概率为1/2,再根据获取的第一数值,即可以得到当前队列的第二数值。
进一步的,本实施方式中,在计算第二数值的同时,数据处理模块200还用于根据输入数据所在队列编号访问队列指针存储器105,获取访问数值存储器101的队列指针读数;并进一步的根据所述队列指针读数访问数值存储器101,获取与所述队列对应的判断阈值。
数据处理模块200每次根据输入数据所在队列编号访问队列指针存储器105后,均对队列指针存储器105内相应的所述队列指针读数加1,并将更新后的队列指针读数保存到队列指针存储器105,进而根据获取的所述队列指针读数获取数值存储器101的空间内存储的判断阈值。
可以理解的是,所述队列指针读数的数值为循环数值,其最大数值依据数值存储器101的深度设定,即初始状态下,队列指针读数的数值为0,之后每次加1,当所述队列指针读数的数值增加到数值存储器101的深度大小时,本示例中,所述队列指针读数的数值增加到127之后,再次访问数值存储器101时,其数值重新变为0,依次类推,在此不做详细赘述。
进一步的,本实施方式中,数据处理模块200用于根据所述第二数值和所述判断阈值,决定是否丢弃所述输入数据。
本示例中,将所述第二数值和所述判断阈值进行比较,判断所述第二数值是否大于所述判断阈值;
若是,数据处理模块200按照所述第一数值丢弃所述输入数据;
若否,数据处理模块200接收所述输入数据进入当前所述队列;并在每次接收所述输入数据后,均对所述队列长度存储器107内相应的所述队列长度加1,并将更新后的队列长度保存到所述队列长度存储器107。
可以理解的是,上述示例中,仅针对一个队列的情况做具体描述,在实际应用过程中,多队列的输入数据是依次输入的,其他队列与上述一个队列的执行过程相同,存储模块100、数据处理模块200所起作用大致相同,其区别仅在于,循环处理不同队列的输入数据,在此不做详细赘述。
另外,需要说明的是,上述示例中,由于数值存储器101的每一个存储空间内,将数值0到127共128个数值随机配置在数值存储器101的128个空间内作为数值存储器101每个空间的判断阈值,如此,需要根据丢弃概率、所述第一数值计算第二数值与相应的判断阈值进行比较,而在实际应用中,也可以预先对所述判断阈值进行处理,即:将对应数值存储器101每个空间的数值均除以所述第一数值作为判断阈值,之后将该判断阈值直接与所述丢弃概率进行比较,如此,同样能达到本发明的技术效果,在此不做详细赘述。
综上所述,本发明的基于硬件提高多队列随机丢弃报文精度的方法及装置,通过引入数值存储器,并根据所述存储器的存储空间实时计算多队列的第二数值,如此,在多队列情况下,能够满足不同队列按照预先配置的丢弃精度进行丢弃,提高了丢弃报文的精度,在避免网络拥塞的同时,降低丢弃报文的数量,优化系统的运行。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。在实施本申请时仅限于把各模块的功能在ASIC芯片中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分以ASIC芯片产品的形式体现出来。
以上所描述的装置实施方式仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件是逻辑模块,即可以位于芯片逻辑中的一个模块中,或者也可以分布到芯片内的多个数据处理模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施方式方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本申请可用于众多通用或专用的通信芯片中。例如:交换芯片、路由器芯片,服务器芯片等等。
应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
Claims (6)
1.一种基于硬件提高多队列随机丢弃报文精度的方法,其特征在于,所述方法包括:
预置数值存储器、队列属性配置存储器、队列指针存储器、队列长度存储器;
所述数值存储器的每一个深度空间内对应存储一个判断阈值,该数值存储器的深度为128,将数值0到127共128个数值随机配置在数值存储器的128个空间内;
所述队列属性配置存储器用于存储每一个队列的最大丢弃阈值、最小丢弃阈值,以及第一数值;
所述队列指针存储器用于存储每个所述队列访问所述数值存储器的指针读数;
所述队列长度存储器用于存储每个队列的队列长度;
根据输入数据所在队列编号访问所述队列长度存储器,获取其对应队列的队列长度,以及访问所述队列属性配置存储器,获取其对应队列的最大丢弃阈值、最小丢弃阈值、第一数值;
根据所述队列长度判断接收或是丢弃所述输入数据;
若输入数据所在队列的队列长度大于最大丢弃阈值,则丢弃全部的所述输入数据;
若输入数据所在队列的队列长度小于最小丢弃阈值,则接收全部的所述输入数据;
若输入数据所在队列的队列长度介于最大丢弃阈值和最小丢弃阈值之间,则根据所述最大丢弃阈值、最小丢弃阈值、第一数值,以及当前队列的队列长度获取当前队列的丢弃概率;
同时,根据输入数据所在队列编号访问所述队列指针存储器,获取访问所述数值存储器的队列指针读数;
根据所述队列指针读数访问所述数值存储器,获取与所述队列对应的判断阈值;
将第二数值和所述判断阈值进行比较,判断所述第二数值是否大于所述判断阈值;
若是,按照所述第一数值丢弃所述输入数据;
若否,接收所述输入数据进入当前所述队列;
所述第二数值=所述第一数值*所述丢弃概率;
其中,所述丢弃概率根据所述队列长度和最小丢弃阈值的差值所属的丢弃区间进行确定;将当前队列的最大丢弃阈值和最小丢弃阈值所在区间划分为N个所述丢弃区间,N个所述丢弃区间按照其区间取值范围从小到大依次为丢弃区间1、丢弃区间2…丢弃区间N,每个所述丢弃区间N内、所述队列长度和最小丢弃阈值的差值的丢弃概率依次为1/N、2/N…N/N;所述N为2的幂次方。
2.根据权利要求1所述的基于硬件提高多队列随机丢弃报文精度的方法,其特征在于,所述方法还包括:
每次根据输入数据所在队列编号访问所述队列指针存储器后,均对所述队列指针存储器内相应的所述队列指针读数加1,并将更新后的队列指针读数保存到所述队列指针存储器。
3.根据权利要求1所述的基于硬件提高多队列随机丢弃报文精度的方法,其特征在于,所述方法还包括:
每次接收所述输入数据后,均对所述队列长度存储器内相应的所述队列长度加1,并将更新后的队列长度保存到所述队列长度存储器。
4.一种基于硬件提高多队列随机丢弃报文精度的装置,其特征在于,所述装置包括:
存储模块,所述存储模块中预置数值存储器、队列属性配置存储器、队列指针存储器,以及队列长度存储器;
所述数值存储器的每一个深度空间内对应存储一个判断阈值,该数值存储器的深度为128,将数值0到127共128个数值随机配置在数值存储器的128个空间内;
所述队列属性配置存储器用于存储每一个队列的最大丢弃阈值、最小丢弃阈值,以及第一数值;
所述队列指针存储器用于存储每个所述队列访问所述数值存储器的指针读数;
所述队列长度存储器用于存储每个队列的队列长度;
数据处理模块,用于根据输入数据所在队列编号访问所述队列长度存储器,获取其对应队列的队列长度,以及访问所述队列属性配置存储器,获取其对应队列的最大丢弃阈值、最小丢弃阈值、第一数值;
根据所述队列长度判断接收或是丢弃所述输入数据;
若输入数据所在队列的队列长度大于最大丢弃阈值,则丢弃全部的所述输入数据;
若输入数据所在队列的队列长度小于最小丢弃阈值,则接收全部的所述输入数据;
若输入数据所在队列的队列长度介于最大丢弃阈值和最小丢弃阈值之间,则根据所述最大丢弃阈值、最小丢弃阈值、第一数值,以及当前队列的队列长度获取当前队列的丢弃概率;
同时,根据输入数据所在队列编号访问所述队列指针存储器,获取访问所述数值存储器的队列指针读数;
根据所述队列指针读数访问所述数值存储器,获取与所述队列对应的判断阈值;
将第二数值和所述判断阈值进行比较,判断所述第二数值是否大于所述判断阈值;
若是,按照所述第一数值丢弃所述输入数据;
若否,接收所述输入数据进入当前所述队列;
所述第二数值=所述第一数值*所述丢弃概率;
其中,所述处理模块还用于根据所述队列长度和最小丢弃阈值的差值所属的丢弃区间进行确定所述丢弃概率;将当前队列的最大丢弃阈值和最小丢弃阈值所在区间划分为N个所述丢弃区间,N个所述丢弃区间按照其区间取值范围从小到大依次为丢弃区间1、丢弃区间2…丢弃区间N,每个所述丢弃区间N内、所述队列长度和最小丢弃阈值的差值的丢弃概率依次为1/N、2/N…N/N;所述N为2的幂次方。
5.根据权利要求4所述的基于硬件提高多队列随机丢弃报文精度的装置,其特征在于,
所述数据处理模块还用于:
每次根据输入数据所在队列编号访问所述队列指针存储器后,均对所述队列指针存储器内相应的所述队列指针读数加1,并将更新后的队列指针读数保存到所述队列指针存储器。
6.根据权利要求4所述的基于硬件提高多队列随机丢弃报文精度的装置,其特征在于,
所述数据处理模块还用于:
每次接收所述输入数据后,均对所述队列长度存储器内相应的所述队列长度加1,并将更新后的队列长度保存到所述队列长度存储器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510005311.1A CN104580008B (zh) | 2015-01-07 | 2015-01-07 | 基于硬件提高多队列随机丢弃报文精度的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510005311.1A CN104580008B (zh) | 2015-01-07 | 2015-01-07 | 基于硬件提高多队列随机丢弃报文精度的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104580008A CN104580008A (zh) | 2015-04-29 |
CN104580008B true CN104580008B (zh) | 2019-02-22 |
Family
ID=53095229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510005311.1A Active CN104580008B (zh) | 2015-01-07 | 2015-01-07 | 基于硬件提高多队列随机丢弃报文精度的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104580008B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106685848A (zh) * | 2015-11-10 | 2017-05-17 | 中兴通讯股份有限公司 | 报文丢弃方法及装置 |
CN106789722A (zh) * | 2015-11-23 | 2017-05-31 | 深圳市中兴微电子技术有限公司 | 一种网络拥塞控制方法和装置 |
CN105978821B (zh) * | 2016-07-21 | 2019-09-06 | 杭州迪普科技股份有限公司 | 网络拥塞避免的方法及装置 |
CN110138680B (zh) * | 2019-05-08 | 2022-08-23 | 京信网络系统股份有限公司 | Pdcp队列的报文丢弃处理方法、装置和基站设备 |
CN111988403A (zh) * | 2020-08-20 | 2020-11-24 | 深圳市网心科技有限公司 | 电子设备的请求处理方法、系统、存储介质和电子设备 |
CN112148479B (zh) * | 2020-09-04 | 2024-03-19 | 杭州安恒信息技术股份有限公司 | 基于Siddhi日志审计中的数据处理方法、装置和计算机设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1549508A (zh) * | 2003-05-09 | 2004-11-24 | ��Ϊ��������˾ | 一种系统流量控制方法 |
US7336672B1 (en) * | 1999-12-06 | 2008-02-26 | Nortel Networks Limited | Constant gain controller for active queue management |
CN102413063A (zh) * | 2012-01-12 | 2012-04-11 | 盛科网络(苏州)有限公司 | 动态调整出口资源分配阈值的方法及系统 |
CN102629910A (zh) * | 2012-02-14 | 2012-08-08 | 中兴通讯股份有限公司 | 一种基于加权随机早期检测的拥塞避免方法和系统 |
-
2015
- 2015-01-07 CN CN201510005311.1A patent/CN104580008B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7336672B1 (en) * | 1999-12-06 | 2008-02-26 | Nortel Networks Limited | Constant gain controller for active queue management |
CN1549508A (zh) * | 2003-05-09 | 2004-11-24 | ��Ϊ��������˾ | 一种系统流量控制方法 |
CN102413063A (zh) * | 2012-01-12 | 2012-04-11 | 盛科网络(苏州)有限公司 | 动态调整出口资源分配阈值的方法及系统 |
CN102629910A (zh) * | 2012-02-14 | 2012-08-08 | 中兴通讯股份有限公司 | 一种基于加权随机早期检测的拥塞避免方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104580008A (zh) | 2015-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104580008B (zh) | 基于硬件提高多队列随机丢弃报文精度的方法及装置 | |
CN103023804B (zh) | 一种聚合链路自适应流量负载均衡方法、装置及网络设备 | |
CN101873269B (zh) | 数据转发设备和端口缓存的分配方法 | |
US20130010636A1 (en) | Three dimensional fat tree networks | |
EP3496346A1 (en) | Data message forwarding method and apparatus | |
CN106708607A (zh) | 消息队列的拥塞控制方法和装置 | |
US10341235B2 (en) | Load balancing implementation method, device, and system | |
US10498631B2 (en) | Routing packets using distance classes | |
EP3445007A1 (en) | Routing packets in dimensional order in multidimensional networks | |
CN104869064B (zh) | 一种流表更新方法及装置 | |
CN106027459A (zh) | 一种访问控制列表的查询方法及装置 | |
CN104079489A (zh) | 网络中继装置 | |
US20150304227A1 (en) | Queue Management Method and Apparatus | |
CN113014502B (zh) | 基于线卡的负载均衡方法及装置 | |
CN104484619B (zh) | 一种解决客户端多逻辑通道访问pkcs#15文件冲突的方法 | |
US20150195122A1 (en) | Method and System for Transparent Network Acceleration | |
US8832309B2 (en) | Generating packets with low overhead or selectable sequence number generation | |
CN102474881B (zh) | 用于在无线网络中准予介质访问的方法和用于其的网络 | |
CN112187568B (zh) | 一种报文传输方法、设备及系统 | |
WO2022152332A1 (zh) | 传输配置指示状态确定方法及装置、可读存储介质 | |
CN116760783B (zh) | 一种均衡读数据的系统 | |
CN109005078B (zh) | 路由策略生成方法、装置及计算机可读存储介质 | |
CN108462645B (zh) | 一种转发方法和装置 | |
CN109479316B (zh) | 用于无线电资源接入的方法和终端设备 | |
CN108632205A (zh) | 一种针对多种攻击的智能拦截方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 215000 unit 13 / 16, 4th floor, building B, No.5 Xinghan street, Suzhou Industrial Park, Jiangsu Province Patentee after: Suzhou Shengke Communication Co.,Ltd. Address before: Xinghan Street Industrial Park of Suzhou city in Jiangsu province 215021 B No. 5 Building 4 floor 13/16 unit Patentee before: CENTEC NETWORKS (SU ZHOU) Co.,Ltd. |
|
CP03 | Change of name, title or address |