首页 › slicing-mec › 5G NSSF网络切片选择信令机制全链拆解

5G NSSF 网络切片选择信令机制全链拆解

聚焦 3GPP TS 23.501 §5.15、TS 23.502 §4.2.2.2、TS 29.531 中的网络切片选择(Network Slice Selection)机制——从 UE 携带 Requested NSSAI 发起注册,到 AMF 调用 Nnssf_NSSelection 服务计算 Allowed NSSAI,再到 AMF 重选与 NSI 实例映射的全链路信令拆解。


一、切片选择为什么是 5G 切片体系的"第一道关卡"

5G 网络切片的本质是:在同一张物理核心网与无线接入网之上,虚拟出多个逻辑网络,每个逻辑网络(Network Slice Instance, NSI)对应一种业务特征——eMBB、URLLC、mMTC,乃至运营商自定义的垂直行业专网。但"切片"能否真正落地,并不取决于运维侧拉起了多少个 SMF/UPF 实例,而取决于控制面在 UE 接入的瞬间能否为它选择到正确的那一张切片。

这道选择关卡,就是 Network Slice Selection(网络切片选择)。它发生在 UE 初始注册阶段,由 AMF 主导、NSSF(Network Slice Selection Function,网络切片选择功能)提供决策辅助。整个机制的产出物只有一个——Allowed NSSAI(允许的 NSSAI)。UE 后续所有的 PDU 会话建立、QoS 流、策略执行,都以 Allowed NSSAI 为前提。如果这一步选错或选漏,下游会出现大量"看起来是会话层失败、实则是切片未授权"的疑难杂症。

本文将从 S-NSSAI 的比特结构讲起,逐步拆解 NSSF 两大 SBI 服务、注册期完整信令时序、AMF 重选机制,并给出抓包识别与排错实战。


二、S-NSSAI 与 NSSAI 体系(TS 23.501 §5.15.2 / §5.15.3)

理解切片选择,必须先理解它的"语言"——S-NSSAI。一个 S-NSSAI 是一张网络切片的全局标识符,其结构定义在 TS 23.501 §5.15.2,由两个字段构成:

graph LR
    subgraph SNSSAI["S-NSSAI (32 bit)"]
        SST["SST<br/>Slice/Service Type<br/>8 bit"]
        SD["SD (可选)<br/>Slice Differentiator<br/>24 bit"]
    end
    SST -- "标准化值<br/>1=eMBB 2=URLLC 3=mMTC" --> VAL1["0~127: 标准化<br/>128~255: 运营商自定义"]
    SD -- "同一SST下进一步区分<br/>如不同企业专网" --> VAL2["24位可表示<br/>~1600万种差异"]
    style SST fill:#cfe8ff,stroke:#1976d2
    style SD fill:#d7ffd9,stroke:#388e3c

NSSAI 则是 S-NSSAI 的集合,一次注册中一个 NSSAI 最多包含 8 个 S-NSSAI。围绕 UE 的生命周期,3GPP 定义了 5 种 NSSAI 形态,它们之间的流转关系是排错的核心:

stateDiagram-v2
    [*] --> Subscribed: UDM/UDR 开户配置
    Subscribed --> Configured: AMF下发Configured NSSAI<br/>(Registration Accept)
    Configured --> Requested: UE本地组合<br/>(取Configured的子集)
    Requested --> Allowed: NSSF计算<br/>(订阅∩请求∩TA可用)
    Allowed --> Rejected: TA/PLMN不支持<br/>或未订阅
    Requested --> Rejected: 未订阅的S-NSSAI
    Rejected --> [*]: 退避或重新协商
    note right of Allowed
      唯一可用于
      建立PDU会话的集合
    end note
NSSAI 类型 存储位置 含义 谁来决定
Subscribed S-NSSAI UDM/UDR 用户在 HPLMN 开户时签约的切片 运营商 BSS/OSS
Configured NSSAI UE + AMF 当前服务 PLMN 可用的切片配置 AMF(HPLMN 或 VPLMN)
Requested NSSAI UE UE 本次注册主动请求的切片 UE(Configured 的子集)
Allowed NSSAI UE + AMF 经授权、当前 TA 可实际使用的切片 NSSF 计算、AMF 下发
Rejected NSSAI UE 本次被拒绝、待退避的切片 AMF/NSSF

设计意图:为什么搞出 5 种 NSSAI?因为切片选择横跨签约域(Subscribed)、网络部署域(Configured)、用户意愿域(Requested)、地理可用域(TA) 四个维度。这 5 种 NSSAI 是把这四个维度两两求交的结果表达,使得"用户想用 + 网络允许 + 此地可达"三者同时满足的切片才会进入 Allowed NSSAI。这是 5G 把"按需切片"做到可控、可追溯的关键工程抽象。


三、NSSF 网元职责与两大 SBI 服务(TS 29.531)

NSSF 在架构上定义于 TS 23.501 §6.2.6,其 SBI 接口定义于 TS 29.531。它通过 HTTP/2 的服务化接口向 AMF(漫游场景下也向 VPLMN 的 NSSF、SMF、NWDAF)提供两类服务:

3.1 Nnssf_NSSelection —— 切片选择核心服务

被 AMF 在注册、PDU 会话建立、UE 配置更新时调用,查询该 UE 应使用的切片及配套信息。这是本文的主角。其 RESTful 端点为:

GET /nnssf-nsselection/v2/network-slice-information

3.2 Nnssf_NSSAIAvailability —— 切片可用性管理

被 AMF 用来向 NSSF 上报自己在各跟踪区(TA)所支持的 S-NSSAI,并可订阅可用性变更通知。当某 AMF 集合的切片能力发生变化时,NSSF 反向通知相关 AMF。这对应 TS 23.502 §4.2.3 "Network Slice-specific authorization and update"。

NSSF 返回的核心数据结构是 AuthorizedNetworkSliceInfo(授权网络切片信息),其中封装了切片选择的全部决策结果:

graph TD
    ANSI["AuthorizedNetworkSliceInfo<br/>(NSSF 200 OK 响应体)"]
    ANSI --> A1["allowedNssai<br/>允许的NSSAI(本TA)"]
    ANSI --> A2["configuredNssai<br/>(含HPLMN映射)"]
    ANSI --> A3["targetAmfSet<br/>目标AMF集合ID"]
    ANSI --> A4["candidateAmfList<br/>候选AMF实例"]
    ANSI --> A5["nsiInformationList<br/>NSI实例+关联NRF"]
    ANSI --> A6["mappedHomeNssai<br/>漫游VPLMN↔HPLMN映射"]
    ANSI --> A7["rejectedNssaiInTa<br/>本TA被拒的S-NSSAI"]
    style ANSI fill:#fff3cd,stroke:#f57c00

设计意图:NSSF 不是一个单纯"查表返回 yes/no"的网元。它的响应同时回答了三个问题——(1) 这个 UE 能用哪些切片(allowedNssai)、(2) 这些切片由谁服务(targetAmfSet / nsiInformationList → SMF/UPF 池)、(3) 漫游下如何与归属网络对齐(mappedHomeNssai)。把这三者打包在一次 GET 响应里,是为了让 AMF 一次决策即可完成切片授权 + 网元定址 + 漫游映射,避免控制面多次往返。


四、注册期完整切片选择信令时序(TS 23.502 §4.2.2.2)

下面是 UE 初始注册时,默认 AMF 无法服务请求切片而触发 NSSF 决策与 AMF 重选的完整时序。这是切片选择最复杂、也最考验实现的场景:

sequenceDiagram
    autonumber
    participant UE
    participant gNB as (R)AN/gNB
    participant IAMF as 初始AMF<br/>(默认)
    participant UDM
    participant NSSF
    participant NRF
    participant TAMF as 目标AMF<br/>(切片专用)

    UE->>gNB: RRC SetupComplete<br/>携带 NAS Reg Request(含 Requested NSSAI)
    gNB->>IAMF: N2 Initial UE Message<br/>(含 NAS、TAI、Requested NSSAI)
    Note over IAMF: 初始AMF发现自己<br/>不支持Requested中的某些S-NSSAI
    IAMF->>UDM: Nudm_SDM_Get<br/>取 Subscribed S-NSSAI
    UDM-->>IAMF: 返回签约切片列表
    IAMF->>NSSF: GET /nnssf-nsselection/v2/<br/>network-slice-information<br/>(slice-info-for-registration, tai)
    Note over NSSF: 计算: Subscribed ∩ Requested ∩ TA可用<br/>确定 Allowed NSSAI、AMF Set、NSI
    NSSF-->>IAMF: 200 OK AuthorizedNetworkSliceInfo<br/>(targetAmfSet, nsiInformationList)
    Note over IAMF: 基于targetAmfSet<br/>判断需AMF重选
    IAMF->>NRF: Nnrf_NFDiscovery<br/>(按AMF Set发现目标AMF)
    NRF-->>IAMF: 返回TAMF实例信息
    rect rgb(245, 245, 245)
    Note over IAMF,gNB: AMF重选 (RAN转发方式)
    IAMF->>gNB: NGAP RerouteNAS Request<br/>(含原始NAS、Routing ID指向AMF Set)
    gNB->>TAMF: N2 Initial UE Message<br/>(转发Registration Request)
    end
    TAMF->>TAMF: 按Allowed NSSAI继续注册流程<br/>(鉴权、安全、SMC)
    TAMF-->>gNB: N2 + NAS Registration Accept<br/>(含 Allowed NSSAI)
    gNB-->>UE: Registration Accept(Allowed NSSAI)

关键信令消息逐条解析

① Registration Request(NAS,TS 24.501) UE 在 NAS 层 Registration request 消息的 5GS registration type 之后,携带 Requested NSSAI(若 UE 已有 Configured NSSAI)。若 UE 首次接入、无 Configured NSSAI,则可能携带 Default Configured NSSAI Indication。IE 关键点:

② N2 Initial UE Message(NGAP,TS 38.413) gNB 透传 NAS 消息给 AMF,同时携带 User Location Information (TAI) 与 TAI List for Warning。TAI 是后续 NSSF 判断"此 TA 是否支持该切片"的输入。

③ Nudm_SDM_Get(AMF↔UDM) AMF 用 SUPI 向 UDM 拉取签约数据,其中 AccessAndMobilitySubscriptionData 含 Subscribed S-NSSAI 列表,每项带 defaultIndication(是否默认切片)。

④ Nnssf_NSSelection_Get(AMF↔NSSF,本流程核心)

请求参数(query) 必选/条件 作用
nf-type 必选 调用方类型,NSSF 校验仅 AMF 或异 PLMN NSSF 可调
nf-id 必选 调用方 NF 实例 ID
slice-info-request-for-registration 注册场景条件必选 含 RequestedNssai、SubscribedNssai、DefaultConfiguredSnssaiIndication、TAI
tai 本 PLMN 必选 跟踪区标识,决定 TA 级切片可用性
home-plmn-id 漫游必选 用于 VPLMN↔HPLMN 切片映射
supported-features 可选 特性协商

NSSF 收到后执行四步校验与计算(详见 free5GC 实现逻辑):鉴权调用方 → 校验 TAI/PLMN → 对比 Requested 与 Subscribed 求 Allowed NSSAI → 确定 Configured NSSAI 映射、NSI-ID、AMF Set、NRF 定址。

⑤ 200 OK AuthorizedNetworkSliceInfo(NSSF→AMF) 响应体即上文结构图,含 targetAmfSet 与 nsiInformationList。若 S-NSSAI 未订阅或不在此 TA 支持,落入 rejectedNssaiInTa。

⑥ NGAP RerouteNAS Request(AMF→gNB,TS 38.413) 这是 AMF 重选的 RAN 转发方式。初始 AMF 在 NGAP 层向 gNB 发 Reroute NAS Request,携带原始 NAS 消息体(封装在 Rerouted NAS Message 容器)与指向目标 AMF Set 的 Routing ID,以及可选 Allowed NSSAI、PDU Session ID、Masked IMEISV 等。gNB 据此将 Registration Request 当作一次新的 Initial UE Message 转发给目标 AMF。

设计意图:为什么 AMF 重选要让 gNB"绕一圈"转发,而不是 AMF 之间直接 Namf 调用?因为 N2 信令连接(UE-associated logical NGAP connection)是绑定在 gNB↔AMF 这一段上的。若 AMF 直接把上下文交给新 AMF,gNB 的 N2 连接仍指向旧 AMF,会导致后续 N2 消息(如初始上下文建立)投递错位。通过 RAN 转发,gNB 会与目标 AMF 重建 N2 关联,保证控制面连接的一致性。这是 3GPP 在"切片选择灵活性"与"N2 连接一致性"之间的精妙折中。


五、Nnssf_NSSelection_Get 关键 IE 深度说明

下表把请求与响应两侧的高频 IE 集中说明,便于抓包比对:

方向 IE 名称 类型 说明 / 排错关注点
请求 RequestedNssai list<Snssai> UE 请求切片;若空则 NSSF 用 Subscribed 的 default
请求 SubscribedNssai list AMF 从 UDM 取得,作为授权基准
请求 DefaultConfiguredSnssaiIndication bool UE 用了默认配置切片的标志
请求 tai TAI 本 TA 是否支持切片的判定依据
响应 allowedNssai list 最终下发 UE 的可用切片
响应 targetAmfSet string 触发 AMF 重选的依据
响应 nsiInformationList list 每项含 nsiId + nrfId,供 SMF 发现本切片的 NF
响应 mappedHomeNssai list 漫游下 VPLMN S-NSSAI → HPLMN S-NSSAI 映射
响应 rejectedNssaiInTa list 被拒切片,UE 需退避(默认 24h)

六、与其他切片相关机制的对比

维度 Nnssf_NSSelection(本文) Nnssf_NSSAIAvailability NSSAA(切片二次认证)
触发时机 注册/PDU 建立/UCU AMF 启动、能力变更 Allowed NSSAI 中含需认证切片
主体方向 AMF 请求 NSSF AMF 上报 NSSF AMF ↔ AUSF/AAA
核心输出 Allowed NSSAI + AMF Set + NSI 切片可用性数据库 切片是否被授权使用
TS 章节 TS 29.531 TS 29.531 TS 23.502 §4.20、TS 33.501
关系 上游:决定"能用什么" 配套:维护"哪里有什么" 下游:决定"是否真的能用"

七、抓包识别:如何在 Wireshark 中认出这个流程

7.1 抓包过滤建议

在 N22 接口(AMF↔NSSF,HTTP/2 over TCP)上抓取:

# 过滤 NSSF 的 SBI 调用
http2.headers.path contains "network-slice-information"
# 或按端口
tcp.port == <NSSF端口>

7.2 识别要点

  1. HTTP/2 GET 请求,path 为 /nnssf-nsselection/v2/network-slice-information,query 串含 slice-info-request-for-registration= 与 tai=。
  2. 响应 :status = 200,body 为 JSON,含 allowedNssai 数组。
  3. 若返回 403 Forbidden,body 是 ProblemDetails(含 cause、invalidParams),通常因调用方非 AMF 或参数缺失。
  4. NGAP 层:寻找 Reroute NAS Request(消息名 RerouteNASRequest),其 Routing ID 字段即目标 AMF Set 的标识——这是 AMF 重选发生的铁证。
  5. NAS 层:在最终 Registration Accept 的 5GS network feature support 之后,定位 Allowed NSSAI IE,与 UE 请求比对,确认切片是否被授权。

7.3 典型成功标志


八、常见故障点与排错思路

现象 可能根因 排错动作
UE 请求切片,Allowed 中却为空 Requested S-NSSAI 未在 UDM 签约 查 UDM 的 Subscribed S-NSSAI;核对 SUPI
同一 UE 移动后切片消失 该 TA 不支持该切片 查 gNB/AMF 的 TA-Slice 映射;看 NSSF 返回 rejectedNssaiInTa
反复 AMF 重选、注册失败死循环 targetAmfSet 内无可用 AMF 实例 查 NRF 注册情况、AMF Set 切片能力配置
漫游下切片不可用 VPLMN/HPLMN S-NSSAI 映射缺失 查 mappedHomeNssai;核实漫游协议
NSSF 返回 403 调用方非 AMF / 缺 tai 检查 nf-type、nf-id、tai 参数完整性
切片"通了但很慢" NSI 选到了远端 UPF 查 nsiInformationList→NRF→SMF 选锚点是否本地

排错心法(3glteinfo 总结):切片问题大多先暴露在会话层(PDU Session Establishment),而非注册层。当会话建不起来时,第一步必须回溯注册期的 Allowed NSSAI,确认请求切片是否真的进了 Allowed 列表——否则容易误判为 SMF/UPF 故障。


常见问题

Q1: Allowed NSSAI 与 Requested NSSAI 的区别是什么? A: Requested NSSAI 是 UE 单方面的"意愿",可能含未签约或不在此 TA 可用的切片;Allowed NSSAI 是网络在签约、策略、TA 可用性三维约束下计算出的"实际可用"结果。UE 后续只能基于 Allowed NSSAI 建 PDU 会话。

Q2: AMF 重选一定会发生吗? A: 不一定。若默认 AMF 已支持 UE 请求的全部切片,则 NSSF 返回的 Allowed NSSAI 不触发 targetAmfSet 重选,注册一次完成。只有当默认 AMF 能力不足时才重选。

Q3: 为什么一个 NSSAI 最多 8 个 S-NSSAI? A: 出于 NAS 信令开销与空口效率的平衡(TS 23.501 §5.15.2)。8 个足以覆盖典型多切片场景,同时避免 Registration 消息过长。

Q4: NSSF 在漫游下如何工作? A: VPLMN 的 AMF 调用本地 V-NSSF,V-NSSF 可能再咨询 H-NSSF;返回的 Allowed NSSAI 用 VPLMN 的 S-NSSAI,并通过 mappedHomeNssai 维持与 HPLMN 签约切片的对应关系,保证计费与策略一致。

Q5: NSI-ID 有什么用? A: NSI-ID(Network Slice Instance ID)把"逻辑切片"映射到"具体的一组 NF 实例(SMF/UPF 池)"。NSSF 在 nsiInformationList 中给出 NSI-ID 与关联 NRF,SMF 据此发现本切片专用的网元,实现切片间资源隔离。


参考来源

  1. 3GPP TS 29.531 — 5G System; Network Slice Selection Services; Stage 3 — Nnssf_NSSelection / Nnssf_NSSAIAvailability SBI 定义、AuthorizedNetworkSliceInfo 结构
  2. 3GPP TS 23.501 — System architecture for the 5G System — §5.15 Network Slicing、S-NSSAI 格式、NSSAI 类型、AMF 选择
  3. 3GPP TS 23.502 — Procedures for the 5G System — §4.2.2.2 注册流程及 AMF 重选子流程
  4. free5GC — Network Function NSSF Introduction — NSSF 两大服务工作流与开源代码实现解析(Kai-Hung, Hu, 2026-01-28)
  5. 3GLTEInfo — 5G Network Slice Selection Procedure — 端到端切片选择呼叫流程、消息表与排错要点

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