目录
[一、QoS 基础](#一、QoS 基础)
[常见业务的 QoS 需求](#常见业务的 QoS 需求)
[QoS 模型对比](#QoS 模型对比)
[DiffServ 模型核心组件](#DiffServ 模型核心组件)
[DSCP 关键分类](#DSCP 关键分类)
[核心配置框架:MQC(模块化 QoS 命令行)](#核心配置框架:MQC(模块化 QoS 命令行))
[MQC 配置步骤(华为设备)](#MQC 配置步骤(华为设备))
[配置案例:标记 VoIP 流量为 802.1p=5](#配置案例:标记 VoIP 流量为 802.1p=5)
[CBQ 队列类型](#CBQ 队列类型)
[1. 基于队列模板的配置(简单场景)](#1. 基于队列模板的配置(简单场景))
[2. 基于 MQC 的 CBQ 配置(复杂场景)](#2. 基于 MQC 的 CBQ 配置(复杂场景))
[WRED 核心参数](#WRED 核心参数)
[核心配置(基于 MQC)](#核心配置(基于 MQC))
[1. 单速率令牌桶(常用)](#1. 单速率令牌桶(常用))
[2. 双速率令牌桶(高精度场景)](#2. 双速率令牌桶(高精度场景))
[1. 流量监管配置(MQC)](#1. 流量监管配置(MQC))
[2. 流量整形配置(MQC)](#2. 流量整形配置(MQC))
[1. QoS 部署核心原则](#1. QoS 部署核心原则)
[2. 常见业务 QoS 配置建议](#2. 常见业务 QoS 配置建议)
[3. QoS 排障核心思路](#3. QoS 排障核心思路)
[4. 与其他技术的联动](#4. 与其他技术的联动)
一、QoS 基础
核心定义
QoS(Quality of Service)是为不同业务类型提供差分服务的技术,通过分类流量、管理拥塞、控制带宽等手段,优化网络性能,满足不同业务的带宽、时延、抖动、丢包率需求。
核心度量指标
| 指标 | 定义 | 关键影响 |
|---|---|---|
| 带宽 | 链路数据传输能力(单位:bps) | 端到端带宽由路径最小带宽决定(木桶原理) |
| 时延 | 报文从发送端到接收端的总延迟(传输 + 处理 + 队列 + 串行化时延) | 实时业务(VoIP、视频)对时延敏感 |
| 抖动 | 最大时延与最小时延的差值 | 导致实时业务卡顿、音视频不同步 |
| 丢包率 | 丢失报文占总报文的百分比 | 少量丢包对数据业务影响小,对实时业务影响大 |
常见业务的 QoS 需求
| 业务类型 | 带宽需求 | 时延敏感度 | 抖动敏感度 | 丢包率敏感度 |
|---|---|---|---|---|
| 电子邮件、FTP | 低 | 低 | 低 | 低 |
| 网页浏览(HTML) | 不定 | 中 | 中 | 低 |
| 电子商务 | 中 | 高 | 高 | 高 |
| VoIP、实时视频 | 低 | 极高 | 极高 | 高 |
| 流媒体 | 高 | 极高 | 极高 | 高 |
QoS 模型对比
| 模型 | 核心思想 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|---|
| Best-Effort(尽力而为) | 无差别对待所有报文 | 实现简单、开销低 | 无法保障实时业务 | 普通数据业务(FTP、Email) |
| IntServ(综合服务) | 提前预留资源(RSVP 信令) | 端到端 QoS 保障 | 需跟踪每个流状态,扩展性差 | 对 QoS 要求极高的专用网络 |
| DiffServ(差分服务) | 分类流量 + 域内差分处理 | 无需跟踪单流,扩展性强 | 需端到端手工部署 | 企业网、运营商网络(主流选择) |
DiffServ 模型核心组件
- 分类与标记:识别流量并标记优先级。
- 流量监管与整形:限制流量速率,避免带宽滥用。
- 拥塞管理:通过队列调度分配带宽。
- 拥塞避免:主动丢弃报文,防止拥塞加剧。
二、分类与标记
核心概念
- 分类:按业务特征划分流量(简单分类:基于优先级;复杂分类:基于五元组、VLAN 等)。
- 标记:修改报文优先级字段,为后续 QoS 处理提供依据(不改变报文内容)。
标记依据
| 标记字段 | 位置 | 取值范围 | 核心用途 |
|---|---|---|---|
| IP Precedence(IP 优先级) | IP 头 ToS 域前 3 位 | 0-7(8 个等级) | 早期简单优先级标记 |
| DSCP(差分服务代码点) | IP 头 DS 域前 6 位 | 0-63(64 个等级) | 主流标记方式,兼容 IP 优先级 |
| 802.1p(CoS) | VLAN 帧头 PRI 字段 | 0-7(8 个等级) | 二层网络优先级标记 |
DSCP 关键分类
- BE(尽力而为):DSCP=000000(默认)。
- EF(加速转发):DSCP=101110(低时延、低丢包,适用于 VoIP)。
- AF(保证转发):分 4 类(AF1-AF4),每类 3 个丢弃优先级(如 AF11=001010,低丢弃)。
- CS(类选择器):兼容 IP 优先级(CS1=001000,对应 IP 优先级 1)。
核心配置框架:MQC(模块化 QoS 命令行)
MQC 是 QoS 配置的统一框架,包含 3 个核心要素:
- 流分类(Traffic Classifier):定义流量匹配规则(如基于 ACL、VLAN、优先级)。
- 流行为(Traffic Behavior):定义对匹配流量的动作(如标记、限速、队列调度)。
- 流策略(Traffic Policy):绑定流分类与流行为,应用到接口。
MQC 配置步骤(华为设备)
bash
运行
# 1. 配置流分类
traffic classifier 分类名 [ operator { and | or } ]
if-match 匹配规则 # 如if-match acl 3000、if-match dscp ef、if-match vlan-id 10
# 2. 配置流行为
traffic behavior 行为名
remark 8021p 5 # 标记802.1p优先级
# 或remark dscp ef # 标记DSCP
# 或queue af bandwidth 100 # 绑定队列(后续拥塞管理用)
# 3. 配置流策略
traffic policy 策略名
classifier 分类名 behavior 行为名 # 绑定分类与行为
# 4. 应用流策略到接口
interface 接口名
traffic-policy 策略名 { inbound | outbound } # 入/出方向应用
配置案例:标记 VoIP 流量为 802.1p=5
bash
运行
# 分类:基于UDP端口(VoIP常用端口5060、10000-20000)
acl number 3000
rule 1 permit udp destination-port eq 5060
rule 2 permit udp destination-port range 10000 20000
traffic classifier voip operator or
if-match acl 3000
# 行为:标记802.1p=5
traffic behavior voip-mark
remark 8021p 5
# 策略绑定+接口应用
traffic policy qos-voip
classifier voip behavior voip-mark
interface GigabitEthernet0/0/1
traffic-policy qos-voip inbound
三、拥塞管理
核心定义
拥塞管理是当网络带宽不足时,通过队列调度算法分配带宽,优先保障高优先级业务转发。
主流队列调度算法
| 算法 | 核心逻辑 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|---|
| FIFO(先进先出) | 按报文到达顺序转发 | 实现简单、开销低 | 无差别对待,实时业务无保障 | 无 QoS 需求的简单网络 |
| PQ(优先级队列) | 高优先级队列耗尽后,才调度低优先级 | 保障低时延业务 | 低优先级队列 "饿死" | 少量高优先级业务(如 VoIP) |
| WFQ(加权公平队列) | 按流优先级分配带宽,公平调度 | 兼顾公平与优先级 | 不支持自定义类 | 需公平分配带宽的场景 |
| PQ+WFQ | 高优先级队列 PQ 调度,低优先级 WFQ 调度 | 兼顾实时业务与公平性 | 配置复杂 | 混合业务(实时 + 数据) |
| CBQ(基于类的加权公平) | 自定义类,支持 EF/AF/BE 队列 | 灵活适配多业务 | 开销略高 | 企业网、多业务场景(主流选择) |
CBQ 队列类型
- EF 队列:低时延、高优先级,限速转发(避免占用全部带宽)。
- AF 队列:保证最小带宽,空闲带宽按权重共享。
- BE 队列:尽力转发,适配普通数据业务。
核心配置方法
1. 基于队列模板的配置(简单场景)
bash
运行
# 创建队列模板
qos queue-profile 模板名
schedule pq 7 # Queue7(高优先级)PQ调度
schedule wfq 0-6 # Queue0-6 WFQ调度
queue 7 length packets 20 # 配置队列长度
queue 7 weight 30 # 配置WFQ权重
# 接口应用
interface GigabitEthernet0/0/1
qos queue-profile 模板名
2. 基于 MQC 的 CBQ 配置(复杂场景)
bash
运行
# 分类:VoIP(EF)、视频(AF41)、数据(BE)
traffic classifier voip if-match dscp ef
traffic classifier video if-match dscp af41
traffic classifier data if-match dscp be
# 行为:绑定CBQ队列
traffic behavior voip-behavior
queue ef bandwidth 100 # 保障100kbit/s带宽,限速转发
traffic behavior video-behavior
queue af bandwidth 200 # 保障200kbit/s带宽
traffic behavior data-behavior
queue wfq # BE队列WFQ调度
# 策略绑定+接口应用
traffic policy cbq-policy
classifier voip behavior voip-behavior
classifier video behavior video-behavior
classifier data behavior data-behavior
interface GigabitEthernet0/0/1
traffic-policy cbq-policy outbound
四、拥塞避免
核心目标
通过主动丢弃报文,防止队列溢出导致的严重拥塞,避免 TCP 全局同步(多个 TCP 连接同时降速 / 提速)。
两种丢弃策略
| 策略 | 逻辑 | 优点 | 缺点 |
|---|---|---|---|
| 尾丢弃(Tail Drop) | 队列满后,丢弃所有新报文 | 实现简单 | 引发 TCP 全局同步,带宽利用率低 |
| WRED(加权早期随机检测) | 队列长度超 "低门限" 时随机丢弃,超 "高门限" 时尾丢弃 | 避免 TCP 同步,提高带宽利用率 | 配置参数多,需适配业务 |
WRED 核心参数
- 低门限:开始随机丢弃的队列长度阈值。
- 高门限:触发尾丢弃的队列长度阈值。
- 丢弃概率:队列长度在低 - 高门限之间时,报文被丢弃的概率(0-100%)。
核心配置(基于 MQC)
bash
运行
# 1. 创建丢弃模板
drop-profile wred-profile
wred dscp # 基于DSCP优先级丢弃
dscp ef low-limit 30 high-limit 60 discard-percentage 5 # EF队列晚丢弃
dscp be low-limit 10 high-limit 40 discard-percentage 20 # BE队列早丢弃
# 2. 流行为绑定丢弃模板
traffic behavior af-behavior
queue af bandwidth 200
drop-profile wred-profile # 绑定WRED模板
# 3. 策略应用(同拥塞管理配置)
traffic policy wred-policy
classifier video behavior af-behavior
interface GigabitEthernet0/0/1
traffic-policy wred-policy outbound
五、流量监管与流量整形
核心区别
| 技术 | 核心逻辑 | 处理方式 | 适用场景 |
|---|---|---|---|
| 流量监管(Policing) | 限制流量速率,超标流量直接丢弃 / 降优先级 | 硬限制,无缓存 | 入口流量控制、边缘网络限速 |
| 流量整形(Shaping) | 限制流量速率,超标流量缓存后均匀发送 | 软限制,有缓存 | 出口流量平滑、适配下游低速链路 |
核心原理:令牌桶算法
1. 单速率令牌桶(常用)
- 核心参数:CIR(承诺信息速率)、CBS(承诺突发尺寸)、EBS(超额突发尺寸)。
- 评估结果:绿色(未超 CIR)、黄色(超 CIR 但未超 EBS)、红色(超 EBS)。
- 处理:绿色转发、黄色转发 / 降优先级、红色丢弃。
2. 双速率令牌桶(高精度场景)
- 核心参数:CIR(承诺速率)、CBS(承诺突发)、PIR(峰值速率)、PBS(峰值突发)。
- 评估结果:绿色(未超 CIR)、黄色(超 CIR 但未超 PIR)、红色(超 PIR)。
核心配置
1. 流量监管配置(MQC)
bash
运行
traffic classifier vlan10 if-match vlan-id 10
traffic behavior police-vlan10
car cir 1000 pir 2000 cbs 125000 pbs 250000 # 单速率双桶:CIR=1M,PIR=2M
green pass yellow pass red discard # 绿色/黄色转发,红色丢弃
traffic policy police-policy
classifier vlan10 behavior police-vlan10
interface GigabitEthernet0/0/1
traffic-policy police-policy inbound
2. 流量整形配置(MQC)
bash
运行
traffic classifier vlan20 if-match vlan-id 20
traffic behavior shape-vlan20
gts cir 500 cbs 62500 queue-length 30 # 整形速率500kbit/s,缓存30个报文
traffic policy shape-policy
classifier vlan20 behavior shape-vlan20
interface GigabitEthernet0/0/2
traffic-policy shape-policy outbound # 出口整形,适配下游低速链路
六、补充知识点
1. QoS 部署核心原则
- 边缘分类标记,核心调度转发:在网络边缘(接入层 / 汇聚层)完成流量分类和标记,核心层仅基于标记调度,减少开销。
- 按需保障,不浪费带宽:仅对关键业务(VoIP、视频)配置严格 QoS,普通数据业务采用尽力而为。
- 端到端一致性:所有网络设备(交换机、路由器)的 QoS 配置需一致,避免标记丢失或调度冲突。
2. 常见业务 QoS 配置建议
| 业务类型 | 标记建议 | 队列类型 | 带宽占比 | 关键参数 |
|---|---|---|---|---|
| VoIP | DSCP=EF(46)、802.1p=5 | EF 队列 | 10-15% | 时延 < 150ms,抖动 < 30ms |
| 视频会议 | DSCP=AF41(34)、802.1p=4 | AF 队列 | 20-30% | 时延 < 300ms,丢包率 < 1% |
| 办公数据(OA、邮件) | DSCP=AF21(18)、802.1p=2 | AF 队列 | 20-30% | 无严格时延要求 |
| 普通上网(网页、下载) | DSCP=BE(0)、802.1p=0 | BE 队列 | 剩余带宽 | 尽力转发 |
3. QoS 排障核心思路
- 检查分类标记:通过
display traffic-policy statistics确认流量是否正确匹配分类。 - 检查队列状态:通过
display qos queue statistics查看队列长度、丢弃计数。 - 检查令牌桶参数:CIR/CBS 配置是否适配链路带宽(CBS 建议≥最大报文长度 ×10)。
- 排除链路故障:QoS 无法解决物理链路中断、带宽瓶颈过大的问题,先保障链路连通性。
4. 与其他技术的联动
- 与 VLAN 联动:基于 VLAN ID 分类,实现不同业务 VLAN 的差分服务。
- 与路由协议联动:OSPF、BGP 可基于 DSCP 标记路由优先级,优先转发高优先级业务流量。
- 与可靠性技术联动:BFD/NQA 检测链路故障后,QoS 策略自动切换至备份链路,保障关键业务连续性。