想象一所拥有十万学生的大学。每当有人找某个学生,保卫处不会挨个宿舍敲门,而是用校园广播喊一句话:"请2021级计算机系的张三,听到广播后到一号楼来。"这句话里其实藏着三个关键信息:喊的范围(整个校园)、喊的对象(张三)、喊完怎么办(张三主动去报到)。
移动通信里的"寻呼(Paging)",干的完全是同一件事。当你的手机处于待机状态、网络侧突然有下行数据或来电要送给你时,网络并不知道你此刻在哪一个基站下面——它只知道你"大概在某片区域内"。于是网络只能"广播喊人",让目标手机听到后主动发起连接。
这件事看似简单,背后却隐藏着移动通信最精妙的几个工程折中:如何在不知道手机精确位置时高效找到它、如何让手机几乎不用电就能被找到、如何避免成千上万台手机同时醒来压垮寻呼信道。今天我们就把寻呼的原理拆开来看。
要理解寻呼为什么这样设计,先要抓住它要解决的根本矛盾。
手机和网络的关系,平时有三种典型状态:
| 状态 | 手机在做什么 | 网络知道手机在哪吗 |
|---|---|---|
| 连接态(RRC_CONNECTED) | 正在通话/传数据,和基站保持实时连接 | 精确知道在哪个基站、哪个小区 |
| 空闲态(RRC_IDLE) | 待机,几乎不耗电,只偶尔醒来 | 只知道在"某个跟踪区列表"范围内 |
| 非激活态(RRC_INACTIVE,5G新增) | 介于两者之间,保持锚点连接上下文 | 只知道在"某个RNA范围"内 |
矛盾就在这里:省电要求手机尽量"睡死",可一旦网络侧有数据要送,又必须能精准把它叫醒。 网络不可能在全网几百万个小区里逐个喊一遍(那寻呼信令会爆炸),也不能赌你一定在某个小区(你随时在动)。
工程师给出的答案是两步走:
下面分别拆解。
先解决"在哪喊"的问题。
移动通信网络把所有小区划分成一个个"跟踪区(Tracking Area)",每个 TA 包含若干小区。手机跨 TA 边界移动时,要执行跟踪区更新(TAU)向核心网报备新位置。
但聪明的工程师马上发现一个问题:如果手机恰好在两个 TA 的边界上反复横跳(比如沿着主干道走,信号在两个区之间乒乓),它会疯狂触发 TAU,产生信令风暴。
解决方案就是 TA List(跟踪区列表):核心网一次给手机分配一整组 TA(比如 6~12 个),手机在这组 TA 范围内怎么跑都不用报备,只有离开整个列表、进入一个"陌生"TA 时,才触发一次 TAU。
寻呼范围折中关系
寻呼范围小 ────────────────────────── 寻呼范围大
(单TA) (全网)
│ │
│ TAU信令开销大(边界乒乓) │ 寻呼开销大(到处喊)
│ │
└─────────── TA List 折中点 ─────────────┘
↓
给手机一片"活动地盘"
在地盘内自由活动、不报备
只在离开地盘时才TAU
| 方案 | 寻呼开销 | TAU信令开销 | 适用场景 |
|---|---|---|---|
| 每次只在一个TA寻呼 | 低 | 极高(边界乒乓) | ❌ 不可行 |
| 全网寻呼 | 极高 | 低 | ❌ 不可行 |
| TA List 寻呼 | 中(几个TA内喊) | 中(离列表才报备) | ✅ 现网采用 |
寻呼的时候,核心网(5G 中是 AMF)就把寻呼消息发给这个 TA List 里所有的基站,由它们各自在自己覆盖的空口上喊一遍。这就是为什么寻呼本质上是个"组播"操作。
接下来是寻呼最精妙的部分——手机怎么做到几乎不耗电,又能被随时叫醒?
手机待机时,最朴素的方案是"一直竖着耳朵听下行控制信道(PDCCH)",看有没有自己的名字被点到。但问题在于,PDCCH 每 1 毫秒就出现一次,持续监听意味着射频芯片 24 小时不眠不休,电池几小时就见底——这显然不可接受。
工程师的答案是 DRX(Discontinuous Reception,不连续接收):让手机"打盹式监听"。手机大部分时间深度睡眠(关闭射频收发),只在约定的、周期性的时刻短暂醒来,瞄一眼 PDCCH 上有没有寻呼自己的消息,没有就继续睡。
graph LR
subgraph 一个DRX周期
A[深度睡眠<br/>关闭射频] -->|周期T到达| B[短暂醒来<br/>监听自己的PO]
B --> C{有寻呼我吗?}
C -->|没有| A
C -->|有| D[发起连接<br/>响应寻呼]
end
style A fill:#e8f5e9
style B fill:#fff3e0
style D fill:#e3f2fd
这个"醒来周期"就是 DRX 周期(T)。典型的默认 DRX 周期在 5G 里可以配置为 32、64、128、256 个无线帧(一个无线帧 = 10ms),换算下来就是 320ms 到 2560ms 醒一次。
直觉理解:DRX 周期是 2560ms(2.56 秒)时,手机每秒只醒 0.4 次,每次醒几毫秒,其余时间全部深度睡眠。这就是为什么手机能待机好几天——99.9% 的时间它都在睡觉。
实际生效的 DRX 周期不是单一值,而是两个值的"取小":
$$T_{effective} = \min(T_{default},\ T_{UE_specific})$$
两者取较小值生效。这意味着即使基站广播了一个较长的默认周期,核心网仍可以给特定手机"收紧"到更短的周期,缩短被叫响应时延——这是省电与响应速度之间的又一个旋钮。
这是寻呼原理里最"硬核"也最优雅的设计。
假设一个 DRX 周期到了,这个基站下覆盖的 10 万台手机同时醒来,全部挤在同一个时刻去听 PDCCH。如果这一帧恰好有大量寻呼,PDCCH 的容量根本装不下这么多寻呼指示,就会出现"寻呼拥塞"——该被叫醒的手机没被叫醒,电话接不通。
工程师的解法极其巧妙:用散列(hash)给每台手机分配一个专属的"叫号窗口",让它们在时间轴上错峰醒来。
手机醒来的时刻由两层定位:
每个 DRX 周期被切成若干个 PF,每个 PF 内又有若干个 PO。手机被 hash 到其中一个 PF 的一个 PO 上。
这是整个设计最值得玩味的地方:手机和网络不需要任何额外信令,双方独立计算,就能得出完全相同的 PF/PO。
手机用自己内置的标识(UE_ID)算出"我该在哪醒",网络用同一个 UE_ID 算出"我该在哪喊"。两边天然对齐,零信令开销。这就像两个人不用打电话,只凭各自的身份证号就能算出"下午 3 点在 3 号窗口见"。
先定义几个关键量:
| 参数 | 含义 | 作用 |
|---|---|---|
| $T$ | DRX 周期(无线帧数) | 手机多久醒一次 |
| $nB$ | 寻呼密度参数 | 控制寻呼信道占多大气力 |
| $N = \min(T,\ nB)$ | 一个DRX周期内PF的总数 | 划分PF的"格子数" |
| $N_s = \max(1,\ nB/T)$ | 每个PF内PO的个数 | 划分PO的"格子数" |
| $UE_ID$ | 手机标识(5G中为5G-S-TMSI取模1024) | 散列的"种子" |
PF 由系统帧号(SFN)满足下式确定:
$$SFN \bmod T = \left\lfloor \frac{T}{N} \right\rfloor \times (UE_ID \bmod N)$$
PO 在 PF 内的索引由下式确定:
$$i_s = \left\lfloor \frac{UE_ID \bmod N}{\lfloor N / N_s \rfloor} \right\rfloor$$
别被公式吓到,它的本质就一句话:用 UE_ID 当种子,对 N 和 Ns 取模,把每台手机均匀撒到不同的 PF 和 PO 上。 不同手机的 UE_ID 不同,自然落到不同的"叫号窗口",从而错峰醒来。
假设 $T = 256$ 个无线帧,$nB = T$,则 $N = 256$,$N_s = 1$。某手机的 $UE_ID = 100$:
于是这台手机只在每个 DRX 周期、SFN=100 那一帧的第 0 个 PO 醒来瞄一眼。而 $UE_ID = 101$ 的手机则会落到 SFN=101,完全错开。
设计精髓:确定性 + 均匀性。确定性保证双方对齐,均匀性保证负载分散。这是一套无需同步信令、又能天然负载均衡的分布式调度。
$nB$ 是寻呼容量规划的核心参数。它决定了"一个 DRX 周期内铺多少个 PO"。
nB 取值与寻呼密度的关系
nB = 4T → 密度最高,几乎每帧都有多个PO → 寻呼能力强,但占资源多
nB = T → 每个PF恰好1个PO(常用默认)
nB = T/4 → 4个帧才摊到1个PO → 资源省,但寻呼排队更长
nB = T/32→ 最稀疏 → 只适合寻呼量极低的场景
网优工程师在规划时面临的就是这个权衡:$nB$ 调大,寻呼能力上去了,但占用的 PDCCH 资源变多,挤占业务信道;$nB$ 调小,省了资源,但高峰期可能寻呼排队、被叫接通变慢。 现网通常按忙时寻呼量反推合适的 $nB$。
理解了上述机制,再来看 5G 里两种寻呼的区别,就豁然开朗了。
手机在 空闲态(RRC_IDLE) 时,核心网只掌握它的 TA List 位置。当 AMF 收到下行数据(比如来电),就向 TA List 内所有基站发起寻呼:
sequenceDiagram
participant UE as 手机(空闲态)
participant gNB1 as 基站A
participant gNB2 as 基站B
participant AMF as 核心网AMF
participant UPF as 数据面UPF
Note over UPF,AMF: 下行数据到达,但手机空闲
UPF->>AMF: 下行数据通知
AMF->>AMF: 查UE注册的TA List
AMF->>gNB1: Paging(N2, TA列表)
AMF->>gNB2: Paging(N2, TA列表)
Note over gNB1,gNB2: 在各自空口的PO上<br/>用P-RNTI发送寻呼
gNB1-->>UE: 空口Paging(UE标识)
UE->>UE: 在自己的PO醒来,确认是叫我
UE->>gNB1: Service Request / RRC建立
gNB1->>AMF: N2 Initial UE Message
Note over UE,UPF: 连接恢复,下行数据开始传输
注意一个关键点:核心网寻呼用的是 P-RNTI(寻呼无线网络临时标识)加扰的 DCI,所有手机监听同一个 P-RNTI,但在寻呼消息里携带具体的 UE 标识(5G-S-TMSI),手机醒来解码后比对:"是叫我吗?"
5G 引入了 非激活态(RRC_INACTIVE) 这个中间状态。手机虽然释放了空口连接进入省电,但保留着和锚点基站之间的连接上下文(N2 接口不拆)。它在一个更小的范围——RNA(RAN-based Notification Area,RAN 通知区) 内活动无需报备。
当锚点基站收到下行数据,发现手机处于非激活态,就自己发起 RAN 寻呼,无需惊动核心网:
sequenceDiagram
participant UE as 手机(非激活态)
participant gNB1 as 锚点基站A
participant gNB2 as 邻区基站B
participant UPF as 数据面UPF
Note over UE: RRC_INACTIVE,保留N2上下文
UPF->>gNB1: 下行数据(仍发往锚点)
Note over gNB1: 锚点发现手机非激活态
gNB1->>gNB2: RAN Paging(Xn接口)
Note over gNB1,gNB2: 在各自空口的PO上<br/>用I-RNTI发送寻呼
gNB2-->>UE: 空口Paging(I-RNTI)
UE->>UE: 在PO醒来,识别到自己
UE->>gNB2: RRC Resume Request
gNB2->>gNB1: 取回UE上下文
Note over UE,UPF: 快速恢复连接,数据传输
gNB1-xgNB2: 上下文迁移完成
| 维度 | 核心网寻呼(CN Paging) | RAN寻呼(RAN Paging) |
|---|---|---|
| 触发状态 | 空闲态(RRC_IDLE) | 非激活态(RRC_INACTIVE) |
| 发起方 | 核心网 AMF | 锚点基站 gNB |
| 寻呼范围 | TA List(较大,跨多个基站) | RNA(较小,通常几个基站) |
| 走的接口 | N2(AMF↔gNB) | Xn(gNB↔gNB) |
| 是否惊动核心网 | 是 | 否(核心网无感知) |
| 空口标识 | P-RNTI | I-RNTI |
| 恢复速度 | 较慢(要重建N2、N3) | 快(上下文还在,仅Resume) |
| 信令开销 | 大 | 小 |
设计动机一句话:非激活态 + RAN 寻呼,是为了在"省电"和"快速接入"之间再插一个档位。 智能手机这类"频繁来数据、又想省电"的场景,停在非激活态,下次被叫时用更小的 RNA 范围、更轻的信令快速恢复,既不耗电也不拖慢首包时延。
当用户反馈"别人打我电话打不通,但我能打出去",第一时间怀疑寻呼链路。排查思路正是沿着本文学到的链条走:
物联网设备极度依赖 DRX 省电。若核心网给它分配的 UE-specific DRX 周期过短,设备频繁醒来,电池几个月就耗光;若过长,被叫响应慢。这需要按业务模型(多久来一次数据、对时延多敏感)精细调整 DRX 周期和 $nB$。
寻呼,本质是在"手机想省电"和"网络要找到它"这对矛盾之间,用三个巧思达成了平衡:用 TA List/RNA 圈定喊话范围、用 DRX 让手机周期性打盹、用 UE_ID 散列让千军万马错峰醒来。每一条都是"为什么这样设计"的答案——不是规范规定的,而是物理与工程约束逼出来的最优解。
Q1:寻呼的 DRX 周期,和连接态业务传输时的 DRX 是一回事吗?
A:原理相似(都是"周期性收发以省电"),但作用域不同。空闲态/非激活态的寻呼 DRX 决定手机多久醒来听寻呼;连接态业务 DRX(C-DRX)决定手机有业务时,在没数据的间隙能不能短暂休眠以省电。两者参数独立配置,不要混淆。
Q2:为什么寻呼消息里要带 UE 的标识,而不是只发 P-RNTI?
A:P-RNTI 是"群发频道"的标识——一个基站下所有手机都监听同一个 P-RNTI。基站用它把寻呼指示广播出去后,手机醒来解码 PDSCH 上的具体寻呼消息,里面才携带真正的目标 UE 标识(5G-S-TMSI 或 I-RNTI)。手机比对标识后才确认"是叫我",再发起响应。群发频道 + 个体标识,是广播寻呼的标准范式。
Q3:TA List 和 RNA 有什么本质区别?
A:粒度和归属不同。 TA List 是核心网层面维护的(AMF 管理),范围通常更大,服务于空闲态;RNA 是接入网层面维护的(锚点 gNB 管理),范围通常更小(几个小区到几个基站),服务于非激活态。离开 TA List 要向核心网 TAU;离开 RNA 要向锚点基站做 RNA 更新。
Q4:一个 DRX 周期内,网络会重复寻呼同一个手机多次吗?
A:会。核心网可以配置寻呼策略,在首个 PO 没收到响应后,在同一 DRX 周期或后续周期内重发寻呼(重传间隔和次数可配)。这应对"手机这次 PO 没醒过来"或"PO 上寻呼拥挤漏发"的情况。但重传也会增加寻呼负载,需权衡。
Q5:5G 寻呼相比 4G 的主要改进是什么?
A:最关键的就是非激活态与 RAN 寻呼的引入——让连接态的快速恢复与空闲态的省电不再二选一。此外,5G 的 PO 概念升级为"一组 PDCCH 监听时机的集合",寻呼搜索空间(Paging Search Space)的配置更灵活,能更好地适配多样的子载波间隔和帧结构。
本文由「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 等场景全覆盖。
