华为HCIE课堂笔记第十六章 Qos基本原理

第十六章 Qos基本原理

16.1 Qos背景

Qos:在带宽有限的情况下,为不同的业务需求,提供不同的网络的服务质量。

影响Qos的不同的因素:

  1. 带宽,链路在单位时间可以传输数据的bit数量,单位bps
    1. 一般上传下载速度为带宽/8,即100M带宽显示速度理论值12.5MB/s
  2. 延迟:报文从一端发出,从另一端接受到经过的时间
    1. 处理时间:设备对报文查表等处理的时间
    2. 队列时延:报文在出口队列中等待发送的时间
    3. 串行化时延:报文形成bit流,从接口发出时,第一个bit到最后bit发完总共需要的时间。
    4. 传输时延:报文在介质上传输的时间。
  3. 丢包率:数据包转发过程中出现丢弃的概率
  4. 抖动:网络传输数据包,接收端接收报文存在顺序不一致的情况,变化较大,则认为抖动比较明显。
  5. 可用性:网络是否可用。

16.2 Qos技术

16.2.1 服务模型

  1. 尽力而为模型:数据转发过程中没有服务质量相关的部署,所有的报文按照先后顺序进行转发,不提供质量保障。
  2. 综合服务模型:
    1. 应用转发数据包的之前需要申请带宽预留,申请的带宽预留除自己可用,其他应用不能使用
    2. 部署非常复杂
  3. 区分服务模型:Qos,通过对报文进行分类,对每一类的报文进行标记,根据标记实现对不同类的报文提供不同的服务质量,时延,丢包率,优先转发。
    1. DS边缘节点:区分服务域边缘节点,区分服务域有一系列Qos设备组成
    2. 实现方式:
      1. DS边缘设备的入接口进行流量分类,给不同类的流量打上不同的标记。
      2. DS节点的入接口信任该标记类型,后续DS域中按照该标记为流量提供服务质量。

16.2.2 Qos的常用技术

  1. 限速技术
  2. 拥塞管理技术
  3. 拥塞避免技术

16.3 流量分类

16.3.1 简单流分类

  1. 概念:

外部优先级:指报文携带的优先级值

内部优先级:报文在设备内的服务等级

  1. 两个优先级,可以通过修改映射表进行调整,不同的外部优先级报文,可以指定进入设备后的内部优先级
  2. 接口队列:传统Qos接口存在8个队列,内部优先级与队列编号一一映射,内部优先级7的报文对应队列7号,不可以修改改映射关系。
  1. 外部优先级:报文中携带的标记
    1. VLAN 字段中的PRI:取值范围是0-7,名字802.1p
    2. MPLS 头部中的EXP:取值范围是0-7
    3. IP头部中的Tos字段(8bit):两种不互斥的
      1. 标记方式1:IP-P,占用3bit,表示范围0-7,高3bit位
      2. 标记方式2:DSCP值,占用6bit,表示范围0-63,高6bit位
  1. DSCP值标记:数字和名字表示方式
    1. 定义了4个PHB(每一跳动作):CS(类选择器),EF(快速转发),AF(确保转发),BE(尽力而为)
    2. AF11、AF12、AF13、AF21到AF43,AF对应的DSCP值的映射关系是AFXY值=DSCP值8x+2y
    3. CSx值=DSCP值(8x)
  2. 总结:简单流分类是按照报文已有的标记对报文进行Qos处理

16.3.2 复杂流分类

在DS边缘设备的入方向上,通过数据报文的五元组,采用MQC模块配置,实现对报文的重标记,或者其他的Qos处理。后续DS域中的节点可以根据重标记后的报文标记值进行简单流分类。

为什么没有EXP-DSCP

16.4 拥塞管理

拥塞管理:网络发生拥塞的时候,对流进行管理和控制,采用队列技术。

16.4.1 队列技术

  1. 队列技术:通过一定的调度算法,从队列中提取数据报文给出接口进行转发
    1. Qos Q-profile 传统的Qos工具,对应的下行出口存在8个队列(0-7号队列)
    2. CBQ队列,华为设备支持的自行开发的队列,4个队列(AF、EF/LLQ、BE)
  2. 队列调度算法:
    1. FIFO:先进先出算法,在队列内,收到的报文,按照谁先到,谁先出的原则,发送
    2. SP:严格优先级算法,在队列间进行报文调度的时候,按照队列的优先级严格调度。如:7,6,5三个队列采用SP算法,则优先调度优先级最高的7号队列,7号队列发送完毕在调度6队列,6号发送完毕调度5号队列,如果5号队列正在调度,7号队列有报文进入,则重新调度7号队列。时时刻刻调度最高优先级的队列。
      1. 缺点:低优先级队列可能出现"饿死"现象,不能得到及时调度。
    3. WFQ:加权公平队列,在队列间的报文调度的时候,按照队列配置的加权值,进行报文调度,权值越大,队列调度的机会越大(占用的带宽就越大)。
      1. 缺点:低延时的报文不能保证低延迟(绝对优先级的报文得立即调度)
    4. 调度算法组合:SP+WFQ,6,7号队列是SP算法,0-5号是WFQ算法
      1. 此时6,7号队列拥有绝对优先级的调度机会,6,7号队列中不存在报文的时候,才会按照WFQ算法调度剩余的0-5号队列。
        1. SP算法的队列中经常给到占用带宽不大(绝对优先级,会抢占其他队列带宽),要求延时小(立即调度,减少时延)的业务使用。
        2. WFQ算法的队列用途:保证业务带宽,给到业务带宽比较大的业务使用。
  3. 调度方式:传统Qos接口的软件队列0-8队列,可以加入到以下三种队列(组)中,进行Qos的报文调度。
    1. PQ队列(组),采用的SP调度算法,PQ队列中可以存在多个软件队列,按照严格优先级进行调度。
    2. WFQ队列(组),采用WRR、WDRR、WFQ算法(都是存在加权值,按照加权值分配带宽),WFQ队列中可以存在多个软件队列,多个软件对垒按照WFQ算法进行调度。
    3. LPQ队列(组),采用SP调度算法,LPQ队列也可以存在多个软件队列,按照SP算法,调度组内不同队列中的报文。
    4. PQ和LPQ都是采用SP算法,不同点是LPQ拥塞时不能抢占带宽。
    5. PQ、WFQ、LPQ队列(组)之间的调度算法采用SP算法:先调度PQ队列,再调度WFQ队列、最后调度LPQ
      1. PQ多用于将语音等低延迟,低带宽的流量加入到该队列(组)中
      2. WFQ多使用与需要带宽保障,确保转发的的业务报文加入到该队列(组)中
      3. LPQ队列用于BE的流量加入,当PQ和WFQ带宽分配存在空闲带宽,则交给LPQ调度BE的流量。

16.4.2 拥塞管理配置

  1. 基于队列技术的拥塞管理(传统的Qos)
    1. DS边缘设备配置复杂流分类对流量进行分类并重标记
    2. DS设备根据DSCP进行Qos部署(简单流分类)
      1. 入接口需要配置信任DSCP值,对应的DSCP值的报文才会进入到对应LP的队列中。
      2. 如果需要调整报文进入到对应的队列,则需要调整DSCP值与本地优先级的映射关系。
    3. DS设备上配置Qos-Queue-profile工具,将对应的队列加入到PQ、WFQ、LPQ中,WFQ队列需要配置权重值分摊带宽,在出接口上调用该工具。实现报文的差分服务
  2. 基于MQC的拥塞管理
    1. 队列:
      1. EF/LLQ队列:适用于语音等低延迟低带宽要求的流分类。LLQ比EF具有跟小的带宽,当链路拥塞的时候,EF可以抢占空闲带宽。该队列优先级最高,需要配置最大的指定带宽。类似传统Qos 的PQ队列
      2. AF队列:适用于大带宽保证转发的业务。AF队列中可以包含多个类,每个类中可以配置指定的最小带宽,保证业务转发的带宽。
      3. BE队列:不满足所有其他的分类的流量归于该默认类,可以将默认类设置为AF队列,也可以将默认的BE队列。BE队列采用WFQ调度算法。
    2. 配置:
      1. 流分类对报文进行分类,流行为指定分类后的报文的队列,流策略绑定流分类和流行为
      2. 参考命令:带宽设置有两种,绝对值和空闲带宽百分比

traffic behavior OA

queue llq bandwidth 30 //在流行为视图下,配置与该行为绑定的流量分类加入到LLQ队列(EF),设置最大带宽30kbit/s

traffic behavior FTP

queue af bandwidth pct 10 //在流行为视图下,配置与该行为绑定的流量分类加入到AF队列中,设置最小带宽保障业务带宽需求。

traffic policy Qos

classifier default-class behavior def //在流策略的视图下,设置默认的分类(系统原有匹配所有缺省类)与行为绑定(类名字def是用户自定义,且设置队列为WFQ(BE队列))

16.5 拥塞避免

16.5.1 拥塞产生的原因:

  1. 带宽不匹配,发送报文方的带宽,链路的带宽减小,导致出接口无法及时发送高速接受到的报文。
  2. 接口带宽已知,但是流量都汇聚到一个接口发出(内网出口),收到的报文的数量所需带宽要大于出接口的带宽,

16.5.2 拥塞产生后的影响

  1. 丢弃策略:
    1. 尾丢弃:如果没有配置早期随机检测,则当网络出现拥塞,队列缓存已满,则接收的报文将在进入队列前全部丢弃。
      1. TCP全局同步:当拥塞发生,TCP所有的连接,将同时降低滑动窗口字段的值,控制TCP的传输速度,网络不在拥塞,TCP连接进入慢启动过程,逐步提高TCP连接的报文传输速度,循环往复。该过程中,会造成TCP的所有连接传输报文的速度同步升高,同步降低,造成链路资源浪费。
      2. TCP连接"饿死"现象:拥塞发生TCP降低连接的速度,此时UDP报文没有传输速度控制机制,UDP则利用TCP让出来带宽,再次造成网络拥塞,TCP会再一次降低连接速度,UDP再次占用,循环往复,造成TCP连接"饿死"现象。
      3. 无差别丢弃:超出队列缓存的报文进行无差别丢弃,不区分报文的优先级。
    2. RED:当网络趋向于拥塞的时候,可以使用RED(早期随机检测)提前丢弃报文,延缓网络出现拥塞
      1. 队列长度到达低门限的时候,开始随机丢弃报文,到达高门限,则执行尾丢弃,从而延缓了TCP的全局同步(随机丢弃的报文中,属于不同的TCP连接,TCP连接的速度不会同时到达最大)
    3. WRED:根据报文的优先级,在拥塞发生之前,提前对报文进行有差别的丢弃。
      1. 按照报文优先级或者队列优先级,分别设置低门限,高门限,某队列长度到达低门限,则开始丢弃。高优先级报文(队列)低门限设置的更高,使得高优先级报文晚于低优先级报文丢弃的时间。避免TCP同步
  2. 拥塞避免配置方式:两种
    1. 基于Qos丢弃模版配置
      1. 参考命令见PPT
    2. 基于MQC配置
      1. 参考命令见PPT

16.6 限速

16.6.1 令牌桶技术

  1. 单桶单速双色标记法:C桶(单桶)
    1. 概念:
      1. CIR:承诺信息速率,向令牌桶中按照该速率放置令牌,单位Kbps
      2. CBS:报文的突发尺寸,允许报文的转发时的突发长度尺寸,表示令牌桶的尺寸,令牌桶中初始的令牌数量为该CBS值,即桶的容量。
    2. 工作机制:
      1. Tc值:表示令牌桶中现有的令牌数量,初始情况(没有发送报文之前)Tc值=CBS(桶内令牌是满的)
      2. B值:代表要转发的报文的长度尺寸
      3. 工作机制:
        1. 按照CIR匀速的速度持续向令牌桶中放置令牌,桶中令牌数量超出CBS,则溢出(Tc值不能大于CBS)。
        2. 要转发报文之前查看报文的长度B,判断B是否小于Tc值
          1. 如果B<Tc值,则将报文标记为绿色转发,且Tc值(桶内剩余的令牌数)减少B
          2. 如果B>Tc值,则报文标记为红色,丢弃,不转发。桶内的令牌不减少。
  2. 双桶单速三色标记法:
    1. 两个桶:C桶、E桶
    2. 三种颜色标记报文:绿黄红
    3. 概念:CBS和EBS关注的时数据流的大小
      1. CBS:与单桶单速相同,C桶的容量(令牌最大数量)承诺突发尺寸。单位Byte
      2. EBS:E桶的容量(令牌最大数量),峰值突发尺寸,单位Byte
      3. CIR:承诺信息速率,关注的流量发送的承诺速率。单位Kbps
    4. 工作机制
      1. Tc=C桶中现有的令牌数量,初始情况,Tc=CBS
      2. Te=E桶中的现有令牌数量,初始情况,Te=EBS
      3. 工作机制:
        1. 以CIR的速率持续向C桶中投放令牌,当C桶的令牌数量达到CBS,溢出,溢出令牌放入到E桶中,当E桶的令牌数量溢出,则丢弃。
        2. 收到报文,查看报文的大小,值为B:比较B与桶内令牌数量:
          1. 如果B<Tc,则将报文标记为绿色,并发送,C桶剩余容量Tc减少B
          2. 如果B>Tc,(C桶中剩余令牌不够),此时比较B与Te大小(查看E桶中是否有足够令牌):
            1. 如果B<Te,则报文标记为黄色,默认发送,并将E桶中令牌数Te减少B
            2. 如果B>Te,则报文标记为红色,丢弃报文,E桶中令牌数量Te不减少。
  3. 双桶双速三色标记法
    1. 双桶:P桶、C桶
    2. 双速:PIR、CIR
    3. 颜色:绿黄红
    4. 概念:
      1. PBS:峰值突发尺寸,P桶的容量 单位Byte
      2. CBS:承诺突发尺寸,C桶的容量
      3. PIR:峰值突发速率 单位Kbps
      4. CIR:承诺信息速率 CIR<PIR
    5. 工作机制
      1. Tp=P桶中的剩余的令牌数量,初始Tp=PBS
      2. Tc=C同种剩余的令牌数量,初始Tc=CBS,CBS<PBS
      3. 工作机制:
        1. 放置令牌:以PIR的速率向P桶中持续放置令牌,超出PBS令牌会溢出;以CIR的速率向C桶中持续放置令牌,超出CBS令牌会溢出。
        2. 收到报文后,检查流量报文的大小,值为B,首先比较B与P桶的剩余令牌数Tp
          1. 如果B>Tp,报文标记为红色,Tp值不减少
          2. 如果B<Tp,继续比较B与Tc的值大小:
            1. B>Tc,则报文被标记为黄色,Tp减少B
            2. B<Tc,则报文标记为绿色,Tp和Tc都减少B
  4. 三种方式的区别
    1. 单桶单速双色标记法:不关注突发速率,仅关注突发流量尺寸 C桶
    2. 双桶单速三色标记法:关注峰值突发尺寸,不关注突发速率 C桶 E桶
    3. 双桶双色三色标记法:即关注报文的突发峰值尺寸,也关注突发的峰值速率。 P桶 C桶

16.6.2 流量监管

使用令牌桶技术实现,在设备的入口和出口方向实现限速,超出速率部分的报文直接丢弃。削峰不填谷

两种实现方式:

  1. 基于接口进行限速
    1. 参考命令:Qos car cir xxx //可以使用所有的令牌桶技术
  2. 基于MQC对流分类进行限速
    1. 参考命令:
      1. Traffic behavior A
      2. Car cir xxxx //流行为视图下设置对绑定流分类中的数据流进行限速,可以使用所有令牌桶技术

16.6.3 流量整形

使用令牌桶技术和缓存技术,在设备的出方向实现限速,超出速率部分的报文先缓存,等待流量下降后从缓存中提取并转发。削峰填谷。

三种实现方式:只能使用单桶单速技术。

  1. 基于接口配置:对接口内出方向上所有通过的流量生效,不区分优先级
  2. 基于队列配置:对单个队列中的流量生效,区分优先级的。

基于MQC配置方式:正对流量的流分类生效,在流行为中配置。

相关推荐
Leinwin1 小时前
OpenClaw 多 Agent 协作框架的并发限制与企业化规避方案痛点直击
java·运维·数据库
2401_865382501 小时前
信息化项目运维与运营的区别
运维·运营·信息化项目·政务信息化
漠北的哈士奇1 小时前
VMware Workstation导入ova文件时出现闪退但是没有报错信息
运维·vmware·虚拟机·闪退·ova
如意.7591 小时前
【Linux开发工具实战】Git、GDB与CGDB从入门到精通
linux·运维·git
运维小欣2 小时前
智能体选型实战指南
运维·人工智能
yy55272 小时前
Nginx 性能优化与监控
运维·nginx·性能优化
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ3 小时前
Linux 查询某进程文件所在路径 命令
linux·运维·服务器
左左右右左右摇晃3 小时前
计算机网络笔记整理
笔记·计算机网络
不吃西红柿的853 小时前
[职场] 内容运营求职简历范文 #笔记#职场发展
笔记·职场和发展·内容运营
似水明俊德4 小时前
02-C#.Net-反射-学习笔记
开发语言·笔记·学习·c#·.net