5G核心网学习平台
UDM 实践篇 #04

5GC实践篇之UDM篇第20篇:SMF获取用户签约会话管理数据

《5G核心网原理与实践》实践篇 · UDM 网元功能

5GC实践篇之UDM篇第20篇:SMF获取用户签约会话管理数据

作者:爱卫生


1 测试背景与用例简介

在本系列第17篇中,我们完整梳理了PDU会话建立过程中SMF与UDM之间的"三部曲"交互——身份注册(UECM_Registration)、签约数据获取(SDM_Get)和数据变更订阅(SDM_Subscribe)。那是一幅全景式的流程画卷,让我们看到了SMF与UDM协作的全貌。

本篇将镜头拉近,聚焦于三部曲中最核心的一步——SMF通过Nudm_SDM_Get从UDM获取用户签约的会话管理数据(Session Management Data,简称SM-Data)

为什么这一步值得单独用一篇来深入剖析?因为SM-Data是SMF进行会话管理的"宪法级"数据源——它决定了:

  1. 用户能访问哪些网络切片(Subscribed S-NSSAIs);

  2. 用户能建立哪些数据会话(Subscribed DNN list);

  3. 会话的类型和连续性模式(PDU Session Types、SSC Modes);

  4. 会话的服务质量等级(5QI、ARP、Session-AMBR);

  5. 计费方式(Charging Characteristics)。

可以说,SM-Data中的每一个字段都直接影响到PDU会话的建立参数和后续策略控制。如果SMF获取不到正确的SM-Data,或者SM-Data中的某个字段配置错误,轻则会话参数降级,重则会话建立直接失败。

本篇将详细验证:当SMF通过Nudm_SDM_Get请求获取SM-Data时,UDM是否能够正确返回完整的、与用户签约数据一致的会话管理数据

SMF获取SM-Data流程总览


sequenceDiagram

    participant UE

    participant AMF

    participant SMF

    participant UDM

    participant UDR

    Note over UE, UDM: PDU会话建立流程中,SMF获取签约数据阶段

    UE->>AMF: PDU Session Establishment Request

    AMF->>SMF: Nsmf_PDUSession_CreateSMContext Request

    rect rgb(230, 245, 255)

        Note over SMF, UDR: 本篇重点:Nudm_SDM_Get获取SM-Data

        SMF->>UDM: GET /nudm-sdm/v1/{supi}/sm-data<br/>?dnn=internet&s-nssai=...&plmn-id=...

        UDM->>UDR: GET /nudr-dr/v1/subscription-data/{supi}/sm-data

        UDR-->>UDM: 200 OK + SessionManagementSubscriptionData

        UDM-->>SMF: 200 OK + SM-Data完整响应

    end

    Note over SMF: SMF基于SM-Data进行:<br/>1. DNN/S-NSSAI授权校验<br/>2. QoS参数配置<br/>3. SSC模式选择<br/>4. 计费策略关联

SM-Data数据结构全景图


flowchart TD

    ROOT["SessionManagementSubscriptionData<br/>会话管理签约数据"] --> NSSAI["singleNssai<br/>签约的单一网络切片"]

    ROOT --> DNN_CFG["dnnConfigurations<br/>DNN配置集合"]

    ROOT --> CHARGE["chargingCharacteristics<br/>计费特性"]

    DNN_CFG --> DNN_INTERNET["internet<br/>互联网DNN配置"]

    DNN_CFG --> DNN_IMS["ims<br/>IMS语音DNN配置"]

    DNN_INTERNET --> PDU_TYPE["pduSessionTypes<br/>允许的PDU会话类型"]

    DNN_INTERNET --> SSC_MODE["sscModes<br/>SSC连续性模式"]

    DNN_INTERNET --> QOS_PROF["5gQosProfile<br/>5GS QoS配置"]

    DNN_INTERNET --> SES_AMBR["sessionAmbr<br/>会话级AMBR"]

    PDU_TYPE --> DEF_TYPE["defaultSessionType: IPV4"]

    PDU_TYPE --> ALLOW_TYPE["allowedSessionTypes:<br/>IPV4, IPV6, IPV4V6"]

    SSC_MODE --> DEF_SSC["defaultSscMode: SSC_MODE_1"]

    SSC_MODE --> ALLOW_SSC["allowedSscModes:<br/>SSC_MODE_1, SSC_MODE_2, SSC_MODE_3"]

    QOS_PROF --> FIVE_QI["5qi: 9"]

    QOS_PROF --> ARP["arp: priorityLevel=8"]

    QOS_PROF --> SES_AMBR2["sessionAmbr: UL/DL"]

    style ROOT fill:#e3f2fd,stroke:#1565c0,stroke-width:2px

    style DNN_CFG fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px

    style PDU_TYPE fill:#fff3e0,stroke:#e65100,stroke-width:1px

    style SSC_MODE fill:#fff3e0,stroke:#e65100,stroke-width:1px

    style QOS_PROF fill:#fce4ec,stroke:#c62828,stroke-width:1px


测试目的

验证UDM能够正确支持SMF通过Nudm_SDM_Get服务获取用户签约的会话管理数据(SM-Data),包括签约S-NSSAI、签约DNN列表、允许的PDU会话类型、默认PDU会话类型、允许的SSC模式、默认SSC模式、5GS签约QoS配置、计费特性和会话级AMBR等必选字段,且返回数据与用户实际签约数据一致。

测试前置条件

  1. SA网络中各网元系统及操作维护台运行正常。

  2. 终端和网络连接正常。

  3. UE在UDM开户,签约5G业务,且已配置完整的会话管理签约数据(包括S-NSSAI、DNN、QoS、SSC模式、计费特性等必选字段)。

  4. 服务化接口的信令监控、分析的工具准备就绪。

  5. 用户已在5GC完成注册。

测试步骤

  1. 在UDM中为用户签约会话管理数据,确保包含以下必选字段:

  2. Subscribed S-NSSAIs(签约的网络切片选择辅助信息)

  3. Subscribed DNN list(签约的数据网络名称列表)

  4. Allowed PDU Session Types(允许的PDU会话类型)

  5. Default PDU Session Type(默认PDU会话类型)

  6. Allowed SSC modes(允许的SSC连续性模式)

  7. Default SSC mode(默认SSC连续性模式)

  8. 5GS Subscribed QoS profile(5GS签约QoS配置文件)

  9. Charging Characteristics(计费特性)

  10. Subscribed-Session-AMBR(签约的会话级聚合最大比特速率)

  11. UE发起PDU会话建立请求,触发SMF通过Nudm_SDM_Get消息从UDM获取会话管理签约数据。

  12. 检查SMF获取到的数据是否与UDM中配置的签约数据一致。

测试结果验证(预期)

  1. 用户会话管理签约数据配置成功,包含所有必选字段,OK。

  2. SMF通过Nudm_SDM_Get正确获取SM-Data,UDM返回的签约数据与配置的签约数据一致,OK。


2 信令深度解析

在本测试中,核心关注点是SMF通过Nudm_SDM_Get服务从UDM获取Session Management Subscription Data的完整过程。我们将深入剖析HTTP请求的构造、查询参数的含义、响应数据的每一个关键字段,以及SMF如何使用这些数据。

(注:为保护网络安全,以下log中的SUPI/IMSI标识、网元IP及实例ID等敏感信息已做严格脱敏处理)

2.1 SMF获取SM签约数据(Nudm_SDM_Get)

当SMF收到AMF通过Nsmf_PDUSession_CreateSMContext发来的会话创建请求后,SMF必须先"查阅用户档案"——向UDM请求该用户的会话管理签约数据。这一步是SMF决策链的第一环节:没有正确的签约数据,SMF就无法做出任何合法的会话管理决策

SMF使用HTTP GET方法,在URI中通过查询参数指定DNN、S-NSSAI和PLMN-ID,精准定位到所需的签约数据切片。


sequenceDiagram

    participant SMF

    participant UDM

    Note over SMF, UDM: Nudm_SDM_Get - 获取会话管理签约数据

    SMF->>UDM: GET /nudm-sdm/v1/imsi-460XX00000XXXX<br/>/sm-data?dnn=internet<br/>&s-nssai=sst:1,sd:XXXXXXX<br/>&plmn-id=mcc:460,mnc:XX

    Note right of SMF: 请求查询参数:<br/>dnn: 目标数据网络名称<br/>s-nssai: 目标网络切片<br/>plmn-id: 用户归属PLMN

    UDM-->>SMF: 200 OK

    Note left of UDM: 响应体含完整SM-Data:<br/>singleNssai + dnnConfigurations<br/>包含QoS/SSC/PDU类型/AMBR等

信令抓包解析:


# 1. SMF -> UDM(获取会话管理签约数据 GET请求)

HEADERS: GET /nudm-sdm/v1/imsi-460XX00000XXXX/sm-data

  ?dnn=internet

  &s-nssai=%7B%22sst%22%3A1%2C%22sd%22%3A%22XXXXXXX%22%7D

  &plmn-id=%7B%22mcc%22%3A%22460%22%2C%22mnc%22%3A%22XX%22%7D

# URL解码后的查询参数:

# dnn=internet

# s-nssai={"sst":1,"sd":"XXXXXXX"}

# plmn-id={"mcc":"460","mnc":"XX"}

# 说明:

# - dnn参数:SMF指定要查询的数据网络名称,这里是"internet"

# - s-nssai参数:SMF指定目标切片的SST和SD值

# - plmn-id参数:标识用户的归属PLMN,用于漫游场景下区分数据

查询参数详解:

参数 是否必选 含义 说明
dnn 可选 数据网络名称 指定要查询的DNN,不携带则返回所有DNN配置
s-nssai 可选 网络切片标识 包含sst和sd,用于筛选特定切片的签约数据
plmn-id 可选 PLMN标识 漫游场景下用于区分H-PLMN和V-PLMN的签约数据
sst 1 切片服务类型:1=eMBB,2=URLLC,3=mMTC
sd "XXXXXXX" 切片区分符,在同一SST下进一步区分子切片
IPV4 IPv4类型会话 最常见的互联网接入
IPV6 IPv6类型会话 运营商IPv6-only部署
IPV4V6 IPv4v6双栈会话 同时支持IPv4和IPv6
Ethernet 以太网类型会话 企业专线、工业物联网
Unstructured 非结构化数据会话 CIoT、NIDD(非IP数据传输)
SSC_MODE_1 永远保持 UE无论怎么移动,IP地址始终不变,锚点UPF不变
SSC_MODE_2 网络触发重连 网络决定释放会话后重新建立,可能更换IP地址
SSC_MODE_3 UE触发重连 网络通知UE先建新会话再释放旧会话,确保业务不中断
5qi 9 5G QoS标识符,9=Non-GBR"尽力而为"业务
arp.priorityLevel 8 ARP优先级(1~15,8为中等偏高)
arp.preemptCap NOT_PREEMPT 不允许抢占低优先级会话的资源
arp.preemptVuln PREEMPTABLE 可被更高优先级会话抢占
priorityLevel 15 数据业务优先级(1~15,适用于非GBR QoS流)
9 Non-GBR 9 默认数据业务(Internet)
80 Non-GBR 6 低延迟云游戏
uplink "1000000000" 上行AMBR = 1 Gbps(单位:bps)
downlink "2000000000" 下行AMBR = 2 Gbps(单位:bps)
获取网元 AMF SMF
SBI服务 Nudm_SDM_Get /am-data Nudm_SDM_Get /sm-data
获取时机 UE注册流程 PDU会话建立流程
核心功能 控制UE是否允许接入网络 控制UE是否允许建立数据会话
切片信息 返回所有签约S-NSSAI的完整列表 返回特定S-NSSAI的详细配置
速率控制 UE-AMBR(所有会话的总速率) Session-AMBR(单个会话的速率)
QoS 不含QoS Profile(由SMF侧管理) 包含5QI/ARP等详细QoS配置
DNN信息 可能含默认DNN指示 包含每个DNN的完整参数配置
SSC模式 不涉及 包含允许和默认的SSC模式
计费 不涉及 包含Charging Characteristics
数据量级 相对较轻,关注接入权限 数据量大,DNN配置可达数十项

为什么要分两套数据?

这个设计体现了5GC架构的一个重要原则——关注点分离(Separation of Concerns)

  1. 最小权限原则:AMF只需要知道"这个用户能不能接入网络",不需要关心用户能建立什么样的数据会话;SMF只需要知道"这个用户能建立什么样的会话",不需要关心用户的移动性管理策略。每个网元只获取自己需要的数据,既减少了不必要的数据传输,也降低了敏感信息泄露的风险。

  2. 独立演进:运营商修改用户的会话管理策略(如提速、增加DNN)时,只需要更新SM-Data,不会影响AMF侧的接入控制。反之亦然。

  3. 多会话场景:一个用户可以同时拥有多个PDU会话,每个会话可能由不同的SMF管理。分离SM-Data使得每个SMF可以独立获取自己关心的DNN配置,互不干扰。

协议参考:根据3GPP TS 29.503 第5.2节,UDM提供的SDM数据被分为多个独立的Resource:am-datasm-datanssaiue-context-in-smf-data等。每种数据有独立的URI路径和查询参数。这种设计使得不同NF可以并行获取各自所需的数据,提高了系统效率。

两大数据集的关联关系:

虽然AM-Data和SM-Data是独立的数据集,但它们之间存在逻辑关联:


flowchart LR

    A1["AMF获取AM-Data<br/>得到签约S-NSSAI列表"] --> A2["AMF在N2消息中将<br/>允许的S-NSSAI传递给SMF"]

    A2 --> B1["SMF获取SM-Data<br/>基于指定的S-NSSAI<br/>查询对应的DNN配置"]

    B1 --> B2["SMF验证:<br/>请求的DNN是否在<br/>sm-data的dnnConfigurations中"]

    B2 -->|"存在"| C1["授权通过<br/>继续建立PDU会话"]

    B2 -->|"不存在"| C2["授权失败<br/>拒绝会话建立<br/>返回错误码"]

    style C1 fill:#c8e6c9,stroke:#2e7d32,stroke-width:2px

    style C2 fill:#ffcdd2,stroke:#c62828,stroke-width:2px

简单来说,AMF先从AM-Data中确定"用户可以使用哪些切片",SMF再从SM-Data中确认"在这些切片下用户可以使用哪些DNN以及对应的会话参数"。两者形成了一个从宏观到微观的授权链路。


3 测试结论

验证项 结果 说明
会话管理签约数据配置 OK 所有必选字段(S-NSSAI、DNN、PDU Session Types、SSC Modes、QoS Profile、Session-AMBR、Charging Characteristics)配置完整
SMF获取SM-Data OK Nudm_SDM_Get请求正确携带dnn、s-nssai、plmn-id查询参数
UDM返回数据完整性 OK 响应包含singleNssai、dnnConfigurations、chargingCharacteristics全部必选字段
签约数据一致性 OK UDM返回的SM-Data与UDM中配置的签约数据完全一致
DNN配置正确性 OK internet DNN配置包含完整的pduSessionTypes、sscModes、5gQosProfile、sessionAmbr
QoS参数正确性 OK 5QI=9(默认数据业务),ARP优先级=8,Session-AMBR=1G/2G

本测试用例完美通过!SMF通过Nudm_SDM_Get服务从UDM成功获取了完整的会话管理签约数据(SM-Data),UDM返回的数据结构与用户在UDM中配置的签约信息完全一致。返回数据涵盖了S-NSSAI配置、DNN配置(包括PDU会话类型、SSC模式、QoS配置文件、会话级AMBR)以及计费特性等全部必选字段,信令交互流程与3GPP TS 29.503规范完全吻合。

关键收获总结:

  1. SM-Data是SMF进行会话管理的核心数据源——它决定了用户能否建立PDU会话以及会话的参数配置;

  2. Nudm_SDM_Get通过查询参数实现精准过滤——SMF可以按DNN和S-NSSAI精确获取所需的签约配置;

  3. AM-Data与SM-Data各司其职——AMF关注接入权限和移动性策略,SMF关注会话参数和QoS配置,体现了5GC关注点分离的设计理念;

  4. dnnConfigurations是SM-Data中最复杂的数据结构——一个DNN配置包含会话类型、SSC模式、QoS、AMBR等多个子结构,运营商在配置时需确保各字段的逻辑一致性。



作者简介:爱卫生,通信教育老兵(18年教龄),出版《5G核心网原理与实践》等4本著作。在51学通信知识星球持续分享5GC/IMS/云原生核心网技术,包含200+小时视频课程和3000+篇技术精华帖。

学5G核心网、IMS,来51学通信就对了!公众号/知识星球:51学通信,微信:gprshome201101

← 返回 UDM 实践篇