在传统的5G NR网络中,一个处于RRC_INACTIVE状态的终端(UE)若要发送哪怕一个几十字节的业务数据包,都必须经历完整的连接恢复流程:上行数据到达缓冲区 → 触发RRC Resume Request → gNB向"上一个服务gNB"检索UE上下文(Retrieve UE Context)→ 恢复SRB1与若干DRB → 用户面数据传输 → 业务结束 → 网络下发RRC Release(带Suspend Config)将UE重新挂起回RRC_INACTIVE。
对于手机等"人通信"终端,这个开销相对于其传输的MB级、GB级业务流量可以忽略。但对于物联网(IoT)场景——温度传感器、智能水表、资产追踪器、可穿戴设备——情况完全不同:它们频繁地(周期性或偶发性)发送极小的数据包。此时控制面信令的字节数往往数十倍于实际payload。3GPP在Rel-17的工作组讨论中明确指出:"As the payload data from an IoT device can be relatively small compared to the control signalling required to send it over the radio interface, making a connection for the small data transmission becomes a concern for both the network and the device"。
SDT(Small Data Transmission,小数据传输)正是为此而生:允许UE在不离开RRC_INACTIVE状态的前提下,并行地发送/接收RRC信令与小数据payload。其本质是把"RRC Resume Request请求"与"用户面首包数据"捆绑在同一次传输机会中一并发送,从而省去"先恢复连接、再传数据"的多轮往返。
SDT在Rel-17(RP-210834等Work Item,由ZTE等主导)正式引入,Rel-18进一步增强了MT-SDT(网络侧触发的下行小数据)、Multiple Data Grants、与RedCap的结合等。本文聚焦TS 38.300/38.331/38.321/38.213中所定义的核心机制与完整信令链。
SDT并非无脑触发。UE在RRC_INACTIVE状态下,上行数据到达后,必须依次通过四个判定条件(定义于TS 38.331的sdt-Config与TS 38.321的MAC判定逻辑),任何一道不过,则回退到传统的RRC Resume或保持空闲:
ul-DataPDUSize(或称data volume threshold)。一旦超限,说明这次不是"小数据",直接走正常Resume。rsrp-ThresholdSSB-SUTC,以保证上行传输质量足够好,避免在边缘覆盖下发起注定失败的SDT。timeAlignmentTimer未超时。这是CG-SDT的硬性前提——没有有效的TA,预配置授权资源就发不出正确同步的上行。sdt-Config中的sdt-allowed逐个配置是否允许做SDT。并非所有业务都适合SDT(例如对时延/可靠性要求极高的URLLC流通常排除)。这四道闸门的判定流程如下:
flowchart TD
A[RRC_INACTIVE状态, UL数据到达] --> B{所有SDT-enabled RB<br/>待传数据量 < ul-DataPDUSize?}
B -- 否 --> Z[回退: 传统RRC Resume流程]
B -- 是 --> C{测量RSRP ><br/> rsrp-ThresholdSSB?}
C -- 否 --> Z
C -- 是 --> D{TA有效?<br/> timeAlignmentTimer未超时}
D -- 否 --> E{CG-SDT配置且有效?}
D -- 是 --> E
E -- 是, 且CG-SDT配置存在 --> F[选择CG-SDT]
E -- 否 --> G{RA-SDT配置且有效?}
G -- 是 --> H[选择RA-SDT<br/>4步或2步]
G -- 否 --> Z
F --> I[发起SDT传输]
H --> I
I --> J{gNB判断是否可继续SDT?}
J -- 是 --> K[RRC Release带Suspend<br/>回RRC_INACTIVE]
J -- 否 --> Z
设计意图非常清晰:SDT是"锦上添花"而非"雪中送炭"。它只在终端覆盖好、数据小、TA准、网络允许的"理想窗口"内生效;任何一项不满足,都安全地回退到久经考验的传统流程,保证可靠性不被牺牲。
RA-SDT复用4步或2步随机接入过程,但关键差异在于前导码资源池的隔离。gNB在系统消息(SIB1)中通过prach-ConfigIndex、msgA-ConfigCommon下的smallData-r17指示,以及featureCombinationPreambleList,为SDT终端划分出专用的前导码子集(dedicated SDT preambles)。3GPP官方说明明确:"the RA radio resources for SDT and non SDT devices are kept separate; that is, these device types do not interfere with each other in random access"。
这样设计的目的有二:其一,gNB在MSG1/MSGA阶段就能通过前导码所属子集提前识别这是一个SDT接入,从而预判后续要按SDT流程处理;其二,避免海量IoT设备的SDT接入与普通终端的初始接入抢占同一前导码池,造成前导码冲突风暴。
sequenceDiagram
participant UE as UE (RRC_INACTIVE)
participant gNB as Serving gNB
participant lgNB as Last Serving gNB
UE->>gNB: MSG1: SDT专用Preamble (PRACH)
Note over UE,gNB: gNB识别为SDT接入
gNB->>UE: MSG2: RAR (TC-RNTI + UL Grant)
UE->>gNB: MSG3: RRCResumeRequest + UL SDT数据 (PUSCH)
Note right of UE: 39-bit I-RNTI, resumeMAC-I, resumeCause
gNB->>lgNB: XnAP: Retrieve UE Context Request (I-RNTI)
lgNB->>gNB: XnAP: Retrieve UE Context Response (DRB/SRB1配置, 安全上下文)
gNB->>UE: MSG4: 竞争解决 (Contention Resolution Identity)
Note over UE: TA已确认, SDT会话建立
gNB->>UE: (可选) DL SDT数据
gNB->>UE: RRC Release (Suspend Config)
Note over UE: 回到RRC_INACTIVE
4步RA-SDT的精髓在MSG3:它不仅携带RRC层的RRCResumeRequest消息,还同时捎带(piggyback)了DRB上的上行小数据。这与传统Resume"MSG3只发信令、等连接恢复后才发数据"形成鲜明对比。3GPP描述道:"The IoT device initiates the SDT procedure by transmitting an RRC request message and payload data in parallel"。
MSG4完成竞争解决后,TA被网络确认有效,SDT会话正式建立。此后可有零或多轮上下行小数据交互,最终以一条带Suspend Config的RRC Release收尾,UE重回RRC_INACTIVE——全程未进入RRC_CONNECTED。
2步RA-SDT更进一步:在MSGA(即MSG1+MSG3合并)中,UE一次性发出preamble + PUSCH payload(含RRCResumeRequest + UL SDT数据)。MSGB(MSG2+MSG4合并)回送成功指示与竞争解决。当覆盖良好、冲突概率低时,2步RA-SDT能比4步再省去一个往返,进一步压低时延与功耗。是否启用2步由gNB在SIB1的msgA-ConfigCommon中配置(含smallData-r17标记)。
CG-SDT是SDT的"无冲突、零信令"版本。当UE因业务周期性而进入RRC_INACTIVE时,网络在其RRC Release(Suspend)消息中预先配置一份Configured Grant Type 1的上行资源(周期、时频位置、MCS等全部预定义)。后续UE只要有小数据,无需任何随机接入,直接在该预配置PUSCH资源上发送RRCResumeRequest + UL数据。
sequenceDiagram
participant UE as UE (RRC_INACTIVE, 已配置CG-SDT)
participant gNB as Serving gNB
participant lgNB as Last Serving gNB
Note over UE: UL数据到达, 满足SDT四闸门<br/>且CG-SDT资源有效
UE->>gNB: CG-PUSCH: RRCResumeRequest + UL SDT数据 (无RA)
Note right of UE: 在预配置授权资源上直发
gNB->>lgNB: XnAP: Retrieve UE Context Request
lgNB->>gNB: XnAP: Retrieve UE Context Response
Note over gNB: 校验resumeMAC-I, 恢复承载
gNB->>UE: (可选) DL SDT数据 + RRC Release (Suspend)
Note over UE: 回到RRC_INACTIVE, 等待下一CG周期
CG-SDT的三个突出优势:
但其代价是严格依赖TA有效性。CG-SDT不发起RA,网络无法借机校准TA,因此一旦终端移动导致TA漂移,CG-SDT资源即失效,UE须回退到RA-SDT或正常Resume。这也是为何CG-SDT更适合相对静止的IoT终端(如固定安装的水表),而RA-SDT更适合移动性较高的可穿戴设备。
值得注意的是UE的SDT类型选择逻辑(TS 38.331):若所选上行载波上CG-SDT资源已配置且有效,优先选CG-SDT;否则若RA-SDT配置有效则选RA-SDT;若都不满足,则走非SDT的普通Resume。这一优先级确保"在能省的地方尽量省"。
RRCResumeRequest是SDT一切流程的"敲门砖",其结构定义于TS 38.331 Section 6.2.2。与普通RRCResumeRequest不同,SDT场景下它必须与DRB数据复用,且其完整性保护校验值resumeMAC-I承载着至关重要的安全语义。
classDiagram
class RRCResumeRequest {
+rrcResumeRequest_r8: 继承自R8
+resumeIdentity: 39-bit I-RNTI
+resumeMAC-I: 16-bit 完整性校验短MAC
+resumeCause: 恢复原因(traffic/emergency等)
}
class sdt_Config_r17 {
+sdt-Bearer: SRB1/DRB指示
+ul-DataPDUSize: UL数据量阈值(bytes)
+rsrp-ThresholdSSB: RSRP门限
+cg-SDT: CG-SDT资源配置
+ra-SDT: RA-SDT指示
}
class cg_SDT_Config {
+cg-MinTimer: CG-SDT最小周期计时器
+cg-SDT-TimeAlignmentTimer: 专用TA定时器
+configuredGrantConfig: 时频资源配置
}
RRCResumeRequest --> sdt_Config_r17 : 配套
sdt_Config_r17 --> cg_SDT_Config : 包含
| IE参数 | 所在TS/章节 | 含义与作用 | 典型取值/说明 |
|---|---|---|---|
resumeIdentity |
TS 38.331 §6.2.2 | 39-bit的I-RNTI,gNB据此检索UE上下文 | 挂起时由gNB分配,RNA内唯一 |
resumeMAC-I |
TS 38.331 §6.2.2 | 16-bit短MAC,对挂起安全上下文的完整性校验 | 用keNB*及存储上下文推演,防重放/篡改 |
resumeCause |
TS 38.331 §6.2.2 | 恢复原因值(traffic/emergency/...) | 网络据此决定QoS处理 |
ul-DataPDUSize |
TS 38.331 §6.3.x (sdt-Config) | UL数据量上限,超此值不做SDT | 例如2984字节,与RLC PDU相关 |
rsrp-ThresholdSSB-SUTC |
TS 38.331 §6.3.x | 触发SDT的最低RSRP门限 | 网络依覆盖规划配置 |
sdt-allowed |
TS 38.331 (DRB配置) | 逐DRB是否允许SDT | 5QI级别配置 |
cg-SDT-TimeAlignmentTimer |
TS 38.331 (cg-SDT-Config) | CG-SDT专用TA定时器 | 短于普通TA timer,更敏感 |
smallData-r17 |
TS 38.331 (SIB1) | 系统消息中RA-SDT/2步SDT能力指示 | 广播告知终端本小区支持SDT |
resumeMAC-I的安全性尤其值得强调:它让gNB即便尚未检索到完整安全上下文,也能在MSG3/MSGA/CG-PUSCH阶段就初步验证终端身份合法性,防止伪造的SDT请求对网络形成信令风暴攻击。这是SDT在"省信令"与"保安全"之间取得平衡的关键一笔。
无论是RA-SDT还是CG-SDT,gNB在收到携带I-RNTI的首包后,第一件要事都是向"上一个服务gNB"检索UE上下文。因为当前gNB本地并没有这个INACTIVE态UE的任何DRB配置、安全密钥或PDCP状态——这些都被缓存在UE进入INACTIVE前的那个gNB上。
这一步通过Xn接口的Retrieve UE Context Request/Response消息完成。当前gNB用I-RNTI寻址,上个gNB回送完整的承载配置(含PDCP suspend状态、ROHC参数)、安全上下文(keNB*及下一跳参数)、以及UE能力等。拿到上下文后,当前gNB才能恢复SRB1、重新激活SDT-allowed的DRB,并校验resumeMAC-I。
这一机制意味着SDT天然支持RNA(RAN Notification Area)内的移动性:UE在RNA内移动到新的gNB覆盖下,仍能通过SDT + Retrieve UE Context无缝收发小数据,无需回到核心网做完整注册或切换。这与SSC、AMF重分配等核心网流程是互补的两层移动性管理。
| 维度 | 传统RRC Resume | RA-SDT | CG-SDT |
|---|---|---|---|
| 触发前是否需要RA | 需要 | 需要(SDT专用前导码) | 不需要 |
| 首包数据携带位置 | 连接恢复后单独传 | MSG3/MSGA中捎带 | CG-PUSCH中直发 |
| 冲突风险 | 高(公共前导码) | 中(SDT专用子集隔离) | 无(专用资源) |
| 对TA的依赖 | RA过程可校准TA | RA过程可校准TA | 强依赖(须预有效) |
| 时延 | 最高 | 中等 | 最低 |
| 信令开销 | 最大 | 较小 | 最小 |
| 适用终端 | 全部 | 移动可穿戴/手机IoT | 固定/准静止传感器 |
| 最终态 | 回RRC_INACTIVE | 回RRC_INACTIVE | 回RRC_INACTIVE |
| 引入版本 | Rel-15 | Rel-17 | Rel-17 |
可以看到,三者构成一条"时延/信令递减、但对终端条件要求递增"的梯度谱系。网络的聪明之处在于:用Suspend Config中的sdt-Config + 系统消息广播,让终端自动在三者间择优,而非一刀切。
stateDiagram-v2
[*] --> RRC_IDLE: 开机
RRC_IDLE --> RRC_CONNECTED: 初始接入/RRC Setup
RRC_CONNECTED --> RRC_INACTIVE: RRC Release(Suspend)
RRC_INACTIVE --> RRC_CONNECTED: 传统Resume / SDT回退
RRC_INACTIVE --> SDT_Session: 满足四闸门\nRA-SDT或CG-SDT
SDT_Session --> RRC_INACTIVE: RRC Release(Suspend)
SDT_Session --> RRC_CONNECTED: gNB判定需完整连接\n(fallback to Resume)
RRC_INACTIVE --> RRC_IDLE: RNA超时/更新失败
RRC_CONNECTED --> RRC_IDLE: RRC Release(无Suspend)
note right of SDT_Session
SDT会话: UE名义上仍处RRC_INACTIVE
但SRB1/部分DRB被临时恢复
全程不进入完整RRC_CONNECTED
end note
SDT会话(SDT_Session)本质上是一个"伪连接"状态:UE在协议栈层面仍被记为RRC_INACTIVE,但SRB1与若干DRB被临时唤醒以完成收发。一旦会话结束,立即Suspend回INACTIVE。这种"借而不占"的设计,正是SDT省电省信令的根本。
在空口Log(如QXDM、MiHo、amarisoft trace)与Xn接口(Wireshark + ngap/xnap dissector)中,识别一个SDT流程的关键观察点:
smallData-r17、featureCombinationPreambleList含smallData、msgA-ConfigCommon带SDT标记。无则本小区不支持SDT,终端只能走正常Resume。prach-FeatureCombination指示)。rrcResumeRequest(RRC层,可由rrcResumeRequest-r8/rrcResumeRequest1-r8等message type识别)和 DRB的RLC PDU。这是SDT最硬核的识别标志。Retrieve UE Context Request(携带I-RNTI而非UE NGAP ID),这是SDT触发了gNB间上下文检索。RRC Release(带suspendConfig)结束,而非完整的RRCResume + 后续RRC Release。| 故障现象 | 可能根因 | 排查方向 |
|---|---|---|
| 终端始终走正常Resume,从不触发SDT | ul-DataPDUSize配置过小;或DRB未配sdt-allowed | 检查Suspend Config中sdt-Config;核查DRB 5QI |
| CG-SDT永远发不出,回退到RA-SDT | TA失效(cg-SDT-TimeAlignmentTimer超时);终端移动 | 查cg-SDT-TimeAlignmentTimer;确认终端静止性 |
| RA-SDT后gNB无响应或上下文检索失败 | I-RNTI错误;上个gNB已删除上下文(超时);resumeMAC-I校验失败 | 查Xn Retrieve UE Context Response错误码;核对I-RNTI与短MAC |
| MSG3 CRC错、2步MSGA解调失败 | 时域偏移配置不当 | 调整msgA-PUSCH-TimeDomainOffset(amarisoft实测建议) |
| SDT频繁回退到完整Resume | 数据量持续超阈值;或RSRP处于门限临界抖动 | 评估业务包大小与门限匹配度;调整RSRP迟滞 |
| ## 十、Rel-18的演进方向 |
Rel-18在SDT基础上做了若干增强,标准研究人员应关注:
这些增强共同把SDT从"上行单次小包"推向"上下行双向、多包、多场景"的完整小数据通信框架。
SDT的精妙之处不在于某一项技术突破,而在于对"控制面开销 vs 用户面payload"这一比例失衡问题的系统性重构:
它体现的是3GPP面向IoT时代的一种成熟范式:不是发明全新的物联网专用空口,而是在现有NR框架内,通过精细的资源划分、信令合并与状态机扩展,把"重连接"降维成"轻传输"。对协议开发工程师而言,掌握SDT意味着掌握NR在RRC_INACTIVE态下MAC/RLC/RRC三层如何"临时性、受限地"协同工作;对标准研究人员而言,SDT是观察3GPP如何在兼容性与创新性之间平衡的绝佳样本。
Q1: SDT和EDT(LTE的Early Data Transmission)是什么关系? A: EDT是LTE在R13引入的类似机制(在MSG3携带数据),SDT是NR在Rel-17的对应演进。SDT更全面:不仅支持RA-SDT(对应EDT的思路),还新增了CG-SDT(LTE无对应),并扩展到上下行(MT-SDT)。可理解为EDT在5G NR上的"超集"。
Q2: SDT会话期间,UE到底算RRC_INACTIVE还是RRC_CONNECTED? A: 严格意义上UE的RRC状态仍为RRC_INACTIVE。3GPP官方明确"the UE stays in the RRC inactive state during the whole process"。但底层SRB1和被授权的DRB被临时恢复可用。这是"伪连接",会话结束立即Suspend,不留下完整连接状态。
Q3: 为什么CG-SDT比RA-SDT省信令但仍要有RA-SDT? A: 因为CG-SDT强依赖有效的TA,而TA会随终端移动而漂移、定时器超时即失效。移动性较高的终端(可穿戴、随车设备)难以维持有效TA,CG-SDT用不了;此时RA-SDT可通过RA过程重新校准TA,作为兜底。两者是互补而非替代。
Q4: 如果SDT过程中数据量突然变大怎么办? A: gNB有权判定本次不适合继续SDT。一旦发现待传数据量、下行数据量、或RSRP变化超出SDT适用范围,gNB会回退(fallback)到完整的RRC Resume,将UE转入RRC_CONNECTED用传统方式处理剩余数据。这一回退由gNB在Retrieve UE Context后基于本地策略决策,保证大数据业务不受SDT限制拖累。
Q5: SDT在切片和QoS层面如何处理?
A: SDT在每个DRB粒度通过sdt-allowed配置,因此运营商可以精细地决定哪些切片/QoS流(如mMTC切片的低优先级传感器流)允许SDT,哪些(如URLLC切片的高可靠流)禁用。这使得SDT能与网络切片隔离策略无缝配合,实现"按业务特征差异化启用小数据优化"。
本文由「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 等场景全覆盖。
