在4G EPS中,SMS通过SGs接口(MME与MSC Server之间)传递,利用NAS信令承载短消息。5G核心网彻底重构了SMS架构——引入全新的SMSF(SMS Function)网元,通过N20/N21接口分别与AMF和UDM交互,实现SMS over NAS的原生支持。这一设计决非简单的网元替换,而是涉及到三路径选择、SMSF动态注册/去注册、NAS层协议栈嵌套等多层博弈。
本文聚焦TS 23.502 Section 4.13.3定义的SMS over NAS完整信令流程,逐层拆解SMSF注册激活、MO-SMS上行投递、MT-SMS下行推送三条关键信令链路,并结合TS 24.011的CP/RP层协议封装进行深入分析。
3GPP TS 23.501 Section 5.3.2a定义了5G系统中SMS传递的三种路径:
| 路径 | 描述 | 关键网元 | 适用场景 |
|---|---|---|---|
| SMS over NAS | 通过5G NAS信令承载,经SMSF中转 | AMF↔SMSF↔SMSC | 5G NR驻留,无需回落 |
| SMS over IP | 通过IMS SIP MESSAGE传递 | UE↔IMS AS↔SMSC | VoNR已注册IMS的场景 |
| SMS over SGs | 回落到EPS,经SGs接口传递 | AMF→MME→MSC | EPS Fallback场景 |
路径选择博弈的核心在于:AMF在Registration流程中根据UE的SMS支持指示和网络策略,决定激活哪条路径。当UE同时支持SMS over NAS和SMS over IP时,网络侧根据部署策略优先选择其中一条。
graph TB
subgraph "5G SMS三路径架构"
UE[UE] -->|NAS Transport| AMF[AMF]
AMF -->|N20: Nsmsf_SMSService| SMSF[SMSF]
SMSF -->|N21: Nudm_SDM| UDM[UDM]
SMSF -->|MAP/Diameter| SMSC[SMSC]
UE -->|SIP MESSAGE| P_CSCF[P-CSCF]
P_CSCF -->|IMS Core| IP_SM_GW[IP-SM-GW]
IP_SM_GW --> SMSC
AMF -->|N26| MME[MME]
MME -->|SGs| MSC[MSC Server]
MSC --> SMSC
end
style SMSF fill:#e1f5fe
style AMF fill:#fff3e0
style UDM fill:#e8f5e9
SMSF注册在以下两种场景中被触发:
5GS Registration Type指示支持SMS over NAS,AMF在Registration Accept后触发SMSF激活关键判定条件:UE在Registration Request的5GS Mobile Identity中携带的SMS Supported指示位为"SMS over NAS supported"。
sequenceDiagram
participant UE
participant RAN as (R)AN
participant AMF
participant SMSF
participant UDM
Note over UE,AMF: 阶段一:Registration Request(含SMS指示)
UE->>RAN: Registration Request<br/>5GS Registration Type=Initial<br/>SMS over NAS supported=1
RAN->>AMF: N2 Registration Request<br/>+ NAS Registration Request
Note over AMF: AMF检查UE SMS能力<br/>AMF选择SMSF
AMF->>AMF: 本地策略/路由选择<br/>确定SMSF实例
Note over AMF,UDM: 阶段二:SMSF激活与UDM注册
AMF->>SMSF: Nsmsf_SMSService_Activate<br/>{SUPI, Access Type, GUAMI}
SMSF->>UDM: Nudm_SDM_Get<br/>{SUPI, Subscription Data Type=SMS}
UDM-->>SMSF: SMS Subscription Data<br/>{SMS-Subscribed, SMS-Teleservice-List}
SMSF->>UDM: Nudm_UECM_Registration<br/>{SUPI, SMSF Identity, Access Type}
UDM-->>SMSF: 201 Created<br/>UDM存储SMSF地址
SMSF-->>AMF: 201 Created<br/>SMSF激活确认
Note over AMF,UE: 阶段三:Registration Accept
AMF->>RAN: N2 Registration Accept<br/>+ NAS Registration Accept<br/>SMS Services Supported=1
RAN->>UE: Registration Accept<br/>SMS Services Supported=1
| IE名称 | 所在消息 | 长度 | 说明 |
|---|---|---|---|
SMS over NAS supported |
Registration Request | 1 bit | UE能力指示,值为1表示支持NAS短信 |
5GS Registration type |
Registration Request | 4 bits | 初始注册/移动性更新/周期性更新/紧急注册 |
Access Type |
Nsmsf_Activate | - | 3GPP access或Non-3GPP access |
GUAMI |
Nsmsf_Activate | - | AMF标识,用于SMSF关联AMF |
SMS Subscription Data |
Nudm_SDM_Get response | - | 包含短信签约数据、最大提交频率限制 |
SMSF Identity |
Nudm_UECM_Registration | - | SMSF的NF Instance ID,UDM存储用于MT-SMS路由 |
SMS Services Supported |
Registration Accept | 1 bit | 网络侧确认SMS over NAS已激活 |
设计意图:AMF在Registration流程中异步触发SMSF激活,不阻塞Registration Accept的发送。这是一种控制面解耦设计——Registration和SMSF注册可以并行执行,减少时延。但如果SMSF激活失败,UE在后续发送MO-SMS时会收到CP-ERROR。
TS 23.502 Section 4.13.3.4定义了SMSF选择规则:
Nnrf_NFDiscovery查询可用SMSF实例graph LR
subgraph "SMSF选择决策树"
A[AMF收到Registration<br/>SMS supported=1] --> B{本地配置<br/>SMSF列表?}
B -->|有| C[从列表选择SMSF]
B -->|无| D{NRF可用?}
D -->|是| E[Nnrf_NFDiscovery<br/>查询SMSF实例]
D -->|否| F[默认SMSF地址]
E --> G{漫游场景?}
G -->|VPLMN| H[选VPLMN SMSF]
G -->|HPLMN| I[选HPLMN SMSF]
C --> J[Nsmsf_Activate]
F --> J
H --> J
I --> J
end
style A fill:#e3f2fd
style J fill:#c8e6c9
5G SMS over NAS的协议栈采用三层嵌套结构,这是理解整个信令链路的关键:
┌─────────────────────────────────────┐
│ NAS Transport Message │ ← TS 24.501 (UL NAS Transport)
│ ┌─────────────────────────────┐ │
│ │ CP-DATA / CP-ACK │ │ ← TS 24.011 (CP层: 连接控制)
│ │ ┌─────────────────────┐ │ │
│ │ │ RP-DATA │ │ │ ← TS 24.011 (RP层: 中继协议)
│ │ │ ┌─────────────┐ │ │ │
│ │ │ │ TPDU │ │ │ │ ← TS 23.040 (SMS用户数据)
│ │ │ │ (SMS-SUBMIT)│ │ │ │
│ │ │ └─────────────┘ │ │ │
│ │ └─────────────────────┘ │ │
│ └─────────────────────────────┘ │
└─────────────────────────────────────┘
| 层次 | 协议 | TS编号 | 功能 |
|---|---|---|---|
| 承载层 | 5G NAS Transport | TS 24.501 | 提供NAS信令通道,Payload Type=SMS |
| 连接控制层 | CP (Connectionless Protocol) | TS 24.011 | CP-DATA/CP-ACK/CP-ERROR,控制SMS传输确认 |
| 中继层 | RP (Relay Protocol) | TS 24.011 | RP-DATA/RP-ACK/RP-ERROR,UE到SMSC的中继 |
| 应用层 | TPDU | TS 23.040 | SMS-SUBMIT/SMS-DELIVER,实际短信内容 |
sequenceDiagram
participant UE
participant RAN as (R)AN
participant AMF
participant SMSF
participant UDM
participant SMSC
Note over UE,SMSC: MO-SMS主叫发送流程
UE->>RAN: UL NAS Transport<br/>Payload Container Type=SMS<br/>[CP-DATA[RP-DATA(SMS-SUBMIT)]]
RAN->>AMF: N2 Uplink NAS Transport<br/>+ NAS消息
Note over AMF: AMF解析NAS Transport<br/>识别SMS Payload<br/>根据SUPI查找已激活SMSF
AMF->>SMSF: Nsmsf_SMSService_UplinkSMS<br/>{SUPI, SMS Payload, Access Type}
Note over SMSF: SMSF解析CP/RP/TPDU<br/>校验用户短信签约
SMSF->>UDM: Nudm_SDM_Get<br/>(可选,若未缓存签约数据)
UDM-->>SMSF: SMS Subscription Data
SMSF->>SMSC: MAP_FORWARD_SHORT_MSG<br/>或 Diameter S6c
Note over SMSF,SMSC: RP-DATA转发至SMSC<br/>目标地址从RP-DATA中提取
SMSC-->>SMSF: MAP_FORWARD_SHORT_MSG_ACK<br/>或 Diameter S6c ACK
Note over SMSC: SMSC向目标地址<br/>投递短信(异步)
SMSF-->>AMF: Nsmsf_SMSService_UplinkSMS Response<br/>[CP-DATA[RP-ACK(SMS-SUBMIT-REPORT)]]
AMF->>RAN: N2 Downlink NAS Transport
RAN->>UE: DL NAS Transport<br/>[CP-DATA[RP-ACK(SMS-SUBMIT-REPORT)]]
UE->>RAN: UL NAS Transport<br/>[CP-ACK]
RAN->>AMF: N2 Uplink NAS Transport
AMF->>SMSF: Nsmsf_SMSService_UplinkSMS<br/>[CP-ACK]
Note over UE,SMSF: CP层确认闭环
UL NAS Transport(TS 24.501 Section 8.2.8):
| IE | 类型 | 说明 |
|---|---|---|
Payload Container Type |
半字节 | 值为0x01表示SMS |
Payload Container |
变长 | 包含完整的CP-DATA消息 |
Additional Information |
可选 | SMS相关附加信息 |
Request Type |
可选 | 初始请求/后续请求 |
CP-DATA(TS 24.011 Section 7.2.1):
| IE | 长度 | 说明 |
|---|---|---|
Protocol Discriminator |
4 bits | 值为0x09(SMS相关消息) |
Transaction Identifier |
4 bits | CP层事务标识,匹配CP-ACK |
Message Type |
1 byte | CP-DATA=0x01 |
CP User Data |
变长 | 包含RP-DATA |
RP-DATA(TS 24.011 Section 7.3.1):
| IE | 长度 | 说明 |
|---|---|---|
Message Type |
1 byte | RP-DATA(MS→Network)=0x00 |
Message Reference |
1 byte | RP层消息引用号 |
RP-Originator Address |
变长 | 通常为空(网络从NAS上下文获取) |
RP-Destination Address |
变长 | 目标SMSC地址 |
RP-User Data |
变长 | 包含SMS-SUBMIT TPDU |
当UE处于CM-IDLE状态发送MO-SMS时,信令链路增加Service Request前序流程:
这一设计体现了5G的按需连接理念——SMS不需要常驻信令连接,空闲态也能快速触发。
sequenceDiagram
participant SMSC
participant GMSC as SMS-GMSC
participant UDM
participant SMSF
participant AMF
participant RAN as (R)AN
participant UE
Note over SMSC,UE: MT-SMS被叫接收流程
SMSC->>GMSC: 短信投递请求<br/>(含目标MSISDN)
GMSC->>UDM: Nudm_UECM_Get<br/>{MSISDN,查询SMSF地址}
UDM-->>GMSC: SMSF Identity + PLMN ID
GMSC->>SMSF: 短信前转请求<br/>(MAP/Diameter)
Note over SMSF: SMSF收到MT-SMS<br/>查找UE关联的AMF
alt UE在CM-CONNECTED状态
SMSF->>AMF: Namf_Communication<br/>_N1N2MessageTransfer<br/>{N1 SM Container=SMS}
AMF->>RAN: N2 Downlink NAS Transport<br/>+ DL NAS Transport[CP-DATA[RP-DATA(SMS-DELIVER)]]
RAN->>UE: DL NAS Transport<br/>[CP-DATA[RP-DATA(SMS-DELIVER)]]
else UE在CM-IDLE状态
SMSF->>AMF: Namf_Communication<br/>_N1N2MessageTransfer<br/>{N1 SM Container=SMS}
Note over AMF: AMF缓存SMS<br/>触发寻呼
AMF->>RAN: N1N2 Transfer Failure<br/>触发Paging
RAN->>UE: Paging<br/>(SMS指示)
UE->>RAN: Service Request
RAN->>AMF: N2 Service Request
AMF->>RAN: N2 Downlink NAS Transport<br/>+ DL NAS Transport[CP-DATA[RP-DATA(SMS-DELIVER)]]
RAN->>UE: DL NAS Transport<br/>[CP-DATA[RP-DATA(SMS-DELIVER)]]
end
UE->>RAN: UL NAS Transport<br/>[CP-DATA[RP-ACK(SMS-DELIVER-REPORT)]]
RAN->>AMF: N2 Uplink NAS Transport
AMF->>SMSF: Nsmsf_SMSService_UplinkSMS<br/>[CP-DATA[RP-ACK]]
SMSF->>GMSC: 短信投递确认
GMSC->>SMSC: 投递成功通知
UE->>RAN: UL NAS Transport<br/>[CP-ACK]
RAN->>AMF: N2 Uplink NAS Transport
AMF->>SMSF: Nsmsf_SMSService_UplinkSMS<br/>[CP-ACK]
MT-SMS的核心难点在于SMSC如何找到目标UE。路由解析链路如下:
MSISDN → SMS-GMSC查询UDM → 获取SMSF Identity → SMSF查询AMF → AMF寻呼/推送UE
与4G的对比:
| 维度 | 4G SGs SMS | 5G SMS over NAS |
|---|---|---|
| 路由锚点 | HSS→MME | UDM→SMSF→AMF |
| 中间网元 | MSC Server | SMSF |
| NAS承载 | EPS NAS | 5GS NAS Transport |
| 漫游支持 | 通过SGs漫游 | 通过N20/Nsmsf漫游 |
| 注册粒度 | 附着级别 | SMSF单独注册 |
| 路径数 | 1条(SGs) | 3条(NAS/IP/SGs) |
设计意图:5G将SMS从CS域概念中彻底解耦。SMSF作为独立NF,可以独立扩缩容、独立部署。相比4G中MSC承担SMS中继,5G的SMSF是轻量级的纯控制面NF,不承载用户面流量。
SMSF去注册在以下场景触发:
sequenceDiagram
participant AMF
participant SMSF
participant UDM
Note over AMF,UDM: 场景:AMF触发去注册
AMF->>SMSF: Nsmsf_SMSService_Deactivate<br/>{SUPI, Access Type}
SMSF->>UDM: Nudm_UECM_Deregistration<br/>{SUPI, SMSF Identity}
UDM-->>SMSF: 204 No Content<br/>UDM删除SMSF注册记录
SMSF->>SMSF: 删除UE SMS上下文<br/>释放资源
SMSF-->>AMF: 204 No Content<br/>去激活确认
注意:如果UE同时通过3GPP和Non-3GPP接入注册了SMSF,AMF需要针对每个Access Type分别触发Deactivate。只有当两个Access Type都被去激活后,SMSF才向UDM发起Deregistration。
UE和SMSF在SMS传递过程中维护CP层和RP层两个独立的状态机:
stateDiagram-v2
[*] --> CP_IDLE: SMS传输开始
CP_IDLE --> CP_MM_PENDING: 发送CP-DATA
CP_MM_PENDING --> CP_WAIT_FOR_ACK: 等待CP-ACK
CP_WAIT_FOR_ACK --> CP_IDLE: 收到CP-ACK<br/>(正常完成)
CP_WAIT_FOR_ACK --> CP_WAIT_RETRANS: CP-ACK超时
CP_WAIT_RETRANS --> CP_WAIT_FOR_ACK: 重传CP-DATA
CP_WAIT_RETRANS --> CP_IDLE: 重传次数耗尽<br/>(CP-ERROR)
CP_MM_PENDING --> CP_IDLE: CP-ERROR<br/>(异常终止)
state CP_IDLE {
[*] --> RP_IDLE
RP_IDLE --> RP_WAIT_FOR_ACK: 发送RP-DATA
RP_WAIT_FOR_ACK --> RP_IDLE: 收到RP-ACK<br/>(成功)
RP_WAIT_FOR_ACK --> RP_IDLE: 收到RP-ERROR<br/>(失败)
}
| 定时器 | 层次 | 取值范围 | 说明 |
|---|---|---|---|
| TC1 | CP层 | 10-30秒 | CP-DATA重传定时器 |
| TR1 | CP层 | 30-60秒 | CP层整体事务超时 |
| TR2M | RP层 | 12-60秒 | MO RP-DATA等待RP-ACK超时 |
| TR2AM | RP层 | 12-60秒 | MT RP-DATA等待RP-ACK超时 |
| 接口 | 服务操作 | 方向 | TS定义 | 用途 |
|---|---|---|---|---|
| N20 | Nsmsf_SMSService_Activate | AMF→SMSF | TS 29.540 | 激活SMS服务 |
| N20 | Nsmsf_SMSService_Deactivate | AMF→SMSF | TS 29.540 | 去激活SMS服务 |
| N20 | Nsmsf_SMSService_UplinkSMS | AMF→SMSF | TS 29.540 | 上行SMS投递 |
| N20 | Namf_Communication_N1N2Transfer | SMSF→AMF | TS 29.518 | 下行SMS推送 |
| N21 | Nudm_SDM_Get | SMSF→UDM | TS 29.503 | 获取SMS签约数据 |
| N21 | Nudm_UECM_Registration | SMSF→UDM | TS 29.503 | SMSF注册到UDM |
| N21 | Nudm_UECM_Deregistration | SMSF→UDM | TS 29.503 | SMSF从UDM去注册 |
| N21 | Nudm_SDM_Notification | UDM→SMSF | TS 29.503 | 签约变更通知 |
在5G核心网抓包中识别SMS over NAS流程的关键特征:
| 检查点 | 抓包位置 | 识别方法 |
|---|---|---|
| NAS Transport SMS | N2接口(AMF↔RAN) | NAS消息类型=0x67(UL)或0x68(DL),Payload Container Type=0x01 |
| SMSF激活 | N20接口(AMF↔SMSF) | HTTP POST /nsmsf-sms/v1/{smsfId}/sms-activate |
| MO-SMS上行 | N20接口 | HTTP POST /nsmsf-sms/v1/{smsfId}/uplink,Body含SMS Payload |
| MT-SMS下行 | N20接口 | HTTP POST /namf-comm/v1/UEContext/{ueCtxId}/n1-n2-messages |
| SMS签约获取 | N21接口 | HTTP GET /nudm-sdm/v2/{supi}/sm-data |
| 故障现象 | 可能原因 | 排查思路 |
|---|---|---|
| UE发送SMS后无响应 | SMSF激活失败 | 检查AMF日志:Nsmsf_Activate返回码;检查UDM SMS签约数据 |
| MT-SMS无法送达 | UDM未存储SMSF Identity | 检查SMSF的Nudm_UECM_Registration是否成功 |
| CP-ERROR反复出现 | NAS安全上下文异常 | 检查5G AKA完成后SMS NAS消息是否受安全保护 |
| MO-SMS投递失败 | RP-Destination Address错误 | 解析RP-DATA中的SMSC地址字段 |
| SMSF选择失败 | NRF无可用SMSF实例 | 检查NRF中SMSF Profile注册状态 |
| 漫游场景SMS不通 | VPLMN未部署SMSF | 检查漫游协议是否支持SMS over NAS |
| ## 十、5G SMS over NAS vs SMS over IP对比 |
| 维度 | SMS over NAS | SMS over IP |
|---|---|---|
| 协议栈 | NAS→CP→RP→TPDU | SIP MESSAGE→MSRP→TPDU |
| 网元依赖 | SMSF+AMF | IMS Core (P-CSCF/S-CSCF/IP-SM-GW) |
| IMS要求 | 不需要IMS注册 | 需要IMS已注册 |
| CP开销 | 低(无IMS SIP信令开销) | 高(需IMS Registration+SIP事务) |
| 延迟 | 较低(2-3个NAS往返) | 较高(SIP事务+MSRP传输) |
| 漫游支持 | N20漫游 | IMS漫游 |
| 适用终端 | 所有5G终端 | 需IMS SMS客户端 |
| 紧急短信 | 支持 | 不支持 |
| 3GPP定义 | TS 23.502 §4.13.3 | TS 23.502 §4.13.5 |
Q1: SMSF注册和AMF Registration是串行还是并行? A: 并行设计。AMF在收到Registration Request后,先返回Registration Accept(含SMS Services Supported指示),同时异步触发Nsmsf_SMSService_Activate。这降低了Registration整体时延。但如果SMSF激活在UE发送第一条SMS前未完成,AMF会返回错误。
Q2: UE如何知道SMS over NAS是否已激活?
A: Registration Accept消息中的SMS Services Supported指示。如果该位为1,表示网络已为该UE激活了SMS over NAS。如果为0,UE不应通过NAS发送SMS。
Q3: CP-ACK和RP-ACK的区别是什么? A: CP-ACK确认CP-DATA在UE和SMSF之间的可靠传输(TS 24.011连接控制层),RP-ACK确认RP-DATA在UE和SMSC之间的端到端投递(TS 24.011中继层)。CP层是逐跳确认,RP层是端到端确认。一条MO-SMS成功需要CP-ACK和RP-ACK双重确认。
Q4: 为什么SMSF需要单独注册到UDM,而不是AMF代劳? A: MT-SMS路由需要SMSF Identity。当SMSC投递MT-SMS时,SMS-GMSC查询UDM获取SMSF地址而非AMF地址。如果AMF代劳,UDM中存储的将是AMF地址,MT-SMS路由会绕过SMSF直接到达AMF,AMF又需要查询SMSF,增加不必要的信令跳数。
Q5: 5G SMS over NAS是否支持短信级联(Concatenated SMS)? A: 支持。级联短信在TPDU层通过UDH(User Data Header)的级联IE处理(TS 23.040 Section 9.2.24),每条级联分段作为独立的RP-DATA/CP-DATA/NAS Transport消息传输。SMSF不感知级联,仅透传TPDU。接收端UE在TPDU层重组。
本文由「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 等场景全覆盖。
