CN107800643B - 报文转发方法及装置 - Google Patents
报文转发方法及装置 Download PDFInfo
- Publication number
- CN107800643B CN107800643B CN201610754493.7A CN201610754493A CN107800643B CN 107800643 B CN107800643 B CN 107800643B CN 201610754493 A CN201610754493 A CN 201610754493A CN 107800643 B CN107800643 B CN 107800643B
- Authority
- CN
- China
- Prior art keywords
- message
- leaky bucket
- cache
- forwarded
- priority
- 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
Images
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/21—Flow control; Congestion control using leaky-bucket
-
- 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
-
- 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/2425—Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
- H04L47/2433—Allocation of priorities to traffic types
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种报文转发方法及装置,其中该方法包括:当漏桶缓存无法容纳待转发报文时,标记上述漏桶缓存中报文优先级比上述待转发报文优先级低的报文;丢弃上述漏桶缓存中被标记的报文,以使上述待转发报文进入上述漏桶缓存进行转发。通过本发明,解决了相关技术中低优先级报文被转发,导致高优先级报文被丢弃的问题,进而使得在SP调度的场景中,高优先级报文不会丢包,从而提高关键业务的服务质量,提升客户的满意度。
Description
技术领域
本发明涉及通信技术领域,具体而言,涉及一种报文转发方法及装置。
背景技术
随着通信技术的不断发展,互联网业务的种类和数量飞速增加,高速网络的数据传输更需要高质量的服务。实际网络中的流量模型,大部分是这种突发流量,而漏桶算法是网络环境中流量整形或者速率限制时经常使用的一种算法,他主要的目的是控制数据注入到网络的速率,平滑网络上的突发流量。漏桶算法提供了一种机制,通过它,突发流量可以被整形以便为网络提供一个稳定的流量。
通信设备中,漏桶限速通常实现为令牌方式,但与令牌桶的原理不同。图1为现有中漏桶限速的基本原理图,如图1所示,初始漏桶令牌数为0,报文到来时,根据报文字节按照比例向漏桶填充令牌,如果填充的令牌超出漏桶的DISCARD线,报文将被丢弃。如果未超出,但大于流出速率,报文被缓存,等待被延迟转发。如果小于流出速率,报文被直接转发。报文转发的实现方式为,在每个刷新周期,根据限速速率从漏桶中拿走一定的令牌。通过这种方式,实现流量的平滑。在采用SP(Strict Priority,严格优先级)调度模式的情况下,高优先级业务分组在缓存不为空时,不会调度低优先级业务分组。只有高优先级业务分组缓存为空时,才会调度下一个优先级数据报文。
现有的漏桶限速结合SP调度的实现方式中,当数据包可变包长,这种机制存在一定的缺陷。SP调度方式下,希望高优先级分组的报文优先得到服务,例如高优先级业务带宽为64Mbps,漏桶限速也为64Mbps,那么,期望结果就是全部转发高优先业务,低优先级业务全部丢弃。但如果在实际网络中,业务报文都是可变的,当高优先级业务分组全部被调度空时,尤其高优先级业务分组最后一个报文为较大包长,会导致高优先级分组的流量瞬间超过64Mbps,随后会有一个发包间隙,低优先级业务报文就有机会进入漏桶,导致高优先级报文到来时,无法进入缓存而被丢弃。虽然是因为可变包长的流量瞬间超出带宽,但从用户的角度看到的就是低优先级的报文被转发,高优先级的报文丢包了,尤其是限速速率和高优先级报文速率相当时,通常认为高优先级的报文不应该丢包。
综上所述,针对漏桶限速中低优先级报文被转发,导致高优先级报文被丢弃的问题,尚未提出有效的解决方案。
发明内容
本发明提供了一种报文转发方法及装置,以至少解决相关技术中漏桶限速中低优先级报文被转发,导致高优先级报文被丢弃的问题。
根据本发明的一个方面,提供了一种报文转发方法,包括:
当漏桶缓存无法容纳待转发报文时,标记上述漏桶缓存中报文优先级比上述待转发报文优先级低的报文;
丢弃上述漏桶缓存中被标记的报文,以使上述待转发报文进入上述漏桶缓存进行转发。
进一步地,在丢弃上述漏桶缓存中被标记的报文之后,还包括:
当上述漏桶缓存无法容纳上述待转发报文,且预先设置的预缓存区能够容纳上述待转发报文时,将上述待转发报文存储至上述预缓存区;
在上述漏桶缓存的下一刷新周期,将上述待转发报文存储至上述漏桶缓存进行转发。
进一步地,在标记上述漏桶缓存中报文优先级比上述待转发报文优先级低的报文之前,还包括:
判断上述漏桶缓存是否能够容纳待转发报文。
进一步地,判断上述漏桶缓存是否能够容纳待转发报文包括:
当上述漏桶缓存中已缓存的报文对应的令牌数与上述待转发报文对应的令牌数之和大于上述漏桶缓存容量对应的最大令牌数时,确定上述漏桶缓存无法容纳待转发报文。
进一步地,上述标记上述漏桶缓存中报文优先级比上述待转发报文优先级低的报文包括:
根据报文的优先级对所述漏桶缓存中的报文进行优先级排序;
从所述漏桶缓存中优先级最低的报文开始标记,当所述漏桶缓存能够容纳所述待转发报文时,停止标记所述漏桶缓存中的报文。
进一步地,丢弃上述漏桶缓存中被标记的报文包括:
从上述漏桶缓存底部被标记的报文开始,依次丢弃上述漏桶缓存中被标记的报文,其中,上述漏桶缓存底部被标记的报文为先进入上述漏桶缓存中且被标记的报文。
根据本发明的另一方面,提供了一种报文转发装置,包括:
标记模块,用于当漏桶缓存无法容纳待转发报文时,标记上述漏桶缓存中报文优先级比上述待转发报文优先级低的报文;
处理模块,与上述标记模块相连,用于丢弃上述漏桶缓存中被标记的报文,以使上述待转发报文进入上述漏桶缓存进行转发。
进一步地,该装置还包括:第一存储模块,用于在丢弃所述漏桶缓存中被标记的报文之后,当所述漏桶缓存无法容纳所述待转发报文,且预先设置的预缓存区能够容纳所述待转发报文时,将所述待转发报文存储至所述预缓存区;
第二存储模块,用于在所述漏桶缓存的下一刷新周期,将所述待转发报文存储至所述漏桶缓存进行转发。
进一步地,上述装置还包括:
判断模块,用于在标记所述漏桶缓存中报文优先级比所述待转发报文优先级低的报文之前,判断所述漏桶缓存是否能够容纳待转发报文。
进一步地,上述判断模块还用于:
当所述漏桶缓存中已缓存的报文对应的令牌数与所述待转发报文对应的令牌数之和大于所述漏桶缓存容量对应的最大令牌数时,确定所述漏桶缓存无法容纳待转发报文。
进一步地,上述标记模块包括:
排序单元,用于根据报文的优先级对所述漏桶缓存中的报文进行优先级排序;
处理单元,用于从所述漏桶缓存中优先级最低的报文开始标记,当所述漏桶缓存能够容纳所述待转发报文时,停止标记所述漏桶缓存中的报文。
进一步地,上述处理模块还用于:
从所述漏桶缓存底部被标记的报文开始,依次丢弃所述漏桶缓存中被标记的报文,其中,所述漏桶缓存底部被标记的报文为先进入所述漏桶缓存中且被标记的报文。
通过本发明,当漏桶缓存无法容纳待转发报文时,标记上述漏桶缓存中报文优先级比上述待转发报文优先级低的报文;丢弃上述漏桶缓存中被标记的报文,以使上述待转发报文进入上述漏桶缓存进行转发,解决了相关技术中漏桶限速中低优先级报文被转发,导致高优先级报文被丢弃的问题,进而使得在SP调度的场景中,高优先级报文不会丢包,从而提高关键业务的服务质量,提升客户的满意度。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是现有技术中漏桶限速的基本原理图;
图2是根据本发明实施例的报文转发方法的流程图;
图3是根据本发明示例的报文转发方法的流程图;
图4是根据本发明示例的漏桶刷新周期处理的示意图;
图5是根据本发明实施例的报文转发装置的结构框图;
图6是根据本发明示例的报文转发装置的结构框图;
图7是根据本发明示例的报文转发装置中标记模块51的结构框图;
图8是根据本发明另一示例的报文转发装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
实施例一:
在本实施例中提供了一种报文转发方法,图2是根据本发明实施例的报文转发方法的流程图,如图2所示,该流程包括如下步骤:
步骤S201,当漏桶缓存无法容纳待转发报文时,标记上述漏桶缓存中报文优先级比上述待转发报文优先级低的报文;
在该步骤中,在标记漏桶缓存中报文优先级比上述待转发报文优先级低的报文之前,还包括:判断上述漏桶缓存是否能够容纳待转发报文。当上述漏桶缓存中已缓存的报文对应的令牌数与上述待转发报文对应的令牌数之和大于上述漏桶缓存容量对应的最大令牌数时,确定上述漏桶缓存无法容纳待转发报文。标记上述漏桶缓存中报文优先级比上述待转发报文优先级低的报文包括:根据报文的优先级对所述漏桶缓存中的报文进行优先级排序;从所述漏桶缓存中优先级最低的报文开始标记,当所述漏桶缓存能够容纳所述待转发报文时,停止标记所述漏桶缓存中的报文。
步骤S202,丢弃上述漏桶缓存中被标记的报文,以使上述待转发报文进入上述漏桶缓存进行转发。
在该步骤中,在丢弃上述漏桶缓存中被标记的报文之后,还包括:当上述漏桶缓存无法容纳上述待转发报文,且预先设置的预缓存区能够容纳上述待转发报文时,将上述待转发报文存储至上述预缓存区;在上述漏桶缓存的下一刷新周期,将上述待转发报文存储至上述漏桶缓存进行转发。丢弃上述漏桶缓存中被标记的报文包括:从上述漏桶缓存底部被标记的报文开始,依次丢弃上述漏桶缓存中被标记的报文,其中,上述漏桶缓存底部被标记的报文为先进入上述漏桶缓存中且被标记的报文。
本发明所使用的方法,采用了对需要丢弃的高优先级报文进行二次判决的方法,保证高优先级报文比低优先级报文优先转发,与现有技术相比,弥补了可变包长报文在漏桶算法的缺陷,达到了绝对优先级调度模式下,不会产生低优先级报文得到转发导致高优先级丢包的情况。
实施例二:
基于上述实施例的技术方案,以下结合一实施例对上述技术方案进行详细说明。
在本实施例中提供了一种报文转发方法,该方法流程包括如下步骤:
A:首先配置调度模式时,如果是SP严格优先级调度,且漏桶限速有效,初始化模块参数。(漏桶的刷新速率V,桶深设置B,刷新周期t,并计算一个刷新间隔的刷新令牌T。)
B:设备出口各队列接收数据报文,根据调度算法转发报文P(SP模式,优先转发高优先级队列,高优先级队列空时,转发下一个优先级队列)。先判断是否需要进入预缓存区,预缓存区不为空时进入预缓存区等待,为空时进入步骤C。预缓存区满时直接丢弃。
C:调度报文P进入漏桶判决,根据报文P大小计算应添加令牌数,如果报文P的令牌数加上令牌桶中剩余令牌数总和未超过DISCARD线,报文P进入漏桶缓存,并更新漏桶令牌数,进入步骤E。如果总和超过DISCARD线,进入步骤D
D:获取漏桶缓存中的各种报文的优先级,取最小的作为最低优先级。将报文P的优先级与最低优先级比较。当报文P的优先级低于最低优先级时,直接丢弃报文P。当报文P的优先级高于最低优先级时,开始对漏桶缓存中的优先级标记。首先对漏桶缓存中的报文进行优先级排序。将最低优先级的报文按照进入漏桶缓存的顺序,从最底部(即最先进入漏桶的报文)开始标记丢弃,直到标记丢弃的报文对应的令牌满足报文P所需要的令牌数,标记丢弃结束。将标记报文全部丢弃,报文P进入缓存,更新漏桶令牌。
如果标记当前优先级的报文不足够报文P缓存大小,提高一个优先级(此优先级必须小于报文P的优先级),继续标记。如果提高后的优先级大于等于报文P的优先级,标记丢弃结束。报文P进入预缓存区排队。
E:漏桶每个刷新周期,根据刷新速率转发报文,并减少相应令牌。
F:漏桶每个刷新周期,重新计算预缓存区底部报文进入C流程。
本实施例所使用的方法,采用了对需要丢弃的报文进行二次判决的方法,保证高优先级报文比低优先级报文优先转发,与现有技术相比,弥补了可变包长报文在漏桶算法的缺陷,达到了绝对优先级调度模式下,不会产生低优先级报文得到转发导致高优先级丢包的情况。
实施例三:
在本示例中还提供了一种报文转发方法,图3是根据本发明示例的报文转发方法的流程图,如图3所示,该方法包括如下流程:
步骤301:获取漏桶的刷新速率V,桶深B,刷新周期t,配置漏桶参数。计算一个刷新间隔的刷新令牌T。预缓存区Bp。
步骤302:SP调度模式,高优先级队列缓存不为空,调度报文进入下一个漏桶流程。
步骤303:判断预缓存区是否为空?当预缓存区不为空,进入步骤304;预缓存为空,进入步骤305。
步骤304:进入预缓存队列,队列满时直接丢弃该报文,队列不满,排队等待。
步骤305:计算报文所需令牌Ta。公式Ta=P-length(报文长度)/Byte per token(每个令牌所对应的报文长度)
步骤306:判断漏桶缓存中令牌加上Ta是否超过DISCARD线?未超过,进入步骤314;超过,进入步骤307。
步骤307:获取漏桶最低优先级Pmin
步骤308:判断报文P优先级是否大于最低优先级Pmin。是,进入步骤310,否,进入步骤309。
步骤309:丢弃报文。
步骤310:漏桶缓存中报文按照优先级排序,但不影响报文进入漏桶缓存的顺序。
步骤311:从漏桶缓存中最低优先级漏桶底部开始来累加,即按照进入漏桶缓存的先后顺序累加。Ts为累加总令牌数。Tp表示当前优先级的令牌数,Tp1表示当前优先级p的第一个报文的令牌值。如果Ts<Ta,则从Tp1开始累加到Tpx,Ts=Ts+Tp1+Tp2+…+Tpx。直到Ts>Ta。
步骤312:如果Tp全部的报文累加后,Ts还是小于Ta,则进入步骤315。如果当第x个报文累加后Ts>Ta,则进入步骤313。
步骤313:丢弃标记的报文。标记报文如果为漏桶底部第一个报文,并已经等待一定刷新周期,此刷新周期由后续报文继承。
步骤314:报文P进入漏桶缓存,等待转发。
步骤315:获取比Tp更高一级的优先级Tp+1。
步骤316:判断当前待转发报文P优先级是否高于Tp+1的优先级,是则进入步骤311,继续累加Tp+1报文的令牌。否则进入步骤313。
实施例四:
在本示例中还提供了一种报文转发中漏桶刷新周期处理的方法,图4是根据本发明示例的漏桶刷新周期处理的示意图,如图4所示,漏桶刷新周期到时后,会触发如下处理流程:
步骤401:接收到漏桶刷新周期到时。
步骤402:根据刷新周期计算的每个周期减少令牌数,转发相应数量报文,漏桶减少相应令牌。
步骤403:判断预缓存区是否为空,空时结束本次处理,不空时进入流程305,重新计算预缓存区报文是否能够进入漏桶缓存。从预缓存区底部开始处理,如果第一个报文进入漏桶,继续判断第二个,直到不能进入或者预缓存为空。
举个具体用例来说,用户配置漏桶桶深B为12KB,限速速率V为64Mbps。交换芯片的刷新周期t为7.8125us。一个令牌为512bit。则每个周期需要刷新令牌数为限速速率除以每秒刷新周期数,再除以一个令牌的大小。所以,T=V/(1S/t)/512bit=64Mbps/(1*10^6us/7.8125us)/512bit=1个令牌。也就是每个刷新周期刷新1个令牌。这就代表如果一个报文是64字节,则一个周期能通过一个64字节报文。如果报文是1522字节,则这个报文通过需要等待23.78125个周期。桶深B为12KB,则能够缓存8~192个报文。
根据如上配置,如果端口1和端口2同时流入64Mbps的流,端口1报文的优先级为7,端口2报文的优先级为0,并且端口3转发漏桶限速也为64Mbps。在这种情况下,端口3的出流程中,队列调度时,如果优先级7的队列在调度时调度最后一个报文是1522字节的数据包,如果调度周期也为7.8125us,那么下一个优先级7的报文会间隔23.7个周期,此时,会调度到优先级为0的数据报文。如果之前调度的都是P7的报文,那么此时预缓存为空。P0的报文直接进入漏桶缓存,或者等待几个周期进入。如果下一个P7的报文到来时,P0的报文在漏桶缓存中还未被转发,那么漏桶的最低优先级为0。先计算P7的报文所需要的令牌,漏桶令牌加上Ta如果超过了DISCARD线,因此,优先级0的报文被标记丢弃,如果,漏桶缓存中P0的报文大小累加大于或者等于P7的报文,标记结束,丢弃P0标记报文,P7的报文进入漏桶缓存,如果P0的报文累加小于P7的报文,则,丢弃P0的报文,P7的报文进入预缓存区等待。预缓存区Bp设置为2KB大小。漏桶刷新周期到时,漏桶报文转发一个令牌对应数据包,漏桶缓存中令牌总数Ts’=Ts-Tb。预缓存区不为空,则重新计算Ts”=Ts’+Ta的漏桶令牌总数,重新执行上述流程。
实施例五:
在本实施例中还提供了一种报文转发装置,图5是根据本发明实施例的报文转发装置的结构框图,如图5所示,该装置包括:
标记模块51,用于当漏桶缓存无法容纳待转发报文时,标记上述漏桶缓存中报文优先级比上述待转发报文优先级低的报文;
该模块还用于:在标记漏桶缓存中报文优先级比上述待转发报文优先级低的报文之前,还包括:判断上述漏桶缓存是否能够容纳待转发报文。当上述漏桶缓存中已缓存的报文对应的令牌数与上述待转发报文对应的令牌数之和大于上述漏桶缓存容量对应的最大令牌数时,确定上述漏桶缓存无法容纳待转发报文。标记上述漏桶缓存中报文优先级比上述待转发报文优先级低的报文包括:根据报文的优先级对所述漏桶缓存中的报文进行优先级排序;从所述漏桶缓存中优先级最低的报文开始标记,当所述漏桶缓存能够容纳所述待转发报文时,停止标记所述漏桶缓存中的报文。
处理模块52,与上述标记模块51相连,用于丢弃上述漏桶缓存中被标记的报文,以使上述待转发报文进入上述漏桶缓存进行转发。
该模块还用于:在丢弃上述漏桶缓存中被标记的报文之后,还包括:当上述漏桶缓存无法容纳上述待转发报文,且预先设置的预缓存区能够容纳上述待转发报文时,将上述待转发报文存储至上述预缓存区;在上述漏桶缓存的下一刷新周期,将上述待转发报文存储至上述漏桶缓存进行转发。丢弃上述漏桶缓存中被标记的报文包括:从上述漏桶缓存底部被标记的报文开始,依次丢弃上述漏桶缓存中被标记的报文,其中,上述漏桶缓存底部被标记的报文为先进入上述漏桶缓存中且被标记的报文。
本发明实施例中,通过标记模块51与处理模块52的组合作用,实现了对需要丢弃的高优先级报文进行二次判决的方法,保证高优先级报文比低优先级报文优先转发,与现有技术相比,弥补了可变包长报文在漏桶算法的缺陷,达到了绝对优先级调度模式下,不会产生低优先级报文得到转发导致高优先级丢包的情况。
实施例六:
在本示例中还提供了一种报文转发装置,图6是根据本发明示例的报文转发装置的结构框图,如图6所示,该装置包括:
标记模块51,用于当漏桶缓存无法容纳待转发报文时,标记所述漏桶缓存中报文优先级比所述待转发报文优先级低的报文;
处理模块52,与所述标记模块相连,用于丢弃所述漏桶缓存中被标记的报文,以使所述待转发报文进入所述漏桶缓存进行转发;优选的,处理模块还用于:从所述漏桶缓存底部被标记的报文开始,依次丢弃所述漏桶缓存中被标记的报文,其中,所述漏桶缓存底部被标记的报文为先进入所述漏桶缓存中且被标记的报文。
第一存储模块53,与处理模块52相连,用于在丢弃所述漏桶缓存中被标记的报文之后,当所述漏桶缓存无法容纳所述待转发报文,且预先设置的预缓存区能够容纳所述待转发报文时,将所述待转发报文存储至所述预缓存区;
第二存储模块54,与第一存储模块53相连,用于在所述漏桶缓存的下一刷新周期,将所述待转发报文存储至所述漏桶缓存进行转发;
判断模块50,与标记模块51相连,用于在标记所述漏桶缓存中报文优先级比所述待转发报文优先级低的报文之前,判断所述漏桶缓存是否能够容纳待转发报文。优选的,判断模块还用于:当所述漏桶缓存中已缓存的报文对应的令牌数与所述待转发报文对应的令牌数之和大于所述漏桶缓存容量对应的最大令牌数时,确定所述漏桶缓存无法容纳待转发报文。
优选的,该实施例中标记模块51可由以下单元组成,图7是根据本发明示例的报文转发装置中标记模块51的结构框图,如图7所示,该模块包括:
排序单元71,用于根据报文的优先级对所述漏桶缓存中的报文进行优先级排序;
处理单元72,与排序单元71相连,用于从所述漏桶缓存中优先级最低的报文开始标记,当所述漏桶缓存能够容纳所述待转发报文时,停止标记所述漏桶缓存中的报文。
实施例七:
在本示例中还提供了一种报文转发装置,图8是根据本发明另一示例的报文转发装置的结构框图,如图8所示,该装置包括:
初始化模块81,获取漏桶的限速速率V,刷新间隔t,桶深设置B。计算一个间隔刷新令牌T。
调度模块82,按照SP调度模式,高优先级队列不为空时,从最高优先级开始调度。高优先级为空后,调度低优先级队列。
预缓存模块83,调度转发的报文P,先判断预缓存区是否为空,不为空时,直接进入预缓存区。预缓存区满时,直接丢弃该报文P。预缓存为空时,进入漏桶优先级管理模块64。每个漏桶刷新周期,都重新判断预缓存区中底部的报文P是否能够进入漏桶缓存,即报文P需先进入漏桶优先级管理模块64进行判断。
漏桶优先级管理模块84,报文P进入此模块后,首先该模块会计算缓存报文P需要的令牌数Ta,并获取漏桶缓存中报文的总令牌数Ts。累加值如果未超过DISCARD线,报文直接进入漏桶缓存等待转发,Ts’=Ts+Ta。如果超过DISCARD线,需要获取漏桶缓存中的最低优先级Pmin,将漏桶缓存中小于报文P优先级的报文从底部(最先进入漏桶缓存的报文)开始标记并丢弃,直到标记丢弃的报文对应的累加令牌等于超过DISCARD线的令牌时,转发该报文P,报文P进入漏桶缓存。或者不足以转发报文时,报文继续在预缓存区等待。
漏桶转发模块85,当每个漏桶刷新令牌周期时,漏桶缓存丢弃指定令牌,并转发相应数量报文,并更新漏桶总令牌数。
本发明示例的装置,采用了对需要丢弃的报文进行二次判决的方法,保证高优先级报文比低优先级报文优先转发,与现有技术相比,弥补了可变包长报文在漏桶算法的缺陷。该装置通过初始化模块81、调度模块82、预缓存模块83、漏桶优先级管理模块84、漏桶转发模块85,达到了绝对优先级调度模式下,不会产生低优先级报文得到转发导致高优先级丢包的情况。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述模块分别位于多个处理器中。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种报文转发方法,其特征在于,包括:
当漏桶缓存无法容纳待转发报文时,标记所述漏桶缓存中报文优先级比所述待转发报文优先级低的报文;
丢弃所述漏桶缓存中被标记的报文,以使所述待转发报文进入所述漏桶缓存进行转发;
其中,所述标记所述漏桶缓存中报文优先级比所述待转发报文优先级低的报文包括:
根据报文的优先级对所述漏桶缓存中的报文进行优先级排序;
从所述漏桶缓存中优先级最低的报文开始标记,当所述漏桶缓存能够容纳所述待转发报文时,停止标记所述漏桶缓存中的报文;
其中,丢弃所述漏桶缓存中被标记的报文包括:
从所述漏桶缓存底部被标记的报文开始,依次丢弃所述漏桶缓存中被标记的报文,其中,所述漏桶缓存底部被标记的报文为先进入所述漏桶缓存中且被标记的报文。
2.根据权利要求1所述的方法,其特征在于,在丢弃所述漏桶缓存中被标记的报文之后,还包括:
当所述漏桶缓存无法容纳所述待转发报文,且预先设置的预缓存区能够容纳所述待转发报文时,将所述待转发报文存储至所述预缓存区;
在所述漏桶缓存的下一刷新周期,将所述待转发报文存储至所述漏桶缓存进行转发。
3.根据权利要求1所述的方法,其特征在于,在标记所述漏桶缓存中报文优先级比所述待转发报文优先级低的报文之前,还包括:
判断所述漏桶缓存是否能够容纳待转发报文。
4.根据权利要求3所述的方法,其特征在于,判断所述漏桶缓存是否能够容纳待转发报文包括:
当所述漏桶缓存中已缓存的报文对应的令牌数与所述待转发报文对应的令牌数之和大于所述漏桶缓存容量对应的最大令牌数时,确定所述漏桶缓存无法容纳待转发报文。
5.一种报文转发装置,其特征在于,包括:
标记模块,用于当漏桶缓存无法容纳待转发报文时,标记所述漏桶缓存中报文优先级比所述待转发报文优先级低的报文;
处理模块,与所述标记模块相连,用于丢弃所述漏桶缓存中被标记的报文,以使所述待转发报文进入所述漏桶缓存进行转发;
其中,所述标记模块包括:
排序单元,用于根据报文的优先级对所述漏桶缓存中的报文进行优先级排序;
处理单元,用于从所述漏桶缓存中优先级最低的报文开始标记,当所述漏桶缓存能够容纳所述待转发报文时,停止标记所述漏桶缓存中的报文;
其中,所述处理模块还用于:
从所述漏桶缓存底部被标记的报文开始,依次丢弃所述漏桶缓存中被标记的报文,其中,所述漏桶缓存底部被标记的报文为先进入所述漏桶缓存中且被标记的报文。
6.根据权利要求5所述的装置,其特征在于,还包括:
第一存储模块,用于在丢弃所述漏桶缓存中被标记的报文之后,当所述漏桶缓存无法容纳所述待转发报文,且预先设置的预缓存区能够容纳所述待转发报文时,将所述待转发报文存储至所述预缓存区;
第二存储模块,用于在所述漏桶缓存的下一刷新周期,将所述待转发报文存储至所述漏桶缓存进行转发。
7.根据权利要求5所述的装置,其特征在于,所述装置还包括:
判断模块,用于在标记所述漏桶缓存中报文优先级比所述待转发报文优先级低的报文之前,判断所述漏桶缓存是否能够容纳待转发报文。
8.根据权利要求7所述的装置,其特征在于,所述判断模块还用于:
当所述漏桶缓存中已缓存的报文对应的令牌数与所述待转发报文对应的令牌数之和大于所述漏桶缓存容量对应的最大令牌数时,确定所述漏桶缓存无法容纳待转发报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610754493.7A CN107800643B (zh) | 2016-08-29 | 2016-08-29 | 报文转发方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610754493.7A CN107800643B (zh) | 2016-08-29 | 2016-08-29 | 报文转发方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107800643A CN107800643A (zh) | 2018-03-13 |
CN107800643B true CN107800643B (zh) | 2022-12-09 |
Family
ID=61528001
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610754493.7A Active CN107800643B (zh) | 2016-08-29 | 2016-08-29 | 报文转发方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107800643B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111385219B (zh) * | 2018-12-28 | 2023-11-07 | 达发科技(苏州)有限公司 | 借用硬件中断实现高性能高精度软件tcp限速的方法 |
CN111901248B (zh) * | 2020-07-27 | 2022-05-27 | 新华三信息安全技术有限公司 | 一种负载均衡方法、装置、设备及机器可读存储介质 |
CN113645147A (zh) * | 2021-07-01 | 2021-11-12 | 苏州裕太微电子有限公司 | 一种流量整形器的令牌更新系统及方法 |
CN113923169A (zh) * | 2021-10-11 | 2022-01-11 | 浙江大华技术股份有限公司 | 报文的过滤方法及装置、存储介质、电子装置 |
CN114205304B (zh) * | 2021-12-09 | 2024-02-27 | 北京物芯科技有限责任公司 | 一种基于双漏桶的流量控制方法及装置、设备、存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013000114A1 (zh) * | 2011-06-28 | 2013-01-03 | 中兴通讯股份有限公司 | 一种漏桶限速方法及装置 |
CN104378308A (zh) * | 2014-11-19 | 2015-02-25 | 盛科网络(苏州)有限公司 | 报文发送速率检测方法及装置 |
-
2016
- 2016-08-29 CN CN201610754493.7A patent/CN107800643B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107800643A (zh) | 2018-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107800643B (zh) | 报文转发方法及装置 | |
US6122673A (en) | Port scheduler and method for scheduling service providing guarantees, hierarchical rate limiting with/without overbooking capability | |
US8000247B2 (en) | Bandwidth management apparatus | |
JP2959540B2 (ja) | ノード装置 | |
US7948882B2 (en) | Dual leaky bucket flow control method and system | |
WO2015149488A1 (zh) | 一种令牌桶限速方法、装置及计算机存储介质 | |
US7292532B2 (en) | Traffic shaping apparatus and traffic shaping method | |
JPH08274793A (ja) | リアルタイムトラヒックに対する保証された帯域幅配達を備える遅延最小化システム | |
CN113973085B (zh) | 一种拥塞控制方法和装置 | |
JP7211765B2 (ja) | パケット転送装置、方法、及びプログラム | |
AU2002339349B2 (en) | Distributed transmission of traffic flows in communication networks | |
US11777857B2 (en) | Service forwarding method and network device | |
CN107454628A (zh) | 竞争多址中基于统计负载的分组调度方法 | |
US7061867B2 (en) | Rate-based scheduling for packet applications | |
US8879571B2 (en) | Delays based on packet sizes | |
AU2004244306A1 (en) | System and method for time-based scheduling | |
CN101212417A (zh) | 一种基于时间粒度的互联网服务质量保证方法 | |
CN107786468A (zh) | 基于HQoS的MPLS网络带宽分配方法及装置 | |
EP2063580B1 (en) | Low complexity scheduler with generalized processor sharing GPS like scheduling performance | |
WO2022068617A1 (zh) | 流量整形方法及装置 | |
JP4259349B2 (ja) | トラヒックシェーピング方法及びトラヒックシェーピング装置 | |
KR100745679B1 (ko) | 적응 라운드 로빈을 이용한 패킷 스케쥴링 방법 및 장치 | |
EP2891293B1 (en) | Method and device for scheduling data traffic | |
Liebeherr et al. | Design and analysis of a high-performance packet multiplexer for multiservice networks with delay guarantees | |
KR20050099241A (ko) | 보장형 서비스 제공 기능을 갖는 경계노드의 스케줄러 및그 방법 |
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 |