首页 › deep-tech › 图解5G核心网服务化架构SBA

图解5G核心网服务化架构SBA:电信网如何学会说HTTP

一、从一个类比说起:总机接线员与淘宝商城

把4G核心网想象成一家老式工厂:每个车间(网元)之间都拉了一根专用电话线。MME要找HSS查用户数据,就得提前铺好一条S6a专线;MME要找SGW建承载,得铺S11专线。车间越多,线缆越乱——而且每根线的“插头形状”都不一样:S6a说的是Diameter方言,S11说的是GTPv2-C方言,S1-MME又是S1AP方言。想给工厂新添一个车间?对不起,你得让它和所有老车间各拉一根线,还得给每个老车间改装一个新插座。

5G核心网(5GC)把这家工厂改成了淘宝商城模式:每个网元不再互相拉专线,而是把自家的能力包装成一个个“商品”(服务)挂到平台上,附带一份标准化的“商品详情页”(服务描述)。任何网元想找人干活,先去平台的“搜索框”(NRF)里搜一下——"哪家能做会话管理?”,平台返回一串候选商家的店铺地址,然后买家直接进店交易。全程只说一种“普通话”:HTTP/2 + JSON。

这就是服务化架构(Service-Based Architecture, SBA)。它不只是换了个协议那么简单,而是把核心网从“硬连线的机器”变成了“可插拔的服务集合”。本文要回答三个问题:为什么必须改?SBA到底改了什么?一次真实的服务发现是怎么跑通的?

二、为什么4G的点对点架构撑不住了

2.1 接口数量的组合爆炸

4G的EPC是典型的参考点(reference point)架构:任意两个需要交互的网元之间,都要定义一条专属接口。假设网络里有 $n$ 个网元,最坏情况下接口数量是:

$$N_{interfaces} = \frac{n(n-1)}{2}$$

4G时代网元种类大约十来个(MME、SGW、PGW、HSS、PCRF、IMS的CSCF们……),两两组合后,一张EPC架构图上密密麻麻画着二十多条花花绿绿的接口线。每条接口都要单独定义协议栈、消息流程和错误码。结果是:

2.2 Diameter的僵化

4G信令的主力协议Diameter诞生于2000年代初。它是二进制编码、基于AVP(属性值对)的协议,扩展一条新消息需要定义新的命令码和AVP字典,不同厂商的字典对不齐就会出现互操作问题。更麻烦的是Diameter基于TCP长连接 + 逐跳代理转发,调试抓包必须依赖专门的解码工具,一条消息里的AVP顺序、嵌套关系看的人眼花缭乱。

而同期互联网世界已经全面转向RESTful API:文本可读、工具链成熟(curl、Postman、Wireshark的HTTP解码都是现成的)、任何语言都能调用。电信业做了一个顺理成章的决定——核心网信令向互联网的接口风格靠拢。

2.3 网络切片需要“乐高式”核心网

5G的旗舰特性网络切片,要求运营商能为不同业务(eMBB/uRLLC/mIoT)并行运营多张逻辑核心网。如果核心网还是一堆点对点焊死的网元,切片就成了痴人说梦。只有当每个网元都变成可独立部署、可按需组合、通过统一总线互访的“乐高积木”,切片才能做到“按单拼装”。3GPP在5G系统概览中明确指出:5GC基于SBA框架,架构元素以网络功能(NF)而非传统网元来定义,任何NF通过统一框架接口向其他被授权的NF提供服务,以获得模块化与可复用性——这正是为切片和虚拟化铺路。

三、SBA的三大支柱

支柱一:网元服务化——把“设备”拆成“服务”

在SBA里,AMF、SMF这些角色不再叫“网元设备”,而叫网络功能(Network Function, NF)。关键变化在于:一个NF对外的能力被进一步拆分成若干NF服务(NF Service)。例如SMF对外的服务包括会话管理(建立/修改/释放PDU会话)等,每个服务通过一个服务化接口(SBI)暴露,接口路径形如 /nsmf-pdusession/v1/...——看到nsmf这个前缀,你就知道这是SMF家的服务。

这带来一个微妙的转变:调用方关心的是“服务名”,而不是“某台具体设备”。就像你点外卖时只搜“黄焖鸡米饭”,并不关心是哪家分店、几个厨师在做。

支柱二:统一总线——HTTP/2 + JSON + TLS

5G的SBI统一采用HTTP/2承载,消息体用JSON编码,生产环境普遍叠加TLS加密。为什么选HTTP/2而不是HTTP/1.1?核心在于多路复用(Multiplexing):

HTTP/1.1的一条TCP连接同一时刻只能跑一个请求,前面的请求不回来,后面的就得排队(队头阻塞)。核心网信令是典型的高并发小消息场景——一个AMF同时伺服成千上万UE,如果每个请求都排队,时延会失控。HTTP/2把一条连接切成多个双向“流(stream)",每个请求占一个流,彼此并行互不阻塞:

$$T_{total} \approx \max(T_1, T_2, \dots, T_n) \quad \text{(HTTP/2 并行)} \;\; vs \;\; T_{total} \approx \sum_{i=1}^{n} T_i \quad \text{(HTTP/1.1 串行)}$$

再加上HPACK头部压缩(信令消息头往往比身体还长)和SCTP之上类似的可靠性设计思路,HTTP/2成为电信信令与互联网生态之间的最大公约数。

支柱三:注册与发现——NRF这个“淘宝平台”

网络存储功能(NRF)是SBA的中枢。用3GPP官方的描述:NRF为NF及其服务提供注册、去注册和更新的支持。它的角色类似微服务世界的服务注册中心(如Consul、Eureka),更通俗地说——它是5G核心网的“114查号台 + 黄页 + 门卫”三合一:

  1. 黄页:所有NF上线后向NRF登记自己的“档案”(NF Profile);
  2. 查号台:消费者NF按条件查询,NRF返回符合条件的生产者NF列表;
  3. 门卫:NRF还承担OAuth 2.0授权服务器的角色,为合法的NF调用颁发访问令牌(开源5G核心网free5GC的文档里就有"Enable OAuth2 on SBI"这一配置项,可见这已是落地实践而不仅是纸面特性)。

四、SBA里都有哪些角色

4.1 主要NF清单

下表列出5GC信令面的主要NF及其职责,并给出4G时代的“血统渊源”(依据3GPP官方系统概览整理):

NF 全称 干什么活 4G/更早对应物
AMF 接入与移动性管理功能 终端注册、连接管理、移动性、NAS信令终结 MME(部分)
SMF 会话管理功能 PDU会话建立/修改/释放、IP地址分配、选UPF MME+PGW-C(控制面部分)
UPF 用户面功能 用户数据转发、QoS执行、计费采样 SGW-U+PGW-U
UDM 统一数据管理 用户签约数据、鉴权凭据管理 HSS(更早是2G的HLR)
AUSF 鉴权服务功能 执行5G鉴权流程 MME/HSS的鉴权职能
PCF 策略控制功能 下发会话/接入/移动性策略 PCRF
NRF 网络存储功能 NF注册、发现、授权 无对应物,全新角色
NEF 网络开放功能 把网络能力安全地开放给第三方 SCEF(IoT方向)
NSSF 网络切片选择功能 为UE选择合适的切片实例 无对应物,全新角色
AF 应用功能 与核心网交互的应用层(运营商自有或第三方) ASF/第三方AF

注意两个“全新角色”——NRF和NSSF——恰恰是SBA和切片这两大架构革新的直接产物:架构改造先行,才能承载业务创新。

4.2 架构形态对比

graph TB
    subgraph EPC4G ["4G EPC:点对点网状(参考点架构)"]
        MME
        SGW["SGW"]
        PGW["PGW"]
        HSS
        PCRF
        MME -- "S11 (GTPv2-C)" --> SGW
        MME -- "S6a (Diameter)" --> HSS
        SGW -- "S5 (GTPv2-C)" --> PGW
        PGW -- "Gx (Diameter)" --> PCRF
        PGW -- "S6b (Diameter)" --> HSS
        MME -- "S10 (GTPv2-C)" --> MME
    end

    subgraph SBA5G ["5G 5GC:服务化总线(星型+直连)"]
        NRF(("NRF<br/>注册/发现/授权"))
        AMF2["AMF"]
        SMF2["SMF"]
        UDM2["UDM"]
        PCF2["PCF"]
        AMF2 -- "①注册 (Namf/Nnrf)" --> NRF
        SMF2 -- "①注册" --> NRF
        UDM2 -- "①注册" --> NRF
        PCF2 -- "①注册" --> NRF
        AMF2 -- "②查询NRF后③直连调用" --> SMF2
        SMF2 -- "②③直连调用" --> UDM2
        SMF2 -- "②③直连调用" --> PCF2
    end

上图的要点:NRF只负责“牵线”,不负责“传话”。注册和发现走NRF,而真正的业务调用是消费者NF直连生产者NF的HTTP/2连接——NRF不是SIP代理那样的信令中转节点,这个误解后面还会提到。

五、一次真实的服务发现:以PDU会话建立为例

来看SBA最核心的工作流。场景:手机开机注册后发起PDU会话建立,AMF需要找到SMF来处理,SMF又需要向UDM取签约数据。整个调用链如下:

sequenceDiagram
    autonumber
    participant UE as UE (手机)
    participant AMF as AMF (消费者)
    participant NRF as NRF (注册中心)
    participant SMF as SMF (生产者)
    participant UDM as UDM (生产者)

    Note over NRF,UDM: 阶段〇:开机后的"商家入驻"(仅上线时执行一次)
    SMF->>NRF: NFRegister (NF Profile: NF类型、服务列表、FQDN、PLMN、容量)
    NRF-->>SMF: 201 Created (分配NF Instance ID, 心跳周期)
    loop 保活
        SMF->>NRF: NFStatusUpdate / 心跳 (NFUpdate)
    end

    Note over UE,UDM: 阶段一:发现(找谁干活)
    UE->>AMF: 注册请求 / PDU会话建立请求
    AMF->>NRF: NFDiscovery请求<br/>(目标NF类型=SMF, S-NSSAI切片, DNN, TAI, PLMN)
    NRF-->>AMF: 候选SMF列表 (含FQDN/IP、apiPrefix、优先级、可用性)
    Note over AMF: 结果可缓存,后续请求免查询

    Note over UE,UDM: 阶段二:授权(拿到门禁卡)
    AMF->>NRF: OAuth2 AccessTokenRequest (声明: 我要调SMF的x服务)
    NRF-->>AMF: Access Token (含授权范围与有效期)

    Note over UE,UDM: 阶段三:调用(直连交易)
    AMF->>SMF: POST /nsmf-pdusession/v1/pdu-sessions<br/>HTTP/2 + JSON + Bearer Token
    SMF-->>AMF: 201 Created (会话上下文)

    Note over UE,UDM: 阶段四:生产者反向发现消费者
    SMF->>NRF: NFDiscovery (目标NF类型=UDM)
    NRF-->>SMF: UDM实例列表
    SMF->>UDM: GET /nudm-sdm/v1/.../session-management-data
    UDM-->>SMF: 签约数据 (JSON)

这张时序图里有四个值得咀嚼的设计细节:

① 注册是有“档案”的。 NF Profile不只是一个IP地址,它包含NF类型、暴露的服务清单、支持的切片(S-NSSAI)、归属PLMN、容量权重、优先级等一整套描述。正因为档案够“立体”,发现环节才能做出精细的选择——比如同一个SMF池里,优先挑离UE当前位置最近的、负载权重最高的那个。这本质上就是把4G时代写死在网元配置文件里的静态选择逻辑,变成了运行时的动态决策。

② 发现结果可以缓存。 AMF拿到SMF列表后不必每次都去问NRF,缓存起来直接用。这和DNS的缓存思想一模一样——代价是NF下线时可能出现“脏数据”,所以NF主动去注册时要执行 deregister,异常宕机则靠NRF的注册有效期(心跳超时即剔除)兜底。

③ 生产者也会反过来当消费者。 SBA里没有天然的“上级下级”关系,SMF取UDM数据时自己是消费者。这种对等架构打破了4G时代严格的层级(MME永远是被HSS“服务”的一方),任何NF既是服务提供者也可能是消费者。

④ 订阅制通知。 除了拉模式(查询),NRF还支持推模式:消费者可以提前向NRF订阅“某类NF的状态变化事件”,一旦某个SMF注册或故障退出,NRF主动推送通知。这让核心网第一次具备了“服务拓扑可感知”的运维能力。

六、服务化的连锁反应:CUPS的彻底化

4G末期3GPP其实已经意识到架构问题,推出了CUPS(控制面与用户面分离):把SGW/PGW拆成控制面(SGW-C/PGW-C)和用户面(SGW-U/PGW-U),中间用一条新接口连接。但4G的CUPS仍是点对点思路——控制面网元靠静态配置知道该连哪些用户面网元。

5GC把这个思想贯彻到底:SMF(控制面)与UPF(用户面)之间确实保留了点对点的N4接口(GTP-U用户数据走N3/N9,控制信令N4由SMF下发转发规则),但选哪个UPF这件事,交给了NRF的动态发现。从“静态绑定”到“动态选择”,是从CUPS 1.0到SBA的本质跨越——这也是5GC能把UPF下沉到园区、工厂边缘(边缘计算)的前提:只要UPF向就近的NRF注册,SMF就能按DNN/切片/位置筛选出“离用户最近的转发点”。

七、落地实战:工程师会在哪里碰到这些知识

7.1 开源与商用核心网的印证

如果你想亲手拆一台5G核心网,开源项目free5GC是个绝佳标本:它的每个NF(amf、smf、nrf、udm……)都是独立进程/独立容器,用compose一键拉起时你会看到十几个容器各自监听自己的HTTP/2端口,webconsole单独一个——SBA的“服务可独立部署”在这里具象化了。商用核心网(华为/爱立信/中兴)在云化部署时同样如此:一个NF往往是Kubernetes里的一组Pod,扩缩容按服务粒度进行。

7.2 常见调试陷阱

陷阱 现象 根因与排查
NRF注册成功但发现返回空 AMF报“找不到SMF” 检查双方的PLMN、S-NSSAI、DNN是否匹配——发现是按条件过滤的,档案对不上就搜不到
FQDN解析失败 调用阶段连接超时 NF Profile里登记的是FQDN而非IP,核心网内部DNS解析不通;先dig验证
OAuth2令牌被拒 HTTP 401/403 NRF签发的token有过期时间,时钟不同步(NTP没配好)会导致刚拿到的token就“过期”
apiPrefix版本不匹配 HTTP 404 生产者升级后URL里的版本段(如v1→v2)变了,消费者没跟着升级
长连接中断后信令堆积 时延尖刺 HTTP/2连接被防火墙静默回收,需配置应用层心跳/keepalive

抓包工具链也完全换代了:4G抓Diameter要专门的解码器,5G抓SBI就是抓HTTP/2——Wireshark直接按HTTP2过滤器解析JSON,甚至能直接看到PDU会话参数。可读性大幅提升,但也意味着敏感信息明文可见,生产环境务必开启TLS。

7.3 一个常见误解澄清

很多人(包括不少有经验的工程师)以为“既然叫服务化,那AMF调用SMF的流量要经过NRF中转”。不是的。NRF只参与注册、发现、授权三个环节,业务消息从不流经NRF。NRF挂了会怎样?已建立的调用不受影响,已缓存的发现结果继续可用,只有“新NF上线”和“缓存失效后的重新发现”才会受阻。这也是为什么NRF可以适度集中部署而不成为信令瓶颈。

八、SBA与4G架构的系统性对比

维度 4G EPC(参考点架构) 5G 5GC(服务化架构)
组织单元 网元设备 网络功能NF,且NF可细分为多个服务
接口形态 两两专用参考点(S6a、S11、Gx…) 统一SBI总线(HTTP/2+JSON+TLS)
协议方言 Diameter、GTPv2-C、S1AP混用 统一RESTful风格,路径自带语义(/nsmf-pdusession)
找对方的方式 静态配置(DNS+运维录入) NRF动态注册/发现+缓存
状态感知 无(网元挂了靠告警) NF状态订阅与事件通知
耦合度 强耦合,替换网元需动多方配置 松耦合,按服务粒度替换扩容
部署形态 专用硬件为主 云原生友好(虚拟机/容器/K8s)
安全模型 逐跳Diameter安全(IPSec/TLS可选) OAuth2令牌授权+TLS成体系
切片支持 无 发现按切片过滤,天然支持多切片并行

常见问题

Q1: SBA和微服务架构是什么关系? A: SBA大量借鉴了互联网微服务的设计(注册中心、REST API、无状态水平扩展、对等调用),可以理解为“电信业定制版微服务”。但两者有关键差异:微服务通常服务粒度极细、内部通信随意选型;而SBA的“服务”粒度是3GPP标准化的(每个NF服务的接口、消息、参数都有规范定义),且强制HTTP/2+JSON+OAuth2的统一技术栈——为的是跨厂商互操作,这是电信业区别于互联网的生命线。

Q2: NRF挂了核心网就瘫痪吗? A: 短期内不会。已建立的NF间直连调用不经过NRF,已缓存的发现结果仍然有效。影响的是增量操作:新NF上线注册不了、缓存过期后无法重新发现、新token签发不了。所以NRF通常集群化部署,但它的可用性要求低于AMF/SMF这类必经节点。

Q3: 为什么用户面UPF“不在”SBA总线里? A: SBA是控制面的架构。用户数据走的是GTP-U隧道(N3/N9接口),追求的是线速转发和确定性时延,每包都查表转发,不适合HTTP这种开销较大的应用层协议。但UPF的控制决策(选谁、怎么转发)由SMF通过N4下发,而“SMF如何找到合适的UPF”这件事由NRF动态发现完成——所以UPF是“活在SBA体系边上、受SBA指挥”的特殊角色。

Q4: 发现请求里为什么要带切片(S-NSSAI)和DNN? A: 因为5G允许同一张物理网里并行跑多个逻辑核心网(切片)。同一个DNN的会话,在eMBB切片和uRLLC切片里必须由不同的SMF实例处理(时延/可靠性要求完全不同)。发现请求携带这些参数,NRF才能把“路由决策”做到服务发现这一层——相当于在查号台就完成了选路,而不是先随便接通再说。

Q5: 学SBA对日常运维有什么直接用处? A: 三个直接收益:一是看懂核心网配置——现代5GC的配置文件里大量出现“指向NRF的地址、本NF的FQDN、支持的切片列表”这些SBA概念;二是信令排查降维——SBI信令就是HTTP/2报文,抓包可读性远高于Diameter;三是理解故障传播链——“用户无法建会话”这类问题,排查路径变成:注册了吗(NRF里有档案吗)→ 发现得到吗(过滤条件匹配吗)→ 调用通吗(FQDN/DNS/TLS/令牌)→ 业务错吗(生产者返回的业务错误码)。

参考来源

  1. 3GPP官网:5G System Overview — 3GPP官方技术概览,明确SBA框架定义、NF清单与职责、NRF注册/去注册/更新职能、控制面/用户面协议栈
  2. free5GC User Guide — 开源5G核心网free5GC文档,印证NF独立部署形态、SBI上OAuth2的落地配置项
  3. 3GPP TS 23.501《System architecture for the 5G System》——SBA与NF服务的权威规范(编号经3GPP官网概览交叉确认,本文按科普惯例不展开条款)

本文由「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学通信知识星球海报-扫码加入