加载中...

QoS

一、QoS简介

1.1 QoS使用场景

QoS(Quality of Service,服务质量) 是网络中对数据流进行优先级管理和资源控制的机制,本文使用DIffServ模型中网络中的流量可以被分成不同的类或优先级,当网络出现拥塞时,不同的类按不同的优先级获得不同的优先处理,从而实现差分服务,同一类的业务会聚合一起同一发送,保证相同的延迟、抖动、丢包率等QOS指标.

image-20250311032541183

1.2 普通QoS配置工具

​ 普通命令行的配置让QOS简单,但是配置量较大且重复

1.3 MQC配置工具

​ 模块化QoS命令行接口MQC(Modular QoS Command-Line Interface)将具有某类共同特征的报文划分为一类,并为同一类报文提供相同的服务,也可以对不同类的报文提供不同的服务。随着网络中QoS业务的不断丰富,在网络规划时若要实现对不同流量(如不同业务或不同用户)的差分服务,会使部署比较复杂。通过配置MQC,用户可以更加便捷地按需对网络中的流量提供不同的服务。

对比维度 普通QoS配置 MQC(模块化QoS配置)
配置结构 直接在接口/全局下配置独立QoS功能 分模块(分类+行为+策略)组合配置
灵活性 低(单功能配置) 高(多条件组合)
复杂场景适用性 简单场景(如单一限速) 复杂场景(多业务差异化调度)
复用性 配置无法复用 策略可在多接口复用
可扩展性 扩展需逐条修改 模块化扩展(新增分类/行为不影响现有配置)

二、分类与标记

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

[!NOTE]

对于不同的外部流量,映射到内部的不同优先级,并且伴随着颜色优先级(Color)来进行不同的处理。

2.1 简单流分类

简单流分类通过外部报文Tag来进行分类后标记

image-20250311034506139

2.1.1 外部优先级

802.1q

image-20250311034651295

MPLS

image-20250311034807943

IP

image-20250311034941691

2.1.2 内部优先级

内部优先级决定了报文在设备内部所属的队列类型

Color决定了队列丢弃概率

十进制 二进制 IPP(旧标准) DSCP类别 DSCP:value值 PHB标准 华为内部优先级
(Service class)
Class Selector(兼容IPP)
56 111 7(协议) CS7 CS7
48 110 6(协议) CS6 CS6
40 101 5(语音) CS5 101110 EF:促进转发(优先转发) EF
32 100 4(视频) CS4 100010低丢弃
100100中丢弃
100110高丢弃
AF4
AF41
AF42
AF43
AF4
AF41
AF42
AF43
24 011 3(数据) CS3 011010低丢弃
011100中丢弃
011110高丢弃
AF3
AF31
AF32
AF33
AF3
AF31
AF32
AF33
16 010 2(数据) CS2 010010低丢弃
010100中丢弃
010110高丢弃
AF2
AF21
AF22
AF23
AF2
AF21
AF22
AF23
8 001 1(数据) CS1 001010低丢弃
001100中丢弃
001110高丢弃
AF1
AF11
AF12
AF13
AF1
AF11
AF12
AF13
0 000 0(默认) Default (CS0) 0 EF

2.2 复杂流分类

image-20250311043430852

由五元组(源地址、源端口号、协议号码、目的地址、目的端口号)对报文进行精细的分类,再通过MQC工具进行标记

二、流量限速

流量限技术分为,流量监管和流量整形,都是通过令牌桶实现

2.1 令牌桶

2.1.1 单速单桶双色

image-20250311043752001

CBS:Committed burst size:承诺突发值

​ 表示向令牌桶中投放令牌的速率 Byte字节为单位

T:周期

​ 一个周期往桶里注入令牌

CIR:committed information rate:承诺信息速率

令牌桶的容量 单位bps

2.1.2 双桶单速三色

image-20250311044410123

CBS:Committed burst size:承诺突发值

​ 表示向令牌桶中投放令牌的速率 Byte字节为单位

T:周期

​ 一个周期往桶里注入令牌

CIR:committed information rate:承诺信息速率

令牌桶的容量 单位bps

EBS:峰值突发尺寸,

​ 用来定义每次突发所允许的最大的流量尺寸 单位bps

2.1.3 双桶双速三色

image-20250311044538045

CBS:Committed burst size:承诺突发值

​ 表示向令牌桶中投放令牌的速率 Byte字节为单位

T:周期

​ 一个周期往桶里注入令牌

CIR:committed information rate:承诺信息速率

令牌桶的容量 单位bps

PBS:峰值突发尺寸,

​ 用来定义每次突发所允许的最大的流量尺寸,令牌桶的容量 单位bps

PIR:峰值信息速率

​ 表示端口允许的突发流量的最大速率,表示向令牌桶中投放令牌的速率,大于CIR,Byte字节为单位

2.2 流量监管(CAR)

image-20250311045244273

# 可以配置在出接口

# 简单配置

interface g0/0/0
qos car outbound cir 8000 pir 10000 green pass yellow pass  
remark-dscp default red discard  # 超速流量标记为Default并丢弃

# 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

2.3 流量整形

image-20250311045704896

可以针对某个队列或整个接口,配置流量整形,将上游不规整的流量进行削峰填谷, 只针对IP流量,只能用于出方向,只能用于路由器接口

三、拥塞避免

3.1 产生原因

速率不匹配,报文从高速链路进入低速链路

汇聚问题,报文从多个接口同时进入设备,由一个没有足够带宽接口转发出去

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

3.2 避免拥塞(丢弃)方法

3.2.1 尾丢弃

当软件队列满了时,会把后续进入的报文丢弃

[!IMPORTANT]

尾丢弃产生以下情况

TCP全局同步

TCP协议具有流控机制,即滑动窗口机制

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

TCP饿死

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

3.2.2 RED(早期随机检测)

​ 为了避免TCP全局同步,在队列未满时,先随机丢弃一部分报文,通过预先降低一部份TCP连接的传输速率,来延缓TCP全局同步到来,也就是减少了TCP全局同步发生的频率 RED只能解决传统方法引起TCP全局同步

3.2.3 WRED(早期随机检测)

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

WRED可以解决,引起TCP全局同步,TCP饿死的现象,无差别的尾丢弃

# 配置DSCP的WRED
    drop-profile WRED
    wred dscp
      dscp af41 low-limit 99 high-limit 100 discard-percentage 1
      dscp af42 low-limit 50 high-limit 90 discard-percentage 5
      dscp af43 low-limit 10 high-limit 50 discard-percentage 10

四、拥塞管理

4.1 产生原因

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

4.2 队列分类

4.2.1 硬件队列

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

FIFO队列

image-20250311051755299

4.2.2 软件队列

QoS实现之队列调度与报文丢弃

posted @ 2025-03-18 19:38  江寒雨  阅读(259)  评论(0)    收藏  举报