2. UPF 数据面转发原理:N3/N4/N6 接口、GTP-U 协议封装、数据包转发流程、QoS 流与 DRB 映射
本章深入剖析 5G 核心网用户面功能(UPF)的数据面转发原理。理解 N3/N4/N6 接口的职责、GTP-U 协议的封装细节、数据包的端到端转发流程以及 QoS 流与 DRB 的映射关系,是后续使用 DPDK 进行高性能加速的理论基础。
2.1 核心接口:N3、N4、N6
UPF 作为 5G 核心网的数据面锚点,通过三个关键接口连接不同网元与外部网络。每个接口承载不同的协议栈与业务逻辑。
| 接口 | 连接对象 | 主要协议 | 功能描述 |
|---|---|---|---|
| N3 | gNB(基站) ↔ UPF | GTP-U / UDP / IP | 承载用户面数据隧道,将基站侧的数据包封装后传输至 UPF。 |
| N4 | SMF(会话管理功能) ↔ UPF | PFCP(包转发控制协议) | 控制面接口,SMF 通过 PFCP 会话下发转发规则、QoS 策略与检测规则给 UPF。 |
| N6 | UPF ↔ DN(数据网络) | IP(IPv4/IPv6) | UPF 与外部数据网络(如 Internet、企业内网)之间的用户面接口,通常为纯 IP 转发。 |
关键理解: N3 和 N6 是纯用户面接口,承载实际业务流量;N4 是控制面接口,决定了 UPF “如何转发”。DPDK 优化的重点在于 N3/N6 的高效数据包处理,而 N4 的规则下发频率较低,通常由控制面线程处理。
2.2 GTP-U 协议封装与解封装
GTP-U(GPRS Tunnelling Protocol for User Plane)是 N3 接口的核心协议,负责在 gNB 与 UPF 之间建立隧道,隔离不同用户的业务流量。
2.2.1 GTP-U 报文结构
一个完整的 N3 接口数据包包含多层封装:
+-------------------------------+
| L2 Header (MAC) |
+-------------------------------+
| L3 Header (IP) | <-- 外层 IP(传输层)
+-------------------------------+
| L4 Header (UDP) | <-- 目的端口 2152
+-------------------------------+
| GTP-U Header | <-- 包含 TEID
| (Version, PT, Message Type, |
| Length, TEID, Sequence No.)|
+-------------------------------+
| Inner IP Packet (UE IP) | <-- 真正的用户数据包
+-------------------------------+
| Payload (TCP/UDP/ICMP...) |
+-------------------------------+
- TEID(Tunnel Endpoint Identifier):隧道端点标识符,用于区分不同的 PDU 会话。每个 UE 的每个 PDU 会话在 N3 接口上都有唯一的 TEID。
- 外层 IP/UDP:用于在 gNB 与 UPF 之间传输,源/目的 IP 为基站与 UPF 的传输层地址。
- 内层 IP:UE 的 IP 地址,是业务流量的真实源/目的地址。
2.2.2 上行与下行封装差异
| 方向 | 操作 | 说明 |
|---|---|---|
| 上行(UL) | 解封装 | UPF 从 N3 接口收到 GTP-U 报文,剥离外层 IP/UDP/GTP-U 头,提取内层 IP 包,然后通过 N6 接口转发至 DN。 |
| 下行(DL) | 封装 | UPF 从 N6 接口收到发往 UE 的 IP 包,根据 PDR(包检测规则)找到对应的 TEID,添加 GTP-U/UDP/IP 头,通过 N3 接口发送至 gNB。 |
DPDK 加速点: GTP-U 的封装与解封装涉及大量的内存拷贝与头部操作。DPDK 通过零拷贝技术(如使用 rte_mbuf 直接操作数据包缓冲区)和批量处理(burst processing)可以显著降低这部分开销。
2.3 数据包转发流程
UPF 的数据面转发严格遵循 SMF 通过 N4 接口下发的规则。核心逻辑围绕三个关键概念:PDR(包检测规则)、FAR(转发动作规则)、QER(QoS 执行规则)。
2.3.1 转发流程步骤
- 包接收:UPF 从 N3 或 N6 接口的网卡接收数据包。
- 包检测(PDR 匹配):提取数据包的关键字段(如 TEID、UE IP、QFI 等),与 PDR 中的匹配规则进行比对。
- 动作决策(FAR 查询):匹配到 PDR 后,获取对应的 FAR,决定转发动作(如:转发至 N6、转发至 N3、丢弃、缓存等)。
- QoS 执行(QER 应用):根据 QER 规则,对数据包进行门控(Gate)、速率限制(Metering)或标记(Marking)。
- 封装/转发:根据 FAR 指定的目标接口,执行 GTP-U 封装或解封装,并通过对应的网卡端口发送出去。
性能关键: 在传统内核协议栈中,每个数据包都需要经过多次系统调用、中断处理和上下文切换。DPDK 通过轮询模式驱动(PMD)和用户态转发逻辑,避免了这些开销,使得上述流程可以在纯用户态以极低的延迟完成。
2.4 QoS 流与 DRB 映射
5G QoS 模型基于 QoS Flow 概念,它是 QoS 控制的最小粒度。一个 PDU 会话可以包含多个 QoS Flow,每个 Flow 由 QFI(QoS Flow Identifier) 唯一标识。
2.4.1 映射关系
从无线接入网到核心网,QoS 流需要映射到不同的承载上:
- QoS Flow ↔ DRB(Data Radio Bearer):在空口侧,gNB 负责将多个 QoS Flow 映射到一个或多个 DRB 上。一个 DRB 通常对应一个特定的 QoS 配置(如时延、丢包率)。
- QoS Flow ↔ N3 GTP-U Tunnel:在 N3 接口,每个 QoS Flow 通过 GTP-U 扩展头中的 QFI 字段进行标识。UPF 需要识别 QFI 并执行对应的 QER 规则。
2.4.2 UPF 中的 QoS 处理
UPF 在转发过程中,需要根据 QFI 执行以下操作:
| QoS 参数 | UPF 执行动作 | 典型应用 |
|---|---|---|
| GBR(保证比特率) | 确保最小带宽,进行速率整形 | VoIP、实时视频 |
| Non-GBR | 尽力而为转发,可进行速率限制 | 网页浏览、文件下载 |
| Packet Delay Budget | 优先级调度,丢弃超时数据包 | URLLC(超可靠低时延通信) |
| Packet Error Rate | 链路层重传策略配合 | eMBB(增强移动宽带) |
DPDK 实践: 在实现 QoS 调度时,DPDK 提供了 QoS 调度库(如 rte_sched),支持基于令牌桶的速率限制和优先级队列。UPF 可以根据 QFI 将数据包分发到不同的 DPDK 队列中,实现硬件级别的 QoS 保证。
2.5 整体转发架构 SVG 图
下图展示了 UPF 在 N3/N4/N6 接口间的数据面转发架构,以及 QoS 流与 DRB 的映射关系。
2.6 本章小结
- 接口职责:N3 负责 GTP-U 隧道,N4 负责控制面规则下发,N6 负责与外部网络通信。
- GTP-U 封装:TEID 是隧道标识,UPF 需要高效执行封装与解封装操作。
- 转发流程:基于 PDR/FAR/QER 的三元组规则,实现灵活的数据包检测、转发与 QoS 控制。
- QoS 映射:QFI 是核心标识,UPF 需要根据 QFI 执行门控、速率限制等策略,并理解其与空口 DRB 的对应关系。
下一阶段准备: 理解上述原理后,我们将进入 DPDK 环境搭建与核心库介绍,为后续在 UPF 数据面中实现零拷贝、无锁队列和批量转发打下坚实基础。