你坐高铁用手机看视频,一路几百公里,可能穿过上百个小区,但视频一秒都没卡。很多人以为手机是“跳”到新基站上的——像换Wi-Fi那样,断开旧的、连上新的。
真相是:空口连接确实是“断开旧的、连上新的”(手机同一时刻只能锁定一个小区,这一点从2G到5G都没变),但用户数据从来没有断过。在手机换小区的那几百毫秒里,你的每一个下行数据包都被网络小心翼翼地“押运”着:旧基站先把没发完的包打包,连同一本记录着“哪些包已经确认送达”的账本,一起交接给新基站;核心网那边再悄悄把快递的收货地址改过来。全程你毫无感觉。
这套机制,就是切换的执行阶段。之前讲过“谁在决定换基站”——测量报告和A3事件如何触发判决,那是切换的“什么时候走”问题;本文讲判决之后的事:信令怎么跑、数据怎么不丢、失败了怎么救。这三个问题合在一起,才是移动性管理真正的技术含量。
先想清楚为什么切换难。
手机和基站的空口连接是一对一的:你不可能同时和两个小区保持RRC连接。所以空口层面,切换必然是“先断后建”(break-before-make)——这是硬切换。
但数据流是连续的:对方说话的声音、正在播放的视频流,数据包一刻不停地从核心网涌向你。核心网并不知道你在移动,它只认一条固定的GTP隧道,隧道终点指向某个基站。切换瞬间,如果隧道还指着旧基站,而你已经跑去了新基站,会发生什么?
所以切换要同时答对三道题:
5G的答案是一套精密的“三段式接力”:准备、执行、完成,每一段解决一道题。
以最常见的同频站间切换(Xn切换,两个基站之间有直连接口)为例,完整时序如下:
sequenceDiagram
participant UE as 手机
participant S as 源gNB
participant T as 目标gNB
participant C as 核心网
UE->>S: 测量报告(A3事件满足)
S->>S: 切换判决
S->>T: Handover Request(搬上下文)
T->>T: 准入控制与预留资源
T->>S: Handover Request Ack
Note over S,T: 账本交接与数据前转窗口开启
S->>UE: RRCReconfiguration(切换命令)
Note over UE,S: 手机断开源小区
UE->>T: 专用前导码随机接入
T->>UE: 随机接入响应+上行授权
UE->>T: RRCReconfigurationComplete
T->>C: Path Switch Request
C->>C: 下行GTP隧道改指向目标站
C->>T: Path Switch Ack
T->>S: UE Context Release
S->>S: 释放源站资源
逐段拆开看。
手机持续测量服务小区和邻区的参考信号功率(RSRP)。当邻区质量比服务小区好出一个偏置(A3偏置),并且这种“反超”持续了一段时间(触发时间TTT),手机才上报测量报告。源基站据此决定切换。这两个参数是防乒乓切换的关键,后面调试部分细讲。
触发条件的直觉化表达:
$$M_n > M_s + O_{A3} + H \quad \text{持续 } TTT$$
其中 $M_n$ 是邻区测量值,$M_s$ 是服务小区测量值,$O_{A3}$ 是偏置,$H$ 是迟滞量。
源基站做出决定后,不是直接命令手机走,而是先通过站间接口(Xn)给目标基站发一条 Handover Request,里面装着这部手机的完整上下文:安全密钥参数、QoS承载信息、无线能力、PDCP/RLC层状态。目标基站收到后先做准入控制——我这块资源够不够接纳你?够的话预留好,然后回 Handover Request Acknowledge,并附上一个“透明容器”——里面是一段目标基站替它写好、要通过源基站转交给手机的切换命令。
为什么要这么绕?两个原因:
源基站把切换命令(一条 RRCReconfiguration 消息)发给手机。手机收到后立刻做三件事:
同时手机启动 T304定时器——切换必须在这段时间内完成,否则判为切换失败(后面讲救生通道)。成功后手机向目标基站回 RRCReconfigurationComplete,空口侧换台结束。
这段空口中断时间有多长?大约等于一次专用随机接入加一次调度,量级在几毫秒到几十毫秒。对语音来说,几十毫秒的静音人耳几乎无感;对TCP连接来说,靠重排序和重传兜底,也不至于断链。
手机到了新站,但核心网的下行GTP隧道还指着旧站。此时目标基站向核心网(AMF,再转给用户面功能UPF)发 Path Switch Request:“下行隧道以后改发我这”。核心网改完隧道端点,回确认。最后目标基站通知源基站释放上下文,源站清仓退房。切换正式闭环。
现在回答最关键的问题:切换窗口期,正在飞的数据包怎么办?
先看下行。切换判决生效后、手机还没完成换台的这几百毫秒里,核心网不知道手机要动,数据包依然源源不断涌向源基站。源基站对这些包分两类处理:
怎么转交才不会丢、不会重?靠一条专门的消息:SN状态转移(SN Status Transfer)。源基站在手机已经成功接入目标小区时,通过Xn把一本“账”抄给目标基站,账上写着:
“PDCP序号到SN=1035为止,手机已按序收齐;SN=1036、1038我这里还压着没发出去;SN=1037发出去了但手机没确认。”
目标基站拿到这本账,就精确知道从哪个序号开始接管。1036之前的包没人再提,1036之后的包一个不落。这就是无损切换的理论基础:交接的不是数据本身,而是数据的状态——账对上了,接力就没有缝。
类比一下:快递驿站交接班。老店员不会把一屋子快递重新数一遍,他只是把签收单抄给新店员:“收到1035号为止,1036和1038在货架上,1037在配送途中没签收。”新店员照单接管,一个包裹都不会两送或漏送。
账本交接解决“从哪个序号开始管”,但那些压在源站缓冲区里的在途包,以及切换窗口期新到达源站的包,还得物理地送到目标站去。这就是数据前转(Data Forwarding)。
切换准备完成后,源站开启一条到目标站的用户面前转隧道(Xn用户面接口)。从这一刻起形成了一个精妙的双活窗口:
flowchart TD
UPF["UPF 核心网锚点"] -->|"旧隧道 还指向源站"| SG["源gNB 暂存与转发"]
SG -->|"前转隧道 Xn-U"| TG["目标gNB 待发缓冲"]
TG -->|"按序下发"| UE["手机"]
UE -->|"上行新数据"| TG
TG -->|"上行前转回旧路"| SG
SG -->|"经旧隧道上行"| UPF
下行方向:核心网的新包继续发到源站,源站把它们原封不动地塞进前转隧道送往目标站;目标站把这些前转来的包和账本对齐,按序号排好队再发给手机——所以尽管包走了一条“绕路”,手机收到的依然是连续、有序的字节流。
上行方向是对称的:手机换台后,上行数据直接发给目标站;但在核心网完成路径转换之前,核心网的“上行接收地址”还是源站,所以目标站把收到的上行包反向前转回源站,由源站走旧隧道送往核心网。等路径切换完成,上下行才真正改走新路。
这里有个容易被误解的点:双活的是网络侧的数据通路,不是空口连接。手机依然只连一个小区。很多人以为“软切换”意味着手机同时和两个基站收发——那是3G CDMA时代的做法;4G/5G里,切换是硬的,软的是数据面。一句话总结这套设计哲学:先建后断——前转隧道先建好、账本先交好,然后手机才断开旧小区。断的那一下,只是空口;数据的路,从来就没断过。
切换不是每次都成功。最典型的失败场景:切换命令下发后,手机迟迟没能完成对目标小区的随机接入——比如目标小区信号突然恶化、专用前导码受到干扰、或者命令里给的接入参数已过时。这时 T304定时器超时,手机触发切换失败流程:
flowchart TD
A["收到切换命令"] --> B["向目标小区接入"]
B --> C{"T304内成功?"}
C -->|"是"| D["切换完成"]
C -->|"否"| E["切换失败"]
E --> F["回退信号可用的小区"]
F --> G["发起RRC重建立"]
G -->|"成功"| H["恢复连接 可能回旧站"]
G -->|"失败"| I["掉话 转空闲重选"]
D --> J["路径转换与资源释放"]
注意回退逻辑的聪明之处:手机失败后不会傻等,它回退到测量记录里信号还可用的小区(往往就是源小区,因为刚才还能收到它的切换命令)发起RRC重建立。重建立时手机带着旧小区的身份信息,目标基站可以通过站间取回手机上下文,快速恢复连接——底层承载可能要重建,但至少不用从拨号重来。如果重建立也失败,那才真正掉话,手机转入空闲态重新搜网选区。
这条救生通道对现网意义重大:切换失败率是KPI里最敏感的指标之一,而其中相当一部分失败被重建立悄悄“救活”了,用户只觉得卡了一下,没掉话。
前面讲的都是两个基站之间有直连接口(Xn)的场景。但现实里有些情况必须绕道核心网:
这时流程变为NG切换:源基站向核心网发“切换请求”,由AMF向目标侧下发切换命令,命令再原路返回经源站发给手机。信令多绕一圈,准备时延更长;数据前转也通常走“间接前转”——先经核心网中转,再落到目标站。
| 维度 | Xn切换 | NG切换 |
|---|---|---|
| 信令路径 | 源站直达目标站 | 经核心网(AMF)中转 |
| 典型场景 | 邻站有Xn、同AMF | 无Xn、跨AMF、跨系统 |
| 准备时延 | 更快 | 多一跳核心网信令 |
| 数据前转 | 直接前转(站间直连)为主 | 通常间接前转(经核心网绕行) |
| 4G对应概念 | X2切换 | S1切换 |
两代网的对应关系是干净利落的:X2之于Xn、S1之于NG、MME之于AMF。5G把4G的切换框架原样继承,只是把角色换了名字——因为这套“账本交接+数据前转”的架构经过LTE十几年现网验证,被证明是对的。
调参时。切换类投诉(“高铁上卡顿”“开车时断流”)十有八九落在这几个参数上:
| 参数 | 管什么 | 调太小 | 调太大 |
|---|---|---|---|
| A3偏置 | 邻区要好多dB才报 | 乒乓切换,信令风暴 | 抱着弱信号不撒手,拖到掉话 |
| 迟滞 | 防测量抖动 | 同上 | 切换变迟钝 |
| 触发时间TTT | 条件持续多久才算数 | 高铁场景误切 | 高速移动时切晚了 |
| T304 | 允许多久完成接入 | 目标站明明正常也判失败 | 失败后白等,用户体感卡顿加重 |
看信令时。抓核心网或站间信令,切换问题就按本文的时序对号入座:手机上报了测量报告但源站没下发命令→邻区漏配或判决参数问题;命令发了但T304超时→目标小区无线环境或准入拒绝;Path Switch卡住→核心网侧问题。一条一条排除,比盲目重启有效得多。
三个常见陷阱:
Q: 切换和重选的区别是什么? A: 重选发生在空闲态——手机没连接,只是按规则挑个信号好的小区“驻扎”,不涉及数据,也不需要信令协商;切换发生在连接态,手机正在通信,所以要有一整套“账本交接+数据前转”来保住数据流。一个管“住在哪”,一个管“搬家时行李怎么办”。
Q: SN Status Transfer里转移的“SN”是什么? A: PDCP层的序列号(Sequence Number),每个数据包的“运单号”。账本上记的是哪些运单已签收、哪些在途、哪些丢了,目标基站据此精确接管,做到不重不漏。它是无损切换的核心凭据。
Q: 切换瞬间的几十毫秒中断,视频为什么不卡? A: 上层有缓冲。视频播放器通常预缓冲几秒的内容,几十毫秒的空口中断被缓冲垫掉了;TCP业务靠确认与重传机制兜底。真正敏感的是时延敏感型业务(实时游戏、工业控制),这正是5G引入换站优化和双连接让中断进一步压缩的原因之一。
Q: 数据前转期间,会不会同一个包发两遍? A: 有可能发生短暂的“前转包与改道后的直达包并存”,但这正是账本(SN状态转移)存在的意义:目标基站按序号去重、排序后再发给手机。PDCP层向手机递送的永远是按序、不重复的字节流——重复被消化在缓冲区里,用户无感。
Q: 为什么4G/5G不用3G那种软切换了? A: 软切换(同时连多个小区)是CDMA同频体制的产物,抗快衰落效果好,但代价是资源开销大、干扰复杂。4G/5G改为正交多址(OFDMA)后,用“硬切换+数据前转”就能做到准无损,且频谱效率更高——架构上用数据面的复杂度,换掉了空口面的复杂度。
说明:本文所涉为教科书级稳定原理,关键流程(信令时序、SN状态转移、数据前转、路径转换)为4G/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 等场景全覆盖。
