先讲一个职场的类比。
一家公司只有两种员工身份:在岗和离职。在岗的人,工位保留、门禁畅通、随时能被叫进会议室,代价是灯常开、空调常吹,公司养人成本高;离职的人,工位立刻清空,门禁注销,哪怕明天只想来加十分钟班,也得重新走一遍入职流程——填表、照相、办卡、开邮箱。你会发现这两种身份之间有个巨大的空档:一个人只是想出去抽根烟,既不值得把他当成离职,也没必要让他每次都重新入职。
4G的无线接入层(手机和基站之间)就只有这两种身份:RRC_IDLE(空闲态)和RRC_CONNECTED(连接态)。手机只要“离岗”,基站里的所有个人信息立刻清空;想回来传哪怕一个字节,就要走完整的建立流程。5G在两者之间补上了那个空档——RRC_INACTIVE(非激活态):人不在工位上,但工位和门禁都保留着。本文要讲的,就是这第三个状态为什么非存在不可、它靠哪几个机制立起来、以及现网工程师该在哪里盯住它。
要理解第三状态为什么出现在5G而不是4G,得先看两种时代截然不同的“流量画像”。
4G设计那几年(2010年前后),网络服务的主体是人。人用手机的模式是:打开App、连上网络、刷几分钟、锁屏。一次会话往往持续几十秒到几分钟,数据是连续的大块流量。对这种画像来说,二状态足够用:会话开始建连接,会话结束就释放,中间没有太多“半睡半醒”的需求。
5G面对的却是一个物的世界。一块智能水表每天上报几次读数,每次几十字节;一个穿戴设备的心率数据每分钟一小包;一个App的后台推送一年到头零星地“叮”一下。这类流量的特征是:单次数据极小、间隔极长、唤醒极频繁。把二状态硬套上去,两头都会出问题:
第三状态的思路,就是在这两个极端之间切一刀:让终端像空闲态一样睡觉、像空闲态一样移动,却像连接态一样被网络“记着”。 睡觉省电、记着省信令,两头的好处各拿一半。
RRC_INACTIVE不是简单地“连接态打个盹”,它是一整套独立的状态机制,由三个支柱撑起来。
终端在连接态时,基站(gNB)里保存着一份关于它的完整AS上下文:安全密钥和算法配置、承载配置、能力信息、MAC/RLC/PDCP层的参数状态。这套东西是双方“干活的默契”——密钥对上了、参数对齐了,数据一来就能直接跑。
终端转入空闲态时,这份默契全部销毁;下次回来一切从零谈。而转入非激活态时,gNB和终端各自把这份上下文原封不动地冻结保存,同时给它贴上一个编号——网络侧会给终端分配一个标识(工程上常写作I-RNTI,即非激活态专用的无线网络临时标识),相当于墙上挂着的工牌:人走了,牌子还在,回来刷一下,系统就知道你是谁、你的工位在哪、你上次干到哪一步。
有了冻结的上下文,唤醒就不需要重新协商,只需要一个“解冻”动作。这就是后面要讲的RRC恢复流程。
连接态下手机换小区,走的是切换:网络测量、网络判决、网络下发命令,终端执行,一步都不许自作主张——因为它正背着一条活跃的数据通道,走错一步就是掉话。
空闲态和非激活态下手机换小区,走的是重选:终端自己按规则给周边小区打分,自己决定驻留到哪个小区,全程不上报、不打扰网络。打分的经典工具是排序R准则:
$$R_s = Q_{meas,s} + Q_{hyst}$$
$$R_n = Q_{meas,n} - Q_{offset}$$
其中 $Q_{meas}$ 是终端测到的信号质量(如RSRP),$s$ 是当前驻留小区,$n$ 是邻区,$Q_{hyst}$ 是迟滞余量,$Q_{offset}$ 是邻区偏置。当前小区的得分加了迟滞、邻区的得分减了偏置,只有邻区得分反超,终端才挪窝。这个设计的用意很明显:信号在小区边界来回抖动是常态,加一双“手套”再握手,能避免终端在两个小区之间来回横跳、把信令刷爆。
注意这里的精妙之处:非激活态下的移动性和空闲态完全一样,是重选,不是切换。 终端在非激活态下溜达,网络既不参与、也不知道它具体在哪个小区——只知道一个大致范围。这个“大致范围”,就是支柱三。
核心网侧定位空闲终端的粒度是跟踪区(TA),一个TA往往覆盖几十上百个基站。对非激活态终端来说这个粒度太粗了——它的上下文还冻结在某个具体gNB手里,寻呼它其实只需要惊动“那一小片”基站。
于是5G给非激活态定义了一个更细的圈:RNA(RAN通知区,RAN-based Notification Area)。它由gNB配置,可以是小区列表、RAN区域内的一段编号,或者一组跟踪区,范围通常远小于TA。
规则随之建立:终端在RNA内溜达,随便,什么都不用报;一旦重选出RNA边界,就要向网络做一次RNA更新(RNAU)——刷一下工牌,告诉网络“我搬到新片区了”,网络把冻结上下文的登记地址改过来。这个过程只发生在接入网内部,核心网毫不知情、毫发无损。
你可以这样理解三者的定位粒度:
| 状态 | 网络知道你在哪 | 位置变化的汇报机制 |
|---|---|---|
| 连接态 | 精确到小区 | 切换(网络全程主导) |
| 非激活态 | 精确到RNA(一小片小区) | RNA更新(重选出圈才报,仅接入网处理) |
| 空闲态 | 精确到TA(一大片区域) | 跟踪区更新(走核心网流程) |
三个状态、三种粒度,本质上是同一个工程公式在不同档位上的取值:定位越精确,省下的寻呼资源越多,但位置更新信令越频繁;定位越粗糙,终端越省事,但找人的时候要撒的网越大。 5G用三个档位,让不同业务各取所需。
终端睡在非激活态时,下行数据随时可能到达——这时网络要“敲门”。因为存在两条保存上下文的线索,敲门也就分成了两轨:
flowchart TD
A["下行数据到达"] --> B{"锚点gNB还能找到人吗"}
B -->|上下文仍冻结在接入网| C["RAN寻呼<br/>只在RNA内的小区喊"]
B -->|上下文已失效或终端失联| D["CN寻呼<br/>在整个跟踪区撒网"]
C --> E["范围小 开销低 命中快"]
D --> F["范围大 开销高 兜底保通"]
这套双轨制和空闲态的纯CN寻呼相比,多了一条“近路”:大部分唤醒根本不需要惊动核心网,接入网自己就把事办了。这正是第三状态“省信令”红利的直接体现。
把前面三个支柱串起来,看终端从睡梦中被叫醒、或者自己有事要办的完整时序。假设终端重选过小区,上下文不在当前这个gNB手里:
sequenceDiagram
participant U as 手机
participant N as 新gNB
participant O as 原gNB锚点
participant A as AMF
U->>N: RRC恢复请求 携带工牌编号
N->>N: 本站查无此上下文
N->>O: 站间取回冻结上下文
O-->>N: 移交上下文与安全参数
N-->>U: RRC恢复 密钥刷新
U-->>N: 解冻完成 数据放行
Note over U,N: 闭环在接入网内 核心网全程不知情
对比一下空闲态的唤醒路径:终端要先走完整的RRC建立,紧接着通常还有核心网层面的注册或业务请求流程,密钥要从头推演、承载要从头配置,信令交互的轮次多出一大截。而非激活态的恢复流程里,安全参数、承载配置都是“热”的——只是验证一下“还是原来那个人”,刷新一下密钥派生,几轮交互后数据通道就通了。工程上常用一个不等式概括这个差距:
$$T_{恢复} = T_{接入} + T_{解冻} \ll T_{建立} + T_{注册}$$
对时延敏感的小包业务(比如一次远程开关、一条推送点亮屏幕),这个差距直接决定了用户体验的“跟手”程度。
最后还有一个优雅的降级设计:如果新gNB拿着工牌编号去取上下文,发现锚点站已经不认这枚编号了(比如上下文因超时被清除、站间接口取回失败),它不会死磕,而是直接回一句“我这边没有你的记录”,终端收到后就地退回普通RRC建立流程,从零重来。快路径失败不堵死慢路径,终端永远不会被卡在中间态。
现在把三个状态之间的全部迁移路径画到一张图里:
flowchart TD
ID["RRC_IDLE 空闲态<br/>上下文清空·重选移动"]
INA["RRC_INACTIVE 非激活态<br/>上下文冻结·重选移动"]
CON["RRC_CONNECTED 连接态<br/>上下文激活·切换移动"]
ID -->|全流程建立与注册| CON
CON -->|释放且未配挂起| ID
CON -->|释放且带挂起配置| INA
INA -->|恢复流程刷工牌| CON
INA -->|挂起超时或更新失败| ID
注意连接态释放那两条分支的关键区别:网络只有在这条释放信令里显式带上“挂起”配置,终端才会进非激活态;不带,就走老路回空闲态。 也就是说,第三状态是网络逐次决定的,不是一个天然默认。这一点在现网排障中极其重要,后面会再讲。
冻结、重选、RNA,这三件套解决的是“睡得省、醒得快”。但5G的设计者很快发现了更极致的场景:水表上报一次读数,总共就几十字节。哪怕恢复流程再快,为了几十字节专门解冻整套上下文、转入连接态、再挂起睡回去,仍然像为寄一张明信片而全楼开锁、开电梯、开大门。
于是演进版本引入了小数据传输(SDT,Small Data Transmission):终端在非激活态下,符合条件的小包可以不经过状态转换、直接在睡梦中发出去,发完继续睡。设计的分支逻辑如下:
flowchart TD
A["非激活态来了小包"] --> B{"本小区配了SDT吗"}
B -->|没配或包太大| F["老老实实走恢复流程"]
B -->|配了且包够小| C{"选哪条直传通道"}
C -->|预授权资源正好可用| D["配置授权直传<br/>免随机接入最省时"]
C -->|没有现成资源| E["随机接入直传<br/>两步或四步皆可"]
D --> G["发完继续睡"]
E --> G
F --> H["发完可再挂起回睡"]
两条直传通道的取舍很有代表性:
| 通道 | 资源方式 | 接入开销 | 适用场景 |
|---|---|---|---|
| 配置授权直传 | 网络预先周期性授权好资源 | 零随机接入,时延最小 | 周期规律的小包,如定时遥测 |
| 随机接入直传 | 按需发起接入竞争资源 | 需一次接入过程 | 突发的偶发小包,如事件上报 |
而“配了且包够小”这个判断,背后是一条明确的工程红线:SDT只给真正的小数据开直通车。数据量超过配置门限、或者业务需要切换承载类型,就必须回到正规恢复流程。资源的粒度决定了不能让大流量搭小数据的便车——否则上行授权会被少数终端霸占,反而伤及睡梦中的大多数。
| 维度 | RRC_IDLE | RRC_INACTIVE | RRC_CONNECTED |
|---|---|---|---|
| AS上下文 | 全部销毁 | 冻结于终端与锚点gNB | 激活可用 |
| 核心网侧连接 | 未连接 | 仍保持连接标记 | 已连接 |
| 移动性 | 重选 | 重选 | 切换 |
| 网络定位粒度 | 跟踪区 | RNA | 小区 |
| 寻呼方式 | 核心网寻呼 | RAN寻呼为主、CN寻呼兜底 | 直接调度,无需寻呼 |
| 唤醒开销 | 建立加注册,全程冷启动 | 恢复流程,接入网内闭环 | 无需唤醒 |
| 功耗 | 最低 | 接近空闲态 | 最高 |
| 典型业务 | 待机、低频短信 | 物联小包、后台推送 | 通话、视频、大流量 |
再看4G与5G在状态机设计哲学上的代差:
| 对比项 | 4G两状态 | 5G三状态 |
|---|---|---|
| 中间档位 | 无,只能二选一 | 非激活态承接灰度场景 |
| 高频小包的信令代价 | 每包冷启动,风暴风险高 | SDT免唤醒,恢复走快路 |
| 位置管理 | 仅跟踪区一级 | 跟踪区与RNA两级配合 |
| 设计出发点 | 服务“人”的会话流量 | 兼顾“物”的脉冲流量 |
第一,看释放信令里有没有“挂起”。 终端到底进空闲态还是非激活态,取决于网络释放时带不带挂起配置。如果你的测试终端从来抓不到恢复流程信令,第一件事是确认网络侧是否启用了挂起功能、终端是否支持该特性——两端任何一头没开,第三状态就形同虚设。标准允许多种实现与配置策略,具体行为以各厂家官方文档为准。
第二,警惕“恢复变建立”。 排障时看信令流程,如果本该出现的恢复请求之后跟着的是一整套普通建立流程,大概率是上下文取回失败走了降级路径——工牌编号失效、站间取回超时是常见根因。现象不致命,但唤醒时延会明显劣化,对时延敏感的物联业务要重点盯。
第三,重选参数同样统治非激活态。 迟滞、频间偏置这些重选参数,既管空闲态也管非激活态的移动性。调这些参数时要想清楚:非激活态终端重选出RNA会触发更新,参数调得太松,终端边界抖动频繁出圈,RNA更新信令会悄悄涨上来——这是物联网话务模型下很容易被忽视的信令放大器。
第四,两个高频误解。 其一,“非激活态就是空闲态的别名”——错,核心网视角终端仍算在线,寻呼主体和范围都不同,这直接决定了找它的速度。其二,“非激活态下也走A3事件切换”——错,只要还没恢复到连接态,终端就只有重选,没有测量上报、没有切换命令。把这两点弄反,信令分析会南辕北辙。
Q: RRC_INACTIVE和空闲态最本质的区别是什么? A: 一句话——网络还记不记得你。空闲态下接入网的上下文全部销毁,找你要靠核心网在跟踪区里撒大网;非激活态下你的上下文还冻结在锚点基站里,找你只需在RNA这个小圈子里喊一嗓子,唤醒后刷个工牌就能上岗。终端的睡眠深度和省电程度两者接近,但“被找到的成本”天差地别。
Q: 手机在非激活态时,核心网认为它在线吗? A: 算在线。非激活态是接入网层面的状态,从核心网视角看终端仍处于连接管理状态的连接侧。所以数据到达时核心网先交给接入网尝试RAN寻呼,而不是立刻启动大范围CN寻呼。这也是为什么恢复流程可以完全在接入网内闭环——核心网那边的“连接档案”从头到尾没动过。
Q: 为什么不把空闲态的更新流程做快一点,而要新造一个状态? A: 因为问题不在流程快慢,而在上下文在不在。空闲态更新再快,每次唤醒仍要重新协商安全与配置,因为双方手里的“默契”已经销毁了。第三状态的核心是把这份默契保存下来,把一次“重新认识”压缩成一次“确认身份”——省的不是几条信令,而是整类交互。
Q: 现网怎么从信令上判断终端进入了非激活态? A: 盯两个关键点:连接释放时是否携带挂起配置(带了才进非激活态),以及后续是否出现携带工牌编号的恢复请求。如果释放后看到的是普通建立流程,说明终端走了空闲态路径,此时要先查挂起功能的启用与协商情况。
Q: SDT和RRC恢复的本质区别是什么? A: 要不要“正式上岗”。恢复流程是让终端解冻上下文、完整回到连接态再传数据,传完可以再挂起;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 等场景全覆盖。
