首页 › core-network › 5G UDM订阅数据四服务信令拆解

5G UDM订阅数据管理Nudm_SDM四服务信令全链路拆解

一、机制定位与设计意图

在5GC服务化架构中,UDM(Unified Data Management) 是用户签约数据的权威持有者,相当于4G EPC中HSS的演进形态。UDM对外暴露Nudm_SDM(Subscriber Data Management) 服务,为AMF、SMF、SMSF、NEF等NF消费者提供订阅数据的获取、订阅、通知和取消四大操作。

这一机制的设计核心意图是解决一个根本问题:如何确保分布式网络功能中的用户数据始终与中央数据源保持一致?

在传统4G架构中,MME在Attach流程中从HSS获取用户数据后,依赖IDR(Insert Subscriber Data Request)/ DSR(Delete Subscriber Data Request)等Diameter信令实现增量推送。5GC则彻底转向HTTP/2 RESTful + JSON模型,通过"Get → Subscribe → Notification → Unsubscribe"四步闭环实现订阅数据的全生命周期管理。

本文聚焦TS 29.503定义的Nudm_SDM四大服务操作,结合TS 23.502 Section 4.2.2.2(注册流程)和Section 4.3.2.2.1(PDU会话建立流程),逐信令拆解每个操作的REST API细节、关键IE字段和异常处理机制。


二、Nudm_SDM四大服务操作总览

Nudm_SDM服务定义于TS 29.503 Section 5.2,包含以下四个核心操作:

服务操作 HTTP方法 URI模板 消费者 触发场景
Get GET /nudm-sdm/v2/{supi}/am-data等 AMF, SMF, SMSF 注册、PDU会话建立
Subscribe POST /nudm-sdm/v2/{supi}/sdm-subscriptions AMF, SMF 注册、PDU会话建立(紧跟Get之后)
Notification POST(回调) 消费者提供的callback URI UDM→NF 运营修改签约数据
Unsubscribe DELETE /nudm-sdm/v2/{supi}/sdm-subscriptions/{subscriptionId} AMF, SMF 去注册、AMF变更
graph LR
    subgraph UDM数据资源层级
        A["/{supi}"] --> B["/am-data<br/>接入与移动性数据"]
        A --> C["/smf-select-data<br/>SMF选择数据"]
        A --> D["/sm-data<br/>会话管理数据"]
        A --> E["/ue-context-in-smf-data<br/>SMF中的UE上下文"]
        A --> F["/sms-data<br/>SMS签约数据"]
        A --> G["/sdm-subscriptions<br/>订阅关系"]
    end

    subgraph 消费者NF
        AMF["AMF"] -->|Get am-data| B
        AMF -->|Get smf-select-data| C
        AMF -->|Get ue-context-in-smf-data| E
        SMF["SMF"] -->|Get sm-data| D
        SMSF["SMSF"] -->|Get sms-data| F
    end

    AMF -->|Subscribe| G
    SMF -->|Subscribe| G
    UDM["UDM"] -->|Notification 回调| AMF
    UDM -->|Notification 回调| SMF

上图展示了Nudm_SDM的资源层级和NF消费者关系。每个SUPI下挂接多种数据子资源,不同NF消费者根据自身职能订阅不同数据类型。关键设计原则:数据按需分发,而非全量推送。


三、注册流程中的Nudm_SDM_Get与Subscribe信令拆解

3.1 完整信令时序

在TS 23.502 Section 4.2.2.2(General Registration) 步骤14中,AMF与UDM之间的交互是注册流程的关键里程碑。以下展示初始注册场景下的完整Nudm_SDM信令链:

sequenceDiagram
    participant UE
    participant RAN
    participant NewAMF as 新AMF
    participant OldAMF as 旧AMF
    participant UDM
    participant UDR

    Note over UE,UDM: TS 23.502 Section 4.2.2.2 步骤13-14

    UE->>RAN: Registration Request(SUCI/5G-GUTI)
    RAN->>NewAMF: N2 Initial UE Message + NAS

    opt 旧AMF存在(步骤5-10)
        NewAMF->>OldAMF: Namf_Communication_UEContextTransfer
        OldAMF-->>NewAMF: 200 OK(含已缓存的签约数据)
    end

    rect rgb(230, 245, 255)
    Note right of NewAMF: 步骤13: AMF选择UDM实例
    Note right of NewAMF: 若SUCI加密则先经SIDF解密

    NewAMF->>UDM: 14a. GET /nudm-sdm/v2/{supi}/am-data
    Note right of NewAMF: Query: fields=<过滤字段><br/>Header: Accept: application/json
    UDM->>UDR: Nudr_DM_Query(GET /subscription-data/{supi}/am-data)
    UDR-->>UDM: 200 OK(AccessAndMobilitySubscriptionData)
    UDM-->>NewAMF: 200 OK(JSON Body)

    NewAMF->>UDM: 14a'. GET /nudm-sdm/v2/{supi}/smf-select-data
    UDM-->>NewAMF: 200 OK(SmfSelectionSubscriptionData)

    NewAMF->>UDM: 14a''. GET /nudm-sdm/v2/{supi}/ue-context-in-smf-data
    Note right of NewAMF: 获取已建立PDU会话的SMF信息
    UDM-->>NewAMF: 200 OK(UeContextInSmfData)

    NewAMF->>UDM: 14b. POST /nudm-sdm/v2/{supi}/sdm-subscriptions
    Note right of NewAMF: Body: SdmSubscription<br/>- nfInstanceId: AMF ID<br/>- callbackReference: URI<br/>- monitoredResourceUris<br/>- expiry: 订阅过期时间
    UDM-->>NewAMF: 201 Created(Location header + subscriptionId)
    end

    rect rgb(255, 240, 230)
    Note right of OldAMF: 步骤14d: 旧AMF取消订阅
    OldAMF->>UDM: DELETE /nudm-sdm/v2/{supi}/sdm-subscriptions/{subId}
    UDM-->>OldAMF: 204 No Content
    end

    NewAMF-->>RAN: Registration Accept
    RAN-->>UE: NAS Registration Accept

3.2 步骤14a:Nudm_SDM_Get详解

AMF在步骤14a中发起三次GET请求(可合并为一次批量GET,取决于实现),分别获取三类关键数据:

3.2.1 Access and Mobility Subscription Data(/am-data)

这是AMF最核心的签约数据集,定义于TS 29.503 Section 6.1.6.2.3,主要包含以下字段:

IE字段 类型 含义 典型值
subscribedUeAmbr Ambr UE级聚合最大比特率 uplink: "1 Gbps", downlink: "10 Gbps"
nssai Nssai 签约网络切片标识 defaultServingSst: [1,2,3]
gpsis array[string] 外部标识符集合 ["msisdn-8613800138000"]
subscribedSnssais array[Snssai] 签约S-NSSAI列表(含缺省) [{sst:1, sd:"010203"}, {sst:2}]
accessRestrictionData integer 接入限制位图 0x00(无限制)
coreNetworkTypeRestriction enum 核心网类型限制 "5GC"
rfspIndex integer RAT/频率选择优先级索引 1-256
subscribedDnnList array[string] 签约DNN列表 ["internet", "ims"]

设计意图: AMF需要subscribedSnssais来构建Registration Accept中的Allowed NSSAI,需要subscribedUeAmbr来在NGAP Initial Context Setup Request中向RAN传递UE-AMBR。rfspIndex则用于辅助RAN侧的频率选择策略。

3.2.2 SMF Selection Subscription Data(/smf-select-data)

{
  "subscribedSnssaiInfos": {
    "00101": {
      "dnnSmfInfoList": [
        {
          "dnn": "internet",
          "smfInstaceId": "smf-instance-001"
        }
      ],
      "snssai": {"sst": 1, "sd": "000001"}
    }
  }
}

该数据帮助AMF在PDU会话建立时执行SMF选择。每个S-NSSAI下可映射多个DNN与对应SMF实例。TS 23.501 Section 6.3.2定义了SMF选择算法,该数据是算法输入之一。

3.2.3 UE Context in SMF Data(/ue-context-in-smf-data)

此数据记录UE当前已建立PDU会话的SMF列表。对于初始注册是空列表;对于移动性注册更新,AMF需要此数据来通知各SMF新的服务AMF已接管。关键IE:

IE字段 含义
smfRegList SMF注册列表,每项含SMF ID、DNN、S-NSSAI、PDU Session ID
pgwInfo 演进型PGW信息(用于EPS互操作)

3.3 步骤14b:Nudm_SDM_Subscribe详解

AMF获取完数据后立即发起订阅,确保后续数据变更能被及时感知。订阅请求的JSON Body结构(TS 29.503 Section 6.1.6.2.10):

{
  "nfInstanceId": "550e8400-e29b-41d4-a716-446655440000",
  "callbackReference": "https://amf-01.example.com/nudm-sdm-notification/callback",
  "monitoredResourceUris": [
    "https://udm.example.com/nudm-sdm/v2/supi-imsi-460011234567890/am-data",
    "https://udm.example.com/nudm-sdm/v2/supi-imsi-460011234567890/smf-select-data"
  ],
  "expiry": "2026-12-31T23:59:59Z",
  "sdmSubscriptionId": "sub-20260524-001"
}

关键设计要点:

  1. callbackReference:UDM将在数据变更时向此URI发送Nudm_SDM_Notification。这是典型的观察者模式在SBI中的实现。

  2. monitoredResourceUris:AMF仅订阅自己关心的数据资源(am-data和smf-select-data),不会订阅sm-data(那是SMF的事)。这种按需订阅避免了不必要的通知流量。

  3. expiry:订阅有过期时间。AMF需要在过期前续订,否则UDM将自动清除订阅。这防止了"幽灵订阅"(NF宕机后无人清理)。

  4. UDM内部处理:UDM收到Subscribe后,会通过Nudr_DM_Subscribe向UDR注册通知触发器。当UDR中的签约数据被O&M系统修改时,UDR通知UDM,UDM再回调消费NF。


四、Nudm_SDM_Notification:数据变更通知全链路

4.1 触发场景

Nudm_SDM_Notification的典型触发场景包括:

场景 变更数据类型 AMF动作 SMF动作
运营商停机 AccessAndMobilitySubscriptionData 发起去注册 释放PDU会话
变更签约切片 SmfSelectionSubscriptionData 更新Allowed NSSAI —
变更QoS等级 SessionManagementSubscriptionData — 发起PDU会话修改
新增DNN SessionManagementSubscriptionData — 允许新PDU会话建立
限制漫游区域 AccessAndMobilitySubscriptionData 发起去注册或限制 —
修改计费策略 SessionManagementSubscriptionData — 通知PCF更新PCC规则

4.2 通知信令流程

sequenceDiagram
    participant OAM as O&M系统
    participant UDR as UDR
    participant UDM as UDM
    participant AMF
    participant SMF
    participant UE

    Note over OAM,UE: TS 23.502 Section 4.2.2.2.2 订阅数据变更通知

    OAM->>UDR: 修改用户签约数据(如: 停机)
    UDR->>UDM: Nudr_DM_Notify(变更通知)
    Note right of UDR: UDR感知到数据变更<br/>通知已注册的UDM实例

    rect rgb(255, 245, 230)
    Note right of UDM: UDM查找SDM订阅表
    Note right of UDM: 遍历所有已订阅该SUPI的NF

    UDM->>AMF: POST {callbackUri}<br/>Nudm_SDM_Notification
    Note right of UDM: Body: ModificationNotification<br/>changeItems:[{op:REPLACE,<br/>path:/am-data/subscribedUeAmbr}]
    AMF-->>UDM: 200 OK(确认)
    end

    rect rgb(230, 255, 230)
    UDM->>SMF: POST {smfCallbackUri}<br/>Nudm_SDM_Notification
    Note right of UDM: Body: ModificationNotification<br/>changeItems:[{op:DELETE,<br/>path:/sm-data/dnnConfigurations/internet}]
    SMF-->>UDM: 200 OK(确认)
    end

    alt AMF判定需要去注册(如:停机)
        AMF->>UE: NAS Deregistration Request(type: re-registration required)
    else AMF判定仅需更新配置
        AMF->>UE: NAS UE Configuration Update Command
    end

    alt SMF判定需要释放会话
        SMF->>AMF: Nsmf_PDUSession_UpdateSMContext(释放指示)
        AMF->>UE: NAS PDU Session Release Command
    else SMF判定需要修改QoS
        SMF->>AMF: Nsmf_PDUSession_UpdateSMContext(QoS更新)
    end

4.3 Notification消息JSON结构

Nudm_SDM_Notification的请求体(TS 29.503 Section 6.1.6.2.11)包含一个ModificationNotification结构:

{
  "notifyItems": [
    {
      "resourceId": "https://udm.example.com/nudm-sdm/v2/supi-imsi-460011234567890/am-data",
      "changeType": "MODIFY",
      "changeItems": [
        {
          "op": "REPLACE",
          "path": "/subscribedUeAmbr",
          "from": {"uplink": "1 Gbps", "downlink": "10 Gbps"},
          "to": {"uplink": "100 Mbps", "downlink": "1 Gbps"}
        }
      ]
    }
  ],
  "originalCallbackReference": "https://amf-01.example.com/nudm-sdm-notification/callback"
}

核心IE解析:

IE字段 含义 取值范围
changeType 变更类型 ADD, MODIFY, DELETE
op JSON Patch操作 ADD, REPLACE, REMOVE(RFC 6902)
path JSON Pointer路径 指向变更的具体字段(RFC 6901)
originalCallbackReference 原始订阅回调URI 用于NF匹配订阅

设计亮点: 通知采用JSON Patch(RFC 6902)格式描述增量变更,而非全量推送。这意味着AMF/SMF只需应用补丁即可更新本地缓存,无需重新获取完整数据集。在高并发场景(如批量停机)下,这显著降低了CPU开销。


五、PDU会话建立中的Nudm_SDM交互

5.1 SMF与UDM的SDM交互

在PDU会话建立流程中(TS 23.502 Section 4.3.2.2.1),SMF同样需要与UDM进行Get + Subscribe交互:

sequenceDiagram
    participant UE
    participant AMF
    participant SMF
    participant UDM
    participant PCF
    participant UPF

    UE->>AMF: NAS PDU Session Establishment Request
    AMF->>SMF: Nsmf_PDUSession_CreateSMContext

    rect rgb(240, 248, 255)
    Note right of SMF: TS 23.502 4.3.2.2.1 步骤7
    SMF->>UDM: GET /nudm-sdm/v2/{supi}/sm-data?dnn=internet&single-nssai={"sst":1}
    Note right of SMF: 查询特定DNN+S-NSSAI的会话管理数据
    UDM-->>SMF: 200 OK(SessionManagementSubscriptionData)
    Note right of UDM: 返回: dnnConfigurations,<br/>sscModes, 5gQosProfile,<br/>chargingProperties等

    SMF->>UDM: POST /nudm-sdm/v2/{supi}/sdm-subscriptions
    Note right of SMF: 订阅sm-data变更通知
    UDM-->>SMF: 201 Created
    end

    SMF->>PCF: Npcf_SMPolicyControl_Create
    SMF->>UPF: N4 Session Establishment
    SMF-->>AMF: Nsmf_PDUSession_CreateSMContext Response

5.2 Session Management Subscription Data关键字段

SMF获取的SessionManagementSubscriptionData(TS 29.503 Section 6.1.6.2.7)与AMF获取的数据完全不同:

IE字段 含义 SMF使用场景
dnnConfigurations 每个DNN的配置参数集 PDU会话类型、IP地址分配方式、SSC模式
5gQosProfile 缺省QoS配置 缺省QoS Flow的5QI/ARP
sscModes 支持的SSC模式 SSC模式选择
chargingProperties 计费属性 在线/离线计费触发
sessionAmbr 会话级AMBR UPF QoS enforcement
staticIpAddress 静态IP地址 UE IP地址分配
pduSessionTypes 允许的PDU会话类型 IPv4/IPv6/以太网

与4G对比: 4G中PGW从HSS通过Diameter Cx接口获取APN配置(APN-Configuration-Profile)。5G中SMF通过RESTful GET按DNN粒度获取,更加灵活,支持单次查询特定DNN+S-NSSAI组合。


六、Nudm_SDM_Unsubscribe:订阅生命周期终结

6.1 触发场景

Unsubscribe操作发生在以下场景:

  1. AMF变更(TS 23.502 Section 4.2.2.2步骤14d):新AMF注册到UDM后,旧AMF取消其SDM订阅
  2. 显式去注册(TS 23.502 Section 4.2.2.2.2):UE或网络发起去注册后,AMF取消订阅
  3. PDU会话释放:SMF释放最后一个PDU会话后取消对sm-data的订阅
  4. 订阅过期:超过expiry时间后UDM自动清理

6.2 资源竞争与博弈

当AMF发生变更时存在一个微妙的时序问题:旧AMF的Unsubscribe与新AMF的Subscribe必须保证原子性,否则可能出现通知丢失窗口。

TS 23.502的设计策略是:

时序保证:
1. 新AMF先执行 Nudm_UECM_Registration(注册自己为服务AMF)
2. 新AMF再执行 Nudm_SDM_Get + Subscribe
3. 旧AMF收到Nudm_SDM_Notification(告知AMF已变更)后,执行Unsubscribe
4. UDM维护subscription列表,新旧AMF的订阅短暂共存

这种"先建后拆"的设计确保了在AMF切换期间不会丢失通知。


七、UDM内部数据流转与UDR交互

UDM本身可以不持久化数据,而是通过Nudr_DM(Data Management) 接口从UDR(Unified Data Repository)获取。这种分层架构实现了数据存储与数据管理的解耦。

graph TB
    subgraph NF消费者
        AMF["AMF"]
        SMF["SMF"]
        SMSF["SMSF"]
    end

    subgraph 数据管理层
        UDM_SDM["UDM<br/>Nudm_SDM服务"]
        UDM_UECM["UDM<br/>Nudm_UECM服务"]
        UDM_Auth["UDM<br/>Nudm_Auth服务"]
    end

    subgraph 数据存储层
        UDR["UDR<br/>Nudr_DM服务"]
    end

    subgraph 外部系统
        OAM["O&M/Provisioning"]
    end

    AMF -->|"Get/Subscribe<br/>am-data, smf-select-data"| UDM_SDM
    SMF -->|"Get/Subscribe<br/>sm-data"| UDM_SDM
    SMSF -->|"Get/Subscribe<br/>sms-data"| UDM_SDM

    AMF -->|"Registration<br/>服务AMF记录"| UDM_UECM
    SMF -->|"Registration<br/>PDU会话记录"| UDM_UECM

    UDM_SDM -->|"Nudr_DM_Query"| UDR
    UDM_SDM -->|"Nudr_DM_Subscribe"| UDR
    UDM_UECM -->|"Nudr_DM_Create/Update"| UDR

    UDM_SDM -->|"Nudm_SDM_Notification"| AMF
    UDM_SDM -->|"Nudm_SDM_Notification"| SMF

    OAM -->|"修改签约数据"| UDR
    UDR -->|"Nudr_DM_Notify"| UDM_SDM

    style UDR fill:#fff3e0
    style UDM_SDM fill:#e3f2fd
    style OAM fill:#f3e5f5

数据流转关键路径:

  1. 读取路径:NF → Nudm_SDM_Get → UDM → Nudr_DM_Query → UDR → UDM → NF
  2. 订阅路径:NF → Nudm_SDM_Subscribe → UDM → Nudr_DM_Subscribe → UDR(注册触发器)
  3. 变更路径:O&M → UDR → Nudr_DM_Notify → UDM → 遍历订阅表 → Nudm_SDM_Notification → 各NF

八、REST API URI设计与HTTP状态码博弈

8.1 URI层级设计

Nudm_SDM的RESTful URI遵循严格的层级设计(TS 29.503 Annex A.2):

{nudm-sdm API Root}/v2
├── /{supi}
│   ├── /am-data                          → AMF获取移动性数据
│   ├── /smf-select-data                  → AMF获取SMF选择数据
│   ├── /ue-context-in-smf-data           → AMF获取PDU会话上下文
│   ├── /sm-data                          → SMF获取会话管理数据
│   │   ├── ?dnn=internet                 → 按DNN过滤
│   │   └── ?single-nssai={"sst":1}      → 按S-NSSAI过滤
│   ├── /sms-data                         → SMSF获取SMS数据
│   ├── /sms-mng-data                     → SMSF获取SMS管理数据
│   ├── /trace-data                       → 获取MDT追踪数据
│   ├── /sdm-subscriptions                → 订阅管理
│   │   ├── POST (创建订阅)
│   │   └── /{subscriptionId}
│   │       └── DELETE (取消订阅)
│   └── /lcs-pos-data                     → 位置服务数据
├── /shared-data                          → 共享数据
│   └── /{sharedDataId}
└── /{gpsi}                               → 外部标识符查询
    └── /sm-data

8.2 关键HTTP状态码

状态码 场景 NF处理策略
200 OK Get成功,返回完整数据 解析JSON,缓存到本地
201 Created Subscribe成功 保存subscriptionId,记录expiry
204 No Content Unsubscribe成功 清除本地订阅记录
403 Forbidden SUPI不存在或NF无权限 判断是临时还是永久,永久则去注册
404 Not Found 数据不存在 可能是新用户,检查是否需要默认配置
429 Too Many Requests UDM过载 按Retry-After退避重试
503 Service Unavailable UDM不可用 重试或选择备用UDM实例

设计博弈: 为什么Get操作返回200 OK而不是206 Partial Content?因为3GPP设计原则是"一次Get获取某类数据的全集",过滤通过Query参数(如?fields=)实现。这与Web API常用的分页模式不同——签约数据通常不大,无需分页。


九、实战排错指南

9.1 抓包识别Nudm_SDM信令

在Wireshark中使用以下过滤条件(HTTP/2 over TLS需要解密):

# 过滤所有Nudm_SDM消息
http2.headers.path contains "nudm-sdm"

# 过滤AMF获取移动性数据
http2.headers.path contains "nudm-sdm" and http2.headers.path contains "am-data"

# 过滤订阅操作
http2.headers.path contains "sdm-subscriptions" and http2.request.method == "POST"

# 过滤通知回调
http2.request.method == "POST" and http2.headers.path contains "callback"

9.2 常见故障与排错

故障现象 根因分析 排查步骤
注册失败(5G-DNN_CONGESTION) UDM返回404或空签约数据 检查Nudm_SDM_Get响应中DNN列表是否为空
切片不可用(Rejected S-NSSAI) 签约S-NSSAI与请求不匹配 对比am-data中subscribedSnssais与UE请求的NSSAI
PDU会话建立失败 SMF Get sm-data返回403 检查SUPI/DNN/S-NSSAI组合是否在UDR中配置
数据变更不生效 Subscribe缺失或已过期 检查AMF/SMF日志中的Subscribe响应码和expiry时间
旧AMF收到幽灵通知 Unsubscribe未执行 检查旧AMF是否收到了AMF变更通知并正确Unsubscribe
UDM 429错误 短时间大量Get请求 检查AMF是否有异常的重复注册请求洪泛
## 十、4G HSS vs 5G UDM SDM机制对比
对比维度 4G HSS/SPR 5G UDM/UDR
接口协议 Diameter (Cx/S6a) HTTP/2 REST (Nudm_SDM)
数据获取 ULR/ULA(全量推送) GET(按资源类型精准查询)
变更通知 IDR/DSR(推拉结合) Subscribe + Notification(纯推送)
数据格式 AVP(二进制编码) JSON(文本编码)
数据存储 HSS内置或外挂SPR UDR独立网元(Nudr接口)
数据粒度 APN级别 DNN + S-NSSAI联合粒度
切片支持 不支持 原生支持S-NSSAI
接口安全 IPsec/Diameter TLS OAuth2.0 + TLS 1.3
扩展性 受限于Diameter连接模型 RESTful天然支持水平扩展

关键演进逻辑: Diameter协议的连接模型(peer-to-peer)在云原生环境下扩展困难。HTTP/2 REST模型天然适合容器化部署和负载均衡。Nudm_SDM的设计使得UDM可以无状态化——所有持久数据交给UDR,UDM实例可随时扩缩容。


常见问题

Q1: Nudm_SDM_Get和Nudm_SDM_Subscribe为什么不在同一个HTTP请求中完成?

A: 这是RESTful API的设计原则——Get是幂等的资源读取操作,Subscribe是创建订阅资源的写入操作,语义不同。合并会违反REST的无状态语义。但在实际部署中,一些厂商实现了"Get + Implicit Subscribe"优化:在Get请求中携带额外Header暗示同时订阅,减少一次RTT。

Q2: 如果UDM发送Nudm_SDM_Notification时AMF不可达怎么办?

A: TS 29.503定义了重试机制。UDM会根据HTTP响应码判断:如果收到TCP连接失败或5xx错误,UDM会启动重试定时器(指数退避)。超过最大重试次数后,UDM将标记该订阅为"失效",并可能通过Nudm_UECM查询当前服务AMF是否已变更。如果AMF已切换,新AMF的订阅将正常工作。

Q3: SMF在PDU会话建立时获取的sm-data和AMF获取的sm-data有什么区别?

A: AMF获取的是smf-select-data(用于SMF选择),包含每个S-NSSAI下可用的SMF实例列表和DNN映射。SMF获取的是sm-data(Session Management Subscription Data),包含DNN级别的详细配置(QoS profile、计费属性、IP地址分配策略等)。两者虽然都与会话相关,但消费者和使用目的完全不同。

Q4: Nudm_SDM和Nudm_UECM有什么关系?为什么要分成两个服务?

A: Nudm_UECM管理的是UE的"注册关系"(谁在服务这个UE——AMF ID、SMF ID、PDU Session ID),是动态的、频繁变化的。Nudm_SDM管理的是UE的"签约数据"(这个用户有什么权限——切片、QoS、DNN),是相对静态的。分离后,查询注册信息不需要遍历签约数据,查询签约数据也不需要处理注册信息,各自可以独立缓存和扩展。

Q5: 多个UDM实例如何保证数据一致性?

A: 3GPP设计中UDM通过UDR实现数据一致性。多个UDM实例共享同一个UDR(或UDR集群),Nudm_SDM_Get实际是从UDR读取。订阅通知的触发也由UDR统一管理——UDR数据变更后通知所有已注册的UDM实例,再由各UDM实例分别通知其管理的NF消费者。这保证了"单一数据源 + 多通知分发器"的一致性模型。


参考来源

  1. 3GPP TS 29.503 V18.x.x — Nudm_SDM服务定义,Section 5.2(服务操作)、Section 6.1.6(数据模型)
  2. 3GPP TS 23.502 V18.x.x — Section 4.2.2.2(注册流程步骤14)、Section 4.3.2.2.1(PDU会话建立流程步骤7)
  3. 3GPP TS 23.501 V18.x.x — Section 5.2.3(UDM功能描述)、Section 6.3.2(SMF选择机制)
  4. free5GC UDM Introduction — 开源5GC中UDM实现解析
  5. Oracle UDM SDM Service Guide — 商用UDM的SDM服务实现细节

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