聚焦 3GPP TS 23.502 第 4.2.2.2 节 + TS 24.501 NAS 编码,从 UE 发起、AMF 发起、UDM 发起三个场景逐信令拆解。
在 5G 核心网的学习中,注册流程(Registration,TS 23.502 Section 4.2.2.2.2 的姐妹流程)几乎是入门必修,但去注册(Deregistration)却经常被一笔带过。这是有问题的——因为去注册恰恰是资源回收、状态机收敛、计费终结、安全上下文清理的集中爆发点。一次看起来简单的"UE 关机"或"网络踢人",背后牵动着 AMF、SMF、UPF、UDM、PCF 五个网元的服务调用链,以及 NAS、N2(NGAP)、N11(SBI)、N4(PFCP)四套协议的联动。
相比 4G EPS 的 Detach(去附着)流程,5G 的去注册有几个本质区别:
Nsmf_PDUSession_ReleaseSMContext,不再像 4G 那样在 NAS 里逐条带 PDN 信息;Nudm_SDM_Notification),而非 4G 的纯 Diameter/MAP 信令。理解去注册,本质上是在理解 RM 状态机如何从 RM-REGISTERED 回到 RM-DEREGISTERED,以及这个过程中网元之间的"善后协议"。
TS 23.502 将去注册明确分为两大类(Section 4.2.2.2),但工程实践中我们把它拆成三个典型触发源:
| 场景 | 触发源 | 典型诱因 | NAS 消息方向 | 是否需要 UE 重新注册 |
|---|---|---|---|---|
| 场景 A:UE 发起 | UE | 关机、飞行模式、主动重注册、双卡切换 | UE → AMF(Deregistration Request) | 由 Switch off / Re-registration 标志决定 |
| 场景 B:AMF 发起 | AMF | OAM 干预、隐式去注册定时器超时、AMF Set 重平衡、illegal UE | AMF → UE(Deregistration Request) | 通常 Re-registration required |
| 场景 C:UDM 发起 | UDM | 销户、欠费停机、欺诈检测、HSS 数据变更 | UDM → AMF(SBI 通知)→ AMF 再以场景 B 执行 | 强制去注册,可能 re-registration |
下面这张状态图给出了去注册在整个 RM/CM 状态机中的位置:
stateDiagram-v2
[*] --> RM_DEREGISTERED : UE 开机
RM_DEREGISTERED --> RM_REGISTERED : Registration Accept
RM_REGISTERED --> RM_REGISTERED : 业务正常 / PDU 会话活跃
note right of RM_REGISTERED
CM-IDLE: N1 NAS 连接已断
CM-CONNECTED: N1/N2 连接在
end note
RM_REGISTERED --> RM_DEREGISTERED : 场景A UE发起去注册
RM_REGISTERED --> RM_DEREGISTERED : 场景B AMF发起去注册
RM_REGISTERED --> RM_DEREGISTERED : 场景C UDM通知→AMF发起
RM_REGISTERED --> RM_DEREGISTERED : 隐式去注册(定时器超时)
RM_DEREGISTERED --> RM_REGISTERED : Re-registration(若required)
note left of RM_DEREGISTERED
清理: SM Context / N4 / Security Context
UDM: UECM 置为 deregistered
end note
这是最常见的场景——用户关机、切飞行模式、或者 UE 主动希望重新注册以更新能力。
sequenceDiagram
participant UE
participant RAN as (R)AN / gNB
participant AMF
participant SMF
participant UPF
participant UDM
participant PCF
Note over UE: 触发: 关机 / 飞行模式 / 主动重注册
UE->>AMF: NAS Deregistration Request<br/>(Deregistration type, 5G-GUTI, Access type)
Note over AMF: 校验 GUTI / 安全力上下文<br/>判断是否 Switch off
AMF->>SMF: Nsmf_PDUSession_ReleaseSMContext (PDU Session ID)<br/>逐个 PDU 会话下发
SMF->>UPF: N4 Session Modification/Release<br/>(PFCP: remove FAR/URR/PDR)
SMF->>PCF: Npcf_SMPolicyControl_Delete<br/>(终止 SM 策略关联, 触发计费话单关闭)
SMF-->>AMF: Nsmf_PDUSession_ReleaseSMContext Response
AMF->>UDM: Nudm_SDM_Unsubscribe<br/>(取消订阅数据变更通知)
AMF->>UDM: Nudm_UECM_Deregistration<br/>(UECM 置 deregistered, 保留 SUPI)
UDM-->>AMF: 204 No Content
alt 非关机场景
AMF-->>UE: NAS Deregistration Accept
else Switch off 场景
Note over AMF: 不下发 Deregistration Accept
end
AMF->>RAN: NGAP UE Context Release Command
RAN->>UE: RRC Release
RAN-->>AMF: NGAP UE Context Release Complete
Note over UE: 进入 RM-DEREGISTERED
UE 在第一条 NAS Deregistration Request (UE originating) 中携带的核心 IE(TS 24.501 Section 9.11):
| IE 名称 | 长度 | 含义与取值 | 设计意图 |
|---|---|---|---|
| Extended protocol discriminator | 1 字节 | 7E(5GS mobility management) |
区分 5GS MM 与 SM、EPS 等,SBI 时代仍保留 NAS 协议鉴别 |
| Security header type | 1/2 字节 | 指示是否完整性保护/加密 | 关机这类敏感操作必须带 MAC 完整性保护,防伪造关机攻击 |
| Deregistration type | 半字节 | 含 Switch off 位、Re-registration required 位、Access type 位 | 一个 IE 同时表达"为何去注册""是否再来""对哪个接入"三重语义 |
| 5G-GUTI / SUCI | 变长 | 标识当前注册上下文 | AMF 据 GUTI 反查 UE Context |
| 5GS registration result(部分消息) | — | 用于补充 5GS 核心网能力 | 多在重注册场景出现 |
Deregistration type 这个半字节是整个流程的"灵魂",它决定了三条完全不同的执行路径:
flowchart TD
A[UE: Deregistration Request] --> B{Switch off 位?}
B -- 是(关机) --> C[路径1: 纯清理<br/>不发 Deregistration Accept<br/>UE 认为已离线]
B -- 否 --> D{Re-registration required 位?}
D -- 是 --> E[路径2: 重注册<br/>去注册后立即发起 Registration<br/>用于更新能力/切片/AMF 重选]
D -- 否 --> F[路径3: 纯注销<br/>UE 进入 RM-DEREGISTERED<br/>保留 SIM 信息等待用户操作]
C --> G[Access type 字段]
E --> G
F --> G
G -- 3GPP --> H[仅清理 3GPP 接入上下文]
G -- Non-3GPP --> I[仅清理 N3IWF 接入上下文]
G -- Both --> J[全量清理<br/>通常对应 Switch off]
设计意图深挖:为什么 Switch off 时网络不回 Deregistration Accept?因为 UE 即将断电,回包大概率收不到,反而浪费空口资源;更重要的是,UE 一旦发出 Switch off,本地立即认为已离线,不会等待响应。这是一种典型的乐观确认/无确认语义,与 IMS 中 REGISTER 注销、SIP BYE 的设计哲学一致。
AMF 收到请求后,必须完成四件事,缺一不可:
Nsmf_PDUSession_ReleaseSM_Context。注意——这是直接释放 SM Context,不是 PDU Session Release 流程。区别在于:去注册时不向 UE 逐条发 PDU Session Release Command,UE 已经"人要走",网络直接清场。Nudm_SDM_Unsubscribe 让 UDM 不再向该 AMF 推送数据变更通知,避免幽灵通知。Nudm_UECM_Deregistration 将 UE 在 UDM 的注册状态改为 deregistered,但保留 SUPI 记录(区别于 Purge,Purge 是彻底删除)。这样 UE 下次注册时 UDM 仍有档案。UE Context Release Command 通知 RAN 释放 UE 上下文与空口 RRC 连接。当网络需要主动"请走"UE 时,由 AMF 发起。典型诱因包括:OAM 维护、隐式去注册定时器超时、AMF Set 负载重平衡、检测到非法 UE、AMF 实例缩容。
sequenceDiagram
participant UE
participant AMF
participant SMF
participant UDM
participant OAM as OAM/NMS
Note over OAM,AMF: 触发: 维护/缩容/隐式去注册定时器超时
OAM-->>AMF: 触发去注册指令(或定时器内部触发)
AMF->>UE: NAS Deregistration Request (UE terminating)<br/>(Access type, Re-registration required)
alt UE 在线 CM-CONNECTED
UE-->>AMF: NAS Deregistration Accept (UE terminating)
else UE 离线 CM-IDLE
Note over AMF: 先 Paging, 再下发
AMF->>UE: Paging (寻呼)
UE-->>AMF: Service Request
AMF->>UE: Deregistration Request
UE-->>AMF: Deregistration Accept
end
loop 每个 PDU 会话
AMF->>SMF: Nsmf_PDUSession_ReleaseSMContext
SMF-->>AMF: Response
end
AMF->>UDM: Nudm_UECM_Deregistration / Nudm_SDM_Unsubscribe
AMF->>AMF: 删除本地 UE Context<br/>(保留部分鉴权上下文以备重注册)
AMF 发起的去注册,Deregistration Request (UE terminating) 里几乎总带 Re-registration required = 1。这背后的工程意义是:"我把你踢出去,但你要马上回来重新注册"。
典型应用是 AMF Set 负载重平衡:当某个 AMF Set 过载,OAM 会让一部分 UE 去注册并重选到另一个 AMF(通过 GUAMI 变更或 RAN 侧重路由)。UE 收到带 Re-registration 的去注册后,立即以原 GUTI 发起新注册,路由到新的(轻载的)AMF。
另外一个 R18 起的重要增强是 多 USIM 场景:当 UE 有两张 USIM 卡同时注册在同一网络,网络可以通过 AMF 发起的去注册(带特定原因值)让其中一张卡进入"限速/暂停"状态,避免双卡同时占用资源。这在 R17(TS 23.501 多 USIM)和 R18 持续完善。
这是 AMF 发起的一个特殊子类,触发于定时器而非显式指令:
CM-IDLE 后,AMF 启动 Mobile Reachable Timer(默认约比 periodic registration update timer 长 4 分钟);隐式去注册是网络应对"失踪 UE"的兜底机制,保证资源不会无限期占用。这也是为什么在抓包里,你有时会看到一连串 Nsmf_PDUSession_ReleaseSMContext 却没有任何 UE 触发信令——这就是隐式去注册在静默执行。
这是最容易被忽视、却最贴近运营实战的场景。当用户销户、欠费停机、欺诈检测命中、或 HSS/UDM 侧数据被管理员修改,UDM 需要强制将在线 UE 踢下线。
sequenceDiagram
participant OPS as 营销/客服系统
participant UDM
participant UDR
participant AMF
participant SMF
participant UE
Note over OPS,UDR: 用户销户/停机, UDR 数据变更
OPS->>UDR: 标记 subscriber 为 withdraw
UDR-->>UDM: 数据变更触发
UDM->>AMF: Nudm_SDM_Notification<br/>(Subscription Data Withdrawal)<br/>指示订阅数据被撤回
UDM->>SMF: Nudm_SDM_Notification<br/>(影响会话的订阅数据变更)
Note over AMF: AMF 判定需强制去注册
AMF->>UE: NAS Deregistration Request (UE terminating)<br/>(Re-registration not required 或带特定原因)
UE-->>AMF: Deregistration Accept
AMF->>SMF: Nsmf_PDUSession_ReleaseSMContext (逐个)
AMF->>UDM: Nudm_UECM_DeregistrationNotification
Note over UE: 若是销户, 重注册将被拒绝(#3/非法 UE)
Note over UE: 若是临时停机, 可在数据恢复后重注册
Nudm_SDM_Notification(TS 29.503 Section 5.2.2)在 Subscription Data Withdrawal 场景下,body 里的 notificationType 取值为特定枚举,并可能携带:
data / expires:指示被撤回的数据集;subscriptionDataSubsets:精确告诉 AMF 哪些子集(如 SMF selection subscription、Access and Mobility subscription)失效。设计意图:UDM 不直接去碰 UE,而是通过 SBI 通知"订阅变更",由 AMF 这个"注册管理者"决定如何对 UE 执行操作。这是关注点分离(Separation of Concerns)的典型体现——UDM 管数据,AMF 管信令连接,各司其职。
一个关键的运维细节:如果是临时停机(数据可恢复),UDM 通常发起的是"软撤回",AMF 去 UE 后保留 SUPI 档案;如果是永久销户,UDM 会进一步调用 Nudm_UECM 相关操作触发 Purge,彻底删除 UE 上下文,UE 重新注册时将被以原因值 #3 (Illegal UE) 或 #7 (5GS services not allowed) 拒绝。
把四条 NAS 消息放在一起,便于理解编码差异:
classDiagram
class NAS_Dereg_Req_UE_orig {
消息类型: 01000001
+Deregistration type
+5GS mobile identity (GUTI)
+(可选) NGKSI
+(可选) 5G-GUTI for non-3GPP
}
class NAS_Dereg_Req_UE_term {
消息类型: 01000010
+Deregistration type
+Access type
+(可选) Cause (5GMM cause)
}
class NAS_Dereg_Acc_UE_orig {
消息类型: 01000011
(无强制 IE)
}
class NAS_Dereg_Acc_UE_term {
消息类型: 01000100
(无强制 IE)
}
class Deregistration_type {
bit: Switch off
bit: Re-registration required
bits: Access type
note: "半字节承载三重语义"
}
NAS_Dereg_Req_UE_orig --> Deregistration_type : 包含
NAS_Dereg_Req_UE_term --> Deregistration_type : 包含
注意 UE originating(UE 发起)和 UE terminating(网络发起给 UE)的消息类型码不同——这是 NAS 层区分谁先说话的编码约定,与 SIP 中 Request/Response 的方向语义异曲同工。
很多新人会把去注册里的会话释放和独立的 PDU Session Release 流程搞混。下表是关键区别:
| 维度 | 去注册中的会话释放 | 独立 PDU Session Release |
|---|---|---|
| 触发方 | AMF(因 UE 去注册) | UE 或 SMF(单会话) |
| AMF→SMF 服务 | Nsmf_PDUSession_ReleaseSMContext |
Nsmf_PDUSession_Release(注意是 SM Context 还是 Session) |
| 是否逐条通知 UE | 否(UE 已离开/即将离开) | 是,UE 参与 PDU Session Release Command/Accept |
| 影响 N1 NAS | 释放整个 N1 连接 | 仅释放该会话,N1 连接保留 |
| 计费 | 触发 UE 级计费终结 | 触发会话级计费终结 |
一句话记忆:去注册是"退房",PDU Session Release 是"退一件行李"。退房时行李自然全退,不需要一件件和前台确认。
UE Context Release Command / Complete,配合前序的 PDU Session Resource Release;:path 含 release-sm-context,会看到 AMF→SMF 的 POST;PFCP Session Deletion Request/Response,UPF 侧删除所有 PDR/FAR;Deregistration request / accept,注意 :path 或 NAS EPS 中的 security header type 必须非零(完整性保护)。Nudm_UECM_Deregistration 是否 204,查 SMF 是否真的发了 N4 Deletion。Npcf_SMPolicyControl_Delete,导致 PCF 策略关联悬挂,计费一直挂着。这是厂商实现的高发 bug。Q1:Switch off 和 Re-registration required 能同时置位吗? A:协议上不冲突,但工程上无意义。Switch off 表示 UE 即将断电、不期待任何响应;若同时要求 re-registration,UE 已断电无法执行。实际实现中,Switch off 优先级最高,网络按关机处理。
Q2:去注册后 SMF 何时真正删除 N4 session?
A:SMF 收到 Nsmf_PDUSession_ReleaseSMContext 后立即向 UPF 发 PFCP Session Deletion Request,UPF 回 Response 后 N4 session 即被删除。整个过程应在秒级完成。若超时未删除,多为 UPF 过载或 PFCP 链路问题。
Q3:隐式去注册会通知 UE 吗? A:不会。隐式去注册的前提是 UE 长时间不可达(CM-IDLE 且寻呼无响应),网络无法联系 UE,故直接在 AMF 本地完成清理并通知 UDM。UE 下次主动发起信令时,才会发现自己已被去注册(网络以相应原因拒绝)。
Q4:去注册和 UE Configuration Update 有什么关系? A:UE Configuration Update(TS 23.502 Section 4.2.4)是"在注册态更新配置"(如新 NSSAI、新 5G-GUTI、新允许的 NSSAI),不改变 RM 状态;去注册则是"退出注册态"。两者常配合使用:先用 Configuration Update 下发新配置,若 UE 需要重选 AMF,再用带 Re-registration 的去注册强制重注册。
Q5:非 3GPP 接入的去注册与 3GPP 有何不同? A:核心差异在接入链路。N3IWF/TNGF 侧通过 IKEv2/IPsec 通道释放替代 RRC 释放,AMF 仍用同一套 NAS Deregistration 消息(access type=non-3GPP)。当 access type=both 时,AMF 需协调两条接入链路同时清理,这是多接入场景的实现难点。
本文由「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 等场景全覆盖。
