深度解析 3GPP TS 29.531:5.3 Nnssf_NSSAIAvailability Service (主动的“切片雷达”)
本文技术原理深度参考了3GPP TS 29.531 V18.8.0 (2024-09) Release 18规范中,关于“Chapter 5.3 Nnssf_NSSAIAvailability Service”的核心章节。本文将全面解析NSSF的订阅-通知机制,揭示它如何从一个被动的“问询处”变身为一个主动的、实时的“网络切片状态雷达”。
在上一篇文章中,我们深入探讨了Nnssf_NSSelection服务,见证了NSSF作为“总舵主”,如何通过响应式的GET请求,为“智勘-T1”工业平板在注册、PDU会话建立和网络优化等关键流程中提供精确的切片选择决策。这种“一问一答”的模式,完美地解决了静态或一次性的决策需求。
然而,5G网络,尤其是像智慧工业园区这样的高级应用场景,其本质是高度动态和演进的。网络切片资源可能会因为负载均衡、故障恢复、业务潮汐、新业务上线等原因,发生分钟级甚至秒级的变化。如果AMF每次都需要通过GET请求去轮询NSSF才能感知这些变化,无疑会带来巨大的信令风暴和决策延迟,网络的“智慧”也将大打折扣。
为了解决这个问题,3GPP的专家们为NSSF设计了第二大神功——Nnssf_NSSAIAvailability服务。它引入了强大的订阅/通知机制,将NSSF从一个被动的“问询处”升级为一个主动的“新闻台”。AMF可以订阅它感兴趣区域的“切片新闻”,一旦有风吹草动,NSSF会第一时间将“头条”推送到AMF的“手机”上。
今天,我们的主角小杰和他的“智勘-T1”将面临更复杂的网络环境。园区为了保障一场重要的远程无人机巡检活动,将动态启用和调整专用网络切片。让我们看看Nnssf_NSSAIAvailability服务是如何在这场动态博弈中,确保网络敏捷性和业务可靠性的。
1. 服务描述 (Clause 5.3.1 Service Description):NSSF的“动态情报”业务范围
规范的5.3.1章节,清晰地界定了这项服务的核心能力。它不仅仅是查询,更是状态的同步与生命的周期管理。
规范原文引用 (Clause 5.3.1 Service Description):
The Nnssf_NSSAIAvailability service is used by the NF service consumer (e.g AMF) to update the S-NSSAI(s) the AMF supports on a per TA basis on the NSSF, subscribe and unsubscribe the notification of any changes to the NSSAI availability information on a per TA basis…
It also enables the NF service consumer (e.g. AMF) to update the NSAG(s) associated with the S-NSSAI(s) supported by the AMF on a per TA basis.
It also enables the NF service consumer (e.g., AMF, V-NSSF) to receive updates for Network Slice Replacement and Network Slice Instance Replacement.
It also used by the NF service consumer (e.g. AMF) to subscribe and unsubscribe to the notification of any changes in the status of the NSSAI validity time information.
这段描述揭示了Nnssf_NSSAIAvailability服务是一个多功能的复合服务,其核心职责可归纳为以下几点:
| 核心职责 | 描述与解读 | 场景示例 |
|---|---|---|
| 能力上报 (Update) | AMF主动向NSSF上报自己所管辖的TA列表,以及每个TA目前支持的S-NSSAI和NSAG信息。这是构建NSSF全局切片视图的基础。 | 一个新的AMF在园区内部署上线后,第一件事就是向NSSF“自我介绍”,报告自己的管辖范围和能力。 |
| 订阅可用性变化 (Subscribe) | AMF向NSSF订阅特定TA的切片可用性状态变化通知。当该TA有切片上线/下线/状态变更时,NSSF需要通知该AMF。 | “园区AMF”订阅了整个园区所有TA的切片可用性变化,以便实时掌握园区内的网络资源状况。 |
| 接收变更通知 (Notify) | NSSF在检测到其监控的切片信息发生变化时,主动向所有订阅了该信息的AMF发送通知。这是该服务的核心价值体现。 | 园区为无人机巡检临时启用了一个URLLC切片,NSSF立即将此消息通知给“园区AMF”。 |
| 接收切片替换通知 | NSSF可以通知AMF进行网络切片替换(一个S-NSSAI替换为另一个)或实例替换(一个NSI不可用)。这是网络实现故障自愈和拥塞控制的高级功能。 | 园区原有的视频监控切片因负载过高,NSSF通知AMF将新接入的摄像头引导至一个备用切片。 |
| 管理订阅生命周期 (Unsubscribe) | AMF可以主动取消之前建立的订阅。 | “园区AMF”计划下线维护,在下线前会向NSSF取消所有订阅,避免NSSF向一个不存在的实体发送通知。 |
| 订阅切片有效期变化 | AMF可以订阅切片有效期的变化通知,适用于有时限的切片(如为特定活动临时开通的切片)。 | 无人机巡检切片被设置为有效期2小时,NSSF可以在有效期快到期或变更时通知AMF。 |
这项服务将AMF和NSSF紧密地绑定在了一起,形成了一个动态、闭环的信息同步系统,是实现5G网络自动化和智能化运营的关键环节。
2. 服务操作全解 (Clause 5.3.2 Service Operations):NSSF的“十八般武艺”
与Nnssf_NSSelection服务仅有GET一种操作不同,Nnssf_NSSAIAvailability服务包含了一整套丰富的操作,覆盖了信息上报、订阅、通知、生命周期管理的全部环节。
2.1 Update Service Operation (PUT/PATCH): AMF的“能力宣言”
这是AMF与NSSF建立关系的第一步。AMF必须先告诉NSSF自己是谁,能干什么。
信令流程图重绘与解读 (Figure 5.3.2.2.1-1: Update the S-NSSAIs the AMF supports per TA)
| 实体 (Entity) | 实体 (Entity) | |
|---|---|---|
| NF Service Consumer (e.g. AMF) | NSSF | |
| 1. PUT / PATCH …/nssai-availability/{nfId} (NssaiAvailabilityInfo / PatchDocument) | ||
| ----------------------------------------------------------------------------------⇒ | ||
| 2. 204 No Content / 200 OK (AuthorizedNssaiAvailabilityInfo) / 4xx/5xx… | ||
| ⇐-------------------------------------------------------------------------------- |
场景:园区网络扩容,新AMF上线
由于园区内终端数量激增,运营商新部署了一台AMF,我们称之为“园区AMF-B”,其nfId为amf-instance-B。
- AMF-B启动后,它的首要任务之一就是向NSSF声明自己的存在和能力。它会向NSSF发起一次PUT请求。
- 请求的URI为
.../nssai-availability/amf-instance-B。 - 请求体是一个
NssaiAvailabilityInfo结构,其中详细列出了AMF-B所服务的TA列表,以及每个TA目前支持的S-NSSAI列表。这相当于AMF-B在NSSF那里“登记备案”。
规范原文引用 (Clause 5.3.2.2.1 General - on PUT):
The NF service consumer (e.g. AMF) shall send a PUT request to the resource representing the NSSAI Availability information of the individual NF, identified by the {nfId}, to replace or create the NSSAI Availability information of the NF. The content shall contain the NssaiAvailabilityInfo…
- PUT vs PATCH:
- PUT: 用于创建或完全替换AMF的整个能力信息。AMF-B首次上报时使用PUT。
- PATCH: 用于对已有的能力信息进行局部修改。例如,如果AMF-B后续新增了一个服务的TA,它只需要发送一个PATCH请求,在
taiList中增加新的TA即可,而无需重新发送全部信息,效率更高。
- NSSF收到请求后,更新其内部数据库,现在它知道了
amf-instance-B的存在及其管辖范围。 - NSSF返回
200 OK或204 No Content表示成功。200 OK的响应体中可能会包含NSSF根据全局策略计算出的、在该AMF管辖区域内授权可用的切片信息(AuthorizedNssaiAvailabilityInfo)。
2.2 Subscribe Service Operation (POST): 开启“新闻推送”
能力上报后,AMF-B只是一个静态的记录。为了变得“耳聪目明”,它需要向NSSF订阅动态通知。
信令流程图重绘与解读 (Figure 5.3.2.3.1-1 Create a subscription)
| 实体 (Entity) | 实体 (Entity) | |
|---|---|---|
| NF Service Consumer (e.g. AMF) | NSSF | |
| 1. POST …/nssai-availability/subscriptions (NssfEventSubscriptionCreateData) | ||
| ---------------------------------------------------------------------------------⇒ | ||
| 2. 201 Created (NssfEventSubscriptionCreatedData) / 4xx/5xx… | ||
| ⇐-------------------------------------------------------------------------------- |
场景:AMF-B请求实时更新
- 完成能力上报后,AMF-B立即向NSSF的
/subscriptions资源发起一次POST请求,以创建订阅。 - 请求体是
NssfEventSubscriptionCreateData,这是订阅请求的核心,其中包含了:nfNssaiAvailabilityUri: 一个回调URI,告诉NSSF“如果你有新闻,请往这个地址推送”。这通常是AMF-B自己的一个API端点。taiList: 表明AMF-B对哪些TA的变化感兴趣。event: 表明订阅的事件类型。这是个枚举类型(NssfEventType),例如:SNSSAI_STATUS_CHANGE_REPORT: 订阅TA内切片可用性的通用状态变化。SNSSAI_REPLACEMENT_REPORT: 订阅网络切片替换事件。NSI_UNAVAILABILITY_REPORT: 订阅网络切片实例不可用事件。
规范原文引用 (Clause 5.3.2.3.1 Creation of a subscription):
The request shall indicate the type(s) of events for which the subscription is created, i.e., Network Slice Replacement, Network Slice Instance Replacement, any changes in the status of the NSSAI validity time information and/or of any changes in status of the NSSAI availability information.
- NSSF收到订阅请求后,如果验证通过,会返回
201 Created。 - 响应头(Header)的
Location字段会包含新创建的订阅资源的URI,如.../subscriptions/{subscriptionId}。 - 响应体是
NssfEventSubscriptionCreatedData,其中包含了订阅的详细信息,以及NSSF分配的subscriptionId。
至此,AMF-B已经成功在NSSF那里挂上了号,变成了一个活跃的“新闻订阅者”。
2.3 Notify Service Operation (POST): NSSF的“头条推送”
这是订阅模式的最终回报。当网络发生变化,NSSF将扮演主动通知的角色。
信令流程图重绘与解读 (Figure 5.3.2.5.1-1: Update the AMF with any S-NSSAIs restricted per TA)
| 实体 (Entity) | 实体 (Entity) | |
|---|---|---|
| NSSF | NF Service Consumer (e.g. AMF) | |
| 1. POST {nfNssaiAvailabilityUri} (NssfEventNotification) | ||
| --------------------------------------------------------------------⇒ | ||
| 2. 204 No Content / 4xx/5xx… | ||
| ⇐-------------------------------------------------------------------- |
场景:为无人机巡检动态启用专用切片
园区管委会决定在下午2点到4点,进行一次全局无人机巡检。网络运营商通过网管系统(OAM)在NSSF中配置,在园区所有TA临时启用一个S-NSSAI为{SST:2, SD:25}的“无人机巡检”专用URLLC切片。
- NSSF内部数据更新。它检测到这个变化,并查询其订阅者列表,发现AMF-A和AMF-B都订阅了园区TA的
SNSSAI_STATUS_CHANGE_REPORT事件。 - NSSF立即行动,向AMF-A和AMF-B在订阅时提供的回调URI (
nfNssaiAvailabilityUri) 发起一次POST请求。 - 请求体是
NssfEventNotification结构,其中包含了:subscriptionId: 指明是哪个订阅触发了本次通知。authorizedNssaiAvailabilityData: 核心内容,详细描述了发生变化的TA以及该TA最新的授权S-NSSAI列表。其中会明确包含新增的{SST:2, SD:25}这个切片。
规范原文引用 (Clause 5.3.2.5.1 General):
The Notify Service operation shall be used by the NSSF to update the NF Service Consumer (e.g. AMF) with any change in status, on a per TA basis, of the S-NSSAIs available per TA (unrestricted) and the S-NSSAIs restricted per PLMN…
- AMF-A和AMF-B收到通知后,更新自己的本地缓存。现在,它们都知道了这个新的“无人机巡检”切片是可用的。
- 当小杰的“智勘-T1”上的无人机控制App发起PDU会话建立请求时,AMF无需再去查询NSSF,可以直接从本地缓存中得知这个最优切片的存在,并为其分配,大大提升了业务建立的速度和效率。
2.4 Unsubscribe/Delete Service Operation (DELETE): “事了拂衣去”
这两个操作都使用HTTP DELETE方法,但目标和含义不同。
-
Unsubscribe (DELETE …/subscriptions/{subscriptionId}):
- 含义: 取消一个特定的订阅。AMF可能订阅了多个事件,它只想取消其中一个。
- 场景: 无人机巡检活动结束后,AMF-B可能认为不再需要实时关注切片替换事件了,于是它会发起DELETE请求,取消对
SNSSAI_REPLACEMENT_REPORT事件的订阅,但保留对通用状态变化的订阅。
-
Delete (DELETE …/nssai-availability/{nfId}):
- 含义: 删除AMF在NSSF上的全部能力信息。这通常意味着该AMF实例将永久或长时间离线。
- 场景: 园区网络升级,AMF-B被一台性能更强的AMF-C替代。在AMF-B下线前,运维系统会触发一个DELETE请求,将其在NSSF上的所有记录(包括能力信息和所有关联的订阅)彻底清除。
3. 总结:主动与被动的完美协同
Nnssf_NSSAIAvailability服务和Nnssf_NSSelection服务,共同构成了NSSF能力的完整闭环。它们一个主动,一个被动;一个负责状态同步,一个负责即时决策。
| 特性 | Nnssf_NSSelection (被动问询) | Nnssf_NSSAIAvailability (主动推送) |
|---|---|---|
| 数据模型 | 拉模型 (Pull Model) | 推模型 (Push Model) |
| 触发机制 | 由NF消费者在特定流程(注册等)中触发 | 由NSSF在网络状态变化时触发(Notify),或由NF消费者管理订阅时触发 |
| 解决的问题 | 在需要决策的“时间点”,提供精准的、一次性的切片选择结果。 | 在一个“时间段”内,持续维护NF消费者本地缓存与NSSF全局视图的状态一致性。 |
| 对网络的影响 | 保证了决策的准确性。 | 提升了网络的敏捷性,降低了信令开销,缩短了业务建立时延。 |
小杰的体验:正是因为有了Nnssf_NSSAIAvailability服务,当园区动态启用无人机切片时,他几乎可以“秒开”无人机控制App并立即接入最佳网络;也正是因为这两种服务的协同,才保证了无论网络如何动态变化,他的每一次网络请求,都能得到最优的处理。
这两项服务共同将NSSF塑造成了5G网络切片管理的核心与灵魂,是实现网络即服务(NaaS)和自动化运营愿景的关键技术支撑。
在接下来的文章中,我们将进入规范的第6章,深入到代码和协议层面,详细解析本章提到的NssaiAvailabilityInfo, NssfEventSubscriptionCreateData, NssfEventNotification等关键数据模型的每一个字段,真正从实现者的角度,掌握NSSF的“沟通语言”。
FAQ环节
Q1:为什么AMF需要先Update自己的能力,然后才能Subscribe?不能直接订阅吗?
A1:理论上可以直接订阅,但在3GPP的设计中,这两步是逻辑关联的。Update操作的本质是让NSSF建立起一个“谁在管哪里”的全局地图。没有这张地图,NSSF的很多高级功能就无法实现。例如,如果NSSF不知道某个TA是由哪个AMF服务的,那么当它想对这个TA内的UE进行AMF重定向时,就无从下手。因此,Update是基础,它为NSSF提供了决策和通知所需的基础数据;Subscribe则是在这个基础上,增加了动态同步的能力。
Q2:如果一个AMF突然宕机,没来得及Unsubscribe,会发生什么?
A2:这是一个很好的容错性问题。3GPP设计了**订阅有效期(expiry time)**机制来应对这种情况。
- AMF在发起
Subscribe请求时,可以建议一个expiry时间。 - NSSF在创建订阅时,会确定一个最终的
expiry时间并返回给AMF。 - 如果订阅到期后,AMF没有进行续订(通过修改订阅的操作),NSSF会自动删除这个过期的订阅。
- 这样,即使AMF异常宕机,它创建的“僵尸订阅”也会在一段时间后被NSSF自动清理,避免了NSSF持续向一个不可达的地址推送通知,保证了系统的健壮性。
Q3:规范中提到的“Network Slice Replacement”具体是什么意思?它和普通的切片选择有什么不同?
A3:Network Slice Replacement是一种更高级、更主动的网络管理行为。
- 普通切片选择:是基于UE的请求和签约,为UE“匹配”一个合适的切片。
- 网络切片替换:是网络侧(由NSSF决策)主动发起的行为,通常用于拥塞控制或故障恢复。例如,NSSF通过NWDAF得知某个S-NSSAI(如eMBB-1)当前负载极高,它可以在
Notify消息中告诉AMF,“现在,请将所有请求eMBB-1的新UE,都引导到备用的eMBB-2切片上去”。这是一种临时的、策略性的重定向,对UE是透明的。当拥塞缓解后,NSSF会再发通知,恢复eMBB-1的正常接入。
Q4:NSSF如何知道网络切片的可用性发生了变化?它的信息源头在哪里?
A4:NSSF自身只是一个决策和通知的逻辑功能,它本身不直接探测网络。它的信息来源于上层和外部系统:
- 网络管理与编排系统 (OAM/MANO):这是最主要的信息来源。当运营商的网络工程师规划、部署、修改或下线一个网络切片时,他们是通过OAM/MANO系统进行操作的。这些系统在完成操作后,会配置NSSF,将其内部的切片可用性数据库进行更新。
- NWDAF:对于更动态的状态,如切片实例的实时负载,NSSF会从NWDAF获取分析结果。NWDAF的分析输出可以触发NSSF认为某个切片实例“拥塞”(逻辑上不可用)或“恢复”(逻辑上可用)。
Q5:一个AMF可以只Update能力,但不Subscribe吗?这样做有什么影响?
A5:可以。一个AMF可以选择只履行Update的义务,而不去Subscribe。
- 这样做的好处:AMF的实现会更简单,因为它不需要处理来自NSSF的异步通知。
- 这样做的影响:
- 该AMF将无法感知网络的动态变化。它本地缓存的切片信息(如果有的话)可能会过时。
- 为了保证决策的准确性,该AMF在处理每一次与切片相关的流程时,都必须向NSSF发起一次
Nnssf_NSSelection_Get请求来获取最新的信息。 - 这会导致信令开销增加和业务处理时延增大,削弱了5G网络的敏捷性。因此,在实际部署中,为了获得最佳性能,AMF通常都会实现并使用订阅-通知机制。