CN111163016B - 一种队列管理的方法及装置 - Google Patents
一种队列管理的方法及装置 Download PDFInfo
- Publication number
- CN111163016B CN111163016B CN201911250627.1A CN201911250627A CN111163016B CN 111163016 B CN111163016 B CN 111163016B CN 201911250627 A CN201911250627 A CN 201911250627A CN 111163016 B CN111163016 B CN 111163016B
- Authority
- CN
- China
- Prior art keywords
- queue
- message
- buffer queue
- sending
- probability
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2466—Traffic characterised by specific attributes, e.g. priority or QoS using signalling traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/6275—Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种队列管理的方法及装置。本申请中,转发设备预置了发送缓存队列集合,该发送缓存队列集合中包括至少一个发送缓存队列,各发送缓存队列的优先级不同。转发设备在获取到待发送的第一报文后,确定该第一报文的优先级和与该优先级匹配的第一发送缓存队列,并基于该第一发送缓存队列当前的平均队列长度、第一报文的优先级和发送缓存队列的个数确定第一报文的丢弃概率,从而,转发设备利用该丢弃概率确定是否将该第一报文写入第一发送缓存队列。由于本申请根据报文的优先级来确定报文的丢弃概率,因此,本申请能降低重要的报文被丢弃的概率,保证业务正常进行。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种队列管理的方法和装置。
背景技术
转发设备预配置有发送缓存队列,发送缓存队列用于缓存接收到的待发送报文。由于发送缓存队列可缓存的报文数量有限,因此,需要合理控制发送缓存队列中的报文数量。
现有技术中,转发设备通常会在接收到报文后先确定发送缓存队列已缓存的报文数量,若发送缓存队列中已缓存的报文数量接近发送缓存队列可缓存的报文数量上限,则将报文丢弃,以避免发送缓存队列溢出。
然而,在实际应用中,采用上述方法常常会将重要的报文丢弃,导致该报文承载的业务中断。
发明内容
针对上述技术问题,本申请提供了队列管理的方法及装置,可以有效降低重要报文被丢弃的概率。
根据本申请的第一方面,提供一种队列管理的方法,应用于转发设备,所述转发设备预配置了发送缓存队列集合,所述发送缓存队列集合包括至少一个发送缓存队列,各发送缓存队列的优先级不同;该方法包括:
获取待发送的第一报文,并基于所述第一报文中预设标识,确定所述第一报文的优先级;
在所述发送缓存队列集合中,确定与所述第一报文的优先级匹配的第一发送缓存队列,并计算所述第一发送缓存队列的平均队列长度;
若所述平均队列长度满足预设条件,则根据平均队列长度、优先级和发送缓存队列集合中发送缓存队列的个数,确定所述第一报文的丢弃概率;
基于所述第一报文的丢弃概率确定是否将所述第一报文写入第一发送缓存队列。
根据本申请的第二方面,提供一种队列管理的装置,应用于转发设备,所述转发设备预配置了发送缓存队列集合,所述发送缓存队列集合包括至少一个发送缓存队列,各发送缓存队列的优先级不同;该装置包括:
第一报文获取单元,用于获取待发送的第一报文,并基于所述第一报文中预设标识,确定所述第一报文的优先级;
第一队列确定单元,用于在所述发送缓存队列集合中,确定与所述第一报文的优先级匹配的第一发送缓存队列,并计算所述第一发送缓存队列的平均队列长度;
第一概率计算单元,用于若所述平均队列长度满足预设条件,则根据平均队列长度、优先级和发送缓存队列集合中发送缓存队列的个数,确定所述第一报文的丢弃概率;
第一缓存确定单元,用于基于所述第一报文的丢弃概率确定是否将所述第一报文写入第一发送缓存队列。
本申请中,转发设备预置了发送缓存队列集合,该发送缓存队列集合中包括至少一个发送缓存队列,各发送缓存队列的优先级不同。转发设备在获取到待发送的第一报文后,确定该第一报文的优先级和与该优先级匹配的第一发送缓存队列,并基于该第一发送缓存队列当前的平均队列长度、第一报文的优先级和发送缓存队列的个数确定第一报文的丢弃概率,从而,转发设备利用该丢弃概率确定是否将该第一报文写入第一发送缓存队列。由于本申请根据报文的优先级来确定报文的丢弃概率,因此,本申请能降低重要的报文被丢弃的概率,保证业务正常进行。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本申请一示例性实施例示出的一种队列管理方法的流程图;
图2是本申请一示例性实施例示出的另一种队列管理方法的流程图;
图3是本申请一示例性实施例示出的另一种队列管理方法的流程图;
图4是本申请一示例性实施例示出的另一种队列管理方法的流程图;
图5是本申请一示例性实施例示出的另一种队列管理方法的流程图;
图6是本申请一示例性实施例示出的一种转发设备的硬件结构图;
图7是本申请一示例性实施例示出的一种队列管理装置的框图。
具体实施方式
为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。
转发设备(例如交换机、路由器等)预配置有发送缓存队列,该发送缓存队列用于缓存接收到的待发送报文。由于发送缓存队列可缓存的报文数量有限,因此需要合理控制发送缓存队列中的报文数量。
一般地,转发设备在接收到报文后,若判断发送缓存队列中已缓存的报文数量接近发送缓存队列可缓存的报文数量上限,则将接收到的报文丢弃,以避免发送缓存队列溢出。
然而,上述方法常常会将重要的报文丢弃,导致该报文承载的业务中断。
有鉴于此,本申请提出了一种新的队列管理的方法。本申请中,转发设备中预置了发送缓存队列集合,该发送缓存队列集合中包括至少一个发送缓存队列,各发送缓存队列的优先级不同。转发设备在获取到待发送的第一报文后,确定该第一报文的优先级和与该优先级匹配的第一发送缓存队列,并基于该第一发送缓存队列当前的平均队列长度、第一报文的优先级和发送缓存队列的个数确定第一报文的丢弃概率,从而,转发设备利用该丢弃概率确定是否将该第一报文写入第一发送缓存队列。由于本申请根据报文的优先级来确定报文的丢弃概率,因此,本申请能降低重要的报文被丢弃的概率,保证业务正常进行。
为方便叙述,下面先对本申请涉及的一些相关概念进行解释:
1、优先级:
优先级包括报文的优先级和发送缓存队列的优先级。
其中,报文的优先级用于指示报文的重要性,为方便叙述,在下文中,均以报文优先级数值越小则报文越重要为例;
发送缓存队列的优先级为发送缓存队列的区分标识,各发送缓存队列的优先级不同。
发送缓存队列的个数与报文的优先级个数相同,每个发送缓存队列用于缓存优先级与自身匹配的报文。
例如,优先级为X级的发送缓存队列用于缓存优先级为X级的报文。
2、平均队列长度:
平均队列长度为当前发送缓存队列缓存的报文数量与计算的前一次平均队列长度的加权平均值。
可以理解的是,发送缓存队列首次计算的平均队列长度为计算时发送缓存队列缓存的报文数量。
可选地,可以通过如下公式确定平均队列长度Lave:
Lave=(1-δ)×Lave-old+δ×L
其中,δ为预设的加权平均的权值,δ大于0且小于1;
Lave-old为前一次计算的平均队列长度;
L为当前发送缓存队列缓存的报文数量。
在本申请中,转发设备对发送缓存队列进行的管理包括两个步骤,分别为缓存管理和分组调度。
具体地,缓存管理是指在获取到待发送的报文后,转发设备基于该报文的丢弃概率确定是否将该报文写入与报文对应的发送缓存队列,下文中结合图1、图2对缓存管理的实现方法进行描述;
分组调度是指转发设备从发送缓存队列集合中选取发送缓存队列,并发送该选取的发送缓存队列中的报文,下文中结合图3-图5对分组调度的实现方法进行描述。
参见图1,图1是本申请一示例性实施例示出的一种队列管理的方法。该方法可以应用于转发设备,转发设备预配置了发送缓存队列集合,该发送缓存队列集合包括至少一个发送缓存队列,各发送缓存队列的优先级不同。
如图1所示,该方法可以包括如下步骤:
步骤S101:转发设备获取待发送的第一报文,并基于所述第一报文中预设标识,确定所述第一报文的优先级。
首先,转发设备在接收到其他网络设备(例如服务器、其他转发设备等)发送的报文后,会先对报文进行预处理,例如根据报文的五元组信息将报文分类、对报文进行入侵检测等,以确定该接收到的报文是否需要发送。
然后,转发设备获取由预处理确定的需要发送的报文,将该待发送的报文确定为第一报文。
最后,转发设备根据该第一报文中的预设标识确定该第一报文的优先级。
可选地,报文预设的优先级标识可以携带在报文头中,例如,若报文为IPv4报文,则预设标识可以携带在报文头的Tos字段中;若报文为IPv6报文,则预设标识可以携带在报文头的FlowLabel字段中。
可以理解的是,使用报文头的已有字段来携带优先级标识,既不会增加报文的大小,也不会使转发设备为了确定报文优先级而增加计算复杂度。
步骤S102:转发设备在所述发送缓存队列集合中,确定与所述第一报文的优先级匹配的第一发送缓存队列,并计算所述第一发送缓存队列的平均队列长度。
转发设备根据步骤S101中获取的第一报文的优先级,在发送缓存队列集合中确定与该报文的优先级匹配的第一发送缓存队列。
同时,转发设备读取该第一发送缓存队列已缓存的报文数量,和该第一发送缓存队列计算的前一次平均队列长度,确定第一发送缓存队列当前的平均队列长度。
步骤S103:若所述平均队列长度满足预设条件,则转发设备根据平均队列长度、优先级和发送缓存队列集合中发送缓存队列的个数,确定所述第一报文的丢弃概率。
根据发送缓存队列可缓存的报文数量上限,发送缓存队列预设有队列长度最小门限THmin和队列长度最大门限THmax。
将步骤S102中确定的第一发送缓存队列的平均队列长度与THmin和THmax进行比较:
若平均队列长度小于THmin,则将报文步骤S101中获取的第一报文写入第一发送缓存队列;
若平均队列长度大于THmax,则将报文步骤S101中获取的第一报文丢弃;
若平均队列长度不小于THmin且不大于THmax,则转发设备根据平均队列长度、优先级和发送缓存队列集合中发送缓存队列的个数确定第一报文的丢弃概率。
转发设备通过该预设的规则将平均队列长度、优先级和发送缓存队列的个数结合来确定第一报文丢弃概率,使得第一报文的丢弃概率与优先级成正比,且该丢弃概率不小于0且不大于1。
可选地,转发设备可以使用图2所示的方法“确定第一报文的丢弃概率”。
如图2所示,包括以下步骤:
步骤S1031:转发设备基于平均队列长度Lave,确定通用丢弃概率Pold。
可选地,转发设备可以采用RED(Random Early Detection,随机早期检测)算法中的丢弃概率来确定通用丢弃概率。
假设在RED算法中,第一发送缓存队列预设的丢弃概率上限为Pmax,则通过以下公式确定通用丢弃概率Pold。
Pold=Pmax×(Lave-THmin)/(THmax-THmin)
其中,Pmax为预设的丢弃概率上限;
Lave为步骤S102中确定的平均队列长度
THmin为预设的队列长度最小门限;
THmax为预设的队列长度最大门限;
当然,转发设备还可以基于ARED(Adaptive RED,自适应的随机早期检测)算法等其他队列管理算法中的丢弃概率来确定通用丢弃概率,这里只是以RED算法为例,并不进行具体限定。
步骤S1032:转发设备基于优先级和发送缓存队列集合中发送缓存队列的个数n,确定缩减系数F。
转发设备可以将第一报文的优先级prio和发送缓存队列的个数n按预设的规则进行结合,以得到缩减系数F。
可选地,转发设备可以通过如下公式确定缩减系数F:
其中,MDfst为第一发送缓存队列预设的调节参数,可选地,不同的发送缓存队列预设不同的调节参数;
n为发送缓存队列集合中发送缓存队列的个数;
prio为所述第一报文的优先级。
当然,转发设备还可以采用其他算法来确定缩减系数F,在此不进行限定。
步骤S1033:基于所述通用丢弃概率Pold和缩减系数F,确定所述第一报文的丢弃概率Pdrop。
可选地,转发设备可以将通用丢弃概率Pold与缩减系数F的相乘。若两者的乘积小于1,则丢弃概率Pdrop等于该乘积;若两者的乘积大于1,则丢弃概率Pdrop等于该乘积减1。
至此,完成图2所示流量。
当然,转发设备还可以采用其他算法来确定通用丢弃概率,只需要使得通用丢弃概率与报文的优先级成正相关即可,在此并不具体限定。
步骤S104:转发设备基于所述第一报文的丢弃概率Pdrop确定是否将所述第一报文写入第一发送缓存队列。
转发设备基于步骤S103确定的丢弃概率Pdrop,对该第一报文进行处理。处理方法包括将该第一报文写入第一发送缓存队列或者将该第一报文丢弃。
可以理解的是,由于丢弃概率Pdrop与报文的优先级prio成正比,所以报文越重要(即优先级越小),则丢弃概率越小,从而该第一报文被写入第一发送缓存队列的概率越高。
举例来说,假设确定的丢弃概率为Pdrop(0<Pdrop<1),可以采用如下方法来确定对第一报文的处理方法。
首先,以Pdrop为界将预设的概率区间[0,1]拆分成两个概率子区间,其中,将概率子区间[0,Pdrop)确定为丢弃概率子区间,将概率子区间[Pdrop,1]确定为缓存概率子区间。
然后,随机生成一个在[0,1]区间内均匀随机分布的随机数R。
最后,根据R所属的概率子区间来确定对第一报文的处理方法:
若随机数R属于丢弃子概率区间[0,Pdrop),则转发报文将第一报文丢弃;
若随机数R属于缓存子概率区间[Pdrop,1],则将第一报文写入第一发送缓存队列。
至此,完成图1所示的流程。
本申请中,转发设备中预置了发送缓存队列集合,该发送缓存队列集合中包括至少一个发送缓存队列,各发送缓存队列的优先级不同。转发设备在获取到待发送的第一报文后,确定该第一报文的优先级和与该优先级匹配的第一发送缓存队列,并基于该第一发送缓存队列当前的平均队列长度、第一报文的优先级和发送缓存队列的个数确定第一报文的丢弃概率,从而,转发设备利用该丢弃概率确定是否将该第一报文写入第一发送缓存队列。由于本申请根据报文的优先级来确定报文的丢弃概率,因此,本申请能降低重要的报文被丢弃的概率,保证业务正常进行。
下面通过一个具体实施例对图1所示的缓存管理方法进行说明。
假设转发设备预设的发送缓存队列集合中有n个发送缓存队列。
第一步,转发设备获取经预处理后确定为待发送的第一报文,并基于第一报文中的预设标识确定该报文的优先级为prio。
第二步,转发设备确定该与优先级prio匹配的第一发送缓存队列,并确定该第一发送缓存队列的平均队列长度为Lave。
第三步,转发设备在确定该平均队列长度Lave满足预设条件后,采用RED算法确定该通用丢弃概率Pold。
第四步,转发设备基于优先级prio和发送缓存队列的个数n,确定缩减系数F。
第五步,转发设备基于通用丢弃概率Pold和缩减系数F,确定第一报文的丢弃概率Pdrop。
第六步,转发设备基于丢弃概率Pdrop确定是否将第一报文写入第一发送缓存队列。
至此,转发设备完成一次缓存管理中的报文处理。
下面结合图3-图5对分组调度的实现方法进行描述。
如图3所示,分组调度的方法可以包括如下步骤:
步骤S301:转发设备基于获取到的每个发送缓存队列的优先级、以及所述每个发送缓存队列已缓存的报文数量,确定每个发送缓存队列的发送概率。
本申请中,转发设备获取各发送缓存队列的信息,包括发送缓存队列的优先级和已缓存的报文数量,并基于获取到的信息确定每个发送缓存队列的发送概率。
转发设备可以按照预设的规则将该优先级和已缓存的报文数量结合,以确定每个发送缓存队列的发送概率。下文以图4所示方法为例进行说明,在此暂不赘述。
步骤S302:转发设备基于所述每个发送缓存队列的发送概率,在所述发送缓存队列集合中确定第二发送缓存队列。
本申请中,步骤S301为发送缓存队列集合中的每个发送缓存队列均计算了一个发送概率,基于计算所得的发送概率确定第二发送缓存队列。下文以图5所示方法为例进行说明,在此暂不赘述。
步骤S303:转发设备发送所述第二发送缓存队列中的报文。
本申请中,发送缓存队列在缓存报文时从队首至队尾依次写入报文,因此转发设备发送队首的首个报文。
之后,转发设备发送下一个报文前,需要执行步骤S301-S303来重新确定第二发送缓存队列,并发送重新确定的第二发送缓存队列的首个报文。
至此,完成图3所示的流程。
作为一个可选的实施例,转发设备可以使用图4所示方法实现步骤S301中描述的“确定每个发送缓存队列的发送概率”。
如图4所示,包括以下步骤:
步骤S3011:转发设备基于所述发送缓存队列集合中各发送缓存队列已缓存的报文数量Ni,确定所述发送缓存队列集合的积压程度α。
其中,积压程度α用于指示发送缓存队列集合当前已缓存的报文数量是否接近该集合可缓存的报文数量上限。
可选地,可以使用下面描述的方法来“确定该积压程度”:
第一步,转发设备获取发送缓存队列集合预设的可缓存的报文数量阈值Y。
转发设备在内存中为发送缓存队列集合预先分配了存储空间,并由此可确定该发送缓存队列集合可缓存的报文数量阈值Y。
第二步,转发设备确定发送缓存队列集合中所有发送缓存队列已缓存的报文数量之和S。
转发设备将所有发送缓存队列已缓存的报文数量Ni相加,得到S。
第三步,转发设备基于所述Y和所述S,确定所述发送缓存队列集合的积压程度α。
转发设备基于预设的规则将Y和S结合,得到发送缓存队列集合的积压程度α,同时,积压程度α与S成负相关关系。可选地,积压程度α可以是S与Y的比值,即积压程度α等于
步骤S3012,转发设备基于所述积压程度α、所述每个发送缓存队列已缓存的报文数量Ni、以及每个发送缓存队列的优先级i确定每个发送缓存队列的发送概率。
可选地,可以如下公式确定每个发送缓存队列的发送概率Pi schd:
其中,i为每个发送缓存队列的优先级;
Ni为每个发送缓存队列已缓存的报文数量;
S为发送缓存队列集合中所有发送缓存队列已缓存的报文数量之和;
α为步骤S3011中计算的发送缓存队列集合的积压程度。
作为一个可选的实施例,可以以图5所示的方法实现图3的步骤S303中描述的“确定第二发送缓存队列”。
步骤S3031:转发设备基于各发送缓存队列的发送概率,将预设概率区间拆分为多个概率子区间,为每个发送缓存队列分配一个概率子区间,其中,每个发送缓存队列被分配的概率子区间的区间长度与所述预设概率区间长度的比值为该发送缓存队列的发送概率。
假设发送缓存队列的数量为M,每个发送缓存队列的发送概率为Pi schd,其中,i为每个发送缓存队列的优先级(1≤i≤M)。
若预设的概率区间为[0,1],可知该区间的区间长度为1,将[0,1]拆分为M个概率子区间,分别分配给M个队列。
一种可选的分配方式为:
M个概率子区间分别为[0,a1)、[a1,a2)…、[ai-1,ai)、…[aM-1,1],分别分配给各发送缓存队列。
其中,为优先级为1(即i=1)的发送缓存队列分配[0,a1)作为概率子区间,且a1与P1 schd相等;
为优先级为i(1<i≤M)的发送缓存队列分配[ai-1,ai)的概率子区间,且ai与ai-1的差为Pi schd,aM等于1。
步骤S3032:转发设备随机生成一个属于所述预设概率区间的自然数。
步骤S3033:转发设备将所述自然数所属的概率子区间对应的发送缓存队列确定为所述第二发送缓存队列。
转发设备随机生成一个在[0,1]区间内均匀随机分布的自然数N,确定N所属的概率子区间,将该概率子区间对应的发送缓存队列确定为第二发送缓存队列。
至此,完成图5所示的流程。
本申请中,转发设备基于发送缓存队列的优先级和已缓存的报文数量,进而动态调整每个发送缓存队列的发送概率。发送缓存队列集合的积压程度能实时反映该集合的情况,积压程度的数值越大,则集合缓存的报文数量越接近该集合可缓存的报文数量上限。
积压程度较大时,则每个发送缓存队列已缓存的报文数量对发送概率影响较大;当积压程度较小时,则每个发送缓存队列的优先级对发送概率影响较大。相较于常见的按照优先级从高至低的顺序来选择发送报文的发送缓存队列,本申请中的转发设备能避免持续发送高优先级的报文,而不发送低优先级的报文的问题。
下面通过一个具体实施例对分组调度的方法进行说明。
假设转发设备预设的发送缓存队列集合中有n个发送缓存队列,且每个发送缓存队列的优先级为i,该发送缓存队列集合预设的可缓存的报文数量上限为Y。
第一步,转发设备获取每个发送缓存队列已缓存的报文数量Ni,并确定所有发送缓存队列已缓存的报文数量之和为S。
第二步,转发设备以S和Y的比值作为发送缓存队列集合的积压程度α,即以以下公式确定积压程度α:
第三步,转发设备以以下公式确定每个发送缓存队列的发送概率Pi schd。
第四步,转发设备根据每个发送缓存队列的发送概率Pi schd确定第二发送缓存队列。
下面以一个具体的例子对本步骤进行说明:
假设发送缓存队列集合中有3个发送缓存队列(即n=3),其中优先级为1(即i=1)的发送缓存队列的发送概率为0.7(即P1 schd=0.7),优先级为2(即i=2)的发送缓存队列的发送概率为0.2(即P2 schd=0.2),优先级为3(即i=3)的发送缓存队列的发送概率为0.1(即P3 schd=0.1)。
将预设的概率区间[0,1]划分为3个概率子区间,并为每个发送缓存队列分配一个概率子区间。为优先级为1的发送缓存队列分配的概率子区间为[0,0.7),为优先级为2的发送缓存队列分配的概率子区间为[0.7,0.9),为优先级为3的发送缓存队列分配的概率子区间为[0.9,1]。
随机生成一个属于[0,1]的自然数N。
若N属于[0,0.7),则将优先级为1的发送缓存队列确定为第二发送缓存队列;
若N属于[0.7,0.9),则将优先级为2的发送缓存队列确定为第二发送缓存队列;
若N属于[0.9,1],则将优先级为3的发送缓存队列确定为第二发送缓存队列。
第五步,转发设备发送第二发送缓存队列中的报文。
至此,转发设备完成一次分组调度中的报文发送。
参见图6,图6是本申请一示例性实施例示出的一种转发设备的硬件结构图。
该转发设备包括:通信接口601、处理器602、机器可读存储介质603和总线604;其中,通信接口601、处理器602和机器可读存储介质603通过总线604完成相互间的通信。处理器602通过读取并执行机器可读存储介质603中与队列管理控制逻辑对应的机器可执行指令,可执行上文描述的队列管理方法。
本文中提到的机器可读存储介质603可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:易失存储器、非易失性存储器或者类似的存储介质。具体地,机器可读存储介质603可以是RAM(Radom Access Memory,随机存取存储器)、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、DVD等),或者类似的存储介质,或者它们的组合。
以上对本申请提供的方法进行了描述。下面对本申请提供的装置进行描述:
参见图7,图7为本申请一示例性实施例示出的一种队列管理装置的框图。该装置可以应用在图6所示的转发设备上,转发设备预配置了发送缓存队列集合,所述发送缓存队列集合包括至少一个发送缓存队列,各发送缓存队列的优先级不同,该装置可包括:
第一报文获取单元701,用于获取待发送的第一报文,并基于所述第一报文中预设标识,确定所述第一报文的优先级;
第一队列确定单元702,用于在所述发送缓存队列集合中,确定与所述第一报文的优先级匹配的第一发送缓存队列,并计算所述第一发送缓存队列的平均队列长度;
第一概率计算单元703,用于若所述平均队列长度满足预设条件,则根据平均队列长度、优先级和发送缓存队列集合中发送缓存队列的个数,确定所述第一报文的丢弃概率;
第一缓存确定单元704,用于基于所述第一报文的丢弃概率确定是否将所述第一报文写入第一发送缓存队列。
可选地,所述根据平均队列长度、优先级和发送缓存队列集合中发送缓存队列的个数,确定所述第一报文的丢弃概率包括:
基于所述平均队列长度,确定通用丢弃概率;
基于所述优先级和发送缓存队列集合中发送缓存队列的个数,确定缩减系数F;
基于所述通用丢弃概率和所述缩减系数F,确定所述第一报文的丢弃概率。
可选地,所述基于所述优先级和发送缓存队列集合中发送缓存队列的个数,确定缩减系数F,包括:
通过如下公式确定缩减系数F:
其中,MDfst为预设的调节参数;
n为发送缓存队列集合中发送缓存队列的个数;
prio为所述第一报文的优先级。
可选地,所述第一报文中的预设标识包括:
若所述第一报文为IPv4报文,则所述预设标识携带在所述第一报文的报文头的Tos字段中;
若所述第一报文为IPv6报文,则所述预设标识携带在所述第一报文的报文头的FlowLabel字段中。
可选地,该装置还包括:
第二概率确定单元705(图7中未示出),用于基于获取到的每个发送缓存队列的优先级、以及所述每个发送缓存队列已缓存的报文数量,确定每个发送缓存队列的发送概率;
第二缓存确定单元706(图7中未示出),用于基于所述每个发送缓存队列的发送概率,在所述发送缓存队列集合中确定第二发送缓存队列;
第二报文发送单元707(图7中未示出),发送所述第二发送缓存队列中的报文。
可选地,所述基于获取到的每个发送缓存队列的优先级、以及所述每个发送缓存队列已缓存的报文数量,确定每个发送缓存队列的发送概率包括:
基于所述发送缓存队列集合中各发送缓存队列已缓存的报文数量,确定所述发送缓存队列集合的积压程度;
基于所述积压程度、所述每个发送缓存队列已缓存的报文数量、以及每个发送缓存队列的优先级确定每个发送缓存队列的发送概率Pschd。
可选地,所述基于所述发送缓存队列集合中各发送缓存队列已缓存的报文数量,确定所述发送缓存队列集合的积压程度包括:
获取发送缓存队列集合预设的可缓存的报文数量阈值Y;
确定发送缓存队列集合中所有发送缓存队列已缓存的报文数量之和S;
基于所述Y和所述S,确定所述发送缓存队列集合的积压程度。
可选地,所述基于所述积压程度、所述每个发送缓存队列已缓存的报文数量、以及每个发送缓存队列的优先级确定每个发送缓存队列的发送概率Pschd包括:
通过如下公式确定每个发送缓存队列的发送概率Pschd:
其中,i为每个发送缓存队列的优先级;
Ni为每个发送缓存队列已缓存的报文数量;
S为所述发送缓存队列集合中所有发送缓存队列已缓存的报文数量之和;
α为所述发送缓存队列集合的积压程度。
可选地,所述基于所述每个发送缓存队列的发送概率,在所述发送缓存队列集合中确定第二发送缓存队列包括:
基于各发送缓存队列的发送概率,将预设概率区间拆分为多个概率子区间,为每个发送缓存队列分配一个概率子区间,其中,每个发送缓存队列被分配的概率子区间的区间长度与所述预设概率区间长度的比值为该发送缓存队列的发送概率;
随机生成一个属于所述预设概率区间的自然数;
将所述自然数所属的概率子区间对应的发送缓存队列确定为所述第二发送缓存队列。
Claims (9)
1.一种队列管理的方法,其特征在于,应用于转发设备,所述转发设备预配置了发送缓存队列集合,所述发送缓存队列集合包括至少一个发送缓存队列,各发送缓存队列的优先级不同;所述方法包括:
获取待发送的第一报文,并基于所述第一报文中预设标识,确定所述第一报文的优先级;
在所述发送缓存队列集合中,确定与所述第一报文的优先级匹配的第一发送缓存队列,并计算所述第一发送缓存队列的平均队列长度;
若所述平均队列长度满足预设条件,则根据平均队列长度、优先级和发送缓存队列集合中发送缓存队列的个数,确定所述第一报文的丢弃概率;
基于所述第一报文的丢弃概率确定是否将所述第一报文写入第一发送缓存队列;
所述根据平均队列长度、优先级和发送缓存队列集合中发送缓存队列的个数,确定所述第一报文的丢弃概率包括:
基于所述平均队列长度,确定通用丢弃概率;
基于所述优先级和发送缓存队列集合中发送缓存队列的个数,确定缩减系数F;
基于所述通用丢弃概率和所述缩减系数F,确定所述第一报文的丢弃概率;
所述基于所述优先级和发送缓存队列集合中发送缓存队列的个数,确定缩减系数F,包括:
通过如下公式确定缩减系数F:
其中,MDfst为预设的调节参数;
n为发送缓存队列集合中发送缓存队列的个数;
prio为所述第一报文的优先级。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于获取到的每个发送缓存队列的优先级、以及所述每个发送缓存队列已缓存的报文数量,确定每个发送缓存队列的发送概率;
基于所述每个发送缓存队列的发送概率,在所述发送缓存队列集合中确定第二发送缓存队列;
发送所述第二发送缓存队列中的报文。
3.根据权利要求2所述的方法,其特征在于,所述基于获取到的每个发送缓存队列的优先级、以及所述每个发送缓存队列已缓存的报文数量,确定每个发送缓存队列的发送概率包括:
基于所述发送缓存队列集合中各发送缓存队列已缓存的报文数量,确定所述发送缓存队列集合的积压程度;
基于所述积压程度、所述每个发送缓存队列已缓存的报文数量、以及每个发送缓存队列的优先级确定每个发送缓存队列的发送概率Pschd。
4.根据权利要求3所述的方法,其特征在于,所述基于所述发送缓存队列集合中各发送缓存队列已缓存的报文数量,确定所述发送缓存队列集合的积压程度包括:
获取发送缓存队列集合预设的可缓存的报文数量阈值Y;
确定发送缓存队列集合中所有发送缓存队列已缓存的报文数量之和S;
基于所述Y和所述S,确定所述发送缓存队列集合的积压程度。
5.根据权利要求4所述的方法,其特征在于,所述基于所述积压程度、所述每个发送缓存队列已缓存的报文数量、以及每个发送缓存队列的优先级确定每个发送缓存队列的发送概率Pschd包括:
通过如下公式确定每个发送缓存队列的发送概率Pschd:
其中,i为每个发送缓存队列的优先级;
Ni为每个发送缓存队列已缓存的报文数量;
S为所述发送缓存队列集合中所有发送缓存队列已缓存的报文数量之和;
α为所述发送缓存队列集合的积压程度。
6.根据权利要求2所述的方法,其特征在于,所述基于所述每个发送缓存队列的发送概率,在所述发送缓存队列集合中确定第二发送缓存队列包括:
基于各发送缓存队列的发送概率,将预设概率区间拆分为多个概率子区间,为每个发送缓存队列分配一个概率子区间,其中,每个发送缓存队列被分配的概率子区间的区间长度与所述预设概率区间长度的比值为该发送缓存队列的发送概率;
随机生成一个属于所述预设概率区间的自然数;
将所述自然数所属的概率子区间对应的发送缓存队列确定为所述第二发送缓存队列。
7.根据权利要求1所述的方法,其特征在于,所述第一报文中的预设标识包括:
若所述第一报文为IPv4报文,则所述预设标识携带在所述第一报文的报文头的Tos字段中;
若所述第一报文为IPv6报文,则所述预设标识携带在所述第一报文的报文头的FlowLabel字段中。
8.一种队列管理的装置,其特征在于,应用于转发设备,所述转发设备预配置了发送缓存队列集合,所述发送缓存队列集合包括至少一个发送缓存队列,各发送缓存队列的优先级不同;所述装置包括:
第一报文获取单元,用于获取待发送的第一报文,并基于所述第一报文中预设标识,确定所述第一报文的优先级;
第一队列确定单元,用于在所述发送缓存队列集合中,确定与所述第一报文的优先级匹配的第一发送缓存队列,并计算所述第一发送缓存队列的平均队列长度;
第一概率计算单元,用于若所述平均队列长度满足预设条件,则根据平均队列长度、优先级和发送缓存队列集合中发送缓存队列的个数,确定所述第一报文的丢弃概率;所述根据平均队列长度、优先级和发送缓存队列集合中发送缓存队列的个数,确定所述第一报文的丢弃概率包括:基于所述平均队列长度,确定通用丢弃概率;基于所述优先级和发送缓存队列集合中发送缓存队列的个数,确定缩减系数F;基于所述通用丢弃概率和所述缩减系数F,确定所述第一报文的丢弃概率;所述基于所述优先级和发送缓存队列集合中发送缓存队列的个数,确定缩减系数F,包括:通过如下公式确定缩减系数F:
其中,MDfst为预设的调节参数;n为发送缓存队列集合中发送缓存队列的个数;prio为所述第一报文的优先级;
第一缓存确定单元,用于基于所述第一报文的丢弃概率确定是否将所述第一报文写入第一发送缓存队列。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第二概率确定单元,用于基于获取到的每个发送缓存队列的优先级、以及所述每个发送缓存队列已缓存的报文数量,确定每个发送缓存队列的发送概率;
第二缓存确定单元,用于基于所述每个发送缓存队列的发送概率,在所述发送缓存队列集合中确定第二发送缓存队列;
第二报文发送单元,用于发送所述第二发送缓存队列中的报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911250627.1A CN111163016B (zh) | 2019-12-09 | 2019-12-09 | 一种队列管理的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911250627.1A CN111163016B (zh) | 2019-12-09 | 2019-12-09 | 一种队列管理的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111163016A CN111163016A (zh) | 2020-05-15 |
CN111163016B true CN111163016B (zh) | 2023-09-29 |
Family
ID=70556690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911250627.1A Active CN111163016B (zh) | 2019-12-09 | 2019-12-09 | 一种队列管理的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111163016B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113872881A (zh) * | 2020-06-30 | 2021-12-31 | 华为技术有限公司 | 队列信息的处理方法及装置 |
CN113206800B (zh) * | 2021-03-15 | 2022-05-27 | 新华三信息安全技术有限公司 | 一种报文缓存方法、装置以及网络设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007228148A (ja) * | 2006-02-22 | 2007-09-06 | Furuno Electric Co Ltd | パケット通信装置 |
CN101640639A (zh) * | 2008-07-30 | 2010-02-03 | 快美思科技有限公司 | 公平加权的网络拥塞避免 |
CN104767691A (zh) * | 2015-04-02 | 2015-07-08 | 哈尔滨工程大学 | 一种基于概率转发的Web防火墙拥塞控制方法 |
CN108933993A (zh) * | 2018-07-03 | 2018-12-04 | 平安科技(深圳)有限公司 | 短信缓存队列选择方法、装置、计算机设备和存储介质 |
-
2019
- 2019-12-09 CN CN201911250627.1A patent/CN111163016B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007228148A (ja) * | 2006-02-22 | 2007-09-06 | Furuno Electric Co Ltd | パケット通信装置 |
CN101640639A (zh) * | 2008-07-30 | 2010-02-03 | 快美思科技有限公司 | 公平加权的网络拥塞避免 |
CN104767691A (zh) * | 2015-04-02 | 2015-07-08 | 哈尔滨工程大学 | 一种基于概率转发的Web防火墙拥塞控制方法 |
CN108933993A (zh) * | 2018-07-03 | 2018-12-04 | 平安科技(深圳)有限公司 | 短信缓存队列选择方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111163016A (zh) | 2020-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8509074B1 (en) | System, method, and computer program product for controlling the rate of a network flow and groups of network flows | |
US9438523B2 (en) | Method and apparatus for deriving a packet select probability value | |
US8533356B2 (en) | Shaping virtual machine communication traffic | |
US9001663B2 (en) | Communication transport optimized for data center environment | |
US8665892B2 (en) | Method and system for adaptive queue and buffer control based on monitoring in a packet network switch | |
JP4512699B2 (ja) | フロー制御装置およびノード装置 | |
CN111163016B (zh) | 一种队列管理的方法及装置 | |
CN113973085B (zh) | 一种拥塞控制方法和装置 | |
WO2016086551A1 (zh) | 一种基于改进的wred的拥塞控制方法和装置 | |
EP2466824A1 (en) | Service scheduling method and device | |
CN112104562B (zh) | 拥塞控制方法及装置、通信网络、计算机存储介质 | |
KR20210028722A (ko) | 혼잡 제어 방법 및 네트워크 디바이스 | |
CN110138678B (zh) | 数据传输控制方法和装置、以及网络传输设备和存储介质 | |
WO2017215279A1 (zh) | 一种视频回放方法及装置 | |
KR20090004166A (ko) | 통신 시스템에서 패킷 전송 속도 제한 장치 및 방법 | |
JP2004266389A (ja) | パケット転送制御方法及びパケット転送制御回路 | |
CN110086728B (zh) | 发送报文的方法、第一网络设备及计算机可读存储介质 | |
JP7211765B2 (ja) | パケット転送装置、方法、及びプログラム | |
CN111835649A (zh) | 一种数据发送方法、装置及相关组件 | |
CN110730142A (zh) | 一种信息不可知情况下的数据中心流自适应调度方法 | |
EP2608460A1 (en) | Method and device for sending messages | |
WO2020026983A1 (ja) | パケット転送装置、方法、及びプログラム | |
WO2016127582A1 (zh) | 一种防御消息攻击的方法及装置 | |
US20050185581A1 (en) | Active flow management with hysteresis | |
CN109905331B (zh) | 队列调度方法及装置、通信设备、存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |