网络切片(Network Slicing)是5G区别于4G的最核心架构特性之一。在4G/EPS中,一个PDN连接由APN唯一定义,所有用户共享同一套核心网网元拓扑;而在5G中,运营商可以为不同业务(eMBB、URLLC、MIoT)构建彼此隔离的、端到端的核心网子实例(NSI, Network Slice Instance),每个切片拥有独立的SMF、UPF甚至独立的AMF集合。
这套机制要落地,必须解决三个根本问题:
本文聚焦TS 23.501 Section 5.15、TS 23.502 Section 4.2.2.2.2(带AMF重选的注册流程)以及TS 29.531(Nnssf服务)中的切片选择与Allowed NSSAI协商机制,逐条拆解信令IE、设计意图与抓包识别方法。
切片选择的全部逻辑,最终都归结为对S-NSSAI(Single Network Slice Selection Assistance Information)这一原子单元的匹配与映射。S-NSSAI由两个字段构成,定义在TS 23.501 Section 5.15.2.1。
flowchart LR
subgraph SNSSAI["S-NSSAI(定长或可变结构)"]
direction LR
SST["SST — Slice/Service Type<br/>8 bit(1字节)<br/>必选:切片行为类别"]
SD["SD — Slice Differentiator<br/>24 bit(3字节)<br/>可选:同SST下切片细分"]
end
SST --> NOTE1["标准化值见 TS 23.501 §5.15.2.2<br/>1=eMBB / 2=URLLC / 3=MIoT / 4=V2X"]
SD --> NOTE2["由运营商自定义<br/>仅HPLMN内有意义,漫游时需Mapping"]
SST(Slice/Service Type)是8比特的标准化字段,用于标识切片的业务行为类型。3GPP标准化了一组全局唯一的标准SST值(TS 23.501 §5.15.2.2):SST=1对应eMBB,SST=2对应URLLC,SST=3对应MIoT(海量物联网),SST=4对应V2X。运营商也可以使用非标准SST值(取值范围5–127),但这类值仅在HPLMN范围内有效。
SD(Slice Differentiator)是24比特的可选字段,用于在同一SST下进一步区分不同的切片实例。例如运营商可以部署多个SST=1的eMBB切片:一个面向普通手机用户(SD=0x010203),一个面向企业专线(SD=0x0A0B0C)。SD完全由运营商自定义,标准化场景下SD缺省(即"no SD value")。
一个完整的NSSAI就是若干个S-NSSAI的集合。需要特别注意一个工程上的硬约束:UE在Request消息中同时携带的S-NSSAI数量上限为8个(TS 23.501 §5.15.4定义的"max 8 S-NSSAIs"),这是NAS信令与UE能力共同决定的,超出会导致额外的Configured NSSAI更新流程。
网络切片选择之所以复杂,根源在于同一份切片信息在不同网元、不同时机以不同名称出现。下表系统梳理了TS 23.501 §5.15.3与§5.15.5定义的全部NSSAI形态。
| 类型 | 存储位置 | 作用域 | 生成/触发时机 |
|---|---|---|---|
| Subscribed S-NSSAIs | UDM/UDR | HPLMN | 用户开户时签约,含默认切片标志 |
| Default Configured NSSAI | UE | HPLMN | 预置在USIM/ME,无Configured NSSAI时的回退值 |
| Configured NSSAI (for serving PLMN) | UE | 当前PLMN | 网络通过Registration/Configuration Update下发 |
| Requested NSSAI | UE→网络 | 单次注册请求 | UE发起注册时构造,≤8个S-NSSAI |
| Allowed NSSAI | AMF→UE | PLMN + 接入类型(3GPP/Non-3GPP) | 注册接受消息中下发,UE据此发起PDU会话 |
| Pending NSSAI | UE/网络 | 待完成切片认证 | 触发NSSAA切片特定认证期间临时态 |
| Rejected NSSAI | UE/网络 | PLMN 或 单个TA | 切片在该区域不可用时标记,附拒绝时长 |
这里有一个关键的设计哲学:Allowed NSSAI是按接入类型分别维护的。也就是说,同一UE通过3GPP(NR)接入和通过Non-3GPP(可信WLAN/N3IWF)接入,可以拥有两份不同的Allowed NSSAI。这是为了支持"接入特定切片"——某些URLLC切片可能只通过3GPP接入提供。
另一个常被忽略的细节是Mapping of Requested NSSAI。当UE漫游到VPLMN时,其携带的Request NSSAI中的S-NSSAI使用的是VPLMN可识别的标准SST或VPLMN配置的SD,但HPLMN的签约信息用的是HPLMN的S-NSSAI。因此NAS Registration Request中需要携带Mapping字段,建立VPLMN S-NSSAI与HPLMN S-NSSAI的对应关系,供AMF向UDM校验签约时使用。
切片选择并非一个孤立消息,而是嵌入在Registration流程中的条件性子流程。当初始AMF(Initial AMF)发现自己无法服务UE请求的全部切片时,就会触发TS 23.502 §4.2.2.2.2定义的Registration with AMF re-allocation。下图刻画了这一完整信令链路。
sequenceDiagram
autonumber
participant UE
participant RAN as (R)AN / gNB
participant IAMF as 初始AMF<br/>(Bootstrapping AMF)
participant UDM as UDM/UDR
participant NSSF as NSSF
participant NRF as NRF
participant TAMF as 目标AMF
UE->>RAN: RRCSetupComplete<br/>含Requested NSSAI
Note over RAN: TS 23.501 §6.3.2<br/>RAN依据NSSAI选择AMF
RAN->>IAMF: NGAP Initial UE Message<br/>(Registration Request, Requested NSSAI)
IAMF->>UDM: Nudm_SDM_Get<br/>获取Subscribed S-NSSAIs
UDM-->>IAMF: 签约切片列表(含默认切片)
IAMF->>NSSF: Nnssf_NSSelection_Get<br/>(slice-info-request-for-registration,<br/>Requested NSSAI, TA, roaming-indication)
NSSF->>NSSF: 计算Allowed NSSAI<br/>确定NSI-ID / 候选AMF Set
NSSF-->>IAMF: Allowed NSSAI +<br/>Target AMF Set + NRF + NSI-ID
Note over IAMF: 初始AMF不覆盖目标切片<br/>触发AMF Re-allocation
IAMF->>TAMF: Namf_Communication_<br/>N1MessageNotify<br/>(转发NAS Initial UE Msg + 上下文)
Note over TAMF: 目标AMF接管,重新执行认证
TAMF->>UE: Registration Accept<br/>(Allowed NSSAI, Configured NSSAI)
TAMF->>RAN: N2 Initial Context Setup<br/>(Allowed NSSAI)
下面对链路中的关键信令逐一拆解。
UE在构造Registration Request时,依据TS 24.501 §4.6.2定义的NSSAI inclusion mode决定如何把切片信息放进NAS消息。共有四种inclusion mode(A/B/C/D),它们决定了UE是把Requested NSSAI、Mapping of Requested NSSAI两者如何组合携带。例如inclusion mode A要求UE在Requested NSSAI中只放标准SST的S-NSSAI,以最大化与未知VPLMN的兼容性。
NAS消息经RRCSetupComplete透传给gNB后,gNB根据TS 23.501 §6.3.2.3执行RAN-based AMF selection:gNB本地配置了一张"RAN NSSAI→AMF"路由表,若Requested NSSAI中的切片能匹配到某组AMF,就路由过去;匹配不到则路由到默认AMF(即Bootstrapping AMF)。这就是为什么URLLC用户即使没有5G-S-TMSI,也能被gNB直接送到正确的AMF Set。
在NGAP(TS 38.413)层,切片信息通过Initial UE Message携带,其中关键IE包括:
工程要点:gNB在Initial UE Message里携带的"Allowed NSSAI"本质是RAN视角的"看起来可路由的切片",它不等于最终下发给UE的Allowed NSSAI,初学者极易混淆。
初始AMF通过Nudm_SDM_Get从UDM/UDR拉取该SUPI的Subscribed S-NSSAIs。UDR中每个签约S-NSSAI带有一个default S-NSSAI indication标志——当UE的Request NSSAI为空或不被支持时,AMF会用带default标志的签约切片兜底。这就是为什么"没配置切片的UE也能注册上5G"的根本原因。
这是整个切片选择机制的灵魂,由TS 29.531定义。初始AMF判断"是否需要查询NSSF"的依据写在TS 23.501 §5.15.5.2.1,核心条件包括:初始AMF无法基于本地信息确定Allowed NSSAI;或Requested NSSAI中包含该AMF不支持的切片;或处于漫游场景。
AMF发起的Nnssf_NSSelection_Get请求(HTTP GET)主要query参数:
| 参数 | 含义 |
|---|---|
slice-info-request-for-registration |
指明这是注册类切片选择请求 |
requested-nssai |
UE请求的切片集合 |
home-plmn-id |
UE的归属PLMN(漫游判定) |
roaming-indication |
漫游指示:home-routed / local-breakout |
nf-id |
发起请求的AMF标识 |
tafqn / TA信息 |
当前跟踪区,用于判断切片在该区域可用性 |
NSSF收到请求后,内部执行TS 23.501 §5.15.5.2.1 (B)点定义的一组步骤,返回的响应(NSSelectionInfo数据结构)包含:
初始AMF拿到NSSF响应后,做一次本地判断:我自己是否在Target AMF Set内、且能服务全部Allowed NSSAI。若不能,则触发AMF Re-allocation:通过Namf_Communication服务把NAS Initial UE消息、UE上下文、NSSF返回的切片选择结果一并转发给目标AMF。转发路径有两种:
目标AMF接管后,需重新执行(或继承)鉴权流程,并最终下发Registration Accept。
Registration Accept消息中,目标AMF向UE回送最终的Allowed NSSAI(TS 24.501 §9.11.3.37),UE将其存储并作为后续发起PDU会话的依据。随后通过N2 Initial Context Setup把Allowed NSSAI同步给(R)AN,使gNB在后续PDU Session建立时能为该会话选择正确的NG-U隧道与切片资源。
将上述判断抽象为决策流程,可以更清晰地看出"切片如何驱动控制面路由"。下图是TS 23.501 §6.3.2 AMF选择函数的流程化表达。
flowchart TD
A["(R)AN 收到 Registration Request<br/>(含 Requested NSSAI / 5G-S-TMSI)"] --> B{"有 5G-S-TMSI?"}
B -- 有 --> C["gNB 据TMSI定位AMF Set内AMF"]
B -- 无 --> D{"Requested NSSAI 能匹配<br/>gNB路由表?"}
D -- 能 --> E["路由到对应AMF"]
D -- 不能 --> F["路由到默认/Bootstrapping AMF"]
C --> G["Initial AMF 评估"]
E --> G
F --> G
G --> H{"本地能否确定<br/>完整 Allowed NSSAI?"}
H -- 能 --> I["不下查NSSF<br/>本地生成Allowed NSSAI"]
H -- 不能 --> J["查询 NSSF<br/>Nnssf_NSSelection_Get"]
J --> K{"Target AMF Set<br/>包含当前AMF?"}
K -- 是 --> I
K -- 否 --> L["AMF Re-allocation<br/>转发至目标AMF"]
I --> M["Registration Accept<br/>下发Allowed NSSAI"]
L --> M
这张图揭示了一个常被忽视的优化点:NSSF查询是条件性的,不是每次注册都查。如果初始AMF本地配置完整、能覆盖UE请求的切片,它可以跳过NSSF直接生成Allowed NSSAI(图中的"能"分支)。这就是为什么商用网络中并非每条Registration都能抓到Nnssf_NSSelection_Get消息——只有跨切片边界或漫游时才会触发。
切片选择不会在AMF止步。当UE随后发起PDU Session Establishment时,UE从Allowed NSSAI中选取一个S-NSSAI放进SM NAS消息(TS 24.501 PDU Session Establishment Request中的S-NSSAI IE),AMF据此执行切片感知的SMF选择:
这就是TS 23.501 §6.3.2.3"SMF selection function"与§5.15"Network slicing"耦合的地方。一条经验法则:Allowed NSSAI是切片的"准入证",S-NSSAI是会话的"入场券",NSI-ID是底层资源的"门牌号"。
漫游时切片选择有两条分支(TS 23.501 §5.15.5.2.2),由roaming-indication参数区分:
NSSF在漫游时的职责显著加重——它必须完成VPLMN S-NSSAI与HPLMN S-NSSAI的双向映射,这正是前面强调的Mapping字段的用武之地。
在Wireshark/TShark中识别切片选择流程,应关注以下过滤条件与IE:
# 识别NGAP携带切片的初始接入
ngap.protocolIE-field.RAN-UE-NGAP-ID # 先定位Initial UE Message
# 查看Allowed NSSAI(NGAP与NAS两层都有)
nas-5gs.mm.message_type == 65 # Registration Request
Registration Request中的关键IE:Requested NSSAI、Mapping of requested NSSAI、NSSAI inclusion mode。Nnssf服务是HTTP/2+SBI,过滤http2.headers.method == "GET"且URI含/nnssf-nsselection/v1/slice-selecti即可定位Nnssf_NSSelection_Get。响应体中重点看allowedNssai与targetAmfSet字段。
| 故障现象 | 根因 | 排错方向 |
|---|---|---|
| Registration Accept中Allowed NSSAI为空 | 签约Subscribed S-NSSAI缺失或TAC不在切片服务区 | 查UDM签约、查NSSF中切片-TA可用性映射 |
| 触发AMF Re-allocation导致注册时延过大 | 初始AMF选择不当,gNB路由表覆盖不全 | 优化(R)AN侧RAN NSSAI→AMF路由配置 |
| UE无法建立某切片PDU会话但注册成功 | Allowed NSSAI含该切片,但NSI未在该TA部署 | 检查NSI生命周期与TA覆盖,区分"切片允许"与"切片可达" |
| 漫游用户切片异常 | Mapping of Requested NSSAI缺失或不一致 | 检查VPLMN/HPLMN S-NSSAI映射表配置 |
| Pending NSSAI长期不收敛 | 切片特定认证(NSSAA)失败或超时 | 查AUSF/AAA-S侧EAP流程,参考切片认证流程 |
一个高频误判:抓包看到N2 Initial Context Setup中的Allowed NSSAI与Registration Accept中的不一致——前者是给(R)AN用于无线资源调度的,后者是给UE的,二者来源(AMF推断 vs NSSF授权)可能存在短暂的版本差异,属正常现象。
Q1: Allowed NSSAI 和 Requested NSSAI 的本质区别是什么? A: Requested NSSAI是UE的"诉求",单向携带于Registration Request;Allowed NSSAI是网络的"授权",由NSSF/AMF结合签约(Subscribed S-NSSAI)、区域可用性、漫游策略综合计算后在Registration Accept中下发。前者是输入,后者是输出,二者取交集并附加网络策略后才得到Allowed NSSAI。
Q2: 初始AMF(Initial AMF)什么情况下会跳过NSSF直接生成Allowed NSSAI? A: 当初始AMF本地配置能完整覆盖UE的Requested NSSAI、且不存在漫游映射需求、且所有请求切片都在当前TA可用时,AMF可依据本地签约缓存直接确定Allowed NSSAI,无需调用Nnssf_NSSelection_Get(TS 23.501 §5.15.5.2.1中的条件判断)。这是商用网络中的常见优化路径。
Q3: AMF Re-allocation 会重新执行鉴权吗? A: 会。目标AMF接管后,如果初始AMF转发的上下文中尚未完成主认证(5G-AKA/EAP-AKA'),目标AMF需重新触发与AUSF的鉴权流程;若初始AMF已完成鉴权并通过上下文转发,目标AMF可继承认证结果。这取决于实现,标准允许两种路径。
Q4: NSSAI inclusion mode 的四种模式如何影响Requested NSSAI构造? A: inclusion mode(A/B/C/D,TS 24.501 §4.6.2)决定了UE在VPLMN中如何携带标准SST与运营商自定义SD的组合。例如mode A只允许标准SST,保证与任意PLMN互通;mode D可同时携带VPLMN的Configured NSSAI映射。mode由网络通过Registration Accept/Configuration Update配置。
Q5: 切片选择失败会直接导致注册失败吗? A: 不一定。即使UE请求的所有切片都不可用,只要签约信息中有带default标志的S-NSSAI,网络会用默认切片兜底,Registration仍可成功(只是Allowed NSSAI中只有默认切片)。这是切片设计中的"优雅降级"原则,避免因切片问题阻断基本接入。
本文由「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 等场景全覆盖。
