首页 › deep-tech › 5G切换全流程:信令时序图详解

5G切换全流程:信令时序图详解

你正在用手机看视频,从客厅走到阳台。屏幕上的画面一顿都没卡——背后的基站已经悄悄完成了切换(Handover),把你从信号变弱的源基站交给了信号更好的目标基站。这一切发生在几十毫秒内,你毫无感知。

这就是移动通信最核心的能力之一:切换。今天我们拆解5G切换的完整信令流程,看两条路径——Xn直连和N2绕行——各自的信令时序如何展开。

一、切换的本质:一次"搬家"

先打个比方。你租了一间房(源基站),但因为工作变动要搬到新房(目标基站)。你需要:

  1. 提前看房:新房有没有空位?能不能住?(切换准备)
  2. 搬家:把行李从旧房搬到新房,一件都不能丢(切换执行)
  3. 改地址:告诉快递公司以后包裹送新地址(切换完成)

5G切换的三个阶段——准备(Preparation)、执行(Execution)、完成(Completion)——完美对应这个流程。

二、5G切换的两条路

5G有两套切换"导航系统",走不同的路:

维度 Xn切换 N2切换
路径 源gNB → 目标gNB(直达) 源gNB → AMF → 目标gNB(绕行)
核心网参与 仅最后改路径时参与 全程参与
时延 较低(~20-40ms) 较高(~40-80ms)
前提 两个gNB之间有Xn接口 始终可用(N2接口必然存在)
适用场景 同AMF区域内、有Xn连接 跨AMF、无Xn连接、异厂商
graph LR
    subgraph Xn切换路径
        S1[源gNB] -->|Xn直连| T1[目标gNB]
        T1 -->|最后阶段| AMF1[AMF]
    end
    subgraph N2切换路径
        S2[源gNB] -->|N2| AMF2[AMF]
        AMF2 -->|N2| T2[目标gNB]
    end
    style S1 fill:#4CAF50,color:#fff
    style T1 fill:#2196F3,color:#fff
    style AMF1 fill:#FF9800,color:#fff
    style S2 fill:#4CAF50,color:#fff
    style T2 fill:#2196F3,color:#fff
    style AMF2 fill:#FF9800,color:#fff

设计哲学:Xn切换是"能直连就直连"——基站之间直接协商,减少核心网负担;N2切换是"兜底方案"——当直连不可用时,通过核心网中转,保证切换总能完成。

三、Xn切换信令全流程

Xn切换是5G中最常见的切换方式。下面是完整的信令时序图:

sequenceDiagram
    participant UE as UE(手机)
    participant Src as 源gNB
    participant Tgt as 目标gNB
    participant AMF as AMF
    participant SMF as SMF
    participant UPF as UPF

    Note over UE,UPF: === 切换准备阶段 ===
    UE->>Src: ① 测量报告<br/>Measurement Report
    Note right of Src: 源gNB决定触发切换<br/>选择目标gNB
    Src->>Tgt: ② HANDOVER REQUEST<br/>(Xn接口)
    Note right of Tgt: 目标gNB执行准入控制<br/>预留无线资源
    Tgt->>Src: ③ HANDOVER REQUEST ACKNOWLEDGE<br/>(含RRC Reconfiguration)

    Note over UE,UPF: === 切换执行阶段 ===
    Src->>UE: ④ RRC Reconfiguration<br/>(含目标小区信息)
    Note right of UE: UE开始切换到目标小区
    Src->>Tgt: ⑤ SN STATUS TRANSFER<br/>(PDCP序列号状态)
    Src->>Tgt: ⑥ 数据转发<br/>(缓存的数据包)
    UE->>Tgt: ⑦ RRC Reconfiguration Complete
    Note right of Tgt: UE已成功接入目标小区

    Note over UE,UPF: === 切换完成阶段 ===
    Tgt->>AMF: ⑧ PATH SWITCH REQUEST<br/>(请求改路径)
    AMF->>SMF: ⑨ Nsmf_PDUSession_Update
    SMF->>UPF: ⑩ N4 Session Modification<br/>(更新DL F-TEID)
    UPF->>Tgt: ⑪ 下行数据直送目标gNB
    SMF->>AMF: ⑫ Nsmf_PDUSession_Update Response
    AMF->>Tgt: ⑬ PATH SWITCH REQUEST ACK
    Tgt->>Src: ⑭ UE CONTEXT RELEASE<br/>(释放源gNB资源)

逐条信令解读

① 测量报告:手机根据基站下发的测量配置(邻区列表、事件触发条件),检测到邻区信号质量满足切换条件(如A3事件:邻区比服务小区好一个偏移量),向源基站上报测量报告。

② HANDOVER REQUEST:源gNB通过Xn接口向目标gNB发出切换请求。这条消息携带了UE的能力信息、已建立的PDU会话信息、安全上下文等关键信息。注意,这条消息不经过核心网,直接在两个基站之间传递。

③ HANDOVER REQUEST ACKNOWLEDGE:目标gNB执行准入控制(Admission Control)——检查自己有没有足够的PRB资源、能不能接纳这个UE的所有QoS流。如果可以,就回复ACK,消息里包含了给UE的RRC重配置信息(新小区的PCI、频率、随机接入 preamble 等)。

④ RRC Reconfiguration:源gNB把目标gNB准备好的RRC重配置消息转发给UE。这条消息相当于给UE发了一张"入住通知书",告诉它新小区的地址和门禁密码。

⑤ SN STATUS TRANSFER:这是一个极其关键但常被忽略的步骤。源gNB把自己维护的PDCP序列号状态传给目标gNB,包括:

字段 含义
DL COUNT 下一个待发送的下行PDCP序列号
UL COUNT 下一个期望接收的上行PDCP序列号
UL Reception Status 位图,标记哪些上行PDCP SDU已收到

这保证了切换后PDCP序列号的连续性,是实现无损切换的核心。

⑥ 数据转发:源gNB把缓冲区中尚未成功发送给UE的下行数据包,以及UE尚未确认的上行数据包,转发给目标gNB。根据PDCP配置的不同:

⑦ RRC Reconfiguration Complete:UE成功接入目标gNB后,发送这条确认消息。从源gNB发出RRC Reconfiguration到UE在目标gNB完成接入,这段中断时间(gap)通常在10-30ms量级。

⑧-⑬ 路径切换:目标gNB通过N2接口通知AMF,AMF协调SMF更新UPF的下行隧道端点,使后续下行数据直接送到目标gNB。

⑭ UE CONTEXT RELEASE:路径切换完成后,目标gNB通过Xn接口通知源gNB释放UE上下文,源gNB回收所有为该UE分配的资源。

四、N2切换信令全流程

当两个gNB之间没有Xn接口(不同厂商设备未互通、跨AMF区域、或Xn链路故障),就需要走N2切换——所有信令都经过核心网中转:

sequenceDiagram
    participant UE as UE(手机)
    participant Src as 源gNB
    participant sAMF as 源AMF
    participant tAMF as 目标AMF
    participant Tgt as 目标gNB
    participant SMF as SMF
    participant UPF as UPF

    Note over UE,UPF: === 切换准备阶段 ===
    UE->>Src: ① 测量报告
    Note right of Src: 源gNB决定触发N2切换
    Src->>sAMF: ② HANDOVER REQUIRED<br/>(N2接口,含目标gNB ID)

    alt 同AMF
        sAMF->>Tgt: ③ HANDOVER REQUEST<br/>(N2接口)
    else 跨AMF
        sAMF->>tAMF: Namf_Communication_CreateHOContext
        tAMF->>Tgt: ③' HANDOVER REQUEST
    end

    Tgt->>sAMF: ④ HANDOVER REQUEST ACKNOWLEDGE
    sAMF->>Src: ⑤ HANDOVER COMMAND

    Note over UE,UPF: === 切换执行阶段 ===
    Src->>UE: ⑥ RRC Reconfiguration
    Note right of Src: 源gNB通过核心网<br/>建立间接数据转发隧道
    UE->>Tgt: ⑦ RRC Reconfiguration Complete

    Note over UE,UPF: === 切换完成阶段 ===
    Tgt->>sAMF: ⑧ HANDOVER NOTIFY
    sAMF->>SMF: ⑨ PDU Session Update
    SMF->>UPF: ⑩ N4修改(切换下行路径)
    sAMF->>Src: ⑪ UE CONTEXT RELEASE COMMAND
    Src->>sAMF: ⑫ UE CONTEXT RELEASE COMPLETE

N2切换的关键差异

② HANDOVER REQUIRED vs Xn的HANDOVER REQUEST:在N2切换中,源gNB不是直接找目标gNB,而是向自己的AMF发出"我需要切换"的请求。消息中携带目标gNB的标识,由AMF来判断目标gNB是否归自己管。

跨AMF的额外步骤:如果目标gNB属于另一个AMF,源AMF需要通过Namf接口找到目标AMF,由目标AMF向目标gNB发出切换请求。这就是N2切换比Xn切换慢的主要原因——多了至少两次额外的网元间通信。

间接数据转发隧道:在Xn切换中,数据在两个gNB之间直接转发;在N2切换中,数据可能需要通过UPF建立间接转发隧道(Indirect Data Forwarding),路径更长。

对比项 Xn切换 N2切换
准备阶段信令跳数 1跳(源→目标) 2-3跳(源→AMF→目标,可能更多)
数据转发路径 直接(Xn接口) 直接或间接(经UPF)
中断时间 10-30ms 20-60ms
切换失败恢复 RRC Reestablishment RRC Reestablishment
信令开销 小 大

五、切换的三个阶段深度解析

5.1 准备阶段:谁决定切换?

切换决策由源gNB做出,不是手机决定的。手机只负责上报测量报告,源gNB综合以下因素做判断:

$$\text{触发切换} \iff M_{\text{邻区}} - M_{\text{服务}} > \text{Hys} + \text{Off}$$

其中 $M_{\text{邻区}}$ 是邻区测量量(RSRP/RSRQ/SINR),$M_{\text{服务}}$ 是服务小区测量量,Hys是迟滞值,Off是偏移量。

为什么用迟滞? 防止手机在两个小区边界来回切换(乒乓效应)。迟滞值设得太大,切换太慢可能导致掉话;设得太小,乒乓切换浪费资源。

准入控制:目标gNB收到切换请求后,需要检查自己有没有能力接纳这个UE。考虑因素包括: - 剩余PRB资源是否满足UE所有QoS流的需求 - PUCCH/SRS资源是否充足 - 硬件处理能力是否足够

5.2 执行阶段:数据如何不丢?

这是切换中最精妙的部分。核心问题是:切换瞬间,正在传输的数据包怎么办?

graph TB
    subgraph 数据转发机制
        A[UPF下行数据] --> B[源gNB缓冲区]
        B --> C{哪些包需要转发?}
        C -->|已发但未ACK| D[PDCP SDU + 序列号]
        C -->|尚未发送| E[PDCP SDU]
        D --> F[目标gNB]
        E --> F
        F --> G[按序发给UE]
    end

    subgraph SN状态转移
        H[源gNB PDCP状态] --> I[DL COUNT: 下一个下行SN]
        H --> J[UL COUNT: 下一个上行SN]
        H --> K[UL Bitmap: 已收到的上行包]
        I --> L[目标gNB]
        J --> L
        K --> L
    end

    style D fill:#FF5722,color:#fff
    style E fill:#FF9800,color:#fff
    style F fill:#4CAF50,color:#fff

关键设计:5G的PDCP层负责切换时的数据完整性。源gNB在切换前把PDCP序列号状态(SN Status)发给目标gNB,这样目标gNB就能知道:

  1. 从哪个序列号开始发下行数据
  2. 上行期望收到哪个序列号
  3. 哪些上行包已经收到了,不用重传

这就是为什么5G切换能做到零丢包——不是"基本不丢",而是真的一个包都不丢(对于RLC-AM承载)。

5.3 完成阶段:路径怎么改?

切换完成后,下行数据路径需要从"UPF→源gNB"切换到"UPF→目标gNB"。这个路径切换涉及:

  1. 目标gNB向AMF发Path Switch Request
  2. AMF通知SMF更新PDU会话
  3. SMF向UPF发N4会话修改,更新下行F-TEID(隧道端点标识)
  4. UPF开始把下行数据发往新的隧道端点

从UPF的角度看,就是把N3隧道的出口从源gNB搬到了目标gNB。

六、安全上下文的传递

切换过程中,安全密钥也需要更新。5G使用垂直密钥派生机制:

$$K_{\text{target}} = KDF(K_{\text{source}}, \text{target PCI} | \text{ARFCN})$$

源gNB利用当前的密钥 $K_{\text{source}}$,结合目标小区的物理小区标识(PCI)和频点(ARFCN),通过密钥派生函数(KDF)计算出目标小区的新密钥。

为什么不直接用同一个密钥? 防止"后向安全性"问题。如果目标gNB被攻破,不应该能反推出之前在其他基站使用的密钥。

七、站内切换:最简单的场景

上面讨论的都是站间切换(Inter-gNB)。还有一种更简单的站内切换(Intra-gNB)——源小区和目标小区属于同一个gNB。这种情况下:

信令流程简化为:测量报告 → gNB内部资源分配 → RRC Reconfiguration → UE接入新小区 → 完成。

八、实战连接:工程师调试要点

8.1 如何判断走的是Xn还是N2切换?

看信令抓包: - 如果看到XnAP消息(如 XnAP Handover Request),走的是Xn切换 - 如果看到NGAP消息(如 NGAP Handover Required),走的是N2切换

8.2 切换失败怎么排查?

常见的切换失败原因和排查思路:

失败原因 排查方法 关键指标
目标准入拒绝 检查目标gNB的负载和资源利用率 PRB利用率、QoS流拒绝率
UE随机接入超时 检查目标小区的覆盖和干扰 RSRP、SINR、preamble冲突率
切换命令超时 检查源小区覆盖是否太差 源小区RSRP < -120dBm
路径切换失败 检查N2/N3隧道配置 Path Switch失败计数器
乒乓切换 检查迟滞值和触发时间配置 切换次数/时间分布

8.3 数据转发隧道没有建立

如果Xn切换后,数据转发隧道没建好,会出现:UE在目标gNB成功接入,但数据中断。排查方法:检查Xn接口的数据转发GTP-U隧道是否正确配置,F-TEID是否匹配。

8.4 一个常见陷阱

误把站内切换当成站间切换:某些厂家的基站内部会把一个物理站分成多个逻辑gNB,导致站内切换也走Xn流程。这种情况不影响功能,但会增加不必要的信令开销。

九、切换参数调优的核心思路

切换性能取决于几个关键参数的配合:

参数 作用 过大的影响 过小的影响
迟滞值(Hysteresis) 切换触发门限的缓冲 切换太晚,可能掉话 乒乓切换
触发时间(TTT) 持续满足条件多久才触发 切换延迟增加 误触发
偏移量(Offset) 调整邻区优先级 某些邻区总不被选择 过早切换到弱小区
源小区最低门限 低于此值才允许切出 可能在强信号时也切 信号太差时来不及切

调优的核心逻辑是:在"切早了浪费"和"切晚了掉话"之间找平衡。

常见问题

Q1: Xn切换和N2切换能互相替代吗?

A: 功能上可以。N2切换是兜底方案,任何Xn切换能做的,N2切换都能做。但Xn切换更优(更低时延、更少信令开销),所以网络规划时会尽量让相邻gNB建立Xn连接。实际网络中,90%以上的切换走Xn。

Q2: 切换时手机会断网吗?

A: 会短暂中断。从源gNB发出RRC重配置到UE在目标gNB完成随机接入,这段时间(gap)内手机无法收发数据。Xn切换的中断时间约10-30ms,N2切换约20-60ms。对于视频流等应用(有缓冲),用户基本无感知;对于实时游戏,可能有几十毫秒的卡顿。

Q3: 切换失败后会怎样?

A: 触发RRC重建(RRC Reestablishment)。UE尝试在某个合适的小区重新建立RRC连接,如果成功,核心网会恢复之前的PDU会话;如果失败,UE进入空闲态,需要重新发起服务请求。RRC重建过程中也会有短暂中断。

Q4: 为什么有时需要走间接数据转发隧道?

A: N2切换中,如果源gNB和目标gNB之间没有直接的Xn接口,就无法建立直接的数据转发隧道。这时需要通过核心网(UPF)建立间接隧道:源gNB → UPF → 目标gNB。路径更长,但保证了数据不丢。

Q5: 同一个厂商的基站之间一定走Xn切换吗?

A: 不一定。即使两个gNB是同厂商的,如果它们之间没有配置Xn接口(比如分属不同的网络管理域),或者Xn链路故障,仍然会退回到N2切换。Xn接口的建立需要两个gNB互相知道对方的传输层地址(即IP+端口),这是网络规划时配置的。

参考来源

  1. free5GC - Introduction of Xn and NG (N2) based handover — 开源5G核心网项目对Xn/N2切换的技术解析
  2. 华为云社区 - 5G信令流程:gNB切换(Xn/N2 Handover)管理 — Xn和N2切换的详细信令流程对比
  3. 3glteinfo - 5G NR N2 Handover Procedure — N2切换完整信令流程图
  4. Telecom Trainer - 5G SA Xn Handover Call flow — Xn切换的详细信令抓包分析
  5. 5G/6G Academy - 5G Handover Types: Xn, N2, and Inter-RAT Handover Explained — 切换类型对比与时延分析

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