想象你是一个快递公司的调度员,现在有一份加急件要送给客户老王。你只知道老王住在某个城市,但不知道他此刻到底在哪个街区、哪栋楼、哪个房间。你该怎么办?
最笨的办法是:派快递员把整座城市的每一栋楼都喊一遍"老王,有你的快递!"。这当然能找到他,但代价是整座城市的人都被吵醒了,快递员也累瘫了。
聪明的做法是:让老王每天定时主动发一条"我现在在城南片区"的位置短信给你。这样你就知道他大概在哪个区域,只需要在这个区域的几栋楼里喊他名字就够了。
这就是移动通信里寻呼(Paging)的全部思想精髓。网络要把一个来电、一条微信、一段下行业务送给某部手机时,它并不知道这部手机此刻在哪一个基站下、哪一个小区里——它只掌握一个"粗略"的位置。寻呼,就是网络在那个粗略位置范围内"广播喊人"的过程;而手机主动上报位置的动作,叫做位置更新(Location Update / Tracking Area Update)。
这两件事是一对天生的矛盾体,理解它们的拉锯,你就理解了整个移动性管理的"位置侧"逻辑。
要真正读懂寻呼为什么这么设计,必须先抓住它的核心矛盾。手机有两个相反的需求:
围绕这两个需求,产生了两类开销的拉锯:
| 开销类型 | 产生原因 | 想要的方向 |
|---|---|---|
| 寻呼开销(Paging Load) | 网络在一个范围内对所有小区广播喊人 | 希望范围越小越好 → 知道手机越精确越好 |
| 位置更新开销(Signaling Load) | 手机每跨过一个边界就主动上报"我搬家了" | 希望上报越少越好 → 范围越大越好 |
注意到了吗?这两个开销是此消彼长的。如果你把网络划分得粒度很细(比如每个小区都让手机上报),那么寻呼开销极小(只在 1 个小区喊),但位置更新信令会爆炸——你在地铁里每过 10 秒就跨过几个小区,手机会疯狂上报。反过来,如果你把全国划成一个超大区域,手机几乎不用上报,但只要来一个电话,全国所有小区都要一起广播喊人,空口资源和基站处理能力立刻崩溃。
所以移动通信从来没有"一刀切"的最优解,只有针对场景的折中。下面要讲的跟踪区、注册区列表、DRX,全都是围绕这个折中做出的工程选择。
flowchart LR
subgraph 拉锯["位置管理的核心拉锯"]
direction LR
A["粒度越细<br/>(每小区上报)"] -->|寻呼开销↓ 位置更新开销↑| B["粒度越粗<br/>(超大区域)"]
end
A -.最优不存在.-> C["工程折中点"]
B -.最优不存在.-> C
C --> D["跟踪区 TA<br/>注册区 TA List<br/>DRX/eDRX"]
为了在上述拉锯中找到平衡点,网络设计了一个分层的位置概念,从粗到细是:
| 层级 | 名称 | 含义 | 网络是否知道手机在哪 |
|---|---|---|---|
| 最细 | 小区(Cell) | 一个基站覆盖的一片区域 | ❌ 空闲态不知道 |
| 中等 | 跟踪区 TA(Tracking Area) | 一组小区的集合,有唯一编号 TAI | ❌ 只知道在哪个 TA |
| 较粗 | 注册区(Registration Area) | 核心网分配给手机的 TA 列表 | ✅ 知道在这组 TA 内 |
| 最粗 | PLMN | 整个运营商网络 | 知道在哪个运营商 |
为什么要发明"跟踪区"这个中间层,而不是直接用小区? 因为如果按小区粒度管理位置,手机每切换一个小区就要上报一次,信令根本扛不住。跟踪区相当于把若干地理上相邻的小区"打包"成一个行政区,只要手机还在这个行政区内移动,就不需要上报——它把这个粒度问题从"几十米"放大到了"几公里",上报频率立刻降了几个数量级。
每个跟踪区有一个全局唯一的身份证号,叫 TAI(Tracking Area Identity),它由三部分拼成:
$$ TAI = PLMN\ ID \ (\text{MCC}+\text{MNC}) + TAC \ (\text{Tracking Area Code}) $$
其中 MCC 是国家码,MNC 是运营商码,TAC 是这个跟踪区在运营商内部的编号。手机读到的每一个小区广播里,都会持续发送自己所属的 TAI,手机据此判断"我是不是还待在原来的行政区内"。
更巧妙的设计是 TA 列表(Registration Area)。 核心网给手机分配的不是一个 TA,而是一组 TA 的列表。只要手机在这组 TA 之间的任何一个里,都不需要做位置更新。这有什么好处?考虑一部手机正好停在两个 TA 的边界上,如果只分配单个 TA,它会在两个 TA 之间反复横跳、反复上报(这叫"乒乓位置更新")。给了它一个覆盖边界的列表,乒乓问题就消除了。
flowchart TB
UE["📱 手机(空闲态)"]
subgraph RA["注册区 TA List(核心网分配)"]
TA1["TA-1"]
TA2["TA-2"]
TA3["TA-3"]
TA1 --> c11["小区"]
TA1 --> c12["小区"]
TA2 --> c21["小区"]
TA3 --> c31["小区"]
end
UE -.读取小区广播的 TAI.-> TA2
UE -.判断: TA2 在列表内, 不上报.-> RA
subgraph 外部["列表之外"]
TA9["TA-9(陌生区)"]
end
UE -.进入 TA-9, 不在列表内.-> 触发["触发位置更新<br/>Mobility Registration Update"]
触发 -->|核心网发新列表| UE
当手机发现自己进入了不在注册区列表内的跟踪区时,它就必须主动发起一次位置更新,告诉核心网"我现在的位置变了,请把我的归属信息更新一下,并给我一张新的行政区地图"。在 4G 里这个过程叫 TAU(Tracking Area Update),在 5G 里规范名称叫 Mobility Registration Update,本质完全一样。
位置更新还有几个触发时机:周期性超时(比如网络要求每 54 分钟必须报到一次,确认手机还在线)、从覆盖盲区回到有信号区、能力信息变化等。
位置更新的信令时序如下:
sequenceDiagram
participant UE as 📱 手机
participant gNB as 基站 gNB
participant AMF as 核心网 AMF
participant UDM as 用户数据 UDM
Note over UE: 检测到新小区 TAI 不在列表内
UE->>gNB: 1. Registration Request<br/>(携带原 TAI/列表、用户临时标识)
gNB->>AMF: 2. 转发注册请求 (基于 TAI 选择 AMF)
Note over AMF: 3. 决定是否需鉴权/安全模式
AMF->>UE: 4. (可选)Authentication / Security Mode
UE->>AMF: 5. 安全模式完成
AMF->>UDM: 6. 查询/订阅用户上下文
UDM-->>AMF: 7. 返回签约数据
AMF->>AMF: 8. 更新 UE 位置<br/>计算新的注册区
AMF->>gNB->>UE: 9. Registration Accept<br/>(下发新 TA List)
Note over UE: 10. 保存新列表, 后续在该范围内不再上报
为什么位置更新要带"用户临时标识"(5G 里叫 5G-S-TMSI)而不直接用永久号码 IMSI?因为永久号码一旦在空口明文出现,就有被跟踪、被冒用的风险。用临时的、可周期性更换的标识,是为了隐私和安全——这是位置更新流程里经常被忽略、却非常关键的一个"为什么"。
有了位置更新打底,核心网始终知道每一部空闲手机"大概在哪个 TA 列表范围内"。当有下行业务到来时,寻呼就可以精准地只在这个范围内广播了。一次完整的下行寻呼触发信令如下:
sequenceDiagram
participant Data as 下行数据/信令
participant UPF as 用户面 UPF
participant SMF as 会话管理 SMF
participant AMF as 移动管理 AMF
participant gNB as 基站 gNB
participant UE as 📱 手机(空闲)
Data->>UPF: 1. 下行数据到达, 但手机空闲
UPF->>SMF: 2. 下行数据通知
SMF->>AMF: 3. 请求寻呼该 UE
Note over AMF: 4. 查 UE 的注册区<br/>= 一组 TA
AMF->>gNB: 5. 向注册区内所有 gNB 发 Paging<br/>(UE 标识 + TA 列表 + 寻呼原因 + 优先级)
Note over gNB: 6. 在每个相关小区<br/>计算 PF/PO, 安排广播
gNB->>UE: 7. 在寻呼时机广播<br/>(用 P-RNTI 加扰)
Note over UE: 8. 醒来解码, 匹配自己的标识
UE->>gNB: 9. 匹配成功 → 发起 Service Request
gNB->>AMF: 10. 建立/恢复连接
Note over UE: 11. 进入连接态, 下行数据开始传送
这里有三个极其精妙的设计点,值得逐一说清"为什么":
第一,为什么寻呼要在"注册区范围内"广播,而不是只发一个小区? 因为空闲态下网络并不知道手机在哪个具体小区——手机只有跨出整个注册区时才会主动上报。所以网络能做的最精确动作,就是把整个注册区里的所有基站都喊一遍。这就是为什么注册区大小直接决定了寻呼开销:注册区越大,要喊的基站越多。
第二,空口上用什么"频道"喊? 寻呼消息在空口并不是一条专用信道,而是和普通下行业务复用在同一条物理下行共享信道(PDSCH)上。那手机怎么知道这一帧里有没有喊到自己?靠一个专门的"寻呼身份证"——P-RNTI(Paging RNTI)。基站在物理下行控制信道(PDCCH)上用 P-RNTI 对控制信息加扰,手机如果用 P-RNTI 能解开这个控制信息,就说明这一帧里"有寻呼内容",然后再去 PDSCH 上读具体的寻呼消息,比对里面有没有自己的 5G-S-TMSI。这是一种"先看门牌、再拆信"的两级设计,非常省电。
第三,寻呼消息里携带"优先级"。 这是 5G 的一个增强。不同业务可以被赋予不同寻呼优先级,时间敏感的业务(比如紧急告警、重要语音)会优先排队广播,避免被海量普通物联网寻呼挤兑。这也是工程师做容量规划时要关注的点:寻呼信道虽然是共享的,但它有吞吐上限。
到这里有一个省电的关键问题还没解决:如果手机必须随时听寻呼,它就得一直开着接收机,电池根本撑不了一天。解决办法是 DRX(Discontinuous Reception,非连续接收)——手机并不持续监听,而是周期性地醒来听一会儿。
DRX 的核心思想用一个生活比喻最清楚:你不是 24 小时盯着门口等快递,而是约定"每 30 分钟去门口看一眼"。快递员也会在你"该出现"的那个时间点来敲门。双方对齐了这个"看门时刻表",就既不会错过快递,又不用一直站着。
在寻呼场景下,这个"看门时刻表"由两个量精确决定:
手机会在自己专属的那个 PO 醒来一小段,听完就继续睡;下一个 DRX 周期再醒来。这个周期长度 T 由网络配置,典型值是 32 或 64 个无线帧(即 320ms / 640ms 档位),还有更长的高节能档位。
那么,上千万部手机都按 DRX 周期醒来,怎么避免它们挤在同一时刻醒来、造成寻呼信道的瞬时拥塞?答案是把它们均匀打散到周期内的不同 PO 上。打散的依据是每部手机的临时标识,于是有了下面这组公式:
$$ N = \min(T,\ n_B), \quad N_s = \max(1,\ nB/T) $$
$$ (SFN \bmod T) = (T \div N) \times (UE_ID \bmod N) \quad \rightarrow \text{确定 PF} $$
$$ i_s = \left\lfloor UE_ID / N \right\rfloor \bmod N_s \quad \rightarrow \text{确定 PF 内的第几个 PO} $$
其中 T 是 DRX 周期,nB 控制一个周期里放多少个寻呼时机(也就是寻呼"密度"),UE_ID 由手机的 5G-S-TMSI 推导。这几行公式看着吓人,本质就一句话:用手机自己的 ID 做一次取模,把它"摊"到周期的某个固定格子里。ID 不同的手机,几乎一定会落到不同的格子里,从而实现负载均衡。
| 参数 | 含义 | 工程意义 |
|---|---|---|
| T | DRX 周期(帧) | 越大越省电,但寻呼延迟越大 |
| nB | 单位周期内的寻呼时机密度 | 网络可调,平衡寻呼容量 |
| N | = min(T, nB) | 用于 PF 计算 |
| Ns | 每个 PF 内的 PO 数 | 决定一帧内能容纳多少手机 |
| UE_ID | 由 5G-S-TMSI 派生 | 把手机打散到不同 PO |
这个"按 ID 取模打散"的设计,是整个寻呼机制里最优雅的一笔。它让成千上万部手机在没有任何协调的情况下,自发地错峰醒来,把寻呼信道的瞬时负载摊平——这正是分布式系统里"用确定性哈希实现负载均衡"的经典思想。
普通手机的 DRX 周期到秒级就够省电了,但物联网设备(水表、烟感、跟踪器)有更极端的需求:它们可能一天只收一次指令,电池要撑十年。于是有了 eDRX(extended DRX)——把 DRX 周期大幅延长。
| 模式 | 典型 DRX 周期 | 适用场景 | 寻呼延迟 |
|---|---|---|---|
| 普通 DRX | 320ms ~ 640ms | 智能手机 | 毫秒~百毫秒级 |
| 高节能 DRX | 数秒 | 低活跃手机 | 秒级 |
| eDRX | 数分钟 ~ 数十分钟 | NB-IoT / 物联网 | 分钟级,可接受 |
eDRX 的代价很直白:手机睡得太沉,寻呼延迟就拉长。所以它只用于"对延迟不敏感、但极在乎功耗"的物联网业务。这是一个典型的不可能三角——功耗、延迟、可达性三者只能取其二。工程师在做 NB-IoT 项目规划时,必须先和业务方确认"这个设备多久必须能被找到一次",再据此选 eDRX 周期,否则会出现"指令发了半天设备才响应"的投诉。
5G 比 4G 多了一个全新的无线状态:RRC_INACTIVE(去激活态)。这是介于"完全空闲"和"完全连接"之间的中间态。
为什么要发明这个中间态?因为很多业务(比如网页浏览、即时消息)是"阵发性"的——传一小会儿数据就停了,但很快又会来下一波。如果每次空闲都彻底拆掉所有无线上下文,下次来业务又要从头建立连接,时延和信令开销都大。RRC_INACTIVE 让手机保留一部分上下文,需要时能快速"恢复(resume)"。
但这个状态带来了一个新的寻呼问题:手机在 INACTIVE 态下小范围移动时,网络同样不知道它的精确小区位置,于是需要在它最后登记的一小块区域(RNA,RAN-based Notification Area)内做寻呼。RNA 寻呼由无线接入网(RAN)自己完成,不一定要惊动核心网,开销比传统核心网寻呼小得多。这是 5G 在"低时延 + 低信令"上的一个重要权衡设计。
这些原理听起来抽象,但在现网调试里处处都是它们的影子。挑几个典型场景:
场景一:寻呼成功率低、被叫难打通。 如果大量用户反映"来电打不通,但过会儿自己就来了",很可能是寻呼失败。排查时要先看是"空口寻呼就没发出去"(核心网或传输问题),还是"发了但手机没响应"(手机没在正确 PO 醒来、DRX 配置异常、覆盖太差、或者手机真的进入了 eDRX 长睡周期)。这时懂 PO/PF 和 DRX 周期,就能从抓包里判断"手机到底该在哪个帧醒来",而不是瞎猜。
场景二:寻呼信道拥塞。 物联网海量接入后,某个城市的寻呼信道利用率飙高。这时要回到那个核心矛盾——是注册区划太大了(每个寻呼要在太多基站广播),还是 nB 寻呼密度配低了?规划上可以考虑缩小注册区、调整寻呼密度,或对物联网终端用单独的 eDRX 策略错峰。
场景三:边界乒乓与信令风暴。 某地铁/高铁沿线信令飙升,往往是 TA 边界划得不合理,导致大量用户反复跨区上报。这是典型的"注册区列表设计"问题,需要重新规划跟踪区边界、用好 TA List 覆盖交通干线。
常见误解提醒: 很多人以为"寻呼就是给手机打电话",其实寻呼只是一个寻人广播,它本身不传业务;真正通话是在手机响应、进入连接态之后才建立的。另一个常见误解是以为"网络一直知道我在哪个小区"——空闲态下网络真的不知道,它只知道你在哪个 TA 范围。理解这一条,很多"为什么来电会有几秒延迟"的疑惑就豁然开朗了。
把整条线索串起来看,寻呼机制其实回答了一个深邃的工程哲学问题:当系统不可能精确掌握每一个体的实时位置时,如何用最小的代价把消息送到?
移动通信给出的答案精彩而统一:用分层粒度(TA / 注册区)压缩位置追踪成本,用周期性上报保持位置新鲜度,用按 ID 哈希打散的 DRX让海量终端自发错峰、把瞬时负载摊平,用临时标识兼顾隐私与安全,再用中间态(INACTIVE)和扩展睡眠(eDRX)适配从手机到物联网的全谱功耗需求。
这背后没有魔法,全是权衡。下次当你接到一个突然响起的来电,不妨想一想:在你按下接听之前的某个瞬间,整个城市某片区域的几十个基站,刚刚按照一张由你的手机 ID 决定的时刻表,整齐地、错峰地、对你喊了一声"你在吗"——而你正好在那个毫秒醒来,听见了。这就是寻呼。
Q1:寻呼(Paging)和切换(Handover)有什么区别? A:两者都涉及"移动性",但方向相反。寻呼是网络找手机——网络有下行业务要送,但不知道手机在哪个小区,于是在注册区内广播喊人,发生在手机空闲态/去激活态。切换是手机找网络——手机正在通话中移动,为了不掉线,网络把它的连接从一个基站接力到另一个基站,发生在连接态。一个解决"被动找到",一个解决"主动不掉"。
Q2:为什么是"跟踪区列表"而不是"单个跟踪区"? A:为了消除边界乒乓。如果只给手机一个 TA,当它停在两个 TA 边界时,会反复横跳、反复上报位置更新,造成信令风暴。给一组覆盖边界的 TA 列表,手机在该范围内任意移动都不上报,既省信令又提升体验。
Q3:DRX 周期是不是越长越好(越省电)? A:不是。DRX 周期越长越省电,但寻呼延迟也越大——因为网络只能等到手机"该醒来的时刻"才能喊到它。手机用秒级 DRX,物联网用分钟甚至几十分钟级的 eDRX,本质是在"功耗 vs 可达延迟"间取舍,必须匹配业务需求。
Q4:空闲态下网络到底知不知道我在哪个小区? A:不知道。空闲态下网络只知道你在哪个注册区(一组 TA)范围内。只有当你响应寻呼、进入连接态后,服务基站才把你的小区级位置报告给核心网。这正是来电会有一点延迟的根本原因。
Q5:PO/PF 那套公式为什么用手机 ID 取模? A:为了把海量手机的"醒来时刻"均匀打散。用每部手机唯一的 ID 做取模,相当于一次确定性哈希,让 ID 不同的手机自发落到周期内不同的时刻格子里,避免所有人挤在同一瞬间醒来造成寻呼信道瞬时拥塞——这是分布式负载均衡的经典思想。
本文由「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 等场景全覆盖。
