Chapter 5: Mobile Core¶
Mobile Core 是连接无线接入网和互联网的"中枢大脑", 它负责四件核心大事:
- 认证: 当手机连上基站时, 验证"你是谁"
- 移动性管理: 追踪手机从一个基站移动到另一个基站
- QoS保障: 确保网络连接满足承诺的服务质量
- 计费(Metering): 统计流量用于计费
演进趋势: 过去这些功能都由专用硬件设备提供, 现在正在被拆解成一组云服务(微服务化), 目标是提高新功能的迭代速度, 并能针对不同应用场景定制化
关于 mobile core 的架构有很多种, 但是这一章节的内容聚焦3gpp定义的核心网架构. 这与很多主流的工作组推出的 Open 5GC 保持一致, 比如 aether, free5gc, open5gs. 当然, 对于5gc的设计, 其实也有一些新的尝试, 比如 magma (nsdi 2023)
Open5GS 的架构:

Megma 的架构:

用户身份管理¶
两种看待Mobile Core的视角¶
| 视角 | 核心思想 | 全局标识符 |
|---|---|---|
| Internet-centric (从传统互联网角度) | Mobile Core是一个路由器, 把RAN连接到全球互联网 | IP地址 |
| 3GPP-centric (从3GPP角度) | 分布式的Mobile Core协作, 把多个物理RAN变成一个"逻辑上的全球RAN" | IMSI |
两种视角都对, 但由于宽带上网访问云服务是主流场景, 本章采用Internet-centric视角 (review: 下图来自ch1):

IMSI: 移动网络中的身份标识¶
IMSI(International Mobile Subscriber Identity)烧录在SIM卡里, 是手机在移动网络中的全球唯一标识.
- IMSI之于移动网络 ≈ MAC地址之于以太网/WiFi
- 但IMSI比MAC地址多一个功能: 支持全球路由(能用来直接定位设备在哪)
(1) IMSI的结构: 由(MCC, MNC)前缀 + 运营商分配的后缀组成
- MCC/MNC 由全球权威机构分配给运营商
- 运营商再给每个SIM卡分配唯一的 IMSI
- 与DHCP不同, IMSI和设备的绑定是静态的 (一次烧录, 终身伴随此SIM卡)
(2) IMSI如何实现给设备的"定位"?
在移动网络 mobile core中, 存在一个层级分布式数据库, 把IMSI映射到两类信息:
- 静态信息: 服务等级, 手机号, 账户信息
- 动态信息: 设备当前位置(在哪个Mobile Core, 哪个基站)
在4G~5G的迭代过程中, 这个"位置映射"服务的名字也在不断变化:
| 代际 | 静态信息 | 动态信息 |
|---|---|---|
| 2G/3G | HLR (Home Location Registry) | - |
| 4G | HLR | HSS (Home Subscriber Server) |
| 5G | UDR (Unified Data Registry) | UDM (Unified Data Management) |
IMSI vs IP地址
Two Key Insights:
-
IoT设备不需要被"呼叫": 没人会打电话给无人机, 摄像头. 所以定位这些设备靠的是IP地址, IMSI此时只起到类似MAC地址的作用, Mobile Core就像一个普通的接入路由器.
-
IP地址会变, 通话会断: 设备在不同Mobile Core覆盖区域之间移动时, 会被分配新的IP地址, 正在进行的通话会中断(只有在同一个Mobile Core服务范围内才支持无缝移动). 但这对宽带上网影响不大, 因为TCP等协议本身就能处理这种情况.
功能组件¶
5G Mobile Core(5GC)采用了微服务式架构, 3GPP称之为 Service Based Architecture (SBA)
注意: 3GPP只定义了功能模块, 并没有规定具体怎么实现. 所以"微服务"只是一个合理的工作模型, 实际的工程实现要复杂得多
这个图概览了3GPP标准的5GC主要组件, 这一小节所有的组件都来源于本图, 建议熟悉一下, 与后文挨个对照:

User Plane 组件¶
UPF(User Plane Function): 用户平面的核心, 负责在RAN和互联网之间转发流量
职责:
- IP包转发
- 策略执行
- 合法监听
- 流量统计
- QoS策略执行
- 隧道封装/解封装: 因为RAN是overlay网络, UPF要把数据包通过"N3接口"隧道传送给基站
Control Plane 组件¶
(1) 两个最重要的控制平面组件: AMF and SMF
| 组件 | 全称 | 核心职责 |
|---|---|---|
| AMF | Access and Mobility Management Function | 连接管理, 可达性管理, 移动性管理, 接入授权, 位置服务 |
| SMF | Session Management Function | 管理每个UE的会话: IP地址分配, 选择UPF, QoS控制, 路由控制 |
- AMF = "门卫" + "追踪器": 手机刚连上基站时负责授权, 然后追踪手机当前连着哪个基站
- SMF = "会话管家": 给授权后的手机分配IP, 管理它的通信会话状态
重要细节:
SMF控制的会话状态(由UPF实现)包括一个数据包缓冲区, 用于在UE从空闲状态唤醒期间暂存数据包
这个功能最初是为了避免语音通话丢数据, 但对IP包来说价值不大(TCP会重传). 不过如果 "空闲→活跃" 的切换太频繁, 那很显然会给TCP带来问题.
(2) 其他控制平面组件: AUSF, UDR, DUSF, ...
笔者认为这些组件比较琐碎, 没必要死记硬背并逐一展开. 看个大概, 混个眼熟就行
3GPP定义了很多组件, 这里只列出对私有5G部署有价值的. 这些组件都是以 micro-service 形式展开的:
| 组件 | 全称 | 功能 | 类比 |
|---|---|---|---|
| AUSF | Authentication Server Function | 认证UE | 认证服务 |
| UDM | Unified Data Management | 管理用户身份, 生成认证凭证和访问授权 | - |
| UDR | Unified Data Repository | 管理用户静态订阅信息 | - |
| UDSF | Unstructured Data Storage Function | 存储非结构化数据 | Key-Value Store (经典实现方式: MongoDB) |
| NEF | Network Exposure Function | 向第三方服务暴露能力 | API Server |
| NRF | Network Repository Function | 发现可用的网络功能 | Discovery Service |
| PCF | Policy Control Function | 管理控制平面的策略规则 | - |
| NSSF | Network Slice Selection Function | 管理网络切片如何被选择来服务UE | - |
注意:
- UDSF 可以直接用 MongoDB 实现. 参考链接: open5gs-udsf
- 但 AUSF/UDM/UDR/AMF 这一套认证授权不能直接用 OAuth2 替换, 因为:
- UDM/UDR是全球身份映射服务的一部分 (类比: 试图用"微信扫码登录"来替换"海关的护照查验和指纹扫描". 前者虽然方便, 但无法提供后者所需的 "国家级安全准入和物理追踪" 能力)
- 3GPP规定了组件之间的接口(如: AMF通过N2接口连RAN)
OAuth2 和 3GPP认证的区别
核心是: 认证级别不同(硬件 vs 软件)
- 5G (AUSF/UDM): 依赖于 SIM 卡里烧录的物理密钥.
- 手机一开机, 底层就需要和基站进行复杂的密码学运算, 以证明"我是合法的移动用户"
- 这是物理层的准入
- OAuth2: 是你连上网络之后, 打开 App 时发生的事情. 它无法处理 SIM 卡底层的加密握手
- 通常, 这是应用层的准入
- 常用的实现方式是: 基于 token 的认证 (链接: github oauth2)
设计亮点: 引入独立的存储服务(如: UDSF)意味着其他服务可以是无状态的, 从而更容易"水平扩展"
控制平面的两类主流实现¶
5gc的实现方式有很多, 这里介绍两种主流的开源实现: SD-Core 和 Magma
SD-Core¶
SD-Core是3GPP功能模块到云原生实现的近乎一对一的翻译, 每个组件对应一组Kubernetes托管的容器

(1) 同时支持4G和5G
SD-Core支持4G Core和5G Core, 两者共享同一个UPF实现(如上图). 5G Core的组件设计为无状态, 便于水平扩展.
Note
书中提到: "SD-Core's 4G Core is a fork of the OMEC project and its 5G Core is a fork of the Free5GC project."
4G和5G组件的大致对应关系:
| 4G | 5G | 作用 |
|---|---|---|
| MME | AMF | 连接管理, 移动性管理 |
| SPGW_C | SMF | 会话管理 |
| HSS | UDM | 用户身份管理 |
| PCRF | PCF | 策略控制 |
4G组件全称
MME: Mobility Management EntitySPGW_C: Serving and Packet Gateway - Control planeHSS: Home Subscriber ServerPCRF: Policy and Charging Rules Function
还有一个基于MongoDB的可扩展KV存储, 用于持久化控制平面状态
(2) SA部署模式
SA: Standalone, 独立组网模式
SA 与 NSA 是关于 5G 网络部署架构的核心问题. 简单点说, SA 与 NSA 决定了 5G 基站到底是由谁来"指挥"的
当我们说 SA/NSA 时, 其实是在说 5G SA/NSA. 没有 3G/4G 的 SA/NSA 说法.
那为什么唯独 5G 会有 SA/NSA 这个概念? 其实这是一个历史原因:
- NSA (Non-Standalone) 非独立组网
- 架构: 5G 基站 + 4G 核心网 (EPC)
- 用途:
- 当你需要下载大文件(电影)时, 5G会帮你跑腿, 速度很快
- 但是, 指挥系统(如呼叫建立, 位置更新, 鉴权)还是由老主管(4G 基站和 4G 核心网)负责
- 手机必须同时连接 4G 和 5G
- 目的: 快速部署 5G 服务, 复用现有 4G 基础设施
- 运营商为了省钱, 抢时间. 利用现有的 4G 网络基础, 快速让用户看到手机上显示 "5G" 图标, 体验到网速变快
- 参考 ch2的中国移动LTE 与 5G SA示例
- SA (Standalone) 独立组网
- 架构: 5G 基站 + 5G 核心网 (5GC)
- 用途: 从接待到出餐, 全部由 5G 系统独立完成. 不再依赖 4G, 手机直接连 5G 核心网
- 目的: 实际上, 这才是真正5G应有的样子! 只有这样, 才能实现 5G 吹嘘的那些"黑科技"(如低延迟, 切片网络)
目前的趋势很显然: 全球运营商都在加速从 NSA 向 SA 切换. 因为只有在 SA 模式下, 5G 核心网的灵活性(认证授权机制)才能真正发挥作用
因此, 这里的"SA部署模式"想说明:
4G和5G网络共存但独立运行. UPF实现共享, 但为每对RAN/Core单独实例化, 支持4G的S1-U接口和5G的N3接口
(3) 丰富的3GPP接口
如图所示:
- NR Uu: BS↔UE的空口
- N1: Core↔UE的控制接口
- N2: Core↔BS的控制接口
- N3: Core↔BS的用户平面接口
- N6: Core↔骨干网的数据平面接口
- Nudm等: 控制平面微服务之间的RESTful接口
(4) 水平扩展示例: SCTP 负载均衡
因为 AMF 通过 SCTP 连接 RAN(by N1/N2), 需要在AMF前面放一个SCTP负载均衡器来终结SCTP连接, 把请求分发给多个AMF容器. 这些AMF实例依赖MongoDB读写共享状态
Magma¶
Magma是一个非标准但很有特色的开源Mobile Core实现, 专为偏远农村, 回程链路不稳定的环境设计, 来自 nsdi-2023.
设计理念:
- SDN启发的集中/分布式分离
- 不严格遵守所有3GPP接口规范(但仍能互操作)
- 统一4G, 5G和WiFi

(1) 主要成分:
- Orchestrator: 中央控制管理, 提供北向API供运营商或OSS/BSS交互
- AGW (Access Gateway):
- 分布式组件, 体积小, 包含数据平面 + 控制平面
- 非常靠近基站, 甚至基本一体(如下图, 来自原论文)

注意, Magma眼中的"回程"与传统3GPP的回程是不同的:
- 传统3GPP: 回程是 BS - Mobile Core 的链路
- Magma: 把大部分Core功能放到"基站旁边的AGW"里, "回程"是 AGW-互联网/Orchestrator 的链路
(2) Magma如何应对不稳定的"回程"
传统3GPP控制协议对丢包和延迟很敏感, 会导致UE掉线甚至"卡死". Magma的应对策略:
策略1: 减少回程流量
- 把更多功能下沉到AGW
- UE认证和附着, 通常只需AGW本地缓存的信息, 不用跨回程
策略2: 使用gRPC通信
需要跨回程传数据时用gRPC, 它天生能应对不稳定/高延迟链路
gRPC 为什么更抗造
gRPC 基于 HTTP/2, 天生具备几个优势:
| 特性 | 效果 |
|---|---|
| 内置重试机制 | 请求失败自动重试, 不需要上层操心 |
| 多路复用 | 一个连接跑多个请求, 单个请求超时不影响整体 |
| 连接管理宽松 | 不像 SCTP 那样"一超时就断", 允许更长的等待 |
| 无状态友好 | 天然适配"请求-响应"模式, 链路恢复后继续发就行 |
策略3: Desired State Model
| 模型 | 工作方式 | 容错性 |
|---|---|---|
| 增量更新 | "添加会话Z" | 差: 消息丢失就不同步了 |
| 期望状态 | "会话集合现在是X, Y, Z" | 好: 恢复后自动同步 |
经证实, 上述方法在AGW规模(几百到几千用户)下, 状态编码足够高效, 开销可接受
(3) Magma 的数据平面
基于 Open vSwitch (OVS) 实现, 简单但够用, 可替换
有一说一, 这也太 SDN 了 hhh
数据平面的实现¶
UPF本质是一个"IP包转发引擎", 可以理解为实现了一组Match/Action规则: 先分类数据包, 再执行对应动作

数据包分类: PDR¶
PDR (Packet Detection Rule): 定义如何分类数据包
- 可以简单匹配设备IP地址
- 也可以考虑远端域名
- 每个UE至少有2个PDR(上行+下行)
- 可能有更多PDR支持不同QoS等级/计费方案
- 控制平面负责创建/更新/删除PDR
数据包处理: 四种动作规则¶

(1) FAR (Forwarding Action Rule) —— 转发规则
指导UPF怎么转发包:
- 参数: 转发所需信息(如: 如何隧道封装)
- 处理标志:
forward: 转发到互联网tunnel: 隧道发到基站buffer: 缓存(UE空闲时)notify: 通知控制平面唤醒UE
生命周期: UE附着时创建, 脱离时删除, 移动/睡眠/唤醒时修改下行FAR的标志
(2) BAR (Buffering Action Rule) —— 缓存规则
当UE空闲时:
- 缓存下行数据包
- 发送
Downlink Data Notification消息给控制平面 - 控制平面通知基站唤醒UE
- UE活跃后释放缓存, 恢复正常转发
可配置参数: 缓冲区最大字节数, 最大时长.
(3) URR (Usage Reporting Rule) —— 使用量报告规则
指导UPF定期向控制平面报告:
- 每个UE, 每个流量类别的上行/下行包数量
- 用于限速和计费
- 可以配置为定时报告或超出配额时报告
- 通常每UE有2个URR(上行+下行), 特殊计费方案会更多
(4) QER (Quality Enforcement Rule) —— QoS执行规则
指导UPF执行带宽策略:
- 保证最小带宽
- 执行带宽上限
- 按UE/方向/流量类别配置
- 控制平面根据事件动态修改(网络拥塞, 配额超限, 套餐变更)
- UPF执行 "流量整形(policing)" 和 "调度"
本章核心名词¶
核心标识符
| 名词 | 全称 | 说明 |
|---|---|---|
| IMSI | International Mobile Subscriber Identity | 烧录在SIM卡中的全球唯一标识, 用于定位和认证设备 |
Mobile Core核心组件
| 名词 | 全称 | 功能 |
|---|---|---|
| UPF | User Plane Function | 用户平面, 转发RAN和互联网之间的流量 |
| AMF | Access and Mobility Management Function | 接入授权+移动性追踪 |
| SMF | Session Management Function | 会话管理(IP分配, QoS, 路由) |
| AUSF | Authentication Server Function | 认证服务 |
| UDM | Unified Data Management | 用户身份管理, 认证凭证生成 |
| UDR | Unified Data Repository | 用户静态订阅信息存储 |
| UDSF | Unstructured Data Storage Function | KV存储 |
| NEF | Network Exposure Function | API暴露给第三方 |
| NRF | Network Repository Function | 服务发现 |
| PCF | Policy Control Function | 策略管理 |
| NSSF | Network Slice Selection Function | 网络切片选择 |
关键接口
| 接口 | 连接 | 说明 |
|---|---|---|
| NR Uu | 基站 ↔ UE | 空口(无线) |
| N1 | Core ↔ UE | 控制平面 |
| N2 | Core ↔ 基站 | 控制平面 |
| N3 | Core ↔ 基站 | 用户平面(数据) |
| N6 | Core ↔ 骨干网 | 数据平面 |
UPF规则
| 规则 | 全称 | 功能 |
|---|---|---|
| PDR | Packet Detection Rule | 数据包分类 |
| FAR | Forwarding Action Rule | 转发/隧道/缓存/通知 |
| BAR | Buffering Action Rule | 缓存配置 |
| URR | Usage Reporting Rule | 流量统计计费 |
| QER | Quality Enforcement Rule | QoS带宽保障 |
实现方案
| 名词 | 说明 |
|---|---|
| SD-Core | 3GPP功能模块的云原生一对一实现 |
| Magma | 为不稳定回程优化的非标准实现, 采用SDN思想 |
| SA (Standalone) | 4G和5G独立部署模式 |
| NSA (Non-Standalone) | 4G和5G混合过渡部署模式 |
| AGW | Access Gateway, Magma的分布式组件 |
其他重要概念
| 概念 | 说明 |
|---|---|
| Desired State Model | 期望状态模型, 通信时传完整目标状态而非增量更新, 增强容错 |
| P4RT / P4Runtime | P4程序的运行时控制接口 |
| TCAM | Ternary Content-Addressable Memory, 支持通配符的快速查表硬件 |