<!-- title: 图解5G协议栈：层层封装之旅 -->

你有没有想过：你在微信发出的一句话，是怎么穿过钢筋混凝土、穿过几百米到几公里的空气，准确落到基站天线上的？它并不是“一句话”过去的，而是一个被反复打包、贴标签、上锁、拆分、调制的数据包。而完成这一整套流程的“流水线”，就是**协议栈**。

这篇我们把5G的协议栈从顶到底走一遍。目标不是背下每一层的缩写，而是理解两件事：**每一层为什么存在**，以及**数据每经过一层发生了什么**。

## 一、为什么协议要分层：寄快递的智慧

先不讲5G，先讲寄快递。你要把一台相机寄给朋友，实际发生的事是：

- 你把相机装进防震盒（保护+标识收件人）
- 快递员把防震盒装进麻袋，麻袋上贴运单（方便中转分拣）
- 麻袋装上货车，货车只关心“这批货发往哪个中转场”
- 对方逐层拆包，最后朋友拿到相机

注意两个关键点：**每层只负责自己的包装，且拆包顺序和打包顺序严格相反**；你和你的朋友只关心相机本身，但快递系统的每一环都在为它服务——这就是分层。

通信协议栈把这个思想形式化为三个概念：

1. **分层**：每层只做自己擅长的事，通过明确的接口向上一层提供服务。
2. **对等实体**：发送方的第N层和接收方的第N层，逻辑上是“同一部门的同事在对话”——比如手机的加密层和基站的加密层，它们之间约定的加密规则，中间的层完全不需要理解。
3. **封装与解封装**：上层交给下层一个数据单元（SDU），下层加上自己的头部变成自己的数据单元（PDU），再整体作为更下层的SDU往下传。收到时反过来逐层剥头。

$$L_{PDU} = L_{SDU} + L_{header}$$

一个朴素的公式，但它解释了后面所有的“旅行”：数据每下一层就“变重”一点，接收端每上一层就“变轻”一点。

为什么要费这个劲？因为无线通信极其复杂——信道在变、用户在移动、业务五花八门。如果写成一块巨石般的单一协议，任何改动都会牵一发动全身。分层之后，调制方式换代了不影响加密算法升级，调度策略优化了不碰重传逻辑。**分层本质上是一种“关注点分离”的工程哲学**，和软件工程里的模块化是同一个思想。

## 二、5G用户面协议栈全景：五层流水线

5G用户面（也就是你的业务数据）的空口协议栈，从上到下是：SDAP → PDCP → RLC → MAC → PHY。下图是手机与基站两端镜像的栈，以及数据在它们之间的流动：

```mermaid
flowchart TB
    subgraph UE["手机协议栈"]
        direction TB
        U1["IP数据包"] --> U2["SDAP"]
        U2 --> U3["PDCP"]
        U3 --> U4["RLC"]
        U4 --> U5["MAC"]
        U5 --> U6["PHY"]
    end
    subgraph GN["基站 gNB"]
        direction TB
        G6["PHY"] --> G5["MAC"]
        G5 --> G4["RLC"]
        G4 --> G3["PDCP"]
        G3 --> G2["SDAP"]
        G2 --> G1["GTP-U隧道"]
    end
    U6 -->|空口电波| G6
    U3 -.->|加密的对等搭档| G3
    G1 --> N["核心网UPF"]
```

先给一张总表，建立整体感，再逐层拆解：

| 层 | 核心职责 | 一句话类比 | 5G的显著变化 |
|---|---|---|---|
| SDAP | QoS流到无线承载的映射 | 分拣台：贴上「加急/普通」标签 | 5G全新增加，4G没有 |
| PDCP | 加密、完整性保护、头压缩、按序递交 | 上锁+贴封条+抽真空 | 用户面完整性保护、按序递交从RLC挪来 |
| RLC | 分段、重传 | 拆大件+催签收 | 砍掉重排序和级联，只留分段与ARQ |
| MAC | 调度、复用、混合重传 | 装车调度员：谁先上车 | 与4G类似，按槽调度更密 |
| PHY | 编码、调制、多天线处理 | 把货物变成电波 | 灵活参数集、更宽频谱 |

### SDAP：为数据贴上「服务等级」标签

SDAP是5G新增的一层，4G协议栈里根本没有它。为什么5G要专门加一层？

4G时代，服务质量（QoS）和无线承载是绑死的——一条EPS承载从核心网一直铺到手机，QoS属性和承载一体。这种设计简单，但不够灵活：业务稍微变一下QoS需求，就要动整条承载链路。

5G把这件事解耦了：**QoS流**（用QFI标识）负责描述“这股数据需要什么服务等级”，**数据无线承载（DRB）**负责描述“数据实际在空口哪条通道上跑”。两者之间需要一个“分拣台”来完成映射——这就是SDAP的全部工作。

一个细节很能体现设计者的克制：SDAP头**不是永远存在的**。只有配置了动态QoS映射时，数据包才会带上SDAP头；如果映射关系是静态配好的，这层头干脆省掉——毕竟空口的每一个字节都是宝贵的频谱资源。

### PDCP：安全与秩序的守门人

PDCP是协议栈里“管辖权”最广的一层，四件事都归它管：

**第一，加密与完整性保护。** 手机和基站之间的PDCP层是一对“加密对等搭档”（图1中的虚线）。值得注意的一个演进：4G时代用户面数据只有加密、没有完整性保护——篡改了数据接收方也不知道；5G给用户面也加上了完整性保护，防篡改能力明显增强。加密的具体算法细节不在本文展开，这里只需要记住**它在协议栈中的位置：PDCP**。

**第二，防重放。** 加密需要序号，5G用一个叫COUNT的计数器来保证“同一个密文包不会被当成新包用第二次”：

$$COUNT = HFN \times 2^{L_{SN}} + SN$$

其中SN是包序号，HFN是超帧号。SN本身只有十几比特，很快数满一轮，HFN负责记住“已经数过几轮”——相当于手表的秒针和分针的关系。

**第三，按序递交与重排序。** 这里有个重要的架构变化：4G时代重排序是RLC的活，5G把它挪到了PDCP。为什么？因为重传可能发生在RLC层，但乱序的修复只需要做一次、而且应该在最靠近上层的地方做。功能收拢到一处，避免了两层各排各的队、结果越排越乱的尴尬。

**第四，头压缩（RoHC）。** 这个功能对语音业务是救命的。一帧编码后的语音可能只有三四十字节，而IP/UDP/RTP的头就能占四十多字节——不压缩的话，**一半以上的空口资源在传“信封”而不是“信”**。RoHC能把头压到几个字节，压缩比惊人。

### RLC：拆包裹与催签收

RLC干两件事：**分段**与**重传（ARQ）**。

分段很好理解：PHY的传输块有大小限制（由调度决定），上层来的包如果太大，RLC负责切成小块，接收端再拼回去。就像超过货车限重的货物要拆成两票发运。

重传则有三种工作模式：

- **TM（透明模式）**：什么都不做，直通。用于广播类控制信道。
- **UM（非确认模式）**：只传不确认，丢了不补。用于语音、直播这类实时业务。
- **AM（确认模式）**：接收方要回执，超时没收到就重传。用于网页、下载这类要求零差错的业务。

“语音为什么用UM”是理解无线设计的绝佳案例：语音包的有效期只有几十毫秒，重传一个迟到的包到达时，通话时序早就过去了，**对一个过期的包做完美修复，不如让它体面地丢掉**。丢一个包听感上只是轻微的“沙”声，延迟堆积却是所有人都能感知的卡顿。

5G对RLC做了一次“瘦身”：砍掉了重排序和级联（把多包拼成一个大包再切），只保留分段。原因前面提过——重排序移交PDCP；级联取消则让每个重传单元更小、更独立，出错重传的代价更低，还顺带降低了芯片处理复杂度。

### MAC：装车调度员

如果说上层关心的是“数据对不对”，MAC层关心的就是“资源给谁、什么时候给”。它是整个空口最忙碌的一层：

- **调度**：基站每毫秒级的时隙都要决定“这块频谱、这个时刻，给哪个用户传什么”。所有用户抢的是同一份频谱和时间。
- **复用**：把多个用户的、不同逻辑信道的数据装进同一个传输块——就像不同客户的货拼一辆车。
- **逻辑信道优先级**：车快满了先装谁的货？信令类数据（比如测量报告）优先级高于普通业务数据，保证“打电话报修的电话”永远打得通。
- **混合重传HARQ**：毫秒级的快速补救。收到出错的块不急着扔，先存在软缓冲区里，重传的块和旧块**软合并**后一起解码。注意这里和RLC形成了著名的“梯度救援”体系：HARQ快而糙（毫秒级、低成本、容忍少量残留错误），RLC ARQ慢而稳（兜底，追求最终可靠），再往上还有TCP。三层重传看似冗余，实则是**用不同的时延尺度和可靠性目标分别应对不同量级的信道损伤**——这和医院分诊的逻辑一样：轻症门诊处理，重症进ICU，互相不越位。

### PHY：把比特变成电波

物理层是唯一真正“接触”电波的一层：拿到MAC给的传输块（TB），先附上CRC校验，然后信道编码（加冗余抗噪声）、交织、调制（把比特映射到星座点）、多天线处理，最后映射到具体的时频资源上发射出去。空口调度、HARQ软合并、波束赋形这些话题都发生在这一层或与之紧耦合，这里不再展开——本文的视角是它在栈中的位置：**一切上层的抽象，到这里都必须还原成具体的时频资源和波形**。

## 三、一次下行的完整旅程

把前面所有层串起来，看一个1400字节的IP包（比如网页的一小块内容）从核心网到手机的全过程：

```mermaid
flowchart TD
    P0["IP数据包到达基站"] --> P1["SDAP：打上QFI服务等级标签"]
    P1 --> P2["PDCP：头压缩并加密，加序号头"]
    P2 --> P3["RLC：超出调度块就分段"]
    P3 --> P4["MAC：与其他用户数据复用进传输块"]
    P4 --> P5["PHY：加CRC、编码、调制"]
    P5 --> P6["变成符号从天线发出"]
```

手机收到后，从PHY往上逐层剥头、校验、解密、重组、重排，还原出原始IP包交给应用——**发送端每一层的包装，正好是接收端同一层的解包说明书**。

算一笔开销账就能看出各层设计的苦心：1400字节的大包，五层头部合计只有十来个字节，开销不到2%，可以忽略；但一帧30多字节的语音小包，不压缩时头部开销可能超过100%。这就是为什么PDCP的头压缩对语音是刚需，也解释了为什么实时小包业务的空口效率永远是工程难点。

## 四、控制面：RRC与NAS的分工

以上讲的都是“运货”的用户面。管理这条流水线本身的信令走的是**控制面**，核心是两个协议：

**RRC（无线资源控制）**——手机和基站之间的“总管家”：广播系统消息、寻呼、建立/释放连接、配置测量、下发各层参数。你手机里SDAP怎么映射、PDCP用什么加密配置、RLC用UM还是AM，全是RRC信令配置出来的。

**NAS（非接入层）**——注意名字里的“非接入”：它的对等实体**不是基站，而是核心网的AMF**。注册、鉴权、寻呼响应、会话管理这些涉及“你这个人”的管理，都由NAS负责。基站对NAS消息只是搬运工——把它装在RRC信令的“信封”里转发，自己不读内容：

```mermaid
flowchart LR
    UE["手机 UE"] -->|RRC信令| G["基站 gNB"]
    G -->|RRC信令| UE
    G -->|NAS装在RRC里转发| A["核心网AMF"]
    UE -.->|NAS的逻辑对等端| A
```

这张图请多看一眼，它是无数工程师踩坑的地方：**在基站侧抓RRC信令能看到NAS内容，但NAS的决策逻辑在AMF**——注册被拒时，基站信令里只能看到“AMF让拒的”，原因要到核心网侧找。

### RRC的三种状态：手机的三种睡姿

5G引入了一个新的RRC状态，这是控制面最值得讲的演进：

```mermaid
flowchart LR
    S1["RRC IDLE 深睡"] -->|有业务发起 建立连接| S3["RRC CONNECTED 满速运转"]
    S3 -->|释放连接| S1
    S3 -->|数据间歇 挂起上下文| S2["RRC INACTIVE 小憩"]
    S2 -->|数据再来 快速恢复| S3
    S2 -->|移动出通知区| S1
```

| 状态 | 上下文在哪 | 手机能收什么 | 恢复代价 |
|---|---|---|---|
| IDLE | 网络只有粗略位置（跟踪区） | 寻呼 | 完整建连，信令多、时延长 |
| INACTIVE | 锚点基站完整保留 | RAN侧寻呼 | 快速恢复，几条信令搞定 |
| CONNECTED | 服务基站完整保留 | 一切 | 无需恢复，即刻收发 |

4G只有“在线/离线”两态，间隙性小数据业务（比如心跳、推送）很尴尬：保持连接费电费资源，断开再连信令又太重。5G的INACTIVE态是折中方案——**连接挂起但上下文不销毁**，数据再来时凭一个恢复标识快速唤醒，基站侧“记忆”都还在。这是5G支撑海量物联和突发小包业务的关键设计之一。

## 五、基站被切开的年代：CU/DU与协议栈放置

5G还做了一件4G没做的事：把基站从一台“一体机”切成了分布式架构。功能上分成CU（集中单元）、DU（分布单元）、RU（射频单元）三级，而切分线正是画在协议栈上：

- **CU**：SDAP、PDCP、RRC——上层的、全局性的功能
- **DU**：RLC、MAC和部分物理层——实时的、贴近调度的功能
- **RU**：射频和底层物理层处理

为什么要切？三个理由：

1. **集中带来统计复用**：PDCP以上集中部署后，多个DU的用户可以在CU汇聚，干扰协调、双连接切换都在CU内完成，快得多。
2. **各自按需伸缩**：CU适合云化虚拟化跑在通用服务器上，DU贴近天线部署满足实时性，硬件形态各得其所。
3. **解耦接口**：CU/DU之间的接口标准化后，设备可以混搭部署。标准也允许多种切分和部署方式，具体形态以各厂家官方文档为准，但“切在PDCP和RLC之间”是现网的主流选择——因为RLC以下对时延极其敏感，必须留在天线附近；PDCP以上相对从容，可以放到机房甚至云上。

理解协议栈，你就理解了5G网络架构演变的底层逻辑：**所谓架构演进，很大程度上就是在回答“每一层应该放在哪里”**。

## 六、实战连接：这套知识在现网哪里用得上

**场景1：丢包定位。** 在核心网N3接口抓包，看到的是GTP-U隧道里封装的原始IP包——也就是还没进空口协议栈“加工”前的样子。如果N3口有包、终端收不到，问题在空口协议栈（逐层排查：是RLC重传耗尽，还是HARQ残留误块？）；如果N3口就没有，问题根本不在无线侧。一抓一比，故障域立刻二分。

**场景2：QoS不生效。** 用户投诉“签约的加速通道没效果”，排查链路是：核心网下发的5QI有没有映射成QFI → SDAP把这个QFI映射到了哪个DRB → 该DRB的RLC模式（AM还是UM）和调度优先级对不对。任何一环断了，QoS就是纸面文章。

**场景3：掉话分析。** 大量掉话的根因是RLC达到最大重传次数触发无线链路失败。看到RLC重传到达上限的计数器飙升，方向就该转向覆盖、干扰或切换参数，而不是傻查传输。

**场景4：空口信令看不懂。** 排查问题时发现空口抓包里PDCP往上是密文——对，加密就在PDCP，这是分层知识直接告诉你的事实。想看明文得用诊断密钥解密，而不是怀疑抓包工具坏了。

**常见误解清单：**

- 误解一：“HARQ、RLC、TCP三层都重传是冗余设计。”——不是。三层的时间尺度和可靠性目标完全不同，是分诊体系不是重复建设。
- 误解二：“NAS是基站的协议层。”——NAS对等端在AMF，基站只透传。
- 误解三：“SDAP头每个包都有。”——静态映射时没有这层头。
- 误解四：“语音走UM模式不可靠，应该配AM。”——恰恰相反，迟到的完美不如及时的丢弃。

## 常见问题

**Q: HARQ和RLC都是重传，为什么不能合并成一层？**
A: 两者的设计目标差了一个数量级。HARQ在MAC层，重传在毫秒内完成，配合软合并，目标是用最小代价把误块率压到可接受；RLC ARQ在确认模式下兜底，处理HARQ几轮都没救回来的“顽固错误”。合并到一层意味着要么所有错误都用慢速重传（时延爆炸），要么都用快速重传（可靠性不够）。梯度分工是时延与可靠性的最优折中。

**Q: 5G为什么要把重排序从RLC挪到PDCP？**
A: 因为按序递交只需要做一次，而且应该在最靠近上层的地方做。4G时代RLC和PDCP都可能牵涉重排，两层各维护状态机既浪费又容易出bug。5G收拢到PDCP后，RLC变成纯粹的“分段+重传”简单模块，处理时延更低，也让CU/DU切分后的功能归属更清晰。

**Q: SDAP、QFI、5QI、DRB是什么关系？**
A: 5QI是“服务等级的说明书”（时延、误码率要求是多少）；QFI是某股数据的标签（“你属于哪个等级”）；SDAP拿着QFI决定数据装进哪条DRB；DRB是空口上实际跑车的通道。一个类比：5QI是快递公司的服务标准，QFI是包裹上贴的加急标签，SDAP是决定加急件走哪条专线车道的分拣台，DRB就是那条专线。

**Q: INACTIVE状态和4G的连接挂起有什么本质区别？**
A: 4G厂商私有的挂起方案各自为政，跨厂商切换后状态就丢了。5G的INACTIVE是标准化的：锚点基站保留完整上下文、有统一的恢复标识和RAN寻呼区机制，网络内移动时状态可迁移。对用户是更快的恢复时延，对运营商是更少的信令风暴风险。

**Q: 为什么说“理解了协议栈就理解了5G架构演进”？**
A: 因为CU/DU切分、核心网重构、边缘计算，本质上都在回答同一个问题：每一层协议应该物理上放在哪里、逻辑上归谁管。协议栈是5G所有架构决策的坐标系。

## 参考来源

2. [ShareTechnote](https://www.sharetechnote.com/) — 经典通信工程学习站，5G各协议层逐层笔记与图示

---
> 本文由「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 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
