首页 › deep-tech › RNA:半连接态的寻人与打卡

RNA:5G半连接态的寻人与打卡

本文承接"切换流程""TAU打卡""寻呼找人"等话题,把视角拉回到一个容易被忽略的中间地带——RRC非激活态(RRC_INACTIVE)。它既不像空闲态那样彻底断开,也不像连接态那样时刻在线,而是 5G 专门为"频繁小数据、海量物联网"场景设计的一种"半睡半醒"工作模式。理解它,就理解了 5G 为什么能把信令风暴压下去、又为什么能把唤醒时延压下来。


一、从一个生活类比说起:手机的三种"作息"

把手机的 RRC 状态想象成一个人的三种作息:

为什么要发明这第三种作息?因为 4G 时代只有"清醒"和"熟睡"两种选择,对于频繁发小数据的应用(即时消息心跳、智能水表上报、可穿戴设备同步),陷入了"两难":

5G 的答案就是:在中间加一档"半睡半醒"——把空口关掉省电,但把上下文留在 RAN 侧省信令、省时延。而支撑这套"半睡半醒"还能被找到、还能正确切换工位的,正是本文的两个主角:RAN 寻呼和 RNA 更新。


二、RRC_INACTIVE 到底"悬"在哪里

理解 RNA 之前,先把非激活态的几个关键事实钉死。挂起(Suspend)发生时,网络做了一件很有"分寸"的事:

资源/状态 挂起后怎么处理 与空闲态的差别
UE 的 AS 上下文(安全密钥、DRB 配置) 同时保留在 UE 和最后服务 gNB 空闲态完全删除
NAS 信令连接(N1,UE↔AMF) 保持,UE 仍处于 CM-CONNECTED 空闲态为 CM-IDLE
NG 信令关联(N2,gNB↔AMF) 保留(针对该 UE) 空闲态释放
N3 用户面隧道(UPF↔gNB) 仍终结在最后服务 gNB 空闲态无 N3
空口无线承载(Uu) 释放,radio 关闭 同样关闭

这张表是后续一切机制的"地基",记住一句话就够:非激活态下,UE 在 NAS 层面还是"连着"核心网的,只是空口睡着了。 这一点决定了后面寻呼该由谁发起、数据该往哪送。

正因为上下文还挂在 gNB 上,挂起时 gNB 会给 UE 分配一个临时身份 I-RNTI(Inactive-RNTI),它唯一地指向"这个 UE 的上下文存在哪个 gNB 里"。唤醒时,UE 只要把 I-RNTI 报出来,目标 gNB 就知道该去找谁"取回上下文"。

stateDiagram-v2
    [*] --> IDLE
    IDLE --> CONNECTED: 连接建立(重量级)
    CONNECTED --> IDLE: 释放(Release,删上下文)
    CONNECTED --> INACTIVE: 挂起(Suspend,留上下文)
    INACTIVE --> CONNECTED: 恢复(Resume,轻量级)
    INACTIVE --> IDLE: 上下文丢失/拒绝回退
    note right of INACTIVE
        5G新增"半睡半醒"态
        · UE上下文保留在gNB
        · NAS保持CM-CONNECTED
        · N3隧道仍在最后服务gNB
    end note

三、RNA:给半睡半醒的人画一个"值班范围"

现在问题来了:UE 在非激活态下空口是关的,它会像空闲态一样自主地做小区重选到处走动。那么网络怎么知道它大概在哪、来了下行数据该往哪里找?

核心网的办法是"注册区(TA 列表)"——只要你还在 TA 列表里,就不用报告位置(这就是 TAU 打卡的逻辑)。但非激活态的上下文留在单个 gNB,核心网那一套粒度太粗。于是 5G 在 RAN 层又画了一个更小的圈:RNA(RAN-based Notification Area,接入网通知区)。

挂起 UE 时,最后服务 gNB 通过 suspendConfig 给 UE 配一个 RNA,它满足三条铁律:

  1. RNA 是小区的集合——可以是一个小区,也可以是一组小区,且可以跨多个 gNB(前提是这些 gNB 之间有 Xn 接口)。
  2. RNA 一定 ⊂ 注册区(TA 列表)——RAN 画的圈不能超出核心网给 UE 的注册区。
  3. UE 在 RNA 内随意走动,不必通知网络——只有走出 RNA,或定时器到期,才需要"打卡"。

用一张图表示三层嵌套关系,你会发现粒度从粗到细、寻呼范围也从大到小:

graph TD
    TA["注册区 TA List(AMF分配 · CN级 · 寻呼范围大)"]
    RNA["RNA 接入网通知区(gNB配置 · RAN级 · 寻呼范围小)"]
    C1["小区 Cell-1(gNB-A)"]
    C2["小区 Cell-2(gNB-A)"]
    C3["小区 Cell-3(gNB-B,Xn可达)"]
    C4["小区 Cell-4(RNA外,但仍在TA内)"]
    TA --> RNA
    TA --> C4
    RNA --> C1
    RNA --> C2
    RNA --> C3
    style RNA fill:#cfe8fc,stroke:#1f77b4,stroke-width:2px
    style C4 fill:#ffd6d6,stroke:#d62728

为什么 RNA 要做得比 TA 小? 因为这里要权衡一对永恒的矛盾——寻呼成本 vs. 位置更新成本:

这就是为什么运营商在密集城区和稀疏农村会配不同大小的 RNA——本质是在 寻呼负载 × 寻呼范围 和 更新次数 × 更新成本 两块开销之间找平衡点。


四、移动性之一:RNA 内"自由走、不打扰"

UE 在非激活态下的移动性,分两种情况,先看简单的。

当 UE 仍待在配置的 RNA 内部时,它只是安静地做小区重选(空闲态那一套,按 S 准则、R 准则挑更好的小区驻留),全程不触发任何上行信令。网络根本不知道 UE 此刻具体在哪个小区,只知道"它在 RNA 这个圈里的某处"。

这样做的好处显而易见:

风险也恰恰在这里:网络只掌握 UE 的"粗位置(RNA 级)",真到了要发数据时,只能在 RNA 全境发寻呼。所以 RNA 不能太大,否则一个 UE 的下行数据就要惊动整个 RNA 的小区。


五、移动性之二:走出 RNA,必须"打卡"(RNA Update)

当 UE 小区重选到了一个不属于当前 RNA 的细胞,或者 gNB 配的周期性 RNA 更新定时器 T380 到期,UE 就必须执行一次 RNA Update(RNA 更新),告诉网络"我挪窝了"。这本质上是一次带特殊原因值的 RRC 恢复请求,目的是让网络更新 UE 的位置锚点。

完整信令时序如下:

sequenceDiagram
    autonumber
    participant UE
    participant TG as 目标gNB(当前驻留)
    participant OG as 最后服务gNB(上下文所在)
    participant AMF
    UE->>UE: 驻留小区RNA ID不匹配 / T380超时
    UE->>TG: RRCResumeRequest(I-RNTI, cause=RNA-Update)
    TG->>OG: XnAP Retrieve UE Context
    OG-->>TG: UE Context(AS+安全上下文)
    TG->>AMF: NGAP Path Switch Request(N3迁到目标gNB)
    AMF-->>TG: Path Switch Response
    TG->>UE: RRCRelease + suspendConfig(可能配新RNA)
    TG->>OG: XnAP Release UE Context(可选)
    Note over UE,TG: 注意:纯位置更新无数据,恢复后又立即重新挂起

几个工程上很关键的细节:

  1. 原因值(resumeCause)= RNA-Update。它告诉目标 gNB"我恢复不是为了发数据,只是来报告位置的",于是目标 gNB 在完成上下文迁移后,立刻把 UE 再挂起,而不是让它进入连接态空耗。这是和"有数据要发"的普通恢复最大的区别。
  2. 上下文跨站搬运:目标 gNB 用 I-RNTI 找到最后服务 gNB,通过 Xn 接口的"取回 UE 上下文"过程把上下文搬过来。如果搬失败了(比如最后服务 gNB 已经把上下文删了),目标 gNB 会拒绝恢复,UE 只能掉回 RRC_IDLE,重新走一遍完整建立——这是非激活态最怕的"降级"。
  3. N3 隧道迁移:恢复成功后,下行数据隧道(UPF→gNB)从最后服务 gNB 切到目标 gNB,保证后续 RAN 寻呼、数据投递都以新 gNB 为锚点。
  4. 新 RNA 可能被重新配置:目标 gNB 可以在重新挂起时给 UE 配一个新的 RNA,以它自己为中心——这样 UE 又获得了一段"圈内自由走动"的额度。

把 RNA 更新和核心网的 TAU 放在一起对比,你会看到 RAN 在"抄核心网的作业",但抄得更轻、更快:

维度 TAU(核心网级) RNA Update(接入网级)
触发条件 走出 TA 列表 / 周期定时器到期 走出 RNA / T380 定时器到期
适用的 UE 状态 RRC_IDLE(CM-IDLE) RRC_INACTIVE(CM-CONNECTED)
执行过程 完整 NAS 注册流程 + RRC 建立 RRC Resume(带原因值)+ 重新挂起
上下文 核心网保留,RAN 侧无 RAN 侧保留并跨站搬运
信令开销 大(涉及 AMF 多条 NAS 消息) 小(主要在 RRC/Xn 层完成)
目的 让核心网知道 UE 在哪个 TA 让最后服务 gNB 锚点更新到 UE 当前位置

一句话总结:TAU 是给"熟睡"的人重新登记位置,RNA Update 是给"半睡半醒"的人悄悄换个沙发。


六、可达性:RAN 寻呼——半睡半醒的人怎么被叫醒

UE 在 RNA 内安静待着,万一这时候下行数据来了怎么办?这就是非激活态可达性的核心机制——RAN 寻呼。

先回到那张"地基表":非激活态下 N3 隧道仍终结在最后服务 gNB,且 UE 仍是 CM-CONNECTED。这意味着下行数据不会像空闲态那样被核心网拦下后触发 CN 寻呼,而是直接顺着 N3 隧道送到最后服务 gNB。这个 gNB 手里有数据、有 UE 的上下文,却没有空口——于是由它(而非 AMF)来发起寻呼。这就是"RAN 寻呼"这个名字的由来:寻呼的发起方从核心网挪到了接入网。

sequenceDiagram
    autonumber
    participant UE as UE(INACTIVE·DRX休眠中)
    participant G1 as 最后服务gNB(含N3隧道+UE上下文)
    participant G2 as 邻居gNB(覆盖RNA其他小区)
    participant UPF
    UPF->>G1: 下行数据(沿N3隧道直达G1)
    G1->>G1: 缓存数据 + 发起RAN寻呼
    G1->>G1: 本站RNA小区:PCCH发Paging
    G1->>G2: XnAP Paging(RNA内其他小区)
    G2->>G2: 本站RNA小区:PCCH发Paging
    Note over UE: 在寻呼时机PO醒来监听
    UE->>G2: 收到匹配I-RNTI的寻呼
    UE->>G2: RRCResumeRequest(I-RNTI)
    G2->>G1: XnAP Retrieve UE Context
    G1-->>G2: UE Context
    G2->>UE: RRCResume
    G2->>UPF: (经AMF Path Switch)下行数据投递

注意 RAN 寻呼的覆盖范围是 RNA,而不是 TA。这一步直接带来两个收益:

$$ N_{\text{paging}} \;\propto\; \underbrace{|\text{RNA}|}{\text{寻呼小区数}} \;\ll\; \underbrace{|\text{TA}|} $$}

$$ T_{\text{wake}}^{\text{(INACTIVE)}} \approx T_{\text{RRC Resume}} \;\ll\; T_{\text{wake}}^{\text{(IDLE)}} \approx T_{\text{CN Paging}} + T_{\text{RRC Setup}} + T_{\text{NAS}} $$

那 UE 怎么知道何时该醒来听寻呼?靠 DRX(非连续接收)。非激活态 UE 并非每时每刻都监听,而是按 DRX 周期在固定的寻呼时机(Paging Occasion, PO)醒来。每个 UE 该在哪个子帧醒来,由一个确定性公式决定(UE_ID 由 5G-S-TMSI 推得):

$$ i_s = \left\lfloor \frac{\text{UE_ID}}{N \cdot N_s} \right\rfloor \bmod N_s,\qquad N = \min(T,\, n_B),\;\; N_s = \max!\left(1,\;\frac{n_B}{T}\right) $$

其中 $T$ 是 DRX 周期,$n_B$ 控制每个周期内寻呼密度。这套机制让海量 UE 被均匀分散到不同的 PO 上,避免所有终端在同一时刻醒来造成寻呼信道拥塞——这正是 5G 支撑海量物联网并发寻呼的关键。

还有一个 RAN 寻呼特有的"小技巧":寻呼消息里携带的是 I-RNTI(或其短形式),而不是空闲态 CN 寻呼用的 5G-S-TMSI。UE 比对 I-RNTI 命中后,发起的就是带 I-RNTI 的恢复请求,目标 gNB 据此精准取回上下文。


七、实战连接:工程师调试时哪里会用到

这套原理不是悬在空中的,它在现网抓包、网优排障里非常具体。

1. 抓包看 resumeCause,一眼判断 UE"为什么醒"。 在 RRC 层日志里,RRCResumeRequest 的原因值是分诊的第一指标:

排查陷阱:如果网络里大量 UE 频繁出现 rna-Update,说明 RNA 配得太小了,UE 一走动就出圈,位置更新信令被放大——这时要调大 RNA。反过来,如果某个 gNB 的 RAN 寻呼负载高到拥塞,说明 RNA 配太大了,要调小。这两类问题在 KPI 上分别表现为"信令量异常"和"寻呼失败率升高",根因都在 RNA 粒度。

2. 抓 Xn 接口看"上下文取回"成败。 Retrieve UE Context 失败(最后服务 gNB 已删上下文)是非激活态"降级回空闲态"的常见原因。出现这种情况时,UE 会走完整 RRC 建立,时延陡增。常见诱因:UE 在非激活态待得太久、最后服务 gNB 重启或上下文被 GC 清理、Xn 链路抖动。定位方法是看 XnAP 消息对——Request 发出但 Response 没回(或回了 Failure),就把锅坐实在"上下文丢失"上。

3. 区分"RAN 寻呼"和"CN 寻呼"。 这是最容易混的两个概念。简单判据:寻呼消息里用 I-RNTI → RAN 寻呼(UE 在非激活态);用 5G-S-TMSI → CN 寻呼(UE 在空闲态)。如果一个本该在非激活态的 UE 却触发了 CN 寻呼,多半是它已经被降级回空闲态了,要往前追"为什么降级"。

4. 关注 N3 隧道锚点。 RAN 寻呼的前提是 N3 隧道还指向最后服务 gNB。如果发现下行数据到了 gNB 却迟迟没有 RAN 寻呼发出,要怀疑 gNB 是否误以为 UE 仍是连接态、或隧道状态不一致——这属于"控制面与用户面状态不同步"的疑难杂症。


八、一图回顾:非激活态的两条主线

把"移动性(出 RNA 打卡)"和"可达性(RAN 寻呼找人)"两条主线串起来,整个半连接态的设计哲学就清晰了:

flowchart TD
    subgraph 触发["触发源"]
        T1["下行数据到达(UPF→最后服务gNB)"]
        T2["UE走出RNA / T380超时"]
    end
    subgraph 机制["两条主线"]
        M1["RAN寻呼(RNA范围内找人)"]
        M2["RNA更新(打卡报告位置)"]
    end
    subgraph 结果["统一动作"]
        A1["RRC Resume(I-RNTI)"]
        A2["XnAP 取回UE上下文"]
        A3["N3隧道迁到当前gNB"]
    end
    subgraph 收尾["收尾"]
        E1["有数据→进入连接态收发"]
        E2["纯位置更新→重新挂起,可能配新RNA"]
    end
    T1 --> M1 --> A1 --> A2 --> A3 --> E1
    T2 --> M2 --> A1
    A3 --> E2
    style M1 fill:#cfe8fc,stroke:#1f77b4
    style M2 fill:#d4edda,stroke:#28a745

你会发现,无论是"被人找"还是"主动打卡",最终都收敛到同一套恢复机制:发恢复请求 → 跨站取回上下文 → 迁移 N3 锚点。区别只在收尾——有数据就进连接态干活,没数据就重新挂起回去睡。这种"一套机制、两种用法"的设计,把信令复杂度压到了最低,正是 5G 应对海量终端的精妙之处。


常见问题

Q1:RRC_INACTIVE 和 RRC_IDLE 最大的区别是什么? A:一句话——上下文在不在线。非激活态的 UE 上下文(含安全、承载配置)保留在 UE 和最后服务 gNB,NAS 仍是 CM-CONNECTED,N3 隧道仍在;空闲态则全部释放、N1 断开。所以非激活态唤醒是"轻量级恢复",空闲态唤醒是"重量级重建"。

Q2:RNA 和注册区(TA 列表)是什么关系? A:RNA 是 gNB 在挂起 UE 时配置的、RAN 层面的"通知圈";TA 列表是 AMF 分配的、CN 层面的"注册圈"。RNA 一定包含在 TA 列表之内,且粒度更细。UE 出 RNA 做 RNA Update,出 TA 列表做 TAU——后者更"重"。

Q3:为什么下行数据要由"最后服务 gNB"发起 RAN 寻呼,而不是核心网发起? A:因为非激活态下 N3 隧道仍终结在最后服务 gNB,数据被直接送到这里。由它在 RNA 本地范围内发起寻呼,比回到 AMF 走全核心网寻呼范围更小、时延更低、CN 信令更省。

Q4:UE 在非激活态什么时候会"掉回"空闲态? A:最常见的是上下文取回失败(最后服务 gNB 已删 UE 上下文、Xn 不可达),目标 gNB 拒绝恢复,UE 回退到空闲态重新建立。其次是无线链路长时间失败、或网络主动让 UE 去注册。掉回空闲态意味着丧失了非激活态的低时延优势。

Q5:RNA 配大好还是配小好? A:没有标准答案,是寻呼成本与位置更新成本的权衡。RNA 大→UE 不易出圈、更新少,但单次寻呼要覆盖更多小区、寻呼信令大;RNA 小→寻呼省,但更新频繁。现网通常按业务密度和终端移动性分场景配置,密集城区偏小、广域物联网偏大。


参考来源

  1. LTE-5G 学习笔记:5G NR 非活动态的移动性(CSDN) — 系统介绍 RRC_INACTIVE 下的小区重选、RAN 寻呼失败处理与 RNA 更新程序,中文工程视角。
  2. 5G RRC Inactive 总结及部分 log 示例(知乎) — 结合真实 log 讲解挂起/恢复、RNA、I-RNTI 与 RAN 寻呼,贴近排障实战。
  3. 5G NR RRC INACTIVE State and RAN-Based Notification Area (RNA) — TelecomHall — 英文社区对非激活态、RNA 配置与寻呼机制的原理性梳理。
  4. NR RRC 状态详解:寻呼(搜狐) — 对比 RRC 三状态下的寻呼发起方、寻呼身份与覆盖范围。
  5. 5G 移动通信系统设计与标准详解·非激活态(微信读书) — 从系统设计角度解释非激活态在时延与能耗上的折中。

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