背景

QOS(服务质量)技术本身不会增加带宽,而是在有限的带宽,针对不同业务合理分配带宽,提供端到端的服务质量保证。资金充足就可以考虑直接增加带宽。

度量标准

带宽

带宽也叫吞吐量,是指在1s内,从网络一端传到另一端最大数据位数,单位bit/s。一般带宽越高,服务质量越好,但是相应的运营和维护成本也就越高。

带宽和网速不是一回事,带宽的1M是1024k位,网速的1M是1024k字节。大约1M的带宽的下载速度为128Kb/s,网速单位为字节/s。1Mbps=1024kbps=1024/8kBps=128KB/s

时延

是指一个报文从或分组从一端到另一端所需要的延迟时间,由传输延迟和处理延迟组成。例如打电话的时延是指一个人开始说话到另一个人听到所要的时间,时延小于100ms,人们察觉不到,100-300ms轻微延迟,大于300ms,延迟明显。就比如直播会有延时,但是画面是流畅的。

传输时延
    取决于传输介质(双绞线、光纤、铜缆、无线)
处理时延
    取决于设备性能,和对报文的处理方式(加解密、压缩解压)
队列时延
    取决于队列的繁忙程度以及队列的调度机制
串行化时延
    取决于接口类型(电口、光口)

抖动

网络拥塞导致通过同一传输连接的分组延迟不同,抖动就是最大延迟和最小延迟的时间差,抖动会造成语音和视频像的断续。比如说直播,玩游戏很卡

丢包率

丢包率是指在网络传输过程中的丢失的报文数量占传输总报文的数量的百分比。用TCP可以处理少量的丢包,它有重传机制,但大量丢包会影响传输效率,所以QOS中关注丢包率应控制在一定范围

PHB

每跳行为,四类标准PDB:CS EF AF BE

Qos服务模型

Best Effort:尽力而为服务模型

Best-Effort是最简单,最早的的模型,除了保证网络设备之间的路由可达,不需要部署其他的功能。应用程序可以在任何时候发出任意数量的报文,而且不需要通知网络,网络设备尽最大的努力转发他们,对时延,可靠性没有保证。

在理想状态下,如果有足够的带宽,Best-Effort是最简单的服务模式。而实际上,这种“简单“带来一定的限制。因此,Best-Effort适用于对时延、可靠性等性能要求不高的业务,如FTP、E-Mail等。

可以通过增大网络带宽和升级网络设备来来提高端到端的通信质量

增大网络带宽:可以增大单位时间内传输的数据量,使其按照传统先进先出的方式在单位时间内传输更多的数据,改善网络拥塞问题。

升级网络设备:可以增大数据处理能力,使其按照传统先进先出的方式在单位时间内能够处理更多的数据,改善网络拥塞问题。

Integrated Serverce Model:综合服务模型

IntServ(综合服务模型)网络在发送报文前,会首先通过RSVP信令向网络描述他的流量参数。网络在流量参数范围内预留资源(如带宽,优先级)。在收到确认消息,确定网络已经为该应用程序的报文预留了资源,应用程序才开始发送报文。网络节点需要为每条数据流维护一个状态,并基于这个状态执行相应的QOS状态,来满足对应用程序的承诺。

缺点

1.网路实现难度大,需要端到端每个网络节点都支持IntServ模型,网络中的设备不一定都支持

2.资源利用率低,为每一条数据流预留一条路径,而其他数据流服务不能占用,使得有限的网络资源不能得到充分利用

3.带来额外带宽占用,为了不让这条路径被占用,RSVP会发送大量协议报文进行刷新探测,使得网络负担加重。

Differentiated Services Model:差分服务模型

DIffServ模型中网络中的流量可以被分成不同的类或优先级,当网络出现拥塞时,不同的类按不同的优先级获得不同的优先处理,从而实现差分服务,同一类的业务会聚合一起同一发送,保证相同的延迟、抖动、丢包率等QOS指标

优点

1.不需要预先提出网络资源申请

2.业务分类和标记在边缘节点进行,内部节点只要识别这些表记,然后对其进行相应的资源分配和流量控制。

DS域
    一组采用相同服务提供策略和实现相同PHB的相连DS节点组成
DS节点
    实现区分功能的网络节点
DS边界节点
     负责连接另一个DS域或者连接一个没有DS功能域的节点,负责将进入此域的流量进行分类
 DS内部节点
      连接边界DS和域内其他内部节点,进行简单流分类
信任边界
    DS域的边界,越靠近用户越好,执行复杂流分类,为了避免域内设备都进行复杂流分类,在边界执行复杂流分类后,打上标记值,域内设备根据这个标记值执行简单流分类,不仅避免域内设备负担重,还方便域内进行统一QOS策略的实施。

流量分类和标记:依据一定的匹配规则识别出对象,是有区别地实施服务的前提,通常作用在接口入方向。
令牌桶:使用令牌桶对流量进行评估,是否满足报文转发的条件。
流量监管:对进入设备的特定流量的规格进行监管,通常作用在接口入方向。当流量超出规格时,可以采取限制或惩罚措施,以保护运营商的商业利益和网络资源不受损害。
拥塞避免:过度的拥塞会对网络资源造成损害,拥塞避免监督网络资源的使用情况,当发现拥塞有加剧的趋势时采取主动丢弃报文的策略,通过调整流量来解除网络的过载,通常作用在接口出方向。
拥塞管理:是必须采取的解决资源竞争的措施,将报文放入队列中缓存,并采取某种调度算法安排报文的转发次序,通常作用在接口出方向。
流量整形:一种主动调整流的输出速率的流控措施,是为了使流量适配下游设备可供给的网络资源,避免不必要的报文丢弃和拥塞,通常作用在接口出方向。

QoS实现的相关技术

流分类

依据一定的匹配规则识别出对象。流分类是有区别地实施服务的前提。

简单流分类

根据各报文头部中的优先级字段,来将外部优先级映射成内部优先级。vlan-8021.p,mpls-exp,ip-ip pre/dscp

复杂流分类

根据报文头中的优先级字段,或者SIP,DIP,Sport,Dport,TCP/UDP报文五元组进行分类,然后打上优先级(使用MQC来实现-流分类、流行为、流策略)

流量分类的规则可以按照:

  • IP报文头的信息(如 IP源地址、IP目的地址、协议类型、DSCP/IP-PRE、TCP/UDP 的端口号、TCP同步标志、报文分片的标志等)
  • 二层报文信息(如: 源MAC地址、目的MAC地址、 三层报文的封装类型、 VLAN PRI等)
  • MPLS报文头信息(如EXP、 LSP等)来分类。

标记

对分类的流量打上标签,据此分级别对待不同的流量

本地优先级和报文优先级:

标记是对分类的流量打上不同的标签,据此分级别对待不同的数据,称为优先级标记。根据优先级标记的作用,华为设备可分为设备内部优先级(又称为本地优先级)和报文优先级(又称外部优先级)。设备内部优先级是对进到设备内部的数据报文给予的一个内部优先级标记值,根据该值可在设备内部分配或优化资源分配,如选择队列。

设备内部优先级和报文优先级的关系:

●设备内部优先级是用于内部资源分配和调度使用的值,每个进到设备的报文一定都会得到一个值,该值根据入接口配置的信任或Remark功能而生成。

●报文优先级是报文本身所携带的OoS标记值。两层报文使用802.1p或EXP而三层报文多使用IP Precedence和DSCP。报文在离开设备时,报文优先级可能会被重写,把内部优先级作为报文优先级携带出去。

内部优先级

进到设备内部的数据报文给予一个内部优先级标记值,根据该值可在设备内部分配资源,如选择队列,该值根据接口配置的信任或Remark功能生成。取值范围为0-7,DSCP-LP映射时,根据DSCP前三比特值来选择内部队列。

报文优先级

VLAN

8021.Q头部中的8021.p字段,8021.Q=TPID+PRI(3bits)+CFI+Vlan ID

MPLS

使用Label中的EXP字段,Label=label+EXP(3bits)+s+TTL

IP报文

ipp

TOS=IP-Precedence+D+T+R+C 
    ip-precedence(3bits):优先级字段
    D(1bit): D=1低延时,D=0正常延时
    T(1bit): T=1高吞吐量,T=0正常吞吐
    R(1bit):  R=1高可靠,R=0正常可靠
    C(2bit):  保留未使用

以前使用IP-precedence字段标识优先级(TOS中前三bits,取值范围0-7)标记的种类太少

DSCP

TOS=DSCP+C

DSCP(6bits)-优先级字段,C(2bits)-未使用

DSCP是IPP的扩展,取值范围0-63。

ipv4和IPv6中的TOS区别?
多了20比特的流标签字段,不同的流标签加源地址就可以唯一确定一条流,ipv4需要6元组才能确定一条流,所以在ipv6中设备可以更加高效区分数据流。

DSCP表现形势

数字形式

取值范围为0-63

关键字形式
EF(46)

快速转发,用于提供低延时,低抖动服务,同时需要监管带宽,适用于语音流量,DSCP取值为46,适用于vioce,video。

CS
类选择器,用于DSCP兼容IPP,只用前三比特。取值范围CS0-CS7,CS7(BFD),CS6(路由协议)预留给协议使用。后三个字段为000

 AF
确保转发,满足需要带宽保证的关键业务,AF字段只用了前5bit,前三个比特作为X取值范围1-4(前三个比特只能为001、010、011、100),越大表示转发优先级越大。后面两个bit为Y取值范围1-3,越大表示拥塞时,丢弃的优先级越大。Y为0,AF4表示CS4。对延时抖动要求不高,FTP,file server,sql。
BE(CS0)
DSCP取值范围为0,尽力而为,不作任何服务保证。

优先级映射

比如从IP域进入MPLS域的报文,优先级映射就是从DSCPMPLS EXP

生成内部优先级工具一:信任关系(trust+qos map-table

1.信任报文的802.1p优先级——trust 8021p

对于带VLANTag的报文,设备根据报文携带的802.1p优先级查找优先级映射表,生成内部优先级,确定报文进入的队列,并修改报文的优先级值。

对于不带VLAN Tag的报文,设备将使用端口优先级作为802.1p 优先级,查找优先级映射表,确定报文进入的队列,并可以修改报文的优先级值。建议LAN中使用信任802.1p生成内部优先级。进到设备的802.1p为3的报文,在设备内部使用内部优先级AF31。同理, 802.1p为5的报文。在设备内部分配内部优先级EF。

当报文从出口离开设备时,报文优先级没有被改写。

2.信任的报文的DSCP优先级一一trust dscp

设备按照报文携带的DSCP值查找DSCP优先级映射表,生成内部优先级。默认情况下,报文的DSCP优先级和内部优先级是一一对应的关系,可以使用命令qos map-tab1e dscp-dscp进行修改。

3.信任的报文的exp优先级一一trust exp

设备按照报文携带的exp值查找DSCP优先级映射表,生成内部优先级。eNSP模拟器上无法修改其与内部优先级的对应关系,但是可以在接口上设置信任。

4.设置override参数——trust dscp override和trust 8021p override

配置override与否,不影响内部优先级的生成,但会影响经过设备的报文优先级,报文优先级会被改写成内部优先级。

未配置override关键词时,进入的报文按照指定优先级映射生成内部优先级,但离开时报文优先级并不修改,报文优先级透传。

在AR2的g0/0/1口抓包,发现dscp优先级为af13。

当配置override参数后,发现dscp优先级为af12

配置override属性时,报文按照指定优先级映射后,报文的802.1p值、DSCP值均被修改成映射后的值。

5.端口优先级

每个进入设备的报文都需要内部优先级,如果端口信任802.1p,但报文本身没有对应的Vlan Tag, 此种情况下,会使用到端口优先级。每个端口的默认端口优先级为0,使用规则如下:

端口处于信任802.1p状态时,若收到不带Vlan Tag的报文,设备将根据端口优先级生成内部优先级并转发。

端口处于不信任状态时,即没有配置任何Trust 命令,所有报文都将根据端口优先级进入一个队列,无法实现差分服务。

生成内部优先级工具二:MQC的Remark工具(traffic classifier,traffic behaviortraffic policy)

在报文进入设备时,除配置信任外,接口还有其他方式生成内部优先级,如MQC和CAR等Remark工具,使用这些机制在报文进入设备时生成的QoS标记即是内部优先级,同时也是报文离开设备时的报文优先级。

MQC:模块化QoS命令行接口(优势:可读性强,可移植性强,可编辑能力强)
            分为四步:
            1.流类别  traffic class      抓取特定的流量类别
            2.流行为  traffic behavior   设定流量操作的行为
            3.流策略  traffic policy     将流量和行为进行关联,形成相应的QoS策略
            4.在接口inbound或outbound方向 引用流策略

若接口同时配置信任和其他Remark(出去的流量为remark后的)工具,Remark配置优于信任起作用。

流量监管

对进入路由器的特定流量的规格进行监管。当流量超出规格时,可以采取限制或惩罚措施,以保护运营商的商业利益和网络资源不受损害。

流量监管优点

1.可以实现对不同类别的报文进行限速
2.支持重标记,不需要额外缓冲
3.通过令牌桶技术对流量规格进行评估

流量监管缺点:

1.当链路空闲,造成带宽浪费
2.没有缓冲机制,超出流量会被丢弃,丢包率高,丢弃的流量可能进行重传

流量监管的作用:

在带宽足够/不足时做限速,保证带宽不被滥用,保证其他业务有可用带宽

监管场景

1.ISP对客户流量进行限速,可以在出方向和入方向做,来限制上传和下载的速率(一般在用户边缘或者ISP边缘设备实施)
2.企业网络根据业务分类实现监管
3.上下游链路带宽不匹配,可以使用监管或者整形来避免下游链路拥塞
4.运营商的光端机或者协议转化器可以直接实现硬件级限速

承诺访问速率

承诺访问速率,CAR(Committed Access Rate)利用令牌桶来衡量每个数据报文是超过还是遵守所规定的报文速率。

监管类型

基于接口的流量监管
监管可以在出接口,入接口,整形只能在出接口
interface g0/0/0
qos car outbound cir 8000 pir 10000 green pass yellow pass remark-dscp default red discard

配置MQC实现流量监管
traffic classifier test
if-match dscp cs6
traffic behavior test
car cir 8000 pir 10000 cbs 16000 pbs 20000
traffic policy test
classifier test behavior test
interface g0/0/0
traffic policy test outbound

超过限定速率的报文处理方法

1.直接丢弃或是降低优先级,再将报文转发

2.流量监管

Meter
通过令牌桶机制对网络流量进行度量,向marker输出度量结果
marker
根据度量结果对报文进行染色

action
根据染色结果,进行一些动作:
        pass:对测量结果“符合”的报文继续转发
        remark + pass:对测量“不符合”的报文修改内部优先级后再转发
        discard:对测量“不符合”的报文进行丢弃

流量整形

一种主动调整流的输出速率的流控措施,通常是为了使流量适配下游路由器可供给的网络资源,避免不必要的报文丢弃和拥塞。

流量整形的优缺点

1.可实现对不同报文进行限速
2.缓冲机制可减少带宽浪费,避免重传
3.可能会增加延时

配置整形命令

基于接口流量整形
1.当报文的发送速率超过限制速率时,超出的那部分会进入缓存队列,当缓存队列已满,直接丢弃
2.当令牌桶中的令牌足够时,在均匀的向外发送缓存的报文;

•限制接口发送的所有报文的总速率,是对整个出接口进行流量整形,不区分优先级。

•步骤:在出队的时候,对所有队列的数据包总和进行令牌桶评估:

▫如果数据包总速率符合要求,标记为绿色,并转发。
▫如果数据包总速率超标(即令牌桶中的令牌不足),标记为红色,接口暂停调度,等令牌足够时再继续调度。

基于队列流量整形
1.通过在接口下应用队列模块,可以实现针对各队列的流量整形,接口收到的报文根据优先级映射,进入不同的队列,针对不同的优先级队列设置不同的流量整形参数,可以实现对不同业务的差分服务。

•对接口的队列进行流量整形,区分优先级。

步骤:在出队的时候,不需要整形的报文,直接转发;对于需要进行整形的报文,则先进行令牌桶评估:

▫如果数据包速率符合要求,标记为绿色,并转发。

▫如果数据包速率超标,则当前正在出队的数据包仍然转发出去,同时,将该数据包所在队列的状态改为不可调度,等令牌桶填充了新的令牌时再调度此队列。队列的状态改为不可调度后,该队列允许报文继续入队,但入队满了的时候会丢弃报文。因此,虽然流量整形使超额的数据能够从接口平滑地输出,但并不表示流量整形永远不会丢包。

基于MQC流量整形
(traffic class 、traffic behavior (gts cir )、traffic policy )

基于接口自适应流量整形
 华为特有:用于下游接口速率小于上游接口速率,且上游设备不确定下游接口速率时,通过联动NQA来动态调整上游设备整形速率来适应下游设备速率不确定的情况
基于MQC自适应流量整形
建立自适应模板 rate-range low  high )(traffic class 、traffic behavior (gts 建立的自适应模板 )、traffic policy )

流量整形

1.当报文到来的时候,首先对报文进行分类,使报文进入不同的队列
2. 如果报文进入的队列没有配置队列整形功能,则直接发送该队列的报文,否则进行下一步处理
3. 按用户的设定队列整形速率向令牌桶放置令牌
# 如果令牌桶中有足够的令牌可以用来发送报文,则报文直接被发送,报文被发送的同时,令牌做相应减少
# 如果令牌桶没有足够的令牌,则将报文放入缓存队列;如果缓存队列满了,报文则被丢弃。缓存队列中有报文的时候,会与令牌桶中的令牌数作比较,如果令牌数足够发送报文则转发报文,直到缓存队列中的全部报文被发送完毕为止

华为流量整形技术

 LR(接口限速)
        针对所有流量
        只能基于接口整形,也就是出接口的所有流量
        可以在路由器接口使用,只是用于限速,配置接口速率百分比,必须结合队列才能生效
        在交换机出接口做整形,入接口做监管
 GTS(通用流量整形)
        只针对IP流量,只能用于出方向,只能用于路由器接口
        基于接口
        基于对列
        基于类

令牌桶

单速单桶

CIR:承诺信息速率,单位是kbps,表示向令牌桶中投放令牌的速率

CBS:承诺突发尺寸,单位为byte,用来定义在部分流量超过CIR之前的最大突发流量,即为令牌桶的容量

在单速单桶模式中,系统按照CIR向C桶中投放令牌。(C桶中已有的令牌数使用Tc表示)
令牌投放
1.如果Tc小于CBS,则令牌数增加
2.如果Tc等于CBS,则令牌数不增加
报文转发:报文的大小使用 B 表示
1.Tc>=B,报文标记为绿色并转发,Tc减少B
2.Tc<B,报文标记为红色并丢弃,Tc不减少
华为不支持单数单桶,但是EBS=0;Pir=Cir,相当于单速单桶,不允许流量突发

单桶单速双色标记法,不允许突发流量,只有承诺流量

单速双桶  

EBS:峰值突发尺寸,单位为byte,用来定义每次突发所允许的最大的流量尺寸。

存在两个令牌桶——C桶、E桶    是对报文的大小来适当突发(即针对报文的长度)
系统按照CIR向C桶中投放令牌,当C桶中的令牌装满,如果E桶中的令牌没有装满,则向E桶中继续投放。

   令牌投放
            1.Tc<CBS,Tc增加
            2.Tc=CBS,Te<EBS,Te增加
            3.Tc=CBS,Te=CBS,不增加
    报文转发
            1.B<=Tc,报文被标记为绿色并转发,Tc减少B
            2.Tc<B<=Te,报文被标记为黄色并转发,Tc不减少,Te减少B
            3.Tc<B,Te<B,报文被标记为红色并丢弃,Tc、Te都不减少

双桶单速三色标记法,允许短暂的突发流量

双速双桶

PIR:峰值信息速率,单位为kbps,表示端口允许的突发流量的最大速率,表示向令牌桶中投放令牌的速率,大于CIR。

PBS:峰值突发尺寸,单位为byte,用来定义每次突发所允许的最大的流量尺寸,即为令牌桶的容量,大于CBS。

存在两个令牌桶——C桶、P桶     是对报文的转发速率来进行突发(即报文转发的速度)
令牌投放
当Tp<PBS时,P桶中令牌数增加,否则不增加。
当Tc<CBS时,C桶中令牌数增加,否则不增加
报文转发
1.Tp<B,报文被标记为红色,两个桶都不减少令牌
2.Tc<B<=Tp,报文被标记为黄色,C桶中令牌不减少,P桶中令牌减少B
3.Tc=>B、Tp=>B,报文被标记为绿色,C桶和P桶中的令牌都减少B

▫如果只是为了限制带宽,使用单速单桶。

▫如果在限制带宽的基础上,还要对输入流量的突发情况进行区分,做不同的标记处理,则使用单速双桶。注意:标记为yellow的动作一定要同标记为green的配置的不一样,否则限速效果与单速单桶一样。

▫如果在限制带宽的基础上,还要对输入流量的带宽情况进行区分,区分出带宽是小于CIR还是在CIR~PIR之间,则使用双速双桶。注意:标记为yellow的动作也要同标记为green的动作配置得不一样,否则限速效果与单速单桶一样。

拥塞管理

网络拥塞时必须采取的解决资源竞争的措施。通常是将报文放入队列中缓存,并采取某种调度算法安排报文的转发次序

硬件队列未满,报文进入硬件队列,并采用FIFO,硬件队列满了,发生拥塞时,进入软件队列,分类并被调度。

硬件队列

该队列始终是FIFO调度,硬件队列未满(未拥塞),不会进入软件队列。

软件队列

工作机制

分类机制
    报文进入到缓存时,先要进行分类

插入机制
    如果缓存中的队列未满,则继续对报文进行分类;如果满了进行尾丢弃

调度机制

FIFO
先进先出,不会引入额外延迟,延迟只与队列长度有关,不提供任何差分服务

PQ
更高优先级队列为空时,才会调度低优先级队列,PQ用于占用带宽小,低延时,低抖动业务。

RR
 轮询调度,对每个队列进行轮询调度,跳过队列为空的队列·,剩余带宽能被其他队列平均分配。单队列还是先进先出。从7号队列开始

WRR
在进行WRR调度时,设备根据每个队列的权值进行轮循调度。一轮发送一个数据包,调度一轮 权值减一权值减到零的队列不参加调度,当所有队列的权限减到0时,开始下一轮的调度。适用于对带宽有要求,对延时没要求的业务 。从7号队列开始

特点:

1.权重小的,延时很大,很久得不到轮询。
2.以报文为单位,导致每个队列没有固定带宽,同等调度机会下大尺寸获得的带宽要大于小尺寸
3.每个队列都能得到带宽,不会饿死

DRR
差额轮询调度,解决了WRR只关心报文,不关心长度的问题。Deficit表示带宽赤字,初始值为0,每次调度前,系统按权重分配带宽,计算Deficit值,队列的Deficit值小于0,就不参与本轮调度。

WFQ
与FQ相比加了优先权的考虑。FQ:不同的队列获得公平的调度机会,每个队列获得的带宽一样,不同队列同时存在多个长报文和短报文,让短报文优先获得调度;WFQ使高优先权报文获得优先调度机会多于低优先权报文,WFQ调度在报文入队列时,先进行分类。

按流的会话信息分类

按TCP/UDP+Sport+Dport+SIP+DIP+TOS优先级,六元组进行Hash运算,结果一样的则认为是同一个流,进入同一个队列。WFQ按流的优先级(precedence)来分配每个流应占有带宽。华为WFQ根据会话信息分类分配的队列有256个。

假设有5个流,A流优先级=5,B流优先级=3,C流优先级=5,D流优先级=2,E流优先级=0
由于5个流不一样,分配到5个不同的队列(流越多,产生队列越多),
每个流优先级+1(防止优先级为0的队列带宽比例为0),A=6,B=4,C=6,D=3,E=1,再算出5个流之和:6+4+6+3+1=20
那么 A流分到的带宽比例=6/20
        B流分到的带宽比例=4/20
        C流分到的带宽比例=6/20
        D流分到的带宽比例=3/20
         E流分到的带宽比例=1/20

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

PQ+WFQ/WRR
PQ队列先调度,调度完再进行WFQ/WRR调度。重要的协议报文以及有低延时需求的业务报文应放入需要进行PQ调度的队列中,得到优先调度的机会,其他报文放入以WFQ方式调度的各队列中。

CBQ
为用户提供定义类的支持,CBQ首先根据IP优先级或DSCP优先级,输入接口,IP报文的5元组等规则进行分类,然后让不同的类别报文进入不同队列,不匹配任何类别的报文进入系统定义的缺省。队列数量不依赖接口默认的8个队列,而是可以手动配置。配置CBQ依赖于MQC,MQC一定是将traffic policy用在outbound上。
CBQ支持的四种队列

EF队列
满足低延时业务,例如语音等,高优先级队列。若EF队列有报文优先获得调度,空闲时可以抢占AF,BE的空闲带宽拥塞时,EF队列报文优先发送。但是可以设置带宽限速,防止低优先级队列饿死

AF队列
满足带宽需要保证的业务,队列满了执行RED,可以配置WRED,设置带宽参数用于保证带宽。队列满了执行RED,没满,按权重分配空闲带宽。

BE队列
满足不需要严格QOS保证的业务的尽力发送业务,当报文不匹配用户设定的所有类别时,默认进入BE,也可以配置默认进入AF。BE队列使用WFQ调度,基于流的会话信息分类,满了执行RED,也可以配置为WRED。

LLQ队列
比EF更好的低延时业务,不论接口是否拥塞,流量带宽都不会超过设置的带宽,可以用于限速

缓存队列

拥塞时,数据先进入队列,经过队列调度,调度过程中,令牌数不够,超出接口速率的那部分放入缓存队列。当令牌数够的时候,在调度出去。

拥塞避免

产生原因

速率不匹配,报文从高速链路进入低速链路
汇聚问题,报文从多个接口同时进入设备,由一个没有足够带宽接口转发出去

过度的拥塞会对网络资源造成损害。拥塞避免监督网络资源的使用情况,当发现拥塞有加剧的趋势时采取主动丢弃报文的策略,通过调整流量来解除网络的过载。

避免拥塞的方法

传统方法(尾丢弃)
当软件队列满了时,会把后续进入的报文丢弃

RED(早期随机检测)
为了避免TCP全局同步,在队列未满时,先随机丢弃一部分报文,通过预先降低一部份TCP连接的传输速率,来延缓TCP全局同步到来,也就是减少了TCP全局同步发生的频率

WRED(加权随机检测)
对不同IPP/DSCP优先级的报文进行不同的丢弃行为,通过设置上下门限以及丢包率,使之有区分的丢弃流量。达到最低门限才开始丢包

尾丢弃的影响

TCP全局同步
TCP协议具有流控机制,即滑动窗口机制
 两台主机进行TCP的三次握手时,会携带一个win=3字段,说明自身只有3个报文的缓存容量,2台主机就会协商好每次发TCP报文数量=3个。当A主机发送3个报文给B主机,B主机将一个报文将给上层协议处理,此时缓存只有1个报文的缓存容量,B主机回复A主机,WIN=1字段,那么下次主机A就会只发1个TCP报文。

TCP协议具有链路感知能力,通过重传机制来感知链路的好坏
  如果有重传,则降低win字段的大小
  如果没有重传,增加win字段的大小
  导致带宽利用率不高,波动幅度大

TCP饿死
当软件队列装满UDP的报文,TCP报文由于没有进入到队列而被尾丢弃;服务器没有收到确认报文仍然需要TCP重传报文,还是由于没有进入到队列而被尾丢弃。服务器的窗口机制会降低win大小,重新进行TCP重传,但是由于UDP报文不会减少,就算服务器再降低win大小重传TCP报文,也还是会被尾丢弃。所以概率上TCP报文进入到队列的几率很低,导致TCP转发的机会很低。

尾丢弃无区别丢弃流量,无法保证关键业务不被丢弃

解决方法
RED只能解决传统方法引起TCP全局同步;
WRED可以解决:

1. 引起TCP全局同步

2.TCP饿死的现象

3.无差别的尾丢弃

拥塞管理是拥塞发生时(硬件队列满),采用软件队列进行调度,拥塞避免是在拥塞发生时或队列有拥塞加剧时主动丢弃报文。拥塞管理是拥塞发生时(硬件队列满),采用软件队列进行调度

华为数通笔记-QOS相关推荐

  1. 华为数通笔记-ISIS高级特性

    ISIS收敛步骤 IGP的收敛可以总体描述为如下状态D+O+F+SPT+RIB+DD RIB状态和DD状态一般与路由器的硬件有关,如主CPU.线卡CPU.内存.网络处理器有关,这两个状态人为无法对收敛 ...

  2. 华为数通笔记-文件传输协议FTP

    文件传输协议 主机之间传输文件是IP网络的一个重要功能,如今人们可以方便地使用网页.邮箱进行文件传输. 然而在互联网早期,Web(World Wide Web,万维网)还未出现,操作系统使用命令行的时 ...

  3. 华为数通笔记-IPV6基础

    IPv6概述 IPv4现状 2011年2月3日,IANA(Internet Assigned Numbers Authority,因特网地址分配组织)宣布将其最后的468万个IPv4地址平均分配到全球 ...

  4. 华为数通笔记-Smart Link和Monitor Link

    Smart Link和Monitor Link简介 定义 Smart Link,又叫做备份链路.一个Smart Link由两个接口组成,其中一个接口作为另一个的备份.Smart Link常用于双上行组 ...

  5. 华为数通笔记-MPLS

    简介 多协议标签转换MPLS,是一种ip骨干网技术,将第三层路由技术和二层交换技术结合,充分发挥了ip路由的灵活性和二层交换的便捷性.MPLS并不是一种业务或应用,而是一种隧道技术.这种技术不仅支持多 ...

  6. 华为数通笔记-网络参考模型及数据通信过程

    OSI参考模型 7. 应用层 对应用程序提供接口. 6. 表示层 进行数据格式的转换,以确保一个系统生成的应用层数据能够被另外一个系统的应用层所识别和理解. 5. 会话层 在通信双方之间建立.管理和终 ...

  7. 华为数通笔记-OSPF基础

    OSPF简介 定义 开放式最短路径优先OSPF(Open Shortest Path First)是IETF组织开发的一个基于链路状态的内部网关协议(Interior Gateway Protocol ...

  8. 华为数通笔记-IP简介及子网划分

    在剥掉帧的头部和尾部之前,网络设备需要根据帧头中Type字段确定下一步将帧发送到哪个上层协议进行处理. 帧头部Type字段表示该帧需要上送到IP协议进行处理. IP:Internet Protocol ...

  9. 华为数通笔记-PPP

    PPP简介 通常,同步传输是以数据块为传输单位.每个数据块的头部和尾部都要附加一个特殊的字符或比特序列,标记一个数据块的开始和结束,以固定时钟节拍发送数据信号. 通常,异步传输是以字符为传输单位,每个 ...

  10. 华为数通笔记-MPLS BGP跨域

    简介 一般MPLS VPN体系结构都是在一个自治系统内运行,任何VPN信息只是在一个AS内按需扩散.因此为了支持不同运营商之间的VPN路由交换,就需要扩展现有的协议和修改体系框架,提供一个不同与基本的 ...

最新文章

  1. oracle数据定义语句,oracle(sql)基础篇系列(3)——数据维护语句、数据定义语句、伪列...
  2. Python绘图 二维、三维
  3. Segment-段(SAP)
  4. 简述旋转编码器的工作原理_什么是编码器,编码器工作原理介绍
  5. php 直播服务器搭建,基于Nginx搭建RTMP/HLS视频直播服务器
  6. 计算机结构介绍,计算机系统结构介绍.pdf
  7. 合肥注册公司(各区注册地点说明)
  8. [Ext JS 4] contentEL,renderTo, applyTo 释义与区别
  9. 《TensorFlow 2.0深度学习算法实战教材》学习笔记(五、神经网络)
  10. shell 命令进阶(三)
  11. java用hashmap_Java集合之HashMap的用法
  12. JavaScript全部替换 - js replaceAll()
  13. Yii2汉字转拼音类
  14. xamp环境搭建Pikachu实验环境搭建
  15. 客户成功故事 | 深圳赛意法:数据分析,为企业可持续发展注入源动力
  16. 【互联网大厂机试真题 - 华为】九宫格
  17. 重谈联想5G编码投票事件
  18. 在Github新建项目
  19. Linux - 微软无线鼠标滚动过快问题
  20. flink教程-聊聊 flink 1.11 中新的水印策略

热门文章

  1. C语言自定义类型——位段
  2. javaweb框架学习开端
  3. 目标检测---数据集格式转化及训练集和验证集划分
  4. 用matlab画相频曲线_matlab 幅频特性 相频特性代码,图片
  5. 安装程序遇到错误0x80240037
  6. oracle 账号 jdk下载登录
  7. 看拉扎维《模拟CMOS集成电路设计》的一些总结和思考(十三)——非线性与不匹配
  8. 每天一个PS技巧(原理+实践)——简单背景的抠图与毛发抠图
  9. PDF文件如何删除空白页?告诉你两种好方法
  10. oracle sql索引查询,Oracle查询数据库的索引字段以及查询用索引