全局QOS配置:将ctag中的优先级log4j priority优先级映射到队列queue中,程序是如何实现映射到队列中的,

QoS和QoS队列调度算法
在QoS队列调度中有如下算法,分别如下:&
&&& SP:Strict
Priority(严格优先级),
SP调度严格按照优先级从高到低的次序优先发送较高优先级队列中的分组,当较高优先级队列为空时,再发送较低优先级队列中的分组。队列7优先级最高,队列0优先级最低.
报文P1~P11~P…按照分类后进入不同的优先级队列,分类指根据报文本地优先级映射到端口队列。报文如果按照图中方式进入各队列,SP调度先调度高优先级队列7的报文,队列7报文调度完之后在进入下一队列6,报文出来后的顺序就为
p1,p2,p3,p4,p5…p11
2、RR(Round Robin)-循环调度
基于报文的公平调度(Round Robin)RR, 基于报文的公平调度,每个队列调度出对一个报文,就转下一个队列
报文P1~P11~P…按照分类后进入不同的优先级队列,分类指根据报文本地优先级映射到端口队列。报文如果按照图中方式进入各队列,RR调度,队列7调度一个报文进入下一队列6调度一个报文,依此到队列0调度1个报文后再进入队列7调度一个报文,如果队列中没有报文直接进入下一个队列。上述报文出队的顺序为p1,p4,p7,p10,p2,p5,p8,p11,p3,p6,p9。
3、DRR(deficit&round&robin)-差额循环队列
DRR算法是RR算法的扩展。DRR算法为每个队列分配一个常量QN(以权重为比例的时间片)和一个变量DN(差额)。QN反应了该队列可以发送的长期平均字节数。DN的初始值为零且当队列为空时复位为0。当DRR算法服务一个新队列时,调度器复位计数器Bsent(表示该循环已经从队列中发送的字节数)。当下面两个条件满足时,DRR算法从队列中发送分组:
l 队列中有分组等待发送;
(QN+DN)大于等于(Bsent+队列中下一个分组的长度)。
否则,该队列的差额DN+1被置为QN+DN-Bsent,调度器按顺序移到下一个队列。QN+DN表示在服务时间间隔内队列能够发送的最大字节数,在一定程度上DN可以平滑数据流的突发。队列通过QN可以获得长期的相对带宽分配。如果激活队列的数目小于N,则激活队列可以根据QN值共享未用的输出链路带宽。
4、WRR(Weighted Round Robin)-加权循环调度算法
基于报文的加权调度WRR,
可以配置每个队列调度出多少个报文,就转下一个队列。如配置队列0-队列7的调度权重依次为1,1,2,4,5,5,2,3。调度方式如下图
报文P1~P11~P…按照分类后进入不同的优先级队列,分类指根据报文本地优先级映射到端口队列。报文如果按照图中方式进入各队列,WRR调度,队列7权重为3调度3个报文p1,p2,p3后进入队列6,队列权重为2调度2个报文p4,p5后进入下一级队列,如果下一级队列没有报文直接进入下一级队列,在一次轮询完成后再进入队列7,队列7没有报文直接进入队列6。上图中报文出来的顺序为p1,p2,p3,p4,p5,p7,p8,p10,p6,p9,p11。
5、WDRR(Weighted Deficit Round Robin)-加权差额循环调度
基于报文字节的加权调度,该算法基于两个变量:配额(quantum)和余额(credit
counter),配额代表权重,以字节为单位,是可配置的参数,余额用来表示配额的积累和消耗情况,是状态参数,不可配置。初始状态下,每个队列的余额等于其配额,当队列每发送一个报文的时候,余额就减去这个报文的字节数,当余额低于0的时候就停止这个队列的调度。当所有队列都停止调度的时候就为所有队列补充配额。权重N的范围为0~127,权重为N表示配额是(N*MTU_QUANTA)字节,这个(MTU_QUANTA为2K),N为0表示严格优先级。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
WDRR调度图
报文P1~P11~P…按照分类后进入不同的优先级队列,分类指根据报文本地优先级映射到端口队列。报文如果按照图中方式进入各队列,WDRR调度,报文p1~p11大小如果为1200字节,队列7权重为3,即每次调度3*2K=
6K字节的报文,先从队列7调度6K字节,如果队列中没有报文直接进入下一队列,队列6每次调度1*2K=2K字节,即会调度两个报文p4,p5,余额为-400字节,再进入下一队列调度,队列1权重为1,调度2K字节调度每个报文p10,p11,余额为-400字节,完成一次轮询后再进入高优先级队列,队列6再分配到2K配额,由于上次欠了-400字节,因此该次调度只能调度1600字节。上图中最终的报文顺序为p1,p2,p3,p4,p5,p8,p9,p10,p11,p6,p7,p12
&&& Dynamic
Round-Robin&&--&&动态加权循环法。
通过设置*WRR算法的权重值来配置各个输出队列在输出报文的时候所占用的每循环发送报文个数,从而影响传输带宽或通过设置*DRR算法的权重值来配置各个输出队列在输出报文的时候所占用的每循环发送报文字节数,从而影响传输带宽。
队列调度机制简介
队列调度机制在QoS技术体系中属于拥塞管理的范畴。虽然企业和运营商想尽一切办法
去扩展自己的链路带宽,但是现实网络上各种应用对带宽的消耗速度远远超出企业和运营商带宽扩充能力,也就是说网络的拥塞是无法避免的,这也决定了拥塞管理这一技术的重要性。拥塞管理是指网络发生拥塞时,如何进行管理和控制,处理的方法是使用合适的队列技术来确保关键业务的优先保障。在出接口发生拥塞时,通过适当的队列调度机制,可以优先保证某种类型的报文的QoS参数,例如带宽、时延、抖动等。我们这里所说的队列是指出队列,其实就是指向指定缓存的一系列指针,其作用是在接口有能力发送报文之前先将报文在缓存中保留下来,直到接口可以继续发送报文,所以队列调度机制都是在出端口发生拥塞情况下产生作用,另外一个主要作用就是将报文重新排序(FIFO除外)。
队列是一个比较容易理解的概念,我们在日常生活中也用到类似技术。例如我们去电影院买票的时候,大家排成几队顺序买票,排在前面的先拿到票(FIFO);有时突然冲出一个人跑到队伍的最前面拿出VIP证件马上就拿到了票(PQ),这类人属于特权阶级需要优先处理,后面的人只能等这类人买完票才能继续排队买票。
FIFO是队列机制中最简单的,每个接口上只有一个FIFO队列,表面上看FIFO队列并没有提供什么QoS保证,甚至很多人认为FIFO严格意义上不算做一种队列技术,实则不然,FIFO是其它队列的基础,FIFO也会影响到衡量QoS的关键指标:报文的丢弃、延时、抖动。既然只有一个队列,自然不需要考虑如何对报文进行复杂的流量分类,也不用考虑下一个报文怎么拿、拿多少的问题,即FIFO无需流分类、调度机制,而且因为按顺序取报文,FIFO无需对报文重新排序。简化了这些实现其实也就提高了对报文时延的保证。
FIFO关心的就是队列长度问题,队列长度会影响到时延、抖动、丢包率。因为队列长度是有限的,有可能被填满,这就涉及到该机制的丢弃原则,FIFO使用Tail
Drop机制。如果定义了较长的队列长度,那么队列不容易填满,被丢弃的报文也就少了,但是队列长度太长了会出现时延的问题,一般情况下时延的增加会导致抖动也增加;如果定义了较短的队列,时延的问题可以得到解决,但是发生Tail
Drop的报文就变多了。类似的问题其它排队方法也存在。
Drop机制简单的说就是如果该队列如果已经满了,那么后续进入的报文被丢弃,而没有什么机制来保证后续的报文可以挤掉已经在队列内的报文。
图1 FIFO流程图
阶级社会将不同的人划入到不同的阶层,不同的阶层享受的关照度不同,如果把FIFO比作原始社会的话,那么PQ就进入了封建社会了。
在报文到达接口后,首先对报文进行分类,然后按照报文所属类别让报文进入所属队列尾部,在报文发送时,按照优先级,总是在所有优先级较高队列中报文发送完毕后,再发送低优先级队列中报文,这样,在每次发送报文时,总是将优先级高的报文先发出去,保证了属于较高优先级队列报文有较低时延,所以PQ的优缺点是很明显的:优点是可以保证高优先级队列的报文可以得到较大带宽、较低的时延、较小的抖动;缺点是低优先级队列的报文不能得到及时的调度,甚至得不到调度,即会出现“饿死”现象。
PQ具有如下特征:
(1) 报文丢弃策略采用Tail
Drop机制;
每个队列内部使用FIFO逻辑;
当从队列调度报文时,先从高优先级的队列调度报文
从上面可以看出,PQ一般的应用场合是保证某类流量尽可能得到最好的服务,而不管其它流量的“死活”。
图2 PQ流程图
CQ可以说是对PQ的一种改进,解决了PQ“饿死”的重大缺点,能够确保使所有的队列都得到服务。CQ可以把报文分类,然后按照类别将报文分配到CQ的一个队列中去,而对于每个队列,也可以规定队列中报文所占接口的带宽比例,这样,可以让不同业务的报文获得合理的带宽,从而既保证关键业务能获得较多的带宽,又不至于使非关键业务得不到带宽。
CQ有0-16个队列,其中0队列是优先级队列,只有0队列的报文处理完才会去处理1-16队列,所以0队列一般用做系统队列。
CQ采用Round
Robin调度方式,从队列1开始,从每个队列取出指定数目的报文,直到
报文数目满足或者超出设置的范围,当从该队列取出了足够的报文或者队列中没有报文的话,开始对下一个队列进行类似的操作。CQ不会配置确切的链路带宽比例,而是配置字节数目,可以根据配置的每个队列应取得的字节数目计算出每个队列占用的链路带宽,公式为:该队列应取得的字节数目/所有队列应取得的字节数目=该队列占用的链路带宽。如果一段时间内某个队列为空,剩余的队列按照比例分配该空队列所占用的带宽。举个例子来说:现在配置了5个队列,每次取的字节数分别为、1、20000,如果5个队列都有充足的报文需要发送,那么每个队列分配的带宽比例为10%、10%、20%、20%、40%;假设队列4有一段时间内没有报文发送,即队列为空,那么剩余的4个队列把这20%的带宽按照1:1:2:4的比例进行分配,所以在这段时间内这四个队列实际分配的带宽为12.5%、12.5%、25%、50%。
CQ不能将报文进行分片,例如要从队列1拿出1500字节的报文,可能会出现如下情况:
前面拿了1499bytes,还需要拿1byte,但是紧接着的一个报文大小是1500bytes,那么实际上从该队列拿出了=2999bytes了,所以从局部来看的话,调度的比例和预期设置的结果有出入。
CQ有如下特点:
(1) Tail
Drop是唯一的丢弃机制;
最大16个队列(因为0队列用做系统队列,这里不计算在内);
(3) 队列内部使用FIFO逻辑;
在对各队列进行调度时,使用Round-Robin对各队列按字节数调度。
CQ可以应用在对抖动要求不严格同时能够根据需要对不同分类的流量保留指定链路带宽的情况。CQ没有像PQ一样对某类流量提供低时延的服务,但是它可以保证在发生拥塞时1-16队列能够分配到指定额度的带宽。
图3 CQ流程图
图4 CQ的RR调度流程图
WFQ是根据流对报文进行动态分类,对于IP网络,五元组(源IP地址、目的IP地址、源端口号、目的端口号、协议号)和IP优先级或者DSCP相同的报文属于同一个流。在接入层的网络中,通常使用IP优先级和五元组配合进行流分类;在汇聚层网络中通常使用DSCP值和五元组配合进行流分类,具有相同特性的报文属于同一个流,使用Hash算法映射到不同的队列中;另外的一个区别就是如果使用WFQ,那么low-volume(字节数小的报文)、higher-precedence(优先级高的报文)的流会比large-volume、lower-precedence的流更先处理。因为WFQ是基于流的,每个流使用不同的队列,这就要求WFQ能够支持很大数目的队列――WFQ最大可以在每个接口支持到4096个队列。
WFQ与CQ主要区别如下:
CQ可以自定义ACL规则来对报文进行分类,而WFQ只能根据元组对报文进行动态分类
WFQ和CQ的队列调度方式不一样,CQ的调度方式是RR,而WFQ的调度机制是WFQ调度机制
WFQ和CQ的报文丢弃机制不一样:CQ使用Tail Drop机制,WFQ使用WFQ丢弃机制,该机制是对Tail
Drop的一种改进
要想理解WFQ,必须了解这个机制出现的目的是什么,即使用WFQ是为了达到什么目
的?WFQ调度主要是为了两个主要的目的,一个是在各个流之间提供公平的调度即WFQ名字中的F(fairness)的含义,另外一个就是保证高IP
precedence的流能够得到更多带宽即WFQ名字中的W(weighted)的含义。
为了提供各个流之间的公平调度,WFQ给每个流分配的带宽是相同的。例如一个接口
有10条流,该接口带宽为128Kbps,那么每个流得到的带宽为128/10=12.8Kbps。从某种意义上讲,有些类似于时分复用机制(TDM)。WFQ允许其它流使用某条流的剩余带宽,例如接口带宽为128kbps,共10条流,则每条流分配的带宽为12.8kbps,可能实际上某条流例如流1只有5kbps,而流2有20kbps,那么其它的流就可以分配流1所剩余下的12.8-5=7.8kbps的带宽。
WFQ的加权是根据流中的IP
precedence进行的,保证高IP precedence的流分配到更
多的带宽。算法为(IP
precedence+1)/Sum(IP precedence+1),例如有四个流,其IP
precedence分别为1、2、3、4,那么每个流占用的带宽分别为2/14、3/14、4/14、5/14。
图5 WFQ流程图
要想理解WFQ的报文丢弃机制和队列调度机制,需要理解WFQ中的一个重要概念:序列号SN(不同的文档可能采用不同的参数,不管使用什么参数都应该达到小字节、高IP优先级的流被优先调度),报文在经过流分类后,在决定该报文是入队列还是丢弃之前,都要赋予一个SN。SN的计算公式为SN=Previous_SN+weight*new_packet_length,WFQ进行报文调度时都是先调度SN小的报文,为了保证IP
Precedence大的能够获得更多的带宽,从SN的计算公式就可以看出Weight应与Precedence成反比。
其中Previous_SN分为两种情况:
如果报文进入的队列为非空,使用该队列中最近进入队列报文的SN作为Previous_SN;
如果报文进入的队列为空,使用发送队列最近发送的报文的SN作为Previous_SN。
图6 Previous_SN的选择
WFQ在进行报文丢弃和入队列时也是根据SN的大小来进行的:
图7 报文丢弃原理
HQL(Hold-queue-Limit):限制了所有队列中能够存放的报文总数目;
CDT(Congestive
Discard threshold):限制了每个队列中能够存放的报文数目。
图8 SN的选择
上图中:有四条流,每条流的precedence相同都为0,只是报文的大小不同,Flow1到Flow4的报文长度从大到小,按照SN的计算公式,报文长度小的SN小,所以Flow4中的报文应该被优先调度出去,当然最终的决定因素还是SN的大小,对于SN相同的报文实行顺序调度,如本例所示:Packet5和Packet10的SN相同、Packet1和Packet11的SN相同,按照顺序调度规则,应该是Packet5在Packet10前,Packet1在Packet11前。最终的调度的结果是:13,14,15,16,9,5,10,1,11,6,12,2,7,8,3,4。
WFQ使用WFQ丢弃机制,该机制是对tail
drop的一种改进,其中的一个决定因素也是SN,另外WFQ还使用HQL和CDT来决定如何对报文进行丢弃。如果一个新的报文达到时HQL已经到达最大值,该报文直接被丢弃;如果此时HQL没有到达最大值,WFQ将该报文根据WFQ的分类原则进行分类决定进入到哪个队列并计算出SN,剩下的丢弃机制还会由CDT决定,CDT是每个队列自己的丢弃阀值,如果此时CDT没有到达最大值报文直接进入该队列,如果CDT已经达到阀值,则判断其它队列是否有SN比新进入的报文SN大,如果没有直接丢弃新进入的报文,如果其他队列有SN大于当前入队列的报文,WFQ会选择丢弃SN大最大的报文。简单的说就是当某个队列的报文数目已经超过该队列CDT,WFQ可以选择丢弃其它队列中SN最大的报文!其流程图可以参见上面的图8。
将WFQ的特点可以总结为如下特点:
基于元组对报文进行流分类,不支持用户自定义的分类
(2) WFQ丢弃机制,是对Tail
Drop的改进
(3) 队列内部使用FIFO
WFQ调度:优先服务低SN的报文
CBWFQ从名字来看像是CQ和WFQ的混合体。和CQ类似的,CBWFQ可以为每个队列保留最小带宽,使用和CQ类似的报文分类,但是与CQ不同的是,用户可以配置CBWFQ实际占有的流量百分比,而不是字节数;和WFQ相比,CBWFQ可以在一个特定的队列里面使用WFQ机制:CBWFQ有一个特殊的队列,即缺省队列,只有该特殊队列可以采用WFQ机制。
CBWFQ支持两种丢弃机制:Tail
Drop和WRED。可以配置任何一个队列的丢弃机制为WRED,但是并不是所有的队列配置WRED丢弃机制都是有益的,WRED可以用在对丢包不是很敏感的数据队列;如果该队列是存放语音、视频报文,这类业务报文对丢包比较敏感就不适合采用WRED了。
CBWFQ有0-64队列,0队列是缺省队列,该队列是自动配置、不可人工干预。可以使用流分类将不同类型的报文映射到1-64队列,可以设置每个队列所占用的带宽比例;如果进入的报文不能匹配任何流分类,进入缺省队列,缺省队列可以使用FIFO或者WFQ机制,而1-64只能使用FIFO机制。为什么只有缺省队列0可以采用WFQ机制?这样有什么好处呢?前面已经提到CBWFQ可以根据分类将报文放入到指定队列,通过配置该队列的带宽比例获取相应的服务,如果在一段时间某个队列不需要该带宽,由其它队列共享;对于那些无法进行分类的报文统统放入到队列0,通过在0队列使用WFQ机制可以使该队列中的所有报文能够得到公平的调度。
CBWFQ的有一个严重的缺点就是没有一个队列可以满足那些对时延有特殊要求的报文,例如语音、视频流,也就是缺乏类似于PQ之类的严格优先级队列。
从名字我们就可以大致知道这个队列的作用,就是为了保证某类报文的低时延,目前的实现方式都是通过严格优先级队列来保证该类报文被优先处理,从而对时延加以保证。实际上LLQ严格意义上并不是一个独立的队列机制,可以认为它是CBWFQ队列机制的一个变种。通过在在CBWFQ队列中加入了一个或者几个优先级队列来实现,以保证这些队列的优先处理,从而保证进入该分类的报文较低的时延;而通过设置带宽阀值,又能防止出现“饿死”现象。
LLQ在调度时一直首先检查低时延队列,从该队列取报文,如果该队列没有报文时才转向其它非低时延队列。LLQ可以设置多个低延时队列,多个低延时队列之间的关系是平等的,采用的FIFO逻辑,用户可以根据需要将不同的业务放入到不同的低延时队列,例如语音流放到一个低延时队列,视频流放到另外一个低延时队列,可以更好的保证两种业务能够同时得到相应的服务。低延时队列和非低延时队列之间的关系类似PQ,既然类似PQ就不可避免的出现“饿死”现象。LLQ通过设置低时延队列的带宽值来防止“饿死”现象出现。
图9 LLQ原理图
从上图中可以看出,为了保护其它非LLQ队列得到调度,LLQ采用丢弃LLQ队列超
过指定带宽的报文的方式来实现该目的,这样的负面影响也是很明显的:语音、视频流量需要进入LLQ队列来保证低时延、低抖动,它们同样对报文丢弃很敏感,这样反而失去了LLQ的本来意义,有点矛盾,唯一的办法就是合理安排好LLQ队列所占用的带宽比例,尽可能的保证该队列的报文不出现丢包。
RTP和LLQ类似,但又有一些不同点。它通过在WFQ或者CBWFQ队列中加入严格优先级队列来实现的,它通过区分UDP报文的目的端口号来对VOIP报文进行分类,从中选择出UDP目的端口号在一定范围之内且为偶数的流量。因为IP
RTP是严格优先级队列,所以会被最先处理,并且通过一定的策略防止这个严格优先级队列占用太多的带宽,也就是说该严格优先级队列占用的带宽是有额度的,超过限制的流量被丢弃。
通过RTP的实现可以看出,RTP具有如下特点:
在CBWFQ中增加了一个低时延队列,保证VOIP报文的及时处理;
限制了优先级队列带宽大小,防止出现“饿死”现象;
(3) 流分类手段贫乏。
图10 RTP流程图
对于队列机制而言,它的最重要的两个特性就是调度方式和丢弃机制,在学习队列机制时要从这两个特性去考察、对比不同队列机制之间的共同点和不同点,明白不同队列机制不同的应用场合。
队列调度机制
首先调度高优先级队列
从每个队列取指定字节的报文,队列之间采用RR机制
先调度SN小的报文
改进的尾丢弃
保证每个队列的设定带宽
尾丢弃或WRED
首先服务低时延队列,但是低时延队列有阀值
尾丢弃或WRED
IP RTP priority
首先服务低时延队列,但是低时延队列有阀值
图11 各队列的对比图
##IP RTP优先队列(ip
rtp priority)是IP
RTP预留队列(ip
rtp reserve)的进一步发展。
RTP预留特性相比,它对语音包优先得更彻底。它们的主要共同点和区别如下
1,&都是基于WFQ队列实现的,因此只能对开启了WFQ的队列有效
2,&都将一定的UDP端口范围的数据包映射到特殊队列中去
3,&降低这个特殊队列的权重,使其优先获得服务
4,&有一个监管器来限制特殊队列的总流量
1,&优先队列的权重为0,表示这个个队列永远无条件第一个被服务
##这样语音就不需要再跟任何包进行PK了
2,&只有偶数的UDP端口号才会被匹配,增加流量分类的精确度
##RTP工作原理是数据流量在偶数UDP端口号上,而控制流量在数据端口+1上
3,&对于速率超过门限带宽的包,将直接丢弃
##ip rtp reserve里改回原来的权重值重新排队
&ip rtp priority
将UDP端口号为从到+的包映射到RSVP预留队列中去
速率超过的包直接丢弃
队列编号(会话编号)为2^N+8
##如,WFQ动态队列数为32个,则预留队列编号为40
ip rtp priority和ip
rtp reserve是互斥的,在配置的时候必须先NO掉一个才能配另一个
##队列编号
现在来重新看一下队列遍号
1,&从0到(2^N-1)的会话,是动态流队列,其权重值通过优先值计算
2,&从2^N到(2^N+7)的会话,是链路队列,权重值固定为1024
3,&2^N+8的会话,是优先队列,权重值固定为0
4,&从2^N+9及以后,是RSVP等预留队列、或CBWFQ中的用户自定义类,权重值不定
##默认是没有预留队列的,但是前三种队列一定有,如下
将门限带宽调低之后,好不容易捕捉到一个优先队列的队列信息:
可以看到权值是0
QOS处理流程:
优先级分类根据各种网络所关注的业务类型已经出现多种不同的标准,相关标准可以参考:
根据各IP应用的特点,将业务分为Network Control、Internetwork
Control、CRITIC/ECP、Flash
Override、Flash、Immediate、Priority、Routine共8类优先级。其中,Routine优先级最低,Network
Control优先级最高。
将业务按照TOS的定义分为16类优先级,TOS使用4个bit位分别表示:minimize delay、maximize
throughput、minimize monetary cost、maximize
reliability,并建议了各IP应用应该如何取TOS值,例如,FTP CONTROL报文建议其TOS取值为minimize
将业务按照Frame Relay Discard Eligibility bit的定义分为2类丢弃优先级。
Multiprotocol Encapsulation over ATM Adaptation Layer 5
将业务按照ATM Cell Loss Priority bit的定义分为2类丢弃优先级。
Definition of the Differentiated Services Field (DS Field) in the
IPv4 and IPv6 Header
DiffServ网络定义了四类PHB:EF(Expedited
Forwarding)PHB适用于低时延、低丢失、低抖动、确保带宽的优先业务;AF(Assured
Forwarding)PHB分为四类,每个AF类又分为三个丢弃优先级,可以对相应业务进行等级细分,QoS性能参数低于EF类型;CS(class
selector)PHB是从IP TOS字段演变而来,共8类;BE
PHB是CS中特殊一类,没有任何保证,现有IP网络流量也都默认为此类。
IEEE 802.5
Token ring access method and Physical Layer specifications
令牌环网的优先级,可以将业务根据Access Priority的定义为8类优先级 。
IEEE 802.1p,Class of Service
以太网优先级,可以将业务根据802.1P
Priority的定义分为8类优先级,0类至7类优先级相应递增,0类是BE业务,尽力传输)[3]。
缺省QOS设置
用户在进行QoS配置之前,需要清楚和QoS有关的几点信息,如下:
一个接口最多关联1个Policy-map
一个Policy-map可以拥有多个Class-map
一个Class-map最多关联1个ACL,该ACL的所有ACE必须具有相同过滤域模板
一个接口上关联的ACE的个数服从“配置安全ACL”章节的限制
缺省情况下,QoS 功能是关闭的,即设备对所有的报文同等处理。但当您将一个Policy Map
关联到某一个接口上,并设置了接口的信任模式时,该接口的QoS 功能即被打开。要关闭该接口的QoS
功能,您可以通过解除该接口的Policy Map 设置,并将接口的信任模式设为Off 即可。以下为QOS的缺省配置:
队列轮转算法
QueueWeight
1:1:1:1:1:1:1:1
Weight Range
Weight Range
交换机或路由器根据报文所携带的类别信息,可以为各种交通流提供不同的传输优先级,或者为某种交通流预留带宽,或者适当的丢弃一些重要性较低的报文、或者采取其他一些操作等等。这些独立设备的这种行为在DiffServ
体系中被称作每跳行为(per-hop
behavior)。如果网络上的所有设备提供了一致的每跳行为,那么对于DiffServ体系来说,这个网络就可以构成end-to-end
QoS solution。
QoS入口端动作包括Classifying、Policing
和Marking。
Classifying即分类,其过程是根据信任策略或者根据分析每个报文的内容来确定将这些报文归类到以DSCP
值来表示的各个数据流中,因此分类动作的核心任务是确定输入报文的DSCP
值。分类发生在端口接收输入报文阶段,当某个端口关联了一个表示QoS 策略的policy-map
后,分类就在该端口上生效,它起作用于所有从该端口输入的报文。
有些协议非常“健谈”,只要它们存在就会导致业务延迟,因此根据协议对进行识别和优先级处理可以降
低延迟。应用可以通过它们的EtherType进行识别。譬如,AppleTalk协议采用0x809B,IPX使用0x8137。根据协议进行优先级处理是控制或阻止少数较老设备所使用的“健谈”协议的一种强有力方法。
(2)&和端口号码
许多应用都采用一些TCP或UDP端口进行通信,如采用TCP端口80。通过检查IP的端口号码,可以确定数据包是由哪类应用产生的,这种方法也称为,因为TCP和UDP都位于OSI模型的第四层。
(3) 源IP地址
许多应用都是通过其源IP地址进行识别的。由于服务器有时是专门针对单一应用而配置的,如,所以分析的源IP地址可以识别该数据包是由什么应用产生的。当识别与应用服务器不直接相连,而且许多不同服务器的数据流都到达该交换机时,这种方法就非常有用。
(4) 物理端口号码
与源IP地址类似,物理端口号码可以指示哪个服务器正在发送数据。这种方法取决于物理端口和应用服务器的映射关系。虽然这是最简单的分类形式,但是它依赖于直接与该连接的服务器。
对于一般非IP 报文,交换机将根据以下准则来归类报文:
1.1 如果报文本身不包含QoS 信息,即报文的第二层报文头中不包含User Priority
bits,那么可以根据报文输入端口的缺省CoS值来获得报文的QoS信息。端口的缺省CoS值和报文的UserPriority bits
一样,取值范围为0~7。取得报文的CoS 值之后,再根据交换机上配置的CoS-to-DSCP map 来将CoS 转化为DSCP
2.2 如果报文本身包含QoS 信息,报文的第二层报文头中包含User Priority bits,那么可以直接从报文中获得CoS
值,然后再根据交换机上配置的CoS-to-DSCP map 来将CoS 转化为DSCP值。注意以上两种归类准则只有当端口的QoS
信任模式打开的时候才起作用。打开端口的QoS
的信任模式意味着不通过分析报文的内容,而直接从报文中或报文的输入端口上获得报文QoS信息,从而得到DSCP 值。
2 3. 如果端口关联的policy-map 中使用了基于mac access-list extended 的ACLs
归类,那么在该端口上,将通过提取报文的源MAC 地址、目的MAC 地址以及Ethertype
域来匹配关联的ACLs,以确定报文的DSCP 值。要注意的是,如果端口关联了某个policy-map,但又没有为其设置相应的DSCP
值,则交换机将按照缺省行为为符合这种归类的报文分配优先级:即根据报文第二层报文头中包含的优先级信息或端口的缺省优先级。
注意上面三种归类准则可能会同时作用于一个端口上。在这种情况下,上面三种归类准则按3、2、1 的优先级起作用。即,先根据ACLs
归类,在归类失败的情况下,才有可能选择归类准则2、1,在这个时候,如果端口的QoS 信任模式打开,则根据准则2 和1
直接从报文中或者从端口上获得QoS 信息;如果端口的QoS 信任模式关闭,那么那些归类失败的报文将被赋予DSCP 的缺省值0。
对于IP 报文,可以将根据以下准则来归类报文:
1.1直接从IP 报文的TOS 字段中提取出DSCP 值。IETF规定IP 报文的TOS 字段的前6 个比特作为DSCP
值,它的取值范围为0~63,和交换机内部使用的DSCP 值一一对应。
2.2 按照非IP 报文处理,按照上面介绍的非IP 报文归类准则1、2来确定报文的DSCP 值。注意以上几种归类准则只有当端口的QoS
信任模式打开的时候才起作用。打开端口的QoS 的信任模式意味着不通过分析IP 报文的内容,而直接从IP 报文的TOS
字段中或报文的输入端口上获得QoS 信息,从而得到DSCP 值。
2 3. 如果端口关联的policy-map 中使用了基于ip access-list (extended)的ACLs
归类,那么该在该端口上,将通过提取报文的源IP 地址、目的IP 地址、Protocol字段、以及第四层TCP/UDP
端口字段来匹配相关联的ACLs,以确定报文的DSCP
值。要注意的是,如果端口关联了某个policy-map,但又没有为其设置相应的DSCP
值,则交换机将按照缺省行为为符合这种归类的报文分配优先级:即根据报文第二层报文头中包含的优先级信息或端口的缺省优先级。和非IP
报文归类准则一样,以上几种归类准则可以同时作用于一个端口上。在这种情况下,上面的归类准则按照3、2、1的优先级起作用。即先根据ACLs
归类,在归类失败的情况下,才有可能选择归类准则2、1;在这个时候,如果端口选择QoS 信任模式Trust
IP-precedence,那么准则1 起作用;如果端口选择QoS 信任模式Trust CoS,那么准则2
起作用。有关上面提到的CoS-to-DSCP map、IP-precedence-to-DSCP
map映射表的详细描述情常见随后描述。
即策略,发生在数据流分类完成后,用于约束被分类的数据流所占用的传输带宽。Policing动作检查被归类的数据流中的每一个报文,如果该报文超出了作用于该数据流的Police所允许的限制带宽,那么该报文将会被做特殊处理,它或者要被丢弃,或者要被赋予另外的DSCP
值。在QoS 处理流程中,Policing
动作是可选的。如果没有Policing 动作,那么被分类的数据流中的报文的DSCP 值将不会作任何修改,报文也不会在送往Marking
动作之前被丢弃。
Marking即标识,经过Classifying
和Policing 动作处理之后,为了确保被分类报文对应DSCP的值能够传递给网络上的下一跳设备,需要通过Marking
动作将为报文写入QoS 信息,可以使用QoS ACLs 改变报文的QoS信息,也可以使用Trust 方式直接保留报文中QoS
信息,例如,选择Trust DSCP 从而保留IP 报文头的DSCP 信息。默认情况下,Marking 总是用报文对应的DSCP
值转化成QoS 信息,然后写入到报文CoS字段(对于非IP
报文)、DSCP字段或者IP-precedence
字段(对于IP
报文)中。
Marking决定怎样处理数据流中在Policing动作中超限的部分。可能的处理动作有丢弃超限部分和用另外的DSCP值标记超限部分。
QoS出口端动作包括Queueing和Scheduling
Queueing即,负责将数据流中报文送往端口的某个输出队列中,送往端口的不同输出队列的报文将获得不同等级和性质的传输服务策略。
每一个端口上都拥有8 个输出队列,通过设备上配置的DSCP-to-CoS Map 和Cos-to-Queue Map
两张映射表来将报文的DSCP 值转化成输出队列号,以便确定报文应该被送往的输出队列。
Scheduling即调度,为QoS 流程的最后一个环节。当报文被送到端口的不同输出队列上之后,设备将采用WRR
或者DRR或者SP或者其它算法发送8
个队列中的报文。
可以通过设置WRR算法的权重值来配置各个输出队列在输出报文的时候所占用的每循环发送报文个数,从而影响传输带宽或通过设置DRR算法的权重值来配置各个输出队列在输出报文的时候所占用的每循环发送报文字节数,从而影响传输带宽。
CoS 服务类别
  不要将CoS与QOS(服务质量)混淆,CoS是优先级队列形式,已在大量通信和连网协议中使用。它是一种基于应用类型(话音、视频、文件传输、事务处理)、用户类型(CEO,秘书)或其他设置对数据分组区分类别并区分优先级次序的方法。
  CoS是一种排队规则,而包括用以管理和网络资源的更广范围的技术。CoS通过检查参数或CoS标记对数据分组区分等级,并基于预定义的标准将数据分组放在不同的中。QOS涉及到保证一定的网络性能级别以满足业务合同或支持实时通信。对于QoS'要使用一些方法在发送数据分组前在网络上预留带宽。
  打个比方,CoS如同将要递送的包裹分级为平邮投递、第二日投递或第三日投递。QOS是投递公司为确保您的包裹按时递交要做的事情(如包裹跟踪、航空运输、挨家挨户收取和投递邮件)。
  虽然CoS技术可以赋予一些通信高于其他通信的优先级,但是如果没有QOS,将没有办法防止即使是的通信被或丢失数据分组。事实上,真正的QOS仅对于才是可以实现的,由于ATM具有固定的所以它能提供可以预测的服务。对于ATM通信公司和服务提供商精确知道在其网络容量内可以发送多少个53字节的信元。这种可预测性允许通信公司以保证的服务级别签署服务级别协议。
  另外,CoS技术能够减少等待时间,确保重要的通信在合理的时间内完成。CoS在企业网络上是很实用的。对一个网络进行过量供应(提供多于平均需要的)然后将通信区分优先次序以达到可接受的服务级别,这一点是有可能做到的。通过将通信区分优先次序,可以在进行最高优先级通信前先放下最不重要的通信。
  后面列出了CoS技术并在本书其他地方做了描述。为了便于比较,请参考it
QOS(服务质量)”和“综合业务(IntServ)"以了解对于QOS技术的讨论。
·802.1p 一个IEEE标准,它使用以太网帧头中的3个比特将通信分为多达8个的优先级。它
基本上赋予交换机和其他第2层连网设备以对通 信区分优先次序的功能。这在“网络通信优先级”和"QoS(服务质量)”中进行了讨论。
·Diff-Serv 一个用以对IP通信区分优先次序的规范。对于使用能将IP网络上通信区分优先级的方法设置IP头中的TOS()字段,它指定了方法。Diff-Serv是重要的,这是因为它可以跨互联网络和[[因特网//使用。请参阅“()”和“”。
·ATM服务类别&有自己的通信分类方法,如分类为()、()、()、()和()。有关更多详细信息,请参阅"()”。
============IP中的TOS(服务类型,用于QOS)====================
QoS的实现以IETF 的DiffServ
体系为基础。DiffServ体系规定每一个传输报文将在网络中被分类到不同的类别,分类信息被包含在了IP 报文头中,DiffServ
体系使用了IP 报文头中的TOS(Type Of
Service)中的前6个比特来携带报文的分类信息。当然分类信息也可以被携带在链路层报文头上。
首先,要了解为什么使用DSCP,需要先认识一下IP的优先权。
RFC791中定义了TOS位的前三位为IP Precedence(IP优先权、IP优先级),这三位可划分八个优先级,即:IP优先级字段,可以应用于流分类,数值越大表示优先级越高。IP优先权有种服务可以标记,其应用类型如下:
4 视频会议
3 呼叫信号
2 高优先级数据
1 中优先级数据
0 尽力服务数据
也就是说,原来的3位IP优先级字段只能划分出八种服务的优先级,这在服务种类单一,业务量少的年代,是足够使用了。但是在网络中实际部署的时候,八个优先级是远远不够用的,于是RFC
2474中又对TOS进行了新的定义,把前六位定义成了DSCP,后两位保留。
这样,DSCP值的范围就是0到63。图1为DSCP和IP优先权位示意图
为DSCP和IP优先权位示意图
其次,介绍一下DSCP值的表达方式。
DSCP值有两种表达方式,数字形式和关键字形式。
一种表达方式是数字形式。DSCP使用6比特,十进制区间是0~63,可以定义64个等级(优先级。)如二进制DSCP值000000=十进制DSCP值0,二进制DSCP值010010=十进制DSCP值18。
另一种关键字形式的DSCP值称为逐跳行为(PHB),目前有三类已定义的PHB,分别是尽力服务(BE或DSCP
0)、确保转发(AFxy)和加速转发(EF)。由于DSCP和IP
Precedence是共存的,于是存在兼容性的问题,DSCP可读性较差,比如DSCP 43我们一眼看去并不知道对应着IP
Precedence的什么取值,于是把DSCP进行进一步分类, DSCP总共分成四类:
类选择器Class
Selector(CS)aaa 000
加速转发Expedited Forwarding(EF) 101 110
确保转发Assured Forwarding(AF) aaa bb0
默认Default(BE) 000 000
CS6和CS7默认用于协议报文。因为如果这些报文无法接收的话会引起协议中断。而且是大多数厂商硬件队列里最高优先级的报文。
EF用于承载语音的流量,因为语音要求低延迟,低抖动,低丢包率,是仅次于协议报文的最重要的报文。
AF4用来承载语音的信令流量,这里大家可能会有疑问为什么这里语音要优先于信令呢?
其实是这样的,这里的信令是电话的呼叫控制,你是可以忍受在接通的时候等待几秒钟的,但是绝对不能允许在通话的时候的中断。所以语音要优先于信令。
AF3可以用来承载IPTV的直播流量,直播的实时性很强需要连续性和大吞吐量的保证。
AF2可以用来承载VOD的流量,相对于直播VOD要求实时性不是很强,允许有时延或者缓冲。
AF1可以承载不是很重要的专线业务,因为专线业务相对于IPTV和VOICE来讲,IPTV和VOICE是运营商最关键的业务,需要最优先来保证。当然面向银行之类需要钻石级保证的业务来讲,可以安排为AF4甚至为EF。
最不重要的业务是Internet业务,可以放在BE模型来传输。这也是我们为什么老抱怨网络不好。
可以说,有了DSCP,就初步实现了通讯业务中的时间管理,我们日常的通讯业务才能保质保量地高效运行。
IP Qos DSCP和TOS分类
RFC 791中 OS位的IP Precedence划分成了8个优先级,可以应用于流分类,数值越大表示优先级越高。
+-----+-----+-----+-----+-----+-----+-----+-----+
PRECEDENCE&&&
|& t3 | t2& |&
t1 | t0 |m
-----+-----+-----+-----+-----+-----+-----+-----+
&&&&&&&&&&&
111 - Network Control
&&&&&&&&&&&
110 - Internetwork Control
&&&&&&&&&&&
101 - CRITIC/ECP
&&&&&&&&&&&
100 - Flash Override
&&&&&&&&&&&
011 - Flash
&&&&&&&&&&&
010 - Immediate
&&&&&&&&&&&
001 - Priority
&&&&&&&&&&&
000 & Routine
但是在网络中实际部署的时候这8个优先级是远远不够的,于是在RFC
2474中又对TOS进行了重新的定义。把前六位定义成DSCP,后两位保留。
+---+---+---+---+---+---+---+---+
DSCP&&&&&&&&&
+---+---+---+---+---+---+---+---+
DSCP: differentiated services codepoin
CU:&& currently unused
但是由于DSCP和IP PRECEDENCE是共存的于是存在了一些兼容性的问题,DSCP的可读性比较差,比如DSCP
43我们并不知道对应着IP PRECEDENCE的什么取值,于是就把DSCP进行了进一步的分类。DSCP总共分成了4类。
&&&&&&&&&&&&&&&&
Selector(CS)&&&&&&&&&&
&&&&&&&&&&&&&&&&
Forwarding(EF)&&&&
&&&&&&&&&&&&&&&&
Forwarding(AF)&&&&&&
&&&&&&&&&&&&&&&&
Default(BE)&&&&&&&&&&&&&&&&&
1,默认的DSCP为000 000
2,CS的DSCP后三位为0,也就是说CS仍然沿用了IP PRECEDENCE只不过CS定义的DSCP=IP
PRECEDENCE*8,比如CS6=6*8=48,CS7=7*8=56
3,EF含义为加速转发,也可以看作为IP
PRECEDENCE为5,是一个比较高的优先级,取值为),但是RFC并没有定义为什么EF的取值为46。
4,AF分为两部分,a部分和b部分,a部分为3 bit仍然可以和IP PRECEDENCE对应,b部分为2
bit表示丢弃性,可以表示3个丢弃优先级,可以应用于RED或者WRED。目前a部分由于有三个bit最大取值为8,但是目前只用到了1~4。为了迅速的和10进制转换,可以用如下方法,先把10进制数值除8得到的整数就是AF值,余数换算成二进制看前两位就是丢弃优先级,比如34/8=4余数为2,2换算成二进制为010,那么换算以后可以知道34代表AF4丢弃优先级为middle的数据报。
如果把CS EF AF和BE做一个排列可以发现一个有趣的现象,如下表。这个表也就是我们在现实当中应用最多的队列。根据IP
PRECEDENCE的优先级,CS7最高依次排列BE最低。一般情况下这些队列的用途看这个表的Usage字段
对应的服务
IPv4优先级/EXP/802.1P&&&
DSCP(二进制) DSCP[dec][Hex]
TOS(十六进制)&&&&&&
应用& 丢包率
BE&&&&&&&&
0&&&&&&&&&&&&&&&&&&&&&&&
0&&&&&&&&&&&
0&&&&&&&&&&&&&&&
Internet&&
AF1&&&&&&&
10[0x0a]&&&&&
40[0x28]&&&&&
Leased Line&
AF1&&&&&&&
12[0x0c]&&&&&
48[0x30]&&&&&
Leased Line&& M
AF1&&&&&&&
14[0x0e]&&&&&
56[0x38]&&&&&
Leased Line&& H
AF2&&&&&&&
2&&&&&&&&&&&&&&&&&
18[0x12]&&&&&
72[0x48]&&&&&&
IPTV VOD&& L
AF2&&&&&&&
2&&&&&&&&&&&&&&&&&
20[0x14]&&&&&
80[0x50]&&&&&&&&&
IPTV VOD&& M
AF2&&&&&&&
2&&&&&&&&&&&&&&&&&
22[0x16]&&&&&
88[0x58]&&&&&&
IPTV VOD&& H
AF3&&&&&&&
3&&&&&&&&&&&&&&&&&
26[0x1a]&&&&&
104[0x68]&&&&&&
IPTV Broadcast& L
AF3&&&&&&&
3&&&&&&&&&&&&&&&&&
28[0x1c]&&&&&
112[0x70]&&&&&
IPTV Broadcast& M
AF3&&&&&&&
3&&&&&&&&&&&&&&&&&
30[0x1e]&&&&&
120[0x78]&&&&&&
IPTV Broadcast& H
AF4&&&&&&&
4&&&&&&&&&&&&&&&&&
34[0x22]&&&&&
136[0x88]&&&&&&
NGN/3G Singaling& L
AF4&&&&&&&
4&&&&&&&&&&&&&&&&&
36[0x24]&&&&&
144[0x90]&&&&&
NGN/3G Singaling M&
AF4&&&&&&&
4&&&&&&&&&&&&&&&&&
38[0x26]&&&&&
152[0x98]&&&&&&
NGN/3G Singaling H
EF&&&&&&&&
5&&&&&&&&&&&&&&&&&&&&&&&
46[0x2E]&&&&&
184[0xB8]&&&&&
NGN/3G voice
CS6(INC)&&
6&&&&&&&&&&&&&&&&&&&&&&&
48[0x30]&&&&&
192[0xC0]&&&&&
CS7(NC)&&&
7&&&&&&&&&&&&&&&&&&&&&&&
56[0x38]&&&&&
224[0xE0]&&&&&
1,CS6和CS7默认用于协议报文,比如说OSPF报文,BGP报文等应该优先保障,因为如果这些报文无法接收的话会引起协议中断。而且是大多数厂商硬件队列里最高优先级的报文。
2,EF用于承载语音的流量,因为语音要求低延迟,低抖动,低丢包率,是仅次于协议报文的最重要的报文。
3,AF4用来承载语音的信令流量,这里大家可能会有疑问为什么这里语音要优先于信令呢?其实是这样的,这里的信令是电话的呼叫控制,你是可以忍受在接通的时候等待几秒钟的,但是绝对不能允许在通话的时候的中断。所以语音要优先于信令。
4,AF3可以用来承载IPTV的直播流量,直播的时时性很强需要连续性和大吞吐量的保证。
5,AF4可以用来承载VOD的流量,相对于直播VOD要求时时性不是很强,允许有延迟或者缓冲。
6,AF5可以承载不是很重要的专线业务,因为专线业务相对于IPTV和VOICE来讲,IPTV和VOICE是运营商最关键的业务,需要最优先来保证。当然面向银行之类需要钻石级保证的业务来讲,可以安排为AF4甚至为EF。
7,最不重要的业务是INTERNET业务,可以放在BE模型来传输。
而在硬件队列里是如何保证协议报文(CS6和CS7中的数据)优先传输呢?在制作路由器的时候一般都是把CS6和CS7中的数据做PQ也就是绝对优先处理,无论下面是否有数据也是要优先来传递这两个队列中的数据。而其他EF到AF1的队列中是用WFQ来做的,保证所有队列都可以得到带宽来传输。
============COS====================
cos(class of service)的基本思想是,对网络上的业务区分不同的优先级,在网络的每一个环节,都让对实时性要求高的数据包优先通过。实施cos技术,需要从网络硬件和网管软件两方面入手。服务器端应该支持基于策略的管理,通过策略管理为不同部门的不同应用、在不同的时间规定不同优先级。策略保存在服务器ldap数据库或目录中,客户端支持程序(例如,3com的dynamicaccess)感知到某个应用程序启动时,该程序向服务请求该应用程序的优先级。在广域网上,cos要映射到qos(quality
of service)或ip tos(type of service)。
与cos不同,qos的基本思想是,为实时业务保留一定的带宽,从而把数据的丢包率、延时、吞吐量、拥塞等控制在用户可接受的水平。qos技术有两个基本措施:(1)必须对数据源实施进入控制(connect
admission control)和流量调整(traffic
shaping);(2)在数据流进入网络之前,必须估算出该数据流对整个网络的影响。
  cos的实质是,通过增加带宽来提高业务质量。cos的优点是:(1)网络简单;(2)费用低;(3)兼容较早的设备。但也有几个缺点:(1)它仍然属于尽力传送;(2)没有服务区分;(3)需要频繁增加带宽;(4)偶尔也会出现拥塞。从cos的这些特点不难看出,cos主要适用于企业网或园区网。
  qos则是通过改善管理来提高业务质量。它的优点是:(1)服务质量更有保证;(2)基本于标准;(3)减少了过量供应带宽的费用;(4)适用于城域网以至广域网。它的缺点是:(1)管理复杂;(2)在整个网络都需要策略先知(policy-aware)的交换机和服务器;(3)现有设备很可能不支持qos。
============WRED====================
RED 基础随机早期检测(RED)的目的是通过在一个接口的输出将要饱和的时候随机丢弃数据包以防止发生TCP同步。RED丢弃数据包的速度取决于当时的深度。下面的三个参数影响到何时一个新到达的数据包被丢弃:
·最小门限
·最大门限
·标签概率分母(MPD)
最小门限指定在准备丢弃前的队列中的数据包数量。丢弃的可能性随着深度达到最大门限而不断上升。当深度超过最大门限时,
所有其它试图进入队列的都被丢弃。
的丢弃可能性在深度等于最大门限时为1/(MPD)。例如,如果标签概率分母被设定为10,当深度达到最大门限时,被丢弃的可能性为1/10(即,被丢弃的可能性为百分之十)。最小门限、最大门限以及MPD组成了RED。RED在可能发生拥塞的端口是十分有用的。例如,一个WAN端口可能会需要采用RED。
加权随机先期检测(WRED),与RED不同,WRED可以解析每个优先级标签。 例如,一个IP优先级为0的的最小门限可能是20,但是一个IP优先级为1的数据包的最小门限可能是25。在这一例子中,IP优先级为0的将比IP优先级为1的数据包先被丢弃。
尽管WRED可以从端口配置模式或结构进行设置,这里讲述基于模块化的
WRED的设置。为了开启WRED并设定WRED需要关注的标签(即IP 优先级或 DSCP)
已投稿到:

我要回帖

更多关于 vrrp priority优先级 的文章

 

随机推荐