想象你从北京给上海的朋友寄一部手机。你不会直接把裸机扔进邮筒——你会先装进手机盒,再套上气泡袋防震,然后装进快递纸箱,贴上快递单,最后交给快递员放进运输车。每一层包装都有自己的目的:防震、防水、标识地址、防丢。
5G网络中,你的微信消息、视频数据、VoNR语音包,从手机到基站再传到核心网,经历的正是这样一个层层封装的过程。每一层协议就像一层包装,各自承担不同的职责:加密、分段、调度、纠错、调制。理解这个封装链条,是读懂5G所有信令流程和故障排查的基础。
5G协议栈分为控制面(Control Plane)和用户面(User Plane)两条路径。控制面传递信令(如注册、切换指令),用户面传递业务数据(如视频流、网页内容)。两条路径共享底层(PHY/MAC/RLC),但在上层有区别。

图表 1
| 维度 | 控制面 | 用户面 |
|---|---|---|
| 传递内容 | 信令消息(注册、切换、寻呼) | 业务数据(视频、文件、语音) |
| 最高层协议 | NAS → RRC | SDAP(5G新增) |
| PDCP功能 | 加密 + 完整性保护 | 加密 + 头压缩 |
| RLC模式 | TM(BCCH/PCCH)或 AM(DCCH) | UM(VoIP)或 AM(TCP业务) |
| 终点 | AMF(核心网控制面) | UPF(核心网用户面) |
| 时延要求 | 相对宽松 | 极其严格(URLLC要求<1ms) |
为什么这样设计? 信令和数据走不同的路径,就像高速公路上客车和货车分道行驶——信令需要可靠性(走AM模式,确保每条指令送达),数据需要效率(VoIP走UM模式减少重传延迟)。
SDAP(Service Data Adaptation Protocol)是5G NR全新引入的协议层,4G LTE中不存在。它的核心职责只有一个:将QoS流映射到数据无线承载(DRB)上。
为什么需要这一层?4G用"EPS承载"来管理服务质量,一个承载对应一套QoS参数。但5G要支持网络切片和更精细的QoS控制,引入了"QoS流"的概念——同一个PDU会话内可以有多个QoS流,每个流的时延、速率要求不同。SDAP就是负责把这些QoS流"分配"到合适的无线承载上。
SDAP PDU格式:
┌──────────┬──────────────────────┐
│ SDAP Header │ SDAP SDU(QoS流数据)│
│ (1字节) │ │
│ - RDI位 │ │
│ - QFI(6位) │ │
└──────────┴──────────────────────┘
QFI(QoS Flow Identifier)占6位,可标识64种不同的QoS流。RDI(Reflective QoS flow to DRB mapping Indication)位用于指示UE是否采用反射式映射。
PDCP(Packet Data Convergence Protocol)承担两大类功能:
| 功能类别 | 具体功能 | 为什么需要 |
|---|---|---|
| 安全 | 加密/解密、完整性保护/验证 | 防止空口数据被窃听或篡改 |
| 头压缩 | ROHC(鲁棒头压缩) | VoIP的IP/UDP/RTP头部40字节→1~4字节,节省空口资源 |
| 排序 | 基于PDCP SN的重排序 | 切换时数据可能乱序到达 |
| 重复检测 | 去除重复PDU | 切换或重传场景下避免数据重复 |
| 切换支持 | PDCP状态保存与前转 | 保证切换时业务不中断 |
PDCP序列号(SN)的长度是一个关键参数:
| SN长度 | 适用场景 | 特点 |
|---|---|---|
| 12位 | 普通业务 | 最多4096个编号,节省头开销 |
| 18位 | 高速率业务 | 最多262144个编号,避免SN快速回绕 |
什么场景用18位SN? 当数据速率很高时(比如下载1Gbps的文件),12位SN很快就会用完一圈(4096个PDU),回绕会导致接收端误判为重复包。18位SN给足了余量。
RLC(Radio Link Control)是协议栈中最具"智慧"的一层,它有三种工作模式:

图表 2
| 模式 | 分段/重组 | ARQ重传 | 头部开销 | 典型应用 |
|---|---|---|---|---|
| TM | 否 | 否 | 0字节 | 系统消息(SIB)、寻呼 |
| UM | 是 | 否 | 2~4字节 | VoIP语音、视频流 |
| AM | 是 | 是 | 2~6字节 | TCP数据、RRC信令 |
为什么需要分段? 假设PDCP交给RLC一个1500字节的IP包,但MAC层本次调度只分配了500字节的传输块(TB)。RLC必须把这个1500字节的包切成3段,分3次传输。接收端RLC再根据段偏移(SO)字段把3段拼回去。
TM模式为什么存在? 系统消息(SIB)和寻呼消息需要在UE还没有建立任何承载时就能接收,此时RLC不能添加任何自己的头部(UE不知道如何解析),所以用透明模式"透传"。
RLC AM的ARQ机制关键参数:
$$\text{重传触发条件: } \text{pollSN} \leq \text{TX_Next} - 1 \text{ 且 } \text{未收到STATUS报告}$$
其中 TX_Next 是下一个待发送的RLC SDU编号,pollSN 是请求对端反馈STATUS的触发点。
MAC(Medium Access Control)是协议栈中"权力最大"的一层,它决定了谁的数据先传、传多少、用什么资源。

图表 3
MAC的核心功能一览:
| 功能 | 说明 | 实战意义 |
|---|---|---|
| 逻辑信道复用 | 将多个逻辑信道的数据复用到一个传输块 | 一帧中同时传信令和用户数据 |
| HARQ | 混合自动重传请求,物理层快速重传 | 一次HARQ RTT约4ms,远快于RLC ARQ |
| 调度 | 根据BSR/PHR决定上行资源分配 | 基站知道UE有多少数据要发,才好分资源 |
| 逻辑信道优先级 | 保障高优先级信道(信令>VoIP>视频) | 网络拥塞时信令不受影响 |
| 随机接入 | 管理PRACH过程 | UE开机后第一个与基站的"对话" |
| 时间提前量 | 调整UE上行发送时间 | 保证不同距离UE的信号同时到达基站 |
HARQ vs RLC ARQ的区别——这是初学者最容易混淆的点:
| 对比维度 | HARQ(MAC层) | ARQ(RLC层) |
|---|---|---|
| 速度 | 快(~4ms RTT) | 慢(几十ms) |
| 机制 | 停等式,进程并行 | 滑窗式,选择性重传 |
| 纠错能力 | 只能纠正少量错误 | 可处理HARQ失败后的残留错误 |
| 反馈 | ACK/NACK(1 bit) | STATUS PDU(详细报告) |
| 软合并 | 支持(Chase/IR合并) | 不支持 |
| 失败后 | 通知RLC重传 | 重传该SDU |
用快递类比:HARQ就像快递员发现包裹破损立刻回头重拿,ARQ则是仓库接到客户投诉后重新发货。HARQ是第一道防线,ARQ是兜底机制。
PHY(物理层)是协议栈的"底层搬运工",它把MAC层交来的传输块变成能在天线口发射的电磁波信号。核心处理流程:
传输块(TB) → 添加CRC → 信道编码(LDPC/Polar) → 速率匹配
→ 调制(QPSK/16QAM/64QAM/256QAM) → 层映射 → 预编码
→ RE映射 → IFFT → 加CP → 上变频 → 天线发射
| 处理步骤 | 5G NR选用的编码/方案 | 为什么选它 |
|---|---|---|
| 信道编码(数据) | LDPC码 | 长码性能优于Turbo,并行解码速度快 |
| 信道编码(控制) | Polar码 | 短码性能逼近香农极限 |
| 调制 | 最高256QAM | 每符号携带8bit,吞吐量翻倍 |
| 波形 | CP-OFDM(主流) | 灵活的子载波间隔,支持MIMO |
现在让我们跟踪一个1500字节的TCP/IP数据包(比如你正在加载的网页),看它如何从应用层一路封装到空口信号。

图表 4
| 层 | 添加的开销 | 输出 | 说明 |
|---|---|---|---|
| 应用层→IP | +40字节(TCP+IP头) | IP包 ~1440字节 | IP头20B + TCP头20B |
| IP→SDAP | +1字节 | SDAP PDU ~1441字节 | 5G新增,4G无此层 |
| SDAP→PDCP | +3字节(12位SN) | PDCP PDU ~1444字节 | 加密后载荷不可读 |
| PDCP→RLC | +3~6字节 | RLC PDU ~1447字节 | 可能被分段 |
| RLC→MAC | +3~N字节 | MAC PDU ~1450字节 | 含子头+可能的CE+填充 |
| MAC→PHY | +CRC 24bit + 编码冗余 | 传输块 | 编码后大小取决于MCS |
开销占比分析: 一个1440字节的IP包,经过SDAP+PDCP+RLC+MAC封装后增加约10~15字节,协议开销占比不到1%。这就是为什么空口效率很高——大部分无线资源都在传"真正的数据"。
协议栈中存在三种信道,分别对应不同层之间的接口。理解信道映射,就像理解"快递系统中的三种地址"。

图表 5
| 信道类型 | 存在于 | 传输的是什么 | 类比 |
|---|---|---|---|
| 逻辑信道 | RLC与MAC之间 | 不同类型的数据(信令/业务/广播) | 快件的"内容分类"(文件/食品/电子) |
| 传输信道 | MAC与PHY之间 | 数据的传输方式(共享/专用/随机) | 快递的"运输方式"(空运/陆运/海运) |
| 物理信道 | PHY到空口 | 具体的无线信号资源(时频域位置) | 具体的"航班号/车牌号" |
| 逻辑信道 | → 传输信道 | → 物理信道 | 说明 |
|---|---|---|---|
| BCCH | → BCH | → PBCH | MIB(主系统信息块) |
| BCCH | → DL-SCH | → PDSCH | SIB1~SIB9(详细系统信息) |
| PCCH | → PCH | → PDSCH | 寻呼消息 |
| DCCH | → DL-SCH | → PDSCH | 专用RRC信令 |
| DTCH | → DL-SCH | → PDSCH | 用户数据 |
为什么BCCH有两种映射路径? MIB是UE开机后读到的第一条系统信息,内容很少但极其关键(只有24比特核心内容),用专门的PBCH信道发送。而SIB内容较多,不值得单独占用信道,就复用DL-SCH/PDSCH共享传输。这是"关键少量信息走专用通道,大量信息走共享通道"的设计哲学。
| 对比维度 | 4G LTE | 5G NR | 设计动机 |
|---|---|---|---|
| 用户面最高层 | PDCP | SDAP(新增) | 支持基于QoS流的精细调度 |
| QoS管理粒度 | EPS承载(粗粒度) | QoS流(细粒度) | 一条承载内多种QoS需求 |
| PDCP SN长度 | 5/7/12位 | 12/18位 | 高速率业务需要更大SN空间 |
| RLC模式 | TM/UM/AM | TM/UM/AM(相同) | 继承LTE成熟设计 |
| MAC子头长度 | 固定格式 | 更灵活的变长格式 | 提高资源利用率 |
| PHY子载波间隔 | 固定15kHz | 15/30/60/120/240kHz | 灵活numerology适配不同场景 |
| 双连接 | PDCP分流 | 增强的PDCP复制+分流 | 更可靠的双连接切换 |
| 数据前转 | 基于X2的PDCP前转 | 基于Xn的增强前转 | 降低切换中断时间 |
SDAP层为什么是5G"必须"的? 4G的EPS承载架构中,每个承载对应一组QoS参数,但建立/修改承载需要信令交互,开销大、延迟高。5G的QoS流架构允许核心网(SMF)在同一个PDU会话内动态创建/删除QoS流,无需空口信令。SDAP负责在空口侧把这些流映射到已有的无线承载上,实现了"核心网灵活 + 空口高效"的结合。
现象: A能听到B的声音,B听不到A的声音。
协议栈视角: - VoNR走用户面协议栈:SDAP → PDCP → RLC(UM) → MAC → PHY - 单通说明某个方向的数据流断裂 - 如果A→B不通:检查A的上行RLC是否在持续发送、B的下行PDCP是否在持续接收 - 排查方向: 用QXDM/logView看UE侧的RLC Tx/Rx统计,定位是发送端没发包还是接收端没收到
现象: 手机从小区A切换到小区B后,正在进行的视频通话卡住。
协议栈视角: - 切换涉及PDCP层的重定位:PDCP SN要连续,缓存中的PDU要前转 - 如果RLC AM模式下,切换时AM实体重建,未确认的PDU会丢失 - 排查方向: 检查PDCP状态报告是否在切换中成功传递,RLC STATUS PDU是否完整前转
现象: 理论上行速率500Mbps,实测只有50Mbps。
协议栈视角:
- 上行速率受限于整个链条的最慢环节
- 检查BSR(Buffer Status Report)是否准确上报了UE的缓存大小
- 检查MAC调度:基站是否给足了UL Grant
- 检查RLC AM的窗口是否受限:AM_Window_Size 如果太小,会导致发送窗口卡住
- 检查PDCP是否使用了ROHC头压缩:没有压缩时VoIP开销大增
- 排查方向: 逐层定位——先看PHY层的MCS和RB数量,再看MAC层的Grant利用率,最后看RLC/PDCP是否有瓶颈
现象: RLC层STATUS报告显示大量NACK,重传率>5%。
协议栈视角: - RLC AM重传发生在HARQ重传失败之后 - 先确认HARQ是否也失败率高——如果是空口质量问题,HARQ也会失败 - 如果HARQ正常但RLC重传多——可能是MAC层HARQ进程配置不合理,或RLC轮询(poll)触发过于频繁 - 排查方向: 对比HARQ BLER和RLC重传率,判断问题在物理层还是协议层
| 工具 | 能看到的协议层信息 | 典型用途 |
|---|---|---|
| QXDM/QCAT | 全协议栈日志 | 查看每层PDU内容、统计重传率 |
| Wireshark | NAS/RRC解码 | 分析信令流程、定位注册/切换失败 |
| 基站侧log | MAC调度详情、HARQ进程状态 | 分析调度是否公平、资源是否充足 |
| 路测软件 | PHY层RSRP/SINR/CQI | 评估空口质量,判断是否物理层瓶颈 |
| 术语 | 全称 | 一句话解释 |
|---|---|---|
| SDU | Service Data Unit | 上层交下来的"原始数据" |
| PDU | Protocol Data Unit | 本层加工后的"带包装数据" |
| TB | Transport Block | MAC层交给PHY的一个传输块 |
| LCID | Logical Channel ID | MAC子头中标识逻辑信道的编号 |
| BSR | Buffer Status Report | UE告诉基站"我还有多少数据要发" |
| PHR | Power Headroom Report | UE告诉基站"我还有多少发射功率余量" |
| ROHC | Robust Header Compression | PDCP的头压缩协议,把40字节IP头压到1~4字节 |
| HARQ | Hybrid ARQ | MAC层的快速重传机制 |
| SN | Sequence Number | PDCP或RLC层的序列号 |
Q: SDAP层在NSA组网下存在吗? A: 不一定。NSA(非独立组网)模式下,UE通过LTE锚点接入5G核心网,数据面可能走LTE的eNB。只有当数据通过gNB的NR用户面传输时,SDAP层才存在。如果UE通过EN-DC双连接,主站eNB侧没有SDAP,辅站gNB侧有SDAP。
Q: PDCP加密和完整性保护有什么区别? A: 加密(Ciphering)是把数据内容变成密文,防止窃听,用DRB密钥加密载荷部分;完整性保护(Integrity Protection)是给数据加一个校验标签(MAC-I,32bit),防止篡改,对整个PDU(包括头部)计算。控制面(SRB)必须同时启用加密和完整性保护,用户面(DRB)只必须启用加密,完整性保护可选。这也是为什么控制面比用户面多了4字节完整性标签开销。
Q: RLC的AM模式下,重传多少次才放弃?
A: 标准没有规定固定次数,而是通过参数 t-Reassembly(重组定时器)和 maxRetxThreshold(最大重传次数)来控制。典型配置下,maxRetxThreshold 可以设为 1/2/3/4/6/8/16/32 次。如果超过最大重传次数仍未收到确认,RLC层会上报RRC,触发RLF(无线链路失败)流程。
Q: MAC CE是什么?为什么不走RLC? A: MAC CE(Control Element)是MAC层自带的控制信息,如BSR、PHR、C-RNTI等。这些信息量很小(几个字节)但需要快速传递,如果再经过RLC的分段和确认机制,延迟就太高了。所以MAC CE直接嵌入MAC PDU中,随数据一起发送,走HARQ保护即可。这就像快递单上直接写"加急",不需要另外发一封信通知快递公司。
Q: 为什么说协议栈是"沙漏"形状? A: 在整个通信体系中,从应用层到物理层,中间的IP层是"最窄"的——无论上层有多少种应用(微信、抖音、视频会议),到了IP层都统一成IP包。这就像沙漏中间最细的地方,所有东西都要通过同一个瓶颈。5G协议栈的L2(SDAP/PDCP/RLC/MAC)是空口的"瓶颈",所有应用数据都要经过同一套封装和调度机制。
本文由「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 等场景全覆盖。
