QoS服务质量六路由器拥塞管理

4、Qos拥塞管理

拥塞是指由于网络资源不足而造成速率下降、引入额外延时的一种现象。拥塞会造成报文的传输时延、吞吐率低及资源的大量耗费。而在IP分组交换及多业务并存的复杂环境下,拥塞又极为常见。比如由于广域网的带宽通常要比局域网的带宽小,当一个局域网的用户向另一个局域网的用户发送数据时,由于广域网的带宽小于局域网的带宽,数据将不可能按局域网发送的速度在广域网上传输。

拥塞管理通过指定报文调度次序来确保高优先级业务优先被处理。

4.1、拥塞现象的产生

拥塞发生的主要场景:

  • 速率不匹配:报文从高速链路进入设备,再由低速链路转发出去;
  • 汇聚问题:报文从多个接口同时进入设备,由一个没有足够带宽的接口转发出去。
    拥塞发生的主要场景
    拥塞发生的负面影响:
    (1)、增加了报文传输的时延和抖动;
    (2)、过高的延迟会引起报文重传;
    (3)、使网络的有效吞吐率降低,造成网络资源的损害;
    (4)、剧耗费大量的网络资源(特别是存储资源),不合理的资源分配甚至可能导致系统陷入资源死锁而崩溃。

4.2、拥塞管理概述

拥塞管理是指网络在发生拥塞时使用队列技术,将从一个接口发出的所有报文放入多个队列,使用不同的调度算法来发送队列中的报文流。

4.2.1、网络设备的队列构成

什么是队列
队列指的是在缓存中对报文进行排序的逻辑。当流量的速率超过接口带宽或超过为该流量设置的带宽时,报文就以队列的形式暂存在缓存中。报文离开队列的时间、顺序,以及各个队列之间报文离开的相互关系则由队列调度算法决定。

当网络发生拥塞时,网络设备中没有转发完毕而剩下的数据包,这部分数据包存储在网络设备的内存中,按照一定的规则排列。每个队列可以排列10个1500字节的数据包。也因此队列的单位通常是报文个数而不是报文字节数。

网络设备中的硬件队列和软件队列
硬件队列和软件队列
在网络设备的出接口处,一般由一个最基本的队列,该队列以FIFO(First IN First Out)的方式调度,我们把该队列放入硬件队列。在硬件队列之前还有一个进行QoS管理和控制软件队列,拥塞发生时,就将存放在内存中等待发送的数据包组成队列,等待调度算法来发送队列中的报文流。

4.2.1.1、路由器的队列构成

路由器的队列构成

当网络没有发生拥塞时,各接口进入的报文直接进入路由设备自身的硬件队列,发送队列按照FIFO(先进先出)的顺序转发出去。

当拥塞发生时,进入路由器的报文以及自身设备的报文进入软件队列缓存中,由调度算法来进行转发。

路由器设备缓存中的队列分为两种类型:
(1)、系统队列
路由器组网中,由硬件设备运行的维持组网,保障网络连通性,可达性的各种控制协议,组成的队列。系统队列又分为两种:

  • 紧急队列:链路控制层的各种协议(PPP协议等)
  • 协议队列:路由协议(OSPF、RIP、ISIS、BGP等)

(2)、用户队列
从路由器入接口进入的流用户使用的各种业务流量。路由器常用队列有FIFO、PQ、CQ、RTPQ、WFQ、CBQ、CBR等队列技术,默认使用FIFO队列。

4.2.1.2、交换机的队列构成

交换机工作在二层,处理的各业务流数据量大,带宽高,需要传输效率高,因此交换机使用高速硬件直接处理,采用芯片实现QoS队列。这种方式下,交换机采用二层头识别数据类型,主要流量是以使用802.1p的VLAN报文为主,还有来自三层DSCP的流。

交换机根据优先级信任规则,查找QoS映射表,将映射结果对报文进行内部优先级标记,报文映射到本地队列。

交换机的队列

报文在入端口,根据映射表入本地队列;
报文在出端口,进行队列调度后发送;
常用的队列:SP、WRR、HWFQ。

4.2.2、路由器拥塞管理

4.2.2.1、FIFO队列

FIFO(First In First Out Queuing,先入先出)所有报文按到达转发接口的时间先后顺序,先入先出地发送FIFO队列报文。
在这里插入图片描述在这里插入图片描述

优点:处理简单,开销小。
缺点:没有公平性,不同的流之间不互相隔离,关键业务的带宽不能得到保证。

FIFO的配置:
[sysname-Ethernet1/0/3] qos fifo queue-length queue-length
queue-length参数指定了FIFO队列的长度,即其最大可以容纳的报文数量。增加FIFO队列的长度可以减少丢包,但同时也可以增加延迟。

4.2.2.2、PQ队列

PQ(Priority Queuing,优先队列)调度,就是严格按照队列优先级的高低顺序进行调度。只有高优先级队列中的报文全部调度完毕后,低优先级队列才有调度机会。

采用PQ调度方式,将延迟敏感的关键业务放入高优先级队列,将非关键业务放入低优先级队列,从而确保关键业务被优先发送。

PQ队列的4个队列:
Top(高优先队列)、Middle(中优先队列)、Normal(正常优先队列)和boottom(低优先队列)。默认是Normal(正常优先队列)。

二层交换机配置PQ调度后,按照7、6、5、4、3、2、1、0从高到低的优先级依次进行调度,发送报文。

PQ队列
在这里插入图片描述

PQ队列原理:

在这里插入图片描述

  • 按类别入队,队列满后尾丢弃
  • 优先级高的队列先调度
  • 加入top队列一直是满的,会导致优先级低的队列,一直得不到调度(Normal为默认队列)

PQ队列特征:

  • 可以使用ACL对报文进行分类,根据需要将报文入队列;
  • 报文丢弃策略采用尾丢弃(Tail Drop)机制,且只有这一种机制;
  • 队列长度可以设置为0,表示该队列无穷大,即进入该队列的报文不会被Tail Drop机制丢弃,除非内存耗尽了;
  • 队列内部使用FIFO逻辑;
  • 当从队列调度报文时,从高优先级的队列到低优先级调度报文。

PQ队列缺点:

  • 队列饥饿:PQ调度机制会使低优先级队列中的报文得不到调度机会。高优先级队列总有报文存在,那么低优先级队列中报文交一直得不到服务。
  • UDP流量:如果高优先级传送TCP流量,低优先级传送UDP流量,则TCP增加传送速率,导致UDP流量无法得到足够的带宽。

1、PQ队列配置事项:

  • 配置PQL(优先队列列表)
    • 配置默认情况下,流量进入的队列
    • 配置PQ队列的分类规则(acl)
    • 配置PQL各队列的长度
    • 默认队列配置
  • 将PQL应用到接口

2、流量进入的队列:
配置无对应规则的报文所入的缺省队列:(默认队列为PQ的4个队列之一,是普通队列)
[RA] qos pql pql-index default-queue{bottom | middle | normal | top }

配置PQ队列的分类规则:

  • 配置基于接口的分类规则:
    [RA] qos pql pql-index inbound-interface interface-type interface-number queue {bottom | middle | normal | top }

  • 配置基于协议的分类规则:
    [RA] qos pql pql-index protocol ip [queue-key key-value] queue {bottom | middle | normal | top }
    在这里插入图片描述

3、配置PQL各队列的长度
[RA] qos pql pql-index queue {bottom | middle | normal | top } queue-length queue-length

4、在接口上应用PQL
[RA-Ethernet1/0/0] qos pq pql pql-index

5、PQ队列信息
[RA] dis qos pql 5
[RA] dis qos interface Ethernet1/0/0

4.2.2.3、CQ队列

CQ(Custom Queuing,自定义队列),按照一定的规则将分组分成16类(对应于16个队列),分组根据自己的类别按照先进先出的策略进入相应的CQ队列。

CQ队列调度采用轮询方式。按照预先配置的额度依次从1到16号用户队列中取出一定数量的报文发送。如果轮询的某队列为空,则转到下一个队列。这样保障关键业务能获得较多的带宽,且让非关键业务也能得到相应带宽。
在这里插入图片描述

接口拥塞时,报文按匹配规则被送入对应队列;如果报文不匹配任何规则,则被送入默认队列。默认队列默认为CQ的队列1,可以修改。

  • 按类别入队,队列满后尾丢弃,可配置为WRED。
  • 各队列轮询调度
  • 其实有17个队列,0是给系统队列使用的,用户不能修改。
  • 默认每个队列传1500个队列(阈值)

缺点:由于采用轮询调度各个队列,CQ保证任何数据流的延迟。

CQ队列调度:
CQ队列调度

上图中,首先判断队列N(N从1开始)的当前发送额度(NQCS)是否大于队列中当前最先入队的报文长度(PL),如果大于则发送报文,然后将该队列的当前发送额度减去发送报文的长度(NQCS=NQCS-PL)。接着下一个队列下一个队列直到前发送额度小于待发长度时(NQCS<PL),把当前队列的N的发送额度加上配置值(NQCS=NQCS+NQDS),到下一个队列(N+1)调度(N=16时,下一队列N+1=1)。

这样CQ队列依照顺序进行队列调度,当某个队列为空时,轮询下一队列调度。因此CQ的调度机制能自动增加现存的类别报文的可占带宽。从上也可看出,其中一个队列发送额度用完后,需要等待其他队列发送额度用完后,才会再次调度到本次报文,所以CQ队列的时间延迟比较大,不适合时间敏感的业务。

CQ队列配置事项:

  • 配置CQL。系统预定义了16个CQL,用户可以选择其中的一个来配置自己需要的定制队列。
    • CQ中各队列的匹配规则
    • CQ中各队列的长度与发送额度
    • 默认队列
  • CQ队列应用到接口。应用配置好的CQL,在接口应用CQ队列。

配置无对应分类报文所入的缺省队列:
[RA] qos cql cql-index default-queue queue-number

配置CQ队列长度:
[RA] qos cql cql-index queue queue-number queue-length queue-length

配置CQ队列份额(修改队列缓存的大小)连续发送字节数(默认1500)
[RA] qos cql cql-index queue queue-number serving byte-count

配置基于接口的分类:
[RA] qos cql cql-index inbound-interface interface-type interface-number queue queue-number

配置基于协议的分类规则:
[RA] qos cql cql-index protocol ip [queue-key key-value ] queue queue-number

接口上应用CQL
[RA-Ethernet1/0/0] qos cql cql-index

配置参数:

  • 队列长度1~1024 默认值:20;
  • 发送额度,取值1~16777215,默认值1500 字节;
  • 均对应规则报文,默认队列为队列1;

CQ队列信息显示:
[RA] display qos cql
[RA] display qos cql interface Ethernet1/0/0

4.2.2.4、WFQ队列

公平队列FQ(Fair Queuing)的目的是尽可能公平地分享网络资源,使所有流的延迟和抖动达到最优,且不同的队列获得公平的调度机会,从总体上均衡各个流的延迟。与FQ相比,WFQ(Weighted Fair Queue)在计算报文调度次序时增加了优先权方面的考虑。从统计上,WFQ使高优先权的报文获得优先调度的机会多于低优先权的报文。

WFQ(Weighted Fair Queuing,权重轮询队列)对报文按流特征进行分类。根据IP报文的五元组(源IP地址、目的地址、源端口号、目的端口号、协议号、ToS域中的优先级)等特征,运用Hash算法将不同特征的流分入不同的队列类别中,这个过程也称为散列。

每个队列可以看作一类流,其报文进入WFQ的同一队列。WFQ尽可能公平地分享网络资源,使所有流的延迟和抖动达到最优,让不同队列获得公平的调度机会。WFQ 以 bit 为单位进行调度,Bit-by-bit 调度模型可以完全按照权重分配带宽。

WFQ队列

1、WFQ入队机制
入队列之前对流量进行分类,有两种分类方式:

  • 按流的“会话”信息分类:根据报文的协议类型、源和目的TCP或UDP端口号、源和目的IP地址、ToS域中的优先级位等自动进行流分类,并且尽可能多地提供队列,以将每个流均匀地放入不同队列中,从而在总体上均衡各个流的延迟。
    IP网络中IP报文进入WFQ队列,是根据IP报文的五元组将其Hash到不同的组,每个组内再根据不同的优先级分配不同的队列号。
    在这里插入图片描述

    上图中,对于IP报文设置IP Precedence为权重时,由于IP优先级只0~7,队列为8个。配置WFQ队列数为16时,根据五元组特征Hash时最大分成2个组,每个组包含8个队列;设置DSCP优先级为权重时,则WFQ队列数最少要配置成64,这时所有报文都属于一个组。

  • 按优先级分类:通过优先级映射把流量标记为本地优先级,每个本地优先级对应一个队列号。每个接口预分配8个队列,报文根据队列号进入队列。默认情况,队列的WFQ权重相同,流量平均分配接口带宽。用户可以通过配置修改权重,高优先权和低优先权按权重比例分配带宽。

2、WFQ队列调度
WFQ队列调度时,与CQ队列调度相似,也是轮询调度,同一个队列出访方式是FIFO方式。
WFQ队列调度

不同的是发送额度的初始值(NQIS)等于队列优先级加1后与100的乘积。如果优先级是0的队列发送额度(NQCS)初始值为100,优先级为4的队列发送额度初始值为500。队列开始调度时从1开始,判断NQCS-PL>=0,从1开始直到N队列,直到当NQCS<PL时,这时将当前队列NQCS+NQIS,转到下一个N+1队列调度。从上可以看出优先级高的发送额度值大,在轮询中不断发送报文,因此报文发送的数据量大;优先级低的发送当NQCS<PL时,等待下一次调度,多次等待下,发送的报文数据量较优先级高的少。

从上图也能看到,小报文在队列中由于NQCS-PL>=0,能较快的发送,而长度大的报文总是通畅的发送,当在发送额度值小只能等待下一轮传输。

Bit-by-bit调度模型
Bit-by-bit调度模型可以完全按照权重分配带宽,防止长报文比短报文获得更多带宽,从而减少大小报文共存时的时延抖动。
Bit-by-bit调度模型

3、分配出口带宽
在出队的时候,WFQ按流的优先级(precedence)来分配每个流应占有出口的带宽。优先级的数值越小,所得的带宽越少。优先级的数值越大,所得的带宽越多。

公平性更好使多种队列的流量更加公平的转发,防止某一种流量(权重大的)的数据独占整个链路的带宽,最多支持4096个队列,WFQ的队列是按照5元组来分的,并不能手动配置。

WFQ的思想:
(1)、为每个流创建一个专用的队列,避免队列的饥饿,延迟,抖动等; 
(2)、在所有流间公平,正确地分配带宽;  
(3)、WFQ使用 [IP优先级] 作为分配带宽的权重。
(4)、短报文和长报文获得公平的调度:如果不同队列间同时存在多个长报文和短报文等待发送,让短报文优先获得调度,从而在总体上减少各个流的报文间的抖动。

WFQ是在FQ上述小报文优先的基础上,在计算报文调度次序时增加了优先级方面的考虑。从统计上,WFQ使高优先级的报文获得优先调度的机会多于低优先级的报文。

FQ把进入一个队列的报文称为流,系统对待每个流是均等的,每个流都会平等地分享到当前可用的带宽。

FQ还关心流队列中报文的长度,如果在不同队列间同时存在多个长报文和短报文等待发送,则短报文会优先获得调度,即先调度各队列队首的小报文,这使FQ可减缓各个流的报文间的抖动。

WFQ队列特点:

  • 优点:
    • 配置简单(不用手工分类);
    • 保证所有的流都可以获得公平调度,同时照顾高优先级报文利益;
    • 有利于小包的转发,从而降低用户交互类操作的相应时间;
    • 大多数平台上都支持;
    • 与WRED组合应用,进行拥塞避免的控制。
  • 缺点:
    • 不能对流的分类进行手工干预;
    • 多个不同的流可能会被分入同一个队列(流的数量超过了配置的队列数),无法保证每个流获得的实际资源量;
    • 资源消耗大而不适应高带宽链路;
    • WFQ可以均衡各个流的延迟和抖动,但同样不适合延迟敏感的业务应用。

WFQ队列配置任务:
配置WFQ的权重类型、队列长度、队列总数:
[huawei] qos wfq [precedence | dscp ] [queue-length max-queue-length [ queue-numbe total-queue-number] ]

WFQ队列长度的配置范围为1~1024,默认为64,最大队列数为16-4096,默认为256。

权重类型:对于使用IP precedence的IP报文,当配置WFQ队列数为16时,WFQ对报文根据五元组特征Hash时最大能分成2个组,每个组里包含8个队列。如果使用DSCP优先级作为权重,则WFQ队列数最小要配置成64,此时所有报文都属于一个组。

4.2.2.5、PQ+WFQ(混合队列调度)

集合了PQ调度和WFQ调度各有优缺点。单纯采用PQ调度时,低优先级队列中的报文流长期得不到带宽,而单纯采用WFQ调度时低延时需求业务(如语音)得不到优先调度,如果将两种调度方式结合起来形成PQ+WFQ调度,不仅能发挥两种调度的优势,而且能克服两种调度各自的缺点。

PQ+WFQ调度,调度PQ队列,多个PQ队列按优先级高低顺序进行调度。WFQ或WRR队列进行加权轮循调度。

队列间的PQ+WFQ调度流程
队列间的调度流程

设备接口上的8个队列被分为两组,用户可以指定其中的某几组队列进行PQ调度,其他队列进行WFQ调度。
PQ+WFQ调度

1、设备接口上的8个队列被分为两组,用户可以指定其中的某几组队列进行PQ调度,其他队列进行WFQ调度。只有WAN侧接口支持PQ+WFQ调度。

2、WRR、DRR及WFQ用户根据自己的需要定义权值,默认权值为10, PQ不需要权值,因为PQ总优先使用接口带宽。Queue4、Queue3、Queue2、Queue1和Queue0队列包含自己的权值,决定彼此之间的带宽划分比例。

3、用户根据不同的业务需要,对各队列中的报文流调度并非是平均的。当调度方式为DRR、WRR、WFQ时,通过给各队列设置不同的权值,可以根据权值对队列进行调度,权值越大的队列被调度的次数相对越多。

华为Queue-profile队列实现
系统最多可定 义优先级为0~7的8个队列。队列索引号分为0、1、2、3或0、…7。设备根据内部优先级选择队列,并按调度机制服务。

华为设备上可以使用Queue-profile来全局定义可应用到接口的软件队列,当硬件队列拥塞时,Queue-profile 队列系统开始起作用。

队列带宽分配:
假设某端口整形速率为100Mbps,该接口各业务的输入带宽及配置的PIR如下。

PQ+WFQ配置事项

  • 调度方式:仅WFQ、仅WRR、仅DRR、仅PQ或PQ+WFQ/DRR/WRR的混合调度方式。
  • 定义PQ队列:如果Queue-profile中定义了多个PQ队列,则多个PQ间根据优先级高低顺序进行调度。
  • Queue-profile中定义了多个WFQ/WRR/DRR的队列:PQ队列调度完成后,再对DRR、WFQ或WRR队列进行调度,共同分享剩余的带宽。因为PQ队列先调度,所以若PQ队列有持续的数据包,则其他队列会面临“饥饿”问题。设计建议是限制能进入PQ队列的报文数量,不要过多占用带宽。
  • 应用接口:可以应用到逻辑接口或物理接口上,逻辑接口配置优于物理接口起作用。如果Queue-profile应用到逻辑接口所对应的物理接口上,则逻辑接口。

某台设备输出wan端口整形速率为100Mbps,该设备输入端口带宽及输出的端口PIR值为下表:

DSCP的优先级队列类型输入带宽(bps)PIR(bps)应用
CS7PQ30M10M网络控制
CS6PQ15M25M网络控制
EFWFQ,权重520M10MVoIP电话业务
AF4WFQ,权重490M15M多媒体会议
AF3WFQ,权重310M10M视频点播
AF2WFQ,权重25M10MERP
AF1WFQ,权重120M10ME-mail/FTP
BE20M未配置上网

带宽分配过程如下:
(1)、PQ队列调度:报文按照优先级高的队列先调度,最高优先级CS7、CS6的控制协议先发送。首先保证PQ流队列的PIR带宽。PQ调度后,剩余带宽=100Mbps-15Mbps-10Mbps=75Mbps。

(2)、WFQ调度:根据计算公式:WFQ队列的带宽=剩余带宽x本队列权重/所有WFQ队列权重之和,WFQ队列带宽=75Mbps*本队列权重/15。

第一轮EF带宽=75Mbps*5/15=25Mbps,>EF的PIR10M,EF实际获得带宽=PIR=10Mbps,分配给EF的带宽剩余15Mbps。

第一轮AF4带宽=75Mbps*4/15=20Mbps,>AF4的PIR15M,AF4实际获得带宽=PIR=15Mbps,分配给AF4的带宽剩余5Mbps。

第一轮AF3带宽=75Mbps*3/15=15Mbps ,>AF3的PIR,AF3实际获得带宽=PIR=10Mbps,分配给AF3的带宽剩余5Mbps。

第一轮AF2带宽=75Mbps*2/15=10Mbps ,=AF2的PIR10M,AF2实际输入带宽只有5Mbps,因此分配给AF2的带宽剩余5Mbps。

第一轮AF1带宽=AF1带宽=75Mbps*1/15=5Mbps,<AF1的PIR10M,AF1的实际获得带宽=5Mbps,分配给AF1带宽没有剩余。

端口剩余带宽=15Mbps+5Mbps+5Mbps+5Mbps=30Mbps,AF1的PIR是10M,前面只分到5Mbps,这时将剩余带宽30Mbps分配5Mbps达到AF1的PIR所设定10M,最后的剩余带宽25M分配给BE。

DSCP的优先级队列类型输入带宽(bps)PIR(bps)应用调度输出带宽(bps)
CS7PQ15M25M网络控制15
CS6PQ30M10M网络控制10
EFWFQ,权重520M10MVoIP电话业务10M
AF4WFQ,权重490M15M多媒体会议15M
AF3WFQ,权重310M10M视频点播10M
AF2WFQ,权重220M10MERP10M
AF1WFQ,权重120M10ME-mail/FTP10M
BE20M未配置上网25M

4.2.2.6、RTPQ队列

即RTP(Real-time Transport Protocol,实时传输协议)优先对列,是一种保证实时业务(包括语音与视频业务)服务质量的队列急速。

在这里插入图片描述
紧急队列优先级>RTPQ队列优先级>协议队列优先级>其他队列优先级(PQ、CQ、WFQ、FIFO)。

1、RTPQ队列原理
承载语音或视频的RTP报文送入高优先级队列,使其得到优先发送,保证延迟和抖动降低为最低限度。

RTPQ队列的归类依据:将RTP报文定义为端口号在一定范围内,并且为偶数的UDP报文,并以此作为归类依据。

在这里插入图片描述
从上图结构中可以看出:
(1)、匹配的实时业务入RTPQ队列,其他业务入其他数据队列处理
(2)、实时业务入队前按配置的带宽进行限速处理
(3)、RTPQ队列满后进行尾丢弃
(4)、RTPQ将RTP报文定义为端口在一定范围内并且为偶数的UDP报文,并以此归类依据。
(5)、RTP队列可以通FIFO、PQ、CQ和WFQ结合使用,而它的优先级最高
(6)、为了防止RTPQ队列报文占据全部带宽,导致其他队列“饿死”,RTPQ在报文入队前先进行流量监管处理,超过RTPQ预留带宽的流量直接丢弃,在预留带宽以内的流量才能入队。

注意:可以与CQ、PQ、WFQ共用,但是不能与CBQ共用,因为CBQ里面有EF队列

2、RTPQ队列调度
RTPQ队列调度
RTPQ队列的优先级仅次于紧急队列,等同于协议队列,高于其他的数据队列。队列调度时,先检查紧急队列是否为空,如果不空,调度紧急队列报文发送,否则轮询调度RTPQ和协议队列。RTPQ队列内部采用FIFO的出队方式。RTPQ队列每一个报文出队转发后,将调度全交给紧急队列,如果紧急队列不空,发送紧急队列报文,否则发送协议队列的调度。协议队列调度完成后,开始下一轮的调度。如果RTPQ和协议队列都为空,开始调度其他数据队列,其他数据队列为空,或者一次调度完成后,开始下一轮的队列调度。

3、RTPQ的配置与显示
在接口下配置RTPQ队列:
[RA-GigabitEthernet1/0/0] qos rtpq start-port first-rtp-port -number end-port last-rtp-port-number bandwidth bandwidth [cbs burst]

主要参数:
(1)、start-port:RTP报文的第一个UDP端口号,范围:2000—65535。
(2)、end-port:RTP报文的最后一个UDP端口号,范围:2000—65535。
(3)、bandwidth:RTP队列所占用的带宽,范围:8—1000000,单位为Kbps。
(4)、cbs burst :指定承诺突发尺寸,单位为字节,范围1500—2000000字节。

显示RTPQ队列
[RA] display qos queue rtpq interface GigabitEthernet1/0/0

4.2.2.7、华为CBQ队列

CBQ(Class-Based Queue,基于类的队列)队列目前是华为官方推荐的队列配置方式,目前,在很多企业子网中,CBQ的队列已经成为主流的队列配置方式。不同于基于qos-profile的基于传统命令行的配置方式,CBQ可以实现对队列的精准分类,实现根据客户需求进行分类。CBQ软件队列,区别于Queue-Profile的是,CBQ使用MQC来配置。

1、CBQ队列原理
CBQ首先根据IP优先级或者DSCP优先级、入接口、IP报文的五元组等规则来对报文进行分类,然后让不同类别的报文进入不同的队列。对于不匹配任何类别的报文,会送入系统定义的缺省类。

CBQ提供4类队列:

(1)、EF队列
EF(Expedit Forwarding,加速转发)队列,适用于低延时、低丢弃概率、占用带宽不是很大的业务,例如重要业务报文或音频/视频业务。用户定义优先级类来存放延迟敏感的业务,每个类都有一个优先级队列,系统会快速转发该队列里面的数据,但由于严格优先级队列会“过多地优先使用(或用光)接口带宽”,因此,EF队列设置的带宽限速来限制对带宽的使用。

(2)、LLQ队列
LLQ(Low Latency Queuing,低延时队列),它时延相比EF队列更低。对时延极敏感的应用(如VoIP业务)能提供更好的服务质量保证,它较EF队列有更好的优先级转发能力,但与EF不同的是,LLQ带宽永远不会高于设置的最高上限,即使其他队列有空闲带宽,LLQ也不会抢用空闲带宽。当存在EF队列和LLQ队列时,出现拥塞时,首先丢弃LLQ队列。

(3)、AF队列
AF(Assured Forwarding,确保转发)队列,即确保转发队列。满足需要带宽保证的关键数据业务。每个AF队列分别对应一类用户报文,用户可以设定每类报文占用的带宽。在系统调度报文出队的时候,按用户为各类报文设定的带宽将报文出队发送,可以实现各个类的队列的公平调度。当接口有剩余带宽时,AF队列按照权值分享剩余带宽。同时,在接口拥塞的时候,仍然能保证各类报文得到用户设定的最小带宽。当其他队列带宽未使用时,接口带宽可以分配给当前队列使用。可以保证在网络发送的业务流量没有超过最小可确保带宽的情况下,此队列中报文的丢失概率非常低。确保转发适用于流量较大且需要被保证的业务。对于AF队列,当队列的长度达到队列的最大长度时,缺省采用尾丢弃的策略,但用户还可以选择用WRED丢弃策略。

(4)、BE队列
BE(Best Efford,尽力而为)队列,即尽力而为队列。满足不需要严格QoS保证的尽力发送业务。当报文不匹配用户设定的所有类别时,报文会被送入系统定义的缺省BE(Best Effort,尽力传送)类。BE队列使用接口剩余带宽和WFQ调度方式进行发送。

2、华为CBR队列实现
华为CBR队列实现的配置参数:
(1)、用户定义的类定义相应的流行为,其内容可以是AF、EF、LLQ、BE (定义给default-class)。

(2)、AF需要显示的定义带宽,这个带宽是最小保证带宽,也是当拥塞发生时最小的可用带宽。

(3)、BE使用WFQ队列机制,不需要显示定义带宽,可使用BW=Minimum{10%,100-EF-LLQ-AF},BW取值至少为接口带宽的1%。

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

0与1之旅

创作不易请给予一点帮助和鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值