首页 › deep-tech › 切换流程:边走边聊不断线之谜

你正坐在高铁上和家人视频通话,时速 350 公里。窗外的基站一座座掠过,你的手机每隔几秒就要"搬家"一次,换一个新基站来伺候它。但你几乎感觉不到——画面没卡,声音没断。这件"理所当然"的小事背后,藏着移动通信里最精密的协同动作之一:切换(Handover)。

前面我们讲过"测量事件 A3:切换的扳机"——那是网络判断"该不该换"的依据。今天我们要接着讲:扳机扣下之后,到底发生了什么?一条会话是如何从一个基站"无损地"搬到另一个基站的?为什么工程师要把这件事拆成那么多个步骤?读完这篇,你就能在看信令抓包时,一眼看懂每一条消息"为什么在这里出现"。

一、切换要解决的物理本质

先理解一个残酷的物理事实:信号强度随距离衰减。自由空间路径损耗(FSPL)的公式是:

$$ \text{FSPL(dB)} = 20\log_{10}(d) + 20\log_{10}(f) + 20\log_{10}\left(\frac{4\pi}{c}\right) $$

距离 $d$ 翻倍,损耗就增加 6 dB。对一个运动中的手机来说,"离源基站越来越远、离目标基站越来越近"是同时发生的。如果不切换,源基站信号会弱到无法解调,连接就断了;但如果切得太早,目标还没准备好,又会掉话。切换的本质,就是在"别太晚"和"别太早"之间,挑一个毫秒级的窗口,把一条正在进行的连接整体搬迁。

这里有个关键认知:切换不是"先断开旧的、再建立新的",而是先在目标侧把一切准备好,再让 UE 一跃而过。这就是为什么切换被设计成三个阶段。

flowchart LR
    subgraph P1["准备阶段 Preparation"]
        A1["源gNB判决"] --> A2["向目标申请资源"]
        A2 --> A3["目标接纳控制"]
        A3 --> A4["生成切换命令"]
    end
    subgraph P2["执行阶段 Execution"]
        B1["下发RRC重配置"] --> B2["UE断开源<br/>接入目标"]
        B2 --> B3["随机接入目标小区"]
    end
    subgraph P3["完成阶段 Completion"]
        C1["路径切换"] --> C2["释放源侧资源"]
    end
    P1 --> P2 --> P3

    style P1 fill:#e8f5e9
    style P2 fill:#fff3e0
    style P3 fill:#e3f2fd

为什么要拆成三段?因为准备阶段完全不占用 UE 的空口时间。在 UE 还在舒舒服服地跟源基站通信时,源基站和目标基站已经在后台把目标侧的无线资源、传输隧道、PDCP 上下文都准备好了。等一切就绪,才给 UE 下达"现在跳"的指令。这样 UE 真正"两不着家"的窗口被压缩到最小——这就是无缝切换的设计哲学。

二、Xn 切换:基站之间直接对话

5G 里基站(gNB)之间有一条专用接口叫 Xn 接口。只要源基站和目标基站之间有 Xn 连接,切换就走这条路——这是现网最常见、最快的方式。它的核心思想是:核心网(AMF/UPF)在准备阶段根本不参与,只等切换做完了再"改个收件地址"。

sequenceDiagram
    participant UE
    participant S as 源gNB
    participant T as 目标gNB
    participant AMF
    participant UPF

    UE->>S: ① 测量报告 (A3事件)
    Note over S: 判决:触发切换
    S->>T: ② Handover Request (XnAP)
    Note over T: 准入控制+资源预留
    T-->>S: ③ Handover Request Ack
    Note over S: 生成切换命令(含目标配置)
    S->>S: ④ SN Status Transfer (内部/并行)
    S->>UE: ⑤ RRC Reconfiguration (切换命令)
    par 数据转发
        S->>T: ⑥ 转发未发送的下行数据 (Xn-U)
    and
        UE->>T: ⑦ 随机接入目标小区
    end
    UE->>T: ⑧ RRC Reconfiguration Complete
    T->>AMF: ⑨ Path Switch Request
    Note over AMF,UPF: 切换 N3 隧道到目标
    AMF-->>T: Path Switch Response
    T->>S: ⑩ UE Context Release
    Note over S: 释放源侧资源

逐步拆解,重点是每一步为什么要在那个位置:

三、SN Status Transfer 与数据转发:为什么能做到"无损"

这是很多新手最容易忽略、却最体现工程智慧的一环。考虑一个问题:切换瞬间,UE 和源基站之间可能还有一批已发送但未被确认的下行 PDCP 包,以及一批已发但未被确认的上行包。如果直接抛弃,就是丢包;如果让目标从头发,就是重复。怎么办?

答案分两手:

第一手——SN Status Transfer(序列号状态转移)。 源基站会在生成切换命令后、空口下发前,向目标发一条 SN Status Transfer 消息,里面带着每个 DRB(数据无线承载)的计数状态:

$$ \text{DL}{\text{next}} = \text{TX_NEXT}, \quad \text{UL} $$}^{*}} = \text{当前已交付给上层的下一个SN

通俗讲就是告诉目标:"下行这边,UE 已经成功收到的包到了序号 $N$,下一个该从 $N+1$ 发;上行这边,UE 下一个该发的包序号是 $M$。" 目标基站拿到这些计数,就能精确地从断点续传,既不漏发也不重发。这就是 5G 切换能做到无损(lossless)的根本——不是因为信号有多强,而是因为计数器被搬过去了。

第二手——数据转发(Data Forwarding)。 在路径切换完成前,核心网还在往源基站发下行数据。源基站把这些"自己已经来不及发给 UE"的包,通过 Xn-U 隧道转投给目标,由目标代发。

flowchart LR
    UPF -->|"N3(旧)|未切换"| S["源gNB"]
    S -->|"Xn-U 数据转发"| T["目标gNB"]
    T -->|"空口"| UE
    UPF -.->|"N3(新)|Path Switch后"| T
    S -.->|"SN Status Transfer"| T

    style S fill:#ffebee
    style T fill:#e8f5e9

注意时序上的精妙:SN Status Transfer 是在切换命令下发前就发出的(因为一旦 UE 收到命令随时可能跳走,源基站必须先把账本移交),而数据转发在 UE 跳走的同时并行进行。两者一前一后,保证了那个"两不着家"的窗口里既不丢包、目标也能立刻有数据可发。

四、N2 切换:核心网当中间人

如果源、目标之间没有 Xn 接口(比如不同厂商设备首次对接、或跨 AMF 区域),就只能走 N2 切换。这时候 AMF 充当"中间人"——源基站不认识目标基站,所有准备消息都要经 AMF 中转。

sequenceDiagram
    participant UE
    participant S as 源gNB
    participant AMF
    participant T as 目标gNB

    UE->>S: ① 测量报告
    S->>AMF: ② Handover Required (N2)
    Note over AMF: 选择目标gNB/选择SMF路径
    AMF->>T: ③ Handover Request (N2)
    Note over T: 准入控制
    T-->>AMF: ④ Handover Request Ack
    AMF-->>S: ⑤ Handover Command (N2)
    S->>UE: ⑥ RRC Reconfiguration
    UE->>T: ⑦ 随机接入 + RRC Reconfig Complete
    T->>AMF: ⑧ Handover Notify
    Note over AMF: 切换N3用户面路径
    AMF->>S: ⑨ UE Context Release Command
    S-->>AMF: UE Context Release

N2 切换和 Xn 切换的执行阶段(UE 跳跃那一下)几乎一样,区别全在准备阶段:

所以现网里默认首选 Xn 切换,只有 Xn 不可用时才回退到 N2。这背后的设计哲学是:能 RAN 自己解决的事,就别麻烦核心网——减少 AMF 的信令负荷,也降低端到端时延。

五、两种切换的工程对比

维度 Xn 切换 N2 切换
准备阶段接口 gNB↔gNB 直连(XnAP) gNB→AMF→gNB(NGAP)
核心网参与准备 否(仅路径切换时找 AMF) 是,全程中转
信令条数 少(约 6 条核心) 多(约 10 条)
切换时延 低(典型 <10ms 准备) 较高
数据转发路径 Xn-U 直转 可经核心网转发
现网优先级 首选 兜底(无 Xn 时)
谁发"路径切换" 目标 gNB 发 Path Switch AMF 收到 Notify 后切换
切换阶段 关键动作 谁主导 UE 是否参与
准备 资源申请、准入控制、生成命令、SN 状态转移 源→目标 否(用户无感)
执行 下发命令、数据转发、随机接入 UE 跳跃 是(唯一中断窗口)
完成 路径切换、源侧资源释放 目标→核心网 否

六、演进:条件切换(CHO)解决"信令跑不过车"

传统切换有个老大难:源基站下完切换命令后,UE 要花时间随机接入目标。这期间如果信号继续恶化(比如高铁冲进隧道),UE 可能两边都联系不上——切换失败、掉话。Rel-16 引入了条件切换(CHO,Conditional Handover):

源基站提前把多个候选目标小区的配置一起发给 UE,并附带触发条件。UE 不必等源基站再下命令,一旦某个候选满足条件,就自行触发切换。这把"集中决策"变成了"分布式触发",从根上降低了高速场景下的切换失败率。理解了前文的三阶段哲学,你就明白 CHO 的本质:它把"准备阶段"做得更超前、更冗余,把"判决权"前移到 UE 侧,以冗余换可靠性。

七、实战连接:工程师在哪里用到这些知识

1. 切换失败定位。 抓到 UE Context Release,但没抓到 RRC Reconfiguration Complete,说明 UE 没成功接入目标——重点查目标侧随机接入(参数、SSB 波束对齐)和准入控制结果。

2. 掉话与乒乓。 UE 在两基站间反复横跳,往往不是切换流程问题,而是测量参数(迟滞 Hysteresis、迟延 Time-to-Trigger)配置不当——A3 事件的扳机太敏感。回到上一篇讲的"扳机"原理即可。

3. 数据面黑洞。 切换成功但用户感觉"卡顿一瞬",多半是路径切换/数据转发没跟上:检查 SN Status Transfer 是否正常、Xn-U 转发隧道是否建立。转发断了,那一瞬的下行包就进了黑洞。

常见调试陷阱:看到"切换时延大"就怪无线侧,其实常常是准备阶段 AMF 选 SMF/UPF 路径慢(N2 切换尤其明显)。区分时延来源——是准备慢还是执行慢——是排障的第一步。

常见问题

Q1:Xn 切换和 N2 切换,对用户体验有差别吗? A:单次切换几乎无感,两者执行阶段一样快。差别在准备时延和信令开销。N2 因绕 AMF,准备略慢、信令更多。现网默认走 Xn,仅无 Xn 时才 N2,所以大多数用户日常经历的几乎都是 Xn 切换。

Q2:为什么需要"数据转发"?UE 直接连目标、核心网重发不行吗? A:可以,但会丢包、重排。转发+SN 状态转移保证了目标从断点续传,既不丢也不重——这是"无损"的来源。若关掉转发,TCP 层虽能靠重传兜底,但时延和抖动会明显恶化,语音/游戏体验变差。

Q3:站内切换(同一 gNB 不同小区)走哪条? A:走 gNB 内部流程,连 Xn 都不经过——DU 之间由 CU 协调,准备阶段更短,是所有切换里最快、最轻量的。

Q4:条件切换(CHO)会不会浪费资源? A:会预留多个候选目标资源,确实有开销,但换来的是高速/高铁场景切换成功率的显著提升。它属于"以冗余换可靠",仅在易失败场景开启。

Q5:路径切换(Path Switch)和切换命令谁先谁后? A:切换命令在前(准备阶段末尾),路径切换在后(完成阶段)。因为必须先确认 UE 已成功在目标侧落地,AMF 才会把下行隧道改到目标——否则核心网数据会发到一个 UE 还没连上的基站。

参考来源

  1. 5G Handover — Devopedia — 5G 切换总览,含数据转发与准备/执行阶段说明
  2. 5G SA Inter-gNB Handover - Xn Handover — Techplayon — Xn 切换完整信令流程,含 SN Status Transfer 详解
  3. 5G Inter-gNB Handover and Data Forwarding — TelecomHall — 数据转发隧道与执行阶段时序
  4. 5G SN Status Transfer | XnAP Message — 3glteinfo — SN 状态转移消息字段与无损原理
  5. 5G 切换流程 — 知乎专栏 — Xn 切换中文信令流程图解
  6. 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学通信知识星球海报-扫码加入