QOS-CBQ概述
QOS-CBQ概述
2018年7月7日 19:56
CBQ(基于类的对列)是一种基于QOS policy实现的拥塞管理技术。
-
- CBQ中包含一个LLQ(低延迟队列),用来支撑EF(快速转发)类业务被绝对优先发送,保证延迟。
- CBQ中最大包含64个BQ(带宽保证队列),用来支撑AF(确保转发)类业务,保证每一个队列的带宽及可控的延迟。
- CBQ中还包含一个默认队列,对应一个默认分类,用于为默认的BE(尽力传送)类业务提供服务。其使用WFQ队列调度,利用接口剩余带宽进行发送。
CBQ入队列处理:
EF 队列:(LLQ队列)
-
- CBQ最多包含64个EF类,每类EF流量都对应一个虚拟的EF队列,每个EF队列都有自己的配置带宽。(实际上EF队列的报文进入同一个LLQ队列)
- 拥塞发生时,各EF类的流量按自己的配置带宽进行流量监管,超出配置带宽范围的流量被丢弃。
- LLQ丢弃策略为尾丢弃,BQ、BE可以为尾丢弃或WRED
AF队列:(BQ队列)
-
- CBQ最多包含64个AF类,每个AF类对应一个AF队列。每个AF队列实际上是一个BQ,每个BQ都有自己的配置带宽(最低保证带宽)
- 拥塞发生时,BQ至少可以获得此配置带宽量。BQ使用尾丢弃或WRED丢弃
EF类和AF类配置的带宽之和称为CBQ的总配置带宽。
CBQ将默认流量作为BE类对待,送入BE队列。BE内部实际上使用WFQ队列调度,可以使用尾丢弃或WRED丢弃。
CBQ队列调度:
-
- 当所有BQ队列为空,或者BQ队列的出列报文会导致LLQ和BQ的出队列报文所占带宽总和超过CBQ的总配置带宽时,停止BQ队列调度,开始调度WFQ队列。
- LLQ队列在数据队列中具有绝对高优先级,所以EF类的延迟和抖动都可以降到最低,这为延迟敏感的应用(VoIP业务)提供了良好的服务质量保证
- 当LLQ和BQ队列流量都不足时,WFQ可以使用剩余全部带宽
-
- 队列势能与队列中当前报文长度成正比,与队列的保证带宽成反比。
- BQ队列既可以根据用户需求分配队列的保证带宽,又优先照顾了小报文的利益。
QOS最大可用带宽:
-
- 接口的QOS最大可用带宽,是指在此接口上CBQ可能占用的最大带宽
- QOS最大可用带宽并非接口实际带宽,允许手工配置
- 配置接口QOS最大可用带宽:
-
- 不配置时,使用如下缺省值:
- 对于物理接口,其取值为物理接口实际的波特率或速率
- 对于T1/E1、MFR等通过绑定生成的逻辑串口,其取值为绑定通道的总带宽
- 对于VT、Dialer、BRI、PRI等模板类型的接口,取值为1000000kbps
- 对于其它虚接口(如Tunnel接口),取值为0kbps
- 不配置时,使用如下缺省值:
QOS预留带宽:
-
- 为了避免缺省类的数据流被“饿死”,CBQ队列中LLQ和BQ队列配置带宽的总和不得超过QOS预留带宽
- QoS预留带宽计算公式:
- 预留带宽=QOS最大可用带宽*QoS预留百分比
- QoS预留百分比配置命令
-
- QoS预留带宽建议不要超过接口实际带宽的80%
QoS配置过程:
系统定义的CBQ:
-
- Default策略是系统定义的CBQ,用户可以使用,但不能修改和删除该策略
- Default策略使用系统定义的分类和系统定义的队列行为,提供缺省的CBQ服务
CBQ队列配置:
-
-
配置EF队列:
- 可用绝对值和百分比两种方式配置分配带宽
- 绝对值方式:可以直接配置CBS,支持突发
- 百分比方式:通过配合突发因子计算CBS
- CBS=QoS预留带宽*percentage*ratio/100/100
- 不支持队列长度配置
- 不能使用系统缺省类:
-
配置EF队列:
-
-
配置AF队列:
- 可用绝对值和百分比两种方式配置保证带宽
- 可以配置WRED或尾丢弃策略
-
配置AF队列:
-
-
配置CBQ缺省类使用的WFQ队列
- 可以配置WRED或尾丢弃策略
-
配置CBQ缺省类使用的WFQ队列
-
- 配置最大队列长度:
-
- 显示与维护:
-
- Available:指尚能继续给CBQ分配的带宽。即接口预留带宽和当前CBQ配置的带宽之差