你有没有想过:为什么你在高铁上打微信语音电话,同时有人在刷抖音、有人在下载文件,网络却没有崩溃?为什么工厂里的机械臂能保证1毫秒的控制延迟,而你的网页晚个300毫秒毫无感知?答案就藏在5G QoS(服务质量)与网络切片的底层机制里。
想象一个城市交通系统:
网络切片把路分成了不同的车道,QoS则规定了每条车道里车辆(数据包)的通行规则。二者配合,才有了5G"万器互联"却互不干扰的奇迹。
在4G LTE时代,QoS的基本单位是EPS Bearer(EPS承载)。一个承载端到端贯穿UE→eNB→S-GW→P-GW,每条承载有自己的QCI(QoS Class Identifier)参数。
问题在于: - 粒度太粗:一个承载只能有一种QoS配置,如果你同时打电话和浏览网页,就需要两条独立承载,信令开销大 - 绑定太死:承载和无线侧的DRB(Data Radio Bearer)是一一对应的,无法灵活复用 - 扩展性差:物联网、工业控制等新场景需要更精细的QoS分级
5G彻底重构了QoS框架,核心变化是引入了QoS Flow(QoS流):
4G: UE → EPS Bearer (1:1绑定) → DRB → EPC
5G: UE → PDU Session → 多条QoS Flow → DRB (N:1映射) → 5GC
关键差异在于:多个QoS Flow可以复用到同一个DRB上,gNB的SDAP(Service Data Adaptation Protocol)子层负责这个映射。这意味着无线资源利用更高效,信令开销更小。
graph TB
subgraph "4G LTE QoS架构"
A1[UE] --> B1[EPS Bearer 1<br/>QCI=1 语音]
A1 --> C1[EPS Bearer 2<br/>QCI=9 上网]
B1 --> D1[DRB 1]
C1 --> E1[DRB 2]
D1 --> F1[EPC]
E1 --> F1
end
subgraph "5G NR QoS架构"
A2[UE] --> G2[PDU Session]
G2 --> H2[QoS Flow 1<br/>5QI=1 语音]
G2 --> I2[QoS Flow 2<br/>5QI=9 上网]
G2 --> J2[QoS Flow 3<br/>5QI=80 V2X]
H2 --> K2[DRB 1<br/>SDAP映射]
I2 --> K2
J2 --> L2[DRB 2]
K2 --> M2[5GC]
L2 --> M2
end
style A1 fill:#e1f5fe
style A2 fill:#e8f5e9
| 对比维度 | 4G EPS Bearer | 5G QoS Flow |
|---|---|---|
| QoS最小单位 | EPS Bearer | QoS Flow |
| QoS标识 | QCI(1-9标准化) | 5QI(扩展到80+) |
| 与DRB关系 | 1:1绑定 | N:1灵活映射 |
| 新增资源类型 | 无 | Delay-Critical GBR |
| 反射QoS | 不支持 | 支持(RQoS) |
| 协议层 | 无专门层 | SDAP子层处理映射 |
5QI(5G QoS Identifier) 是一个标量值,它指向一组预定义的QoS特征参数。你可以把它理解为数据包的"身份证号"——网络设备看到5QI,就知道该怎么对待这个数据包。
每个5QI包含以下关键参数:
| 参数 | 缩写 | 含义 |
|---|---|---|
| 资源类型 | Resource Type | GBR / Non-GBR / Delay-Critical GBR |
| 优先级 | Priority Level | 1(最高)~ 127(最低) |
| 分组时延预算 | PDB (Packet Delay Budget) | 允许的最大端到端时延 |
| 分组错误率 | PER (Packet Error Rate) | 允许的最大丢包率 |
| 平均窗口 | Averaging Window | GBR流量的计算周期 |
| 最大数据突发量 | MDBV | 仅Delay-Critical GBR使用 |
以下是5G网络中最常用的标准化5QI值(基于3GPP TS 23.501定义):
| 5QI | 资源类型 | 优先级 | PDB | PER | 典型应用场景 |
|---|---|---|---|---|---|
| 1 | GBR | 20 | 100ms | 10⁻² | 会话类语音(VoNR) |
| 2 | GBR | 40 | 150ms | 10⁻³ | 会话类视频通话 |
| 3 | GBR | 30 | 50ms | 10⁻³ | 实时游戏 |
| 4 | Non-GBR | 50 | 300ms | 10⁻⁶ | 非会话类视频流 |
| 5 | Non-GBR | 10 | 100ms | 10⁻⁶ | IMS信令 |
| 6 | Non-GBR | 60 | 300ms | 10⁻⁶ | 视频(缓冲流) |
| 7 | Non-GBR | 70 | 100ms | 10⁻⁶ | 语音/视频/IM后台 |
| 8 | Non-GBR | 80 | 300ms | 10⁻⁶ | 视频监控上行 |
| 9 | Non-GBR | 90 | 300ms | 10⁻⁶ | 默认上网流量 |
| 69 | Non-GBR | 55 | 60ms | 10⁻⁶ | ARP信令/IMS紧急 |
| 70 | Non-GBR | 55 | 200ms | 10⁻⁶ | MIoT小数据 |
| 79 | Non-GBR | 65 | 50ms | 10⁻⁶ | V2X消息 |
| 80 | Non-GBR | 68 | 10ms | 10⁻⁶ | 低延迟AR/VR |
| 84 | DC-GBR | 24 | 30ms | 10⁻⁵ | V2X安全 |
| 85 | DC-GBR | 21 | 5ms | 10⁻⁵ | 工业以太网 |
为什么5QI=9最常见? 因为这是所有PDU Session建立时自动创建的默认QoS Flow的标识。你手机上网浏览、刷App的流量,绝大多数都走5QI=9。
这是理解5G QoS的关键分水岭:
graph LR
subgraph "GBR - 保证比特率"
A[VoNR语音] --> B[资源预留<br/>准入控制强制]
B --> C[GFBR: 保证最低带宽<br/>MFBR: 限制最高带宽]
end
subgraph "Non-GBR - 非保证比特率"
D[网页浏览] --> E[尽力而为<br/>无准入控制]
E --> F[拥塞时可丢包<br/>仅受AMBR限制]
end
subgraph "DC-GBR - 时延关键保证"
G[工业控制] --> H[保证带宽+严格时延]
H --> I[超时包直接丢弃<br/>计入PER预算]
end
style A fill:#c8e6c9
style D fill:#fff9c4
style G fill:#ffcdd2
| 特性 | GBR | Non-GBR | Delay-Critical GBR |
|---|---|---|---|
| 带宽保证 | ✅ GFBR保证 | ❌ 尽力而为 | ✅ GFBR保证 |
| 时延保证 | ❌ 仅尽力 | ❌ 尽力而为 | ✅ 超PDB则丢弃 |
| 准入控制 | ✅ 必须 | ❌ 不需要 | ✅ 必须 |
| 超时处理 | 缓存重传 | 缓存重传 | 直接丢弃 |
| 典型应用 | 语音、视频会议 | 上网、下载 | 工业控制、远程手术 |
| 新增时间 | 4G即有 | 4G即有 | 5G Rel-15新增 |
为什么需要Delay-Critical GBR? 传统GBR虽然保证带宽,但不保证时延——一个语音包晚到200ms虽然不完美,但还能用(人耳可以容忍一定延迟)。但工业控制中,一个控制指令晚到5ms可能意味着机械臂撞上工件。DC-GBR的设计哲学是:宁可丢弃迟到的包,也不让系统等一个过期的指令。
ARP(Allocation and Retention Priority,分配和保留优先级) 是QoS Flow的"社会等级"。它不决定数据包怎么调度(那是5QI的事),而是决定在资源紧张时谁能活下来、谁该被踢走。
ARP包含三个子参数:
| ARP字段 | 取值范围 | 含义 |
|---|---|---|
| Priority Level | 1(最高)~ 15(最低) | 准入控制的优先顺序 |
| Pre-emption Capability | 能/不能 | 这个流能否抢占别人的资源 |
| Pre-emption Vulnerability | 能/不能 | 这个流能否被别人抢占 |
想象一个基站在拥塞边缘,无线资源几乎用满:
sequenceDiagram
participant UE1 as 普通用户手机
participant gNB as gNodeB
participant UE2 as 应急通信终端
participant SMF as SMF/PCF
Note over gNB: 无线资源已接近满载
Note over gNB: 现有QoS Flow:<br/>用户A上网 ARP=15<br/>(可被抢占)
UE2->>SMF: 请求建立QoS Flow<br/>5QI=84, ARP=1<br/>(可抢占/不可被抢占)
SMF->>gNB: QoS Flow建立请求<br/>含5QI和ARP参数
Note over gNB: 准入控制检查:<br/>1. 资源不足,但ARP=1最高优先<br/>2. 新流Pre-emption Capable=是<br/>3. 查找可被抢占的低优先级流
gNB->>UE1: 释放QoS Flow<br/>(ARP=15, 可被抢占)
Note over UE1: 上网流量被降级或断开
gNB->>UE2: QoS Flow建立成功
Note over UE2: 应急通信获得资源保障
gNB->>SMF: QoS Flow建立确认
实战含义: - 语音通话(VoNR)通常ARP优先级=2~5,Pre-emption Vulnerability=否,意味着不会被抢占 - 普通上网通常ARP优先级=12~15,Pre-emption Vulnerability=是,可以被抢占 - 紧急呼叫ARP优先级=1,不可被抢占,拥有最高资源保障
这是工程师最容易混淆的地方:
| 维度 | 5QI | ARP |
|---|---|---|
| 管的是什么 | 数据包的调度和转发行为 | QoS Flow的准入和生存权 |
| 何时起作用 | 每个数据包传输时 | 建立QoS Flow和资源拥塞时 |
| 举例 | "这个包延迟预算100ms" | "如果没资源了,先砍谁" |
| 可否动态变化 | 通过PCC规则可变 | 通常建立后不变 |
| 类比 | 车速限制和通行规则 | 谁有路权、谁该让路 |
sequenceDiagram
participant UE as UE
participant AN as gNodeB
participant AMF as AMF
participant SMF as SMF
participant PCF as PCF
participant UPF as UPF
UE->>AMF: PDU Session Establishment Request
AMF->>SMF: Nsmf_PDUSession_CreateSMContext
SMF->>PCF: Npcf_SMPolicyControl_Create<br/>(请求策略规则)
PCF-->>SMF: PCC Rules + QoS Parameters<br/>(5QI, ARP, GFBR, MFBR)
Note over SMF: QoS Flow绑定:<br/>将PCC Rule映射为QoS Flow<br/>分配QFI (QoS Flow ID)
SMF->>UPF: N4 Session Establishment<br/>(PDR/FAR/QER规则)<br/>QER包含QFI+速率限制
UPF-->>SMF: N4建立确认
SMF->>AMF: Namf_Communication_N1N2Transfer<br/>(含QoS Flow描述)
AMF->>AN: N2 PDU Session Resource Setup<br/>(含QFI, 5QI, ARP, GFBR)
AN->>AN: 准入控制<br/>检查是否有足够无线资源
alt 准入控制通过
AN->>UE: RRC Reconfiguration<br/>(DRB配置, SDAP映射)
AN-->>AMF: N2 Resource Setup Response
AMF-->>SMF: 资源建立确认
SMF-->>UE: PDU Session Establishment Accept
else 准入控制失败(GBR)
AN-->>AMF: N2 Resource Setup Fail<br/>(通知SMF GFBR无法满足)
SMF->>PCF: 通知策略执行失败
end
Note over UE,UPF: QoS Flow端到端建立完成<br/>数据传输开始
PCF为什么存在? 没有PCF,每个SMF只能按本地配置分配QoS参数,无法实现运营商级的统一策略管理。PCF相当于"交通管理局",制定全局规则。
为什么需要QER(QoS Enforcement Rule)? UPF是数据面的"收费站",QER告诉UPF:哪些流量走哪个QFI、速率上限是多少。这样UPF就能在核心网侧执行速率限制,防止上行流量超过MFBR。
为什么gNB要做准入控制? 无线资源是有限且共享的。如果允许无限制地建立GBR Flow,网络会因为过度承诺资源而无法满足任何一个Flow的保证。
SMF收到PCF的PCC规则后,执行QoS Flow绑定(QoS Flow Binding):
$$\text{PCC Rule} \xrightarrow{\text{SMF绑定}} \text{QoS Flow (QFI)} \xrightarrow{\text{SDAP映射}} \text{DRB}$$
绑定规则: 1. 相同5QI + ARP的PCC规则,可以绑定到同一条QoS Flow(复用) 2. 不同5QI的PCC规则,必须绑定到不同的QoS Flow 3. GBR Flow必须有独立的QFI(不能与Non-GBR复用) 4. 每个PDU Session最多支持数十条QoS Flow(远多于4G的承载数)
很多人问:"有了QoS为什么还需要切片?"答案是:QoS解决的是同一个网络内的流量优先级问题,而切片解决的是不同业务之间的资源隔离问题。
graph TB
subgraph "物理5G网络"
subgraph "eMBB切片<br/>S-NSSAI: 01-ABCDE"
A[高清视频]
B[网页浏览]
C[社交媒体]
A --> Q1[5QI=4, 6, 9<br/>Non-GBR为主]
end
subgraph "URLLC切片<br/>S-NSSAI: 02-FGHIJ"
D[工业控制]
E[远程手术]
F[自动驾驶]
D --> Q2[5QI=84, 85<br/>DC-GBR为主]
end
subgraph "mMTC切片<br/>S-NSSAI: 03-KLMNO"
G[智能水表]
H[烟感器]
I[共享单车]
G --> Q3[5QI=70, 2<br/>低速率高连接]
end
end
style Q1 fill:#e3f2fd
style Q2 fill:#fce4ec
style Q3 fill:#e8f5e9
| 对比维度 | QoS | 网络切片 |
|---|---|---|
| 本质 | 流量调度机制 | 虚拟网络隔离 |
| 隔离级别 | 逻辑优先级(共享资源) | 资源预留(独立资源池) |
| 覆盖范围 | 通常单段网络 | 端到端(UE→RAN→传输→核心→DN) |
| 故障影响 | 高优先级流抢低优先级 | 一个切片故障不影响其他切片 |
| SLA保证 | 软保证(尽力而为) | 硬保证(可合同化) |
| 管理粒度 | 单个数据流 | 整个业务场景 |
| 类比 | 红绿灯 | 专用车道/专用公路 |
每个切片由S-NSSAI(Single Network Slice Selection Assistance Information) 标识,包含两部分:
$$S\text{-}NSSAI = \underbrace{SST}{\text{标准化切片类型}} + \underbrace{SD}$$}
例如:
- SST=1, SD=空 → 运营商默认eMBB切片(所有普通用户)
- SST=1, SD=Netflix → 为Netflix定制的eMBB切片(专用UPF+边缘缓存)
- SST=2, SD=FactoryA → 为A工厂定制的URLLC切片
sequenceDiagram
participant UE as UE
participant RAN as gNodeB
participant AMF as AMF
participant NSSF as NSSF
participant SMF as SMF
participant PCF as PCF
Note over UE: 1. UE发起注册<br/>携带Requested NSSAI<br/>(期望加入的切片列表)
UE->>RAN: Registration Request<br/>+ Requested NSSAI
RAN->>RAN: 根据NSSAI选择<br/>合适的AMF
RAN->>AMF: Registration Request<br/>+ Allowed NSSAI
AMF->>NSSF: Nnssf_NSSelection_Get<br/>(查询可用的切片实例)
NSSF-->>AMF: 返回Allowed NSSAI<br/>+ 目标AMF/SMF信息
Note over UE: 2. PDU Session建立<br/>选择具体切片
UE->>AMF: PDU Session Request<br/>+ S-NSSAI
AMF->>SMF: 选择支持该S-NSSAI的SMF
SMF->>PCF: 获取切片级策略<br/>(含默认5QI/ARP)
Note over SMF: SMF根据切片策略<br/>确定QoS参数范围<br/>建立QoS Flow
SMF-->>UE: PDU Session建立成功<br/>(绑定到目标切片)
理解QoS的关键在于搞清楚每个网元在QoS执行链中的角色:
| 网元 | QoS职责 | 具体动作 |
|---|---|---|
| PCF | 策略制定 | 生成PCC规则(5QI, ARP, GFBR, MFBR) |
| SMF | 策略翻译 | PCC规则→QoS Flow绑定→生成N4规则 |
| UPF | 核心网执行 | 速率限制(QER)、包标记(QFI)、流量整形 |
| gNB | 无线侧执行 | 准入控制、DRB映射、MAC调度、空口速率控制 |
| UE | 辅助执行 | 上行流量标记(QFI)、反射QoS学习 |
SMF通过N4接口向UPF下发三类核心规则:
上行数据包到达UPF:
→ PDR匹配: 五元组匹配 → SDF Filter
→ QER执行: 标记QFI, 检查速率 ≤ MFBR
→ FAR执行: 转发到N6接口(互联网)
gNB收到QoS Flow建立请求后,执行以下步骤:
AMBR(Aggregate Maximum Bit Rate) 是运营商给用户设定的总速率上限:
$$\text{实际Non-GBR速率} = \min(\text{Session-AMBR},\ \text{UE-AMBR},\ \text{无线可用带宽})$$
实战注意:AMBR只限制Non-GBR流量!GBR Flow的速率由GFBR/MFBR控制,不受AMBR限制。这是一个常见的配置误解。
传统方式:SMF通过NAS信令显式下发QoS Rule给UE,告诉UE"匹配这个五元组的上行数据包,走QFI=X"。
反射QoS(RQoS):UE通过观察下行数据包的QFI标记,自动推导出上行数据包应该使用的QoS Flow。
下行:UPF标记 QFI=1 → gNB → UE
UE学到:目的IP=X, 端口=Y 的流量走QFI=1
上行:UE匹配规则 → 上行数据包自动标记QFI=1 → gNB → UPF
为什么这样设计? - 省信令:不需要SMF为每个上行Flow发送NAS QoS Rule - 低延迟:新业务流的QoS立即生效,无需等待信令交互 - 简化UE:UE不需要理解复杂的PCC规则
| 特性 | 显式QoS Rule | 反射QoS |
|---|---|---|
| 信令开销 | 每条Flow一条NAS消息 | 无额外信令 |
| 生效时间 | 信令往返后 | 下行首包后 |
| 适用场景 | 所有场景 | 仅对称流量(上下行五元组镜像) |
| 默认支持 | 是 | 需要SMF/UPF启用RQI标记 |
排查思路: 1. 检查5QI=1的QoS Flow是否成功建立(查SMF日志) 2. 确认GFBR是否满足VoNR编码速率(通常需要≥50kbps AMR-WB) 3. 查gNB准入控制是否通过——可能是小区负载过高导致GBR Flow被拒绝 4. 检查ARP参数——是否被更高优先级的Flow抢占了资源 5. 查看DRB映射——5QI=1的Flow是否映射到了专用DRB(不应与5QI=9共享)
排查思路: 1. 确认S-NSSAI配置正确——UE、RAN、AMF、SMF、UPF的切片配置是否一致 2. 检查切片级PRB资源预留比例——RAN侧是否为该切片预留了足够的无线资源 3. 检查UPF是否为该切片部署了专用实例——共享UPF可能导致CPU/内存竞争 4. 查看PCF下发的PCC规则——5QI和ARP是否符合SLA要求 5. 检查传输网——中间的SPN/PTN是否为该切片配置了VPN带宽保证
需要同时关注QoS和切片两个层面:
| 配置项 | 推荐值 | 原因 |
|---|---|---|
| S-NSSAI | SST=2(URLLC切片) | 独立切片隔离工业流量 |
| 5QI | 85(DC-GBR) | 保证带宽+严格时延 |
| GFBR | 按业务需求(如2Mbps) | 满足PLC控制指令带宽 |
| PDB | 5ms | 工业控制典型时延要求 |
| ARP | Priority=1, 不可被抢占 | 工业控制流不可中断 |
| DRB映射 | 专用DRB,不与其他Flow共享 | 避免调度干扰 |
Q1: QoS Flow和DRB是什么关系?能否多个Flow共用一个DRB?
A: 可以。5G的SDAP子层负责将QoS Flow映射到DRB。规则是:相同5QI和相似QoS特征的Flow可以映射到同一个DRB。但GBR Flow通常需要专用DRB。gNB可以动态调整映射关系——例如当某个DRB上的Flow数量增多时,可以将部分Flow拆分到新DRB。
Q2: 切片和VPN有什么区别?不都是隔离吗?
A: VPN主要在传输层提供隔离,类似"在同一条公路上用围栏隔出一条专用道"。而网络切片是端到端的——从UE的SIM卡配置、RAN的资源预留、传输网的VPN隧道、到核心网的专用UPF实例,全链路隔离。切片可以包含VPN作为其传输层实现手段,但切片的范围远大于VPN。
Q3: 为什么我的手机同时上网和打电话,不需要手动建两条PDU Session?
A: 因为一个PDU Session内可以包含多条QoS Flow。IMS语音走5QI=1的GBR Flow,上网走5QI=9的Non-GBR Flow,它们共享同一个PDU Session但在gNB侧被映射到不同的DRB,获得不同的调度待遇。这就是5G QoS Flow模型比4G Bearer模型灵活的地方。
Q4: 反射QoS在什么场景下不能用?
A: RQoS要求上下行流量具有对称的五元组(源/目的IP和端口互换)。对于以下场景不适合: - 上行流量远大于下行(如视频监控上传) - 上下行使用不同协议/端口 - 需要精细QoS控制的关键业务(如工业控制,建议用显式QoS Rule)
Q5: 切片内所有的Flow都必须是同一种5QI吗?
A: 不是。一个切片内可以有多种5QI的QoS Flow。例如eMBB切片内可以有5QI=1(语音)、5QI=4(视频)、5QI=9(上网)等多种Flow。切片定义的是资源池和隔离边界,QoS Flow定义的是切片内各流量的具体待遇。
本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
