想象你要给外地的朋友寄一台易碎的瓷器。你不会直接把裸露的瓷器交给航空公司,而是要经历一整套流程:先用泡沫纸包裹防震,再装入纸箱,贴上收件地址和易碎标签,交给快递公司分拣,最后装车运输。收件人则反向执行这套流程:拆车、分拣、核对地址、拆箱、去掉缓冲材料,最终拿到瓷器。
移动通信的空口协议栈,本质上就是这套“层层包裹、层层解包”的体系。你的微信消息(一个IP数据包)在发出前,要被手机逐层加工:贴上服务质量标签、加密、编号、切段、复用、编码调制,最后变成电磁波飞出去;基站则逆向执行完全相反的操作。每一层只关心自己的任务,对上层交付它“包裹”,对下层它又是“客户”。
这种分层设计不是学术洁癖,而是工程上的必然选择:每一层解决一类独立的差错和挑战。无线信道会丢包、会乱序、会失真,如果把所有问题塞进一个巨型模块,任何一点改动都会牵一发而动全身。分层之后,做加密算法的团队和做调度算法的团队可以完全独立地迭代,只要层与层之间的接口不变。
5G空口协议栈分为用户面和控制面两条线。用户面搬运你的数据,控制面搬运“管理指令”——就像高速公路(运货)与交通管理系统(指挥)分开。下面这张图是教科书级的全景:
flowchart TB
subgraph U["UE 手机"]
direction TB
UNAS["NAS 鉴权/寻呼/会话管理"]
URRC["RRC 连接与移动性管理"]
USDAP["SDAP QoS流到承载的映射"]
UPDCP["PDCP 加密/头压缩/排序"]
URLC["RLC 分段与ARQ"]
UMAC["MAC 调度/HARQ/复用"]
UPHY["PHY 编码/调制/成帧"]
end
subgraph G["gNB 基站"]
direction TB
GRRC["RRC"]
GSDAP["SDAP"]
GPDCP["PDCP"]
GRLC["RLC"]
GMAC["MAC"]
GPHY["PHY"]
end
AMF["5GC AMF 核心网"]
UNAS -.->|NAS消息 gNB透传| AMF
URRC <-.-> GRRC
USDAP <-.-> GSDAP
UPDCP <-.-> GPDCP
URLC <-.-> GRLC
UMAC <-.-> GMAC
UPHY -->|空口无线传输| GPHY
这张图藏着三个关键信息:
| 层 | 快递类比 | 核心职责 | 关键机制 |
|---|---|---|---|
| SDAP | 分拣时贴的“优先级标签” | 决定数据走哪条承载 | QoS流到DRB的映射规则 |
| PDCP | 防拆封条+保险箱 | 保密、防丢、防重、防乱序 | 加密、完整性保护、序列号、头压缩、重排序 |
| RLC | 拆大件为标准纸箱 | 把大小不一的数据切成无线能承载的块 | 分段/重分段、级联、ARQ |
| MAC | 分拣中心调度台 | 决定“谁的数据、何时、占多少无线资源” | 动态调度、HARQ、逻辑信道优先级 |
| PHY | 运输车队 | 把比特变成电磁波可靠送达 | 信道编码、调制、多天线处理 |
SDAP(Service Data Adaptation Protocol)是 5G 相比 4G 全新增加的一层,很多工程师的第一个疑问是:好好的五层,为什么要再加一层?
答案藏在 5G 的设计哲学里。4G 的服务质量(QoS)是“承载级”的——一条 EPS 承载从头贯到尾,空口只是被动执行。而 5G 把 QoS 决策权收归核心网:核心网给每个数据包打上 QFI 标记(QoS Flow ID),空口只需要回答一个问题——“这个带 QFI 标签的包,该放进哪条无线承载(DRB)?” 回答这个问题的就是 SDAP。
flowchart LR
subgraph QF["QoS流 SDAP之上"]
Q1["视频通话流 GBR"]
Q2["网页浏览流 Non-GBR"]
Q3["后台下载流"]
end
subgraph DRB["数据无线承载 SDAP之下"]
D1["DRB1"]
D2["DRB2"]
end
Q1 --> D1
Q2 --> D2
Q3 --> D2
注意上图:QoS 流与 DRB 是多对一/多对多的映射,不是一一对应。三个 QoS 流共用两条 DRB 完全合法,前提是转发处理规则相同。这是一个常见的面试考点,也是现网配置出错的高发区。
PDCP 是协议栈里功能最杂的一层,每一项功能都对应无线环境的一种“恶”:
4G 时代的 RLC 承担重排序、去重、级联、ARQ 等一堆职责;5G 给它做了“减法手术”:重排序和去重功能被移到了 PDCP。为什么?
因为这两项功能与序列号强相关,而序列号的唯一权威应该在 PDCP——那里才是切换的接力点。5G 之前,RLC 和 PDCP 各自维护序列号、各自排序,功能重叠且交互复杂。5G 干脆把排序权统一收归 PDCP,RLC 专注三件事:分段(把大包切成小包适应无线块)、重分段(重传时可以切得更碎)、以及 AM 模式下的 ARQ 重传。
RLC 有三种工作模式,像三种快递服务等级:
| 模式 | 类比 | 是否重传 | 典型用途 |
|---|---|---|---|
| TM 透明模式 | 裸寄(不包装) | 否 | 广播信道等特殊场景 |
| UM 非确认模式 | 普通信件,丢了不补 | 否 | VoIP 语音、实时视频 |
| AM 确认模式 | 保价快递,丢失必赔 | 是 | 网页、文件下载、绝大多数数据 |
为什么语音用 UM 而不用更可靠的 AM?因为语音对时延的敏感远超对丢失的敏感——重传补来的音频帧早已过了播放时刻,补了等于白补,还占资源。倒不如丢了就丢,人耳对偶尔的帧丢失几乎无感。
如果说协议栈是一场公司运营,MAC 层就是最忙碌的运营中枢,每 1 毫秒(一个调度周期)都要回答三个问题:
物理层拿到 MAC 交付的传输块后执行流水线作业:加 CRC 校验 → 信道编码(LDPC/Polar)→ 速率匹配 → 加扰 → 调制(QPSK/16QAM/64QAM/256QAM)→ 映射到资源网格 → 多天线处理 → 发射。
调制阶数决定每个符号装多少比特:256QAM 每符号 8 比特,即:
$$ b = \log_2 M \quad (M=256 \Rightarrow b=8) $$
信号好时用高阶调制“满载”,信号差时降为 QPSK“少装保平安”——这正是链路自适应(CQI 反馈决定 MCS)的物理基础。
flowchart TD
A["应用层IP数据包 约1400字节"] -->|SDAP 加QFI标记 约1字节| B["SDAP PDU"]
B -->|PDCP 加头 压缩 加密 加序列号| C["PDCP PDU"]
C -->|RLC 分段或级联 加头| D["RLC PDU"]
D -->|MAC 多用户复用 加子头| E["MAC PDU 传输块"]
E -->|PHY 加CRC 编码 调制 加参考信号| F["无线波形发射"]
每一层都在净荷之外附加控制信息(头,有时还有尾),接收端逆向逐层剥离。协议栈的效率因此可以量化为封装效率:
$$ \eta = \frac{L_{data}}{L_{data} + L_{SDAP} + L_{PDCP} + L_{RLC} + L_{MAC}} $$
对 1400 字节的大包,各层头开销合计通常只有十几字节,效率超过 98%;但对 VoIP 的 30 字节小包,头部开销占比陡增——这正是 PDCP 头压缩存在的意义。小包业务才是协议栈开销的真正考场,物联网和语音场景的优化重点都在这里。
无线信道天然易错,5G 设计了一套“快慢双保险”体系:
sequenceDiagram
participant TX as 发送端
participant HM as MAC层HARQ
participant RX as 接收端
TX->>HM: 新块交由HARQ进程发送
HM->>RX: 首次无线传输
RX-->>HM: NACK 译码失败
HM->>RX: HARQ快重传 带软合并
RX-->>HM: ACK 合并后译码成功
Note over RX: 若HARQ次数用尽仍失败
RX->>TX: ARQ状态报告 请求重传
TX->>HM: RLC重传整个PDU
两级的分工体现了“就近原则”:
$$ P_{residual} = p^n $$
以 $p=0.1$ 计,4 次传输后残余错误率降至 $10^{-4}$——这就是“故意留 10% 首传错误,反而换来高效率”的数学依据:首传用更激进的 MCS 冲吞吐量,错了由重传兜底。 - ARQ(RLC层):HARQ 重传次数用尽仍失败才触发,环路要跨越空口往返,慢但可靠,负责最终兜底。
| 变化点 | 4G LTE | 5G NR | 设计动机 |
|---|---|---|---|
| 顶层协议 | 无(PDCP 直接对上层) | 新增 SDAP | QoS 决策权上移核心网,空口灵活映射 |
| RLC 重排序/去重 | RLC 负责 | 移交 PDCP | 序列号唯一权威化,简化切换处理 |
| 加密位置 | PDCP | PDCP(另可启用上层二次加密) | 纵深防御,核心网与空口双层保护 |
| 调度周期 | 1ms 子帧固定 | 随子载波间隔缩放,最短可到 0.125ms 级 | 满足 URLLC 毫秒级时延要求 |
| 双连接承载 | 无 | PDCP 可在 LTE 与 NR 两侧同时终止 | NSA 场景 4G/5G 数据分流与接力 |
关于最后一行多说两句。在 NSA 部署模式下(5G 借用 4G 的控制面起步),PDCP 层被“劈”成两半:一部分数据走 4G 承载、一部分走 5G 承载,都汇聚到同一个 PDCP 实体排序交付。工程师在 NSA 现网看到“PDCP 层吞吐量大于任一空口吞吐量”的现象,原因就在这里——它同时管着两条路。
另一个值得体会的数字:5G NR 支持 15kHz 到 960kHz 的多种子载波间隔,子载波间隔翻倍,时隙时长减半。协议栈下三层的“时间轴”因此变得可伸缩——大子载波间隔配短时隙,让 MAC 调度和 HARQ 重传环路整体提速,这是 URLC 低时延在协议栈层面的支柱。
Q: SDAP 的 QoS 流和 PDCP 的 DRB 到底差在哪? A: QoS 流是核心网视角的“服务质量合同”(由 QFI 标识,约定时延、速率保障),DRB 是空口视角的“运输通道”。SDAP 是两者之间的翻译官:核心网说“QFI=5 的包要低时延”,SDAP 负责把它放进为此配置好的 DRB。合同可以有很多份,通道不必每份一条。
Q: HARQ 和 ARQ 都做重传,为什么不只留一个? A: 两者在时延和可靠性上分工:HARQ 环路短(基站本地,毫秒级)且有软合并增益,但重传次数有限、数据留在 MAC 缓存里不可靠(掉电即失);ARQ 环路长但能跨 HARQ 失败兜底。只留 HARQ,深层差错无人兜底;只留 ARQ,每次错误都要付出整段环路的时延代价,吞吐量会崩。
Q: 用户面加密在 PDCP,那 NAS 加密不是重复劳动吗? A: 不是,两者防的“敌人”不同。PDCP 加密防的是空口窃听(保护的是无线这段路);NAS 加密保护的是 UE 到核心网的端到端信令,即使某个基站被攻破或不可信,核心网层面的机密性仍然完好。这是典型的纵深防御,代价只是少量处理开销。
Q: 为什么 VoIP 走 RLC UM 模式,不怕丢包影响音质吗? A: 怕,但更怕时延。语音帧的有效期只有几十毫秒,AM 模式重传回来的帧到达时播放时刻已过,不仅无用还挤占新帧的资源。实践中语音帧丢失由接收端的差错隐藏(用相邻帧合成填补)来掩盖,人耳对这个级别的丢失不敏感。可靠性和实时性冲突时,实时语音永远选后者。
Q: NSA 组网下,手机是不是有两套协议栈在跑? A: 空口协议栈只有一套实体,但 PDCP 以上是“一个大脑管两条路”:数据承载被拆分(split bearer)后,同一 PDCP 实体同时向 4G 和 5G 两条链路收发,负责汇聚、排序和加密。这也是为什么 NSA 升级时旧手机常需刷基带固件——PDCP 的双连接行为是新能力。
本文由「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 等场景全覆盖。
