跳转至

Chapter 5: Mobile Core

Mobile Core 是连接无线接入网和互联网的"中枢大脑", 它负责四件核心大事:

  1. 认证: 当手机连上基站时, 验证"你是谁"
  2. 移动性管理: 追踪手机从一个基站移动到另一个基站
  3. QoS保障: 确保网络连接满足承诺的服务质量
  4. 计费(Metering): 统计流量用于计费

演进趋势: 过去这些功能都由专用硬件设备提供, 现在正在被拆解成一组云服务(微服务化), 目标是提高新功能的迭代速度, 并能针对不同应用场景定制化

关于 mobile core 的架构有很多种, 但是这一章节的内容聚焦3gpp定义的核心网架构. 这与很多主流的工作组推出的 Open 5GC 保持一致, 比如 aether, free5gc, open5gs. 当然, 对于5gc的设计, 其实也有一些新的尝试, 比如 magma (nsdi 2023)

Open5GS 的架构:

alt text

Megma 的架构:

alt text

用户身份管理

两种看待Mobile Core的视角

视角 核心思想 全局标识符
Internet-centric (从传统互联网角度) Mobile Core是一个路由器, 把RAN连接到全球互联网 IP地址
3GPP-centric (从3GPP角度) 分布式的Mobile Core协作, 把多个物理RAN变成一个"逻辑上的全球RAN" IMSI

两种视角都对, 但由于宽带上网访问云服务是主流场景, 本章采用Internet-centric视角 (review: 下图来自ch1):

alt text

IMSI: 移动网络中的身份标识

IMSI(International Mobile Subscriber Identity)烧录在SIM卡里, 是手机在移动网络中的全球唯一标识.

  • IMSI之于移动网络 ≈ MAC地址之于以太网/WiFi
  • 但IMSI比MAC地址多一个功能: 支持全球路由(能用来直接定位设备在哪)

(1) IMSI的结构: 由(MCC, MNC)前缀 + 运营商分配的后缀组成

  • MCC/MNC 由全球权威机构分配给运营商
  • 运营商再给每个SIM卡分配唯一的 IMSI
  • 与DHCP不同, IMSI和设备的绑定是静态的 (一次烧录, 终身伴随此SIM卡)
Danger

这一部分其实在 ch2 中有过非常详细地讲解

传送门: ch2-IMSI

(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:

  1. IoT设备不需要被"呼叫": 没人会打电话给无人机, 摄像头. 所以定位这些设备靠的是IP地址, IMSI此时只起到类似MAC地址的作用, Mobile Core就像一个普通的接入路由器.

  2. IP地址会变, 通话会断: 设备在不同Mobile Core覆盖区域之间移动时, 会被分配新的IP地址, 正在进行的通话会中断(只有在同一个Mobile Core服务范围内才支持无缝移动). 但这对宽带上网影响不大, 因为TCP等协议本身就能处理这种情况.

功能组件

5G Mobile Core(5GC)采用了微服务式架构, 3GPP称之为 Service Based Architecture (SBA)

注意: 3GPP只定义了功能模块, 并没有规定具体怎么实现. 所以"微服务"只是一个合理的工作模型, 实际的工程实现要复杂得多

这个图概览了3GPP标准的5GC主要组件, 这一小节所有的组件都来源于本图, 建议熟悉一下, 与后文挨个对照:

alt text

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 -

注意:

  1. UDSF 可以直接用 MongoDB 实现. 参考链接: open5gs-udsf
  2. 但 AUSF/UDM/UDR/AMF 这一套认证授权不能直接用 OAuth2 替换, 因为:
    1. UDM/UDR是全球身份映射服务的一部分 (类比: 试图用"微信扫码登录"来替换"海关的护照查验和指纹扫描". 前者虽然方便, 但无法提供后者所需的 "国家级安全准入和物理追踪" 能力)
    2. 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托管的容器

alt text

(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 Entity
  • SPGW_C: Serving and Packet Gateway - Control plane
  • HSS: Home Subscriber Server
  • PCRF: 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 这个概念? 其实这是一个历史原因:

  1. NSA (Non-Standalone) 非独立组网
    • 架构: 5G 基站 + 4G 核心网 (EPC)
    • 用途:
      1. 当你需要下载大文件(电影)时, 5G会帮你跑腿, 速度很快
      2. 但是, 指挥系统(如呼叫建立, 位置更新, 鉴权)还是由老主管(4G 基站和 4G 核心网)负责
      3. 手机必须同时连接 4G 和 5G
    • 目的: 快速部署 5G 服务, 复用现有 4G 基础设施
      • 运营商为了省钱, 抢时间. 利用现有的 4G 网络基础, 快速让用户看到手机上显示 "5G" 图标, 体验到网速变快
      • 参考 ch2的中国移动LTE 与 5G SA示例
  2. 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.

设计理念:

  1. SDN启发的集中/分布式分离
  2. 不严格遵守所有3GPP接口规范(但仍能互操作)
  3. 统一4G, 5G和WiFi

alt text

(1) 主要成分:

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

alt text

注意, 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规则: 先分类数据包, 再执行对应动作

alt text

数据包分类: PDR

PDR (Packet Detection Rule): 定义如何分类数据包

  • 可以简单匹配设备IP地址
  • 也可以考虑远端域名
  • 每个UE至少有2个PDR(上行+下行)
  • 可能有更多PDR支持不同QoS等级/计费方案
  • 控制平面负责创建/更新/删除PDR

数据包处理: 四种动作规则

alt text

(1) FAR (Forwarding Action Rule) —— 转发规则

指导UPF怎么转发包:

  • 参数: 转发所需信息(如: 如何隧道封装)
  • 处理标志:
    • forward: 转发到互联网
    • tunnel: 隧道发到基站
    • buffer: 缓存(UE空闲时)
    • notify: 通知控制平面唤醒UE

生命周期: UE附着时创建, 脱离时删除, 移动/睡眠/唤醒时修改下行FAR的标志

(2) BAR (Buffering Action Rule) —— 缓存规则

当UE空闲时:

  1. 缓存下行数据包
  2. 发送 Downlink Data Notification 消息给控制平面
  3. 控制平面通知基站唤醒UE
  4. 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, 支持通配符的快速查表硬件