QOS-CBQ概述

摘要:
每个BQ都有自己的配置带宽(最小保证带宽)。当发生拥塞时,BQ使用尾部丢弃或WRED丢弃来丢弃EF和AF配置带宽的总和,这称为CBQ的总配置带宽。或者当BQ队列的传出消息将导致LLQ和BQ的传出消息占用的总带宽超过CBQ的总配置带宽时,这为延迟敏感应用(VoIP服务)提供了良好的服务质量保证。当LLQ和BQ队列的流量不足时,BQ队列可以根据用户需求分配队列的保证带宽。

 QOS-CBQ概述

   2018年7月7日    19:56

CBQ(基于类的对列)是一种基于QOS policy实现的拥塞管理技术。

    • CBQ中包含一个LLQ(低延迟队列),用来支撑EF(快速转发)类业务被绝对优先发送,保证延迟。
    • CBQ中最大包含64个BQ(带宽保证队列),用来支撑AF(确保转发)类业务,保证每一个队列的带宽及可控的延迟。
    • CBQ中还包含一个默认队列,对应一个默认分类,用于为默认的BE(尽力传送)类业务提供服务。其使用WFQ队列调度,利用接口剩余带宽进行发送。

 

CBQ入队列处理:

 QOS-CBQ概述第1张

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队列调度:

 QOS-CBQ概述第2张

    • 当所有BQ队列为空,或者BQ队列的出列报文会导致LLQ和BQ的出队列报文所占带宽总和超过CBQ的总配置带宽时,停止BQ队列调度,开始调度WFQ队列。
    • LLQ队列在数据队列中具有绝对高优先级,所以EF类的延迟和抖动都可以降到最低,这为延迟敏感的应用(VoIP业务)提供了良好的服务质量保证
    • 当LLQ和BQ队列流量都不足时,WFQ可以使用剩余全部带宽

 QOS-CBQ概述第3张

    • 队列势能与队列中当前报文长度成正比,与队列的保证带宽成反比。
    • BQ队列既可以根据用户需求分配队列的保证带宽,又优先照顾了小报文的利益。

 

QOS最大可用带宽:

    • 接口的QOS最大可用带宽,是指在此接口上CBQ可能占用的最大带宽
    • QOS最大可用带宽并非接口实际带宽,允许手工配置
    • 配置接口QOS最大可用带宽:

 QOS-CBQ概述第4张

    • 不配置时,使用如下缺省值:
      • 对于物理接口,其取值为物理接口实际的波特率或速率
      • 对于T1/E1、MFR等通过绑定生成的逻辑串口,其取值为绑定通道的总带宽
      • 对于VT、Dialer、BRI、PRI等模板类型的接口,取值为1000000kbps
      • 对于其它虚接口(如Tunnel接口),取值为0kbps

QOS预留带宽:

    • 为了避免缺省类的数据流被“饿死”,CBQ队列中LLQ和BQ队列配置带宽的总和不得超过QOS预留带宽
    • QoS预留带宽计算公式:
      • 预留带宽=QOS最大可用带宽*QoS预留百分比
    • QoS预留百分比配置命令

 QOS-CBQ概述第5张

    • QoS预留带宽建议不要超过接口实际带宽的80%

 

QoS配置过程:

 QOS-CBQ概述第6张

系统定义的CBQ:

    • Default策略是系统定义的CBQ,用户可以使用,但不能修改和删除该策略
    • Default策略使用系统定义的分类和系统定义的队列行为,提供缺省的CBQ服务

 QOS-CBQ概述第7张

CBQ队列配置:

    • 配置EF队列:
      • 可用绝对值和百分比两种方式配置分配带宽
      • 绝对值方式:可以直接配置CBS,支持突发
      • 百分比方式:通过配合突发因子计算CBS
      • CBS=QoS预留带宽*percentage*ratio/100/100
      • 不支持队列长度配置
      • 不能使用系统缺省类:

 QOS-CBQ概述第8张

    • 配置AF队列:
      • 可用绝对值和百分比两种方式配置保证带宽
      • 可以配置WRED或尾丢弃策略

QOS-CBQ概述第9张

    • 配置CBQ缺省类使用的WFQ队列
      • 可以配置WRED或尾丢弃策略

QOS-CBQ概述第10张

    • 配置最大队列长度:

QOS-CBQ概述第11张

    • 显示与维护:

QOS-CBQ概述第12张

    • Available:指尚能继续给CBQ分配的带宽。即接口预留带宽和当前CBQ配置的带宽之差

 

 

免责声明:文章转载自《QOS-CBQ概述》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇最简单的jxl导出Excel方法Response.AddHeader(,)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

虚表和虚表指针

  编译器:VS2015 0x01 基础概念   首先还是简单重复一下基础概念。   C++的多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。    1、多态性     指相同对象收到不同消息或不同对象收到相同消息时产生不同的实现动作。C++支持两种多态性:编译时多态性,运行时多态性。     a...

类型信息

一、Class对象 在Object类中定义了以下的方法,此方法将被所有子类继承: public final Class getClass() @Test public void test3() { Person person = new Person(); Class clazz = person.getC...

几种实现延时任务的方式

一、应用场景 在需求开发过程中,我们经常会遇到一些类似下面的场景:1)外卖订单超过15分钟未支付,自动取消2)使用抢票软件订到车票后,1小时内未支付,自动取消3)待处理申请超时1天,通知审核人员经理,超时2天通知审核人员总监4)客户预定自如房子后,24小时内未支付,房源自动释放 那么针对这类场景的需求应该如果实现呢,我们最先想到的一般是启个定时任务,来扫描...

(转)理解Android系统的进程间通信原理(一)RPC中的代理模式

Android系统中的进程间通信是通过一个轻量级的RPC(Remote Procedure Call远程进程调用)和AIDL(Android Interface Definination Language)规范来生成两个进程之间可以相互访问的代码。其中RPC是以接口方式来实现,客户端与被调用实现之间是通过代理模式来实现的,这些又是 以JAVA的RMI和代理...

RabbitMQ技术详解(转)

RabbitMQ是什么 定义 RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。 AMPQ AMQP,即Adva...

注解-组件注册02-@ComponentScan

  当需要扫描一个包下的所有注解时,可以在XML文件中进行配置: <!--包扫描,只要标注了@Controller、@Service、@Reposotory、@Component就可以被加载到spring bean容器--> <context:component-scan base-package="spring_annotation....