在 LTE 与 NR 早期(R15)的传统切换(Legacy HO)中,切换决策权完全掌握在网络侧:UE 上报测量报告 → 源 gNB 判断 → 下发 HO Command → UE 执行。这是一条反应式(reactive)链路,所有判断都集中在"最后一刻"。当 UE 处于小区边缘、高速移动(高铁、车载)或 FR2 毫米波快衰落场景时,从测量上报到 HO Command 下发的这段时间内,源链路可能已严重恶化甚至 RLF,导致 HO Command 根本送不到 UE,触发切换失败与重建。
3GPP 在 Release 16 引入 Conditional Handover(CHO,条件切换),彻底改变了这一范式:网络提前完成目标小区准备,把切换命令和"执行条件"一并下发给 UE,UE 在源链路上继续工作并持续本地评估条件,一旦条件满足就自主发起切换执行。本质上,CHO 把"何时切"的决策权从网络侧下沉到更靠近无线环境的 UE 侧,把"切到哪、怎么准备"留给了网络侧。
TS 38.300 §9.2.3.2 给出的定义是:CHO 是指 UE 在一个或多个切换执行条件被满足时所执行的切换。 UE 在收到 CHO 配置后即开始评估执行条件,并在切换被执行(无论是 CHO 执行还是传统 HO 执行)后停止评估。
flowchart LR
subgraph Legacy["传统切换(R15) 决策链"]
A1[UE 上报 MR] -->|网络判断,易超时| A2[源 gNB 决策]
A2 --> A3[下发 HO Command]
A3 -->|链路可能已断| A4[执行切换]
end
subgraph CHO["条件切换(R16) 决策链"]
B1[源 gNB 提前准备] --> B2[下发 CHO 配置+条件]
B2 --> B3[UE 本地持续评估]
B3 -->|条件满足即时执行| B4[执行切换]
end
style A3 fill:#f5c2c2
style B4 fill:#c2e8c2
3GPP 为 CHO 定义了若干不可妥协的原则,这些原则是后续所有信令细节的设计动因:
condExecutionCond 中,绑定到一个测量事件(典型为 A3 或 A5)。下图刻画 TS 38.300 §9.2.3.2 中"AMF/UPF 均不变更"的标准 CHO 场景,准备与执行均不经 5GC。
sequenceDiagram
autonumber
participant UE
participant Src as 源 gNB
participant Tgt as 候选 gNB(目标)
participant AMF
Note over UE,Src: 阶段一:测量与决策
UE->>Src: MeasurementReport (A3/A5 触发,RSRP/RSRQ)
Src->>Src: 内部 RRM 判定: 预编排 CHO 优于反应式 HO
Note over Src,Tgt: 阶段二:目标准备(Xn,逐候选)
Src->>Tgt: HO REQUEST (Cause,UE Context,候选 cell)
Tgt->>Tgt: 准入控制(Slice-aware)
Tgt-->>Src: HO REQUEST ACKNOWLEDGE (候选 cell 的 CHO 专用配置)
Note over Src,UE: 阶段三:条件配置下发
Src->>UE: RRCReconfiguration (condReconfigToAddModList + 执行条件)
UE-->>Src: RRCReconfigurationComplete
opt Early Data Forwarding
Src->>Tgt: EARLY STATUS TRANSFER
end
Note over UE,Src: 阶段四:UE 本地评估(继续在源小区工作)
loop 持续测量与条件评估
UE->>UE: 评估 condExecutionCond(A3/A5 + RSRP/RSRQ)
end
Note over UE,Tgt: 阶段五:条件满足,自主执行(启动 T304)
rect rgb(220,240,220)
UE->>UE: 选定候选,应用存储配置,detach 源,启动 T304
UE->>Tgt: 随机接入同步(RACH)
UE->>Tgt: RRCReconfigurationComplete
Tgt-->>Src: HANDOVER SUCCESS (UE 已成功接入)
Tgt->>Src: (后续) UE CONTEXT RELEASE
Src->>Src: 释放源资源,丢弃其余 CHO 候选配置
end
| 步骤 | 消息/动作 | 接口 | 关键 IE / 含义 | 规范来源 |
|---|---|---|---|---|
| ① | MeasurementReport | NR-Uu | measId、measResultNeighCells(RSRP/RSRQ/SINR),为后续 A3/A5 评估提供基础 | TS 38.331 §5.5 |
| ③ | HO REQUEST | Xn | Cause、UE Context、Target Cell ID(逐候选发送) | TS 38.423 §9.1 |
| ④ | HO REQUEST ACKNOWLEDGE | Xn | HO Command(候选 cell 专用 RRC 配置,含 RS/TA/小区参数) | TS 38.423 §9.1 |
| ⑥ | RRCReconfiguration | NR-Uu | condReconfigToAddModList(多候选)、执行条件 | TS 38.331 §5.3.6 |
| ⑦ | RRCReconfigurationComplete | NR-Uu | 确认 CHO 配置已存储(非执行) | TS 38.331 |
| ⑦a | EARLY STATUS TRANSFER | Xn | 提前转发数据,降低执行时延(代价:未执行则浪费) | TS 38.423 §9.x |
| ⑧ | 本地条件评估 | UE 内部 | 对每个候选持续评估 condExecutionCond | TS 38.300 §9.2.3.2 |
| ⑨ | RRCReconfigurationComplete | NR-Uu(→目标) | 携带至目标,标志 CHO 执行完成 | TS 38.331 |
| ⑩ | HANDOVER SUCCESS | Xn(目标→源) | 通知 UE 已成功接入目标,源可释放其他候选 | TS 38.423 |
理解 CHO 的关键,是看懂 RRCReconfiguration 中 condReconfigToAddModList 的嵌套结构。源 gNB 在这条消息里塞入了"一份未来才会用到的完整目标配置 + 何时启用的判据"。
flowchart TB
RC[RRCReconfiguration] --> LIST[condReconfigToAddModList<br/>多候选列表]
LIST --> C1[CondReconfigToAddMod #1]
LIST --> C2[CondReconfigToAddMod #2]
LIST --> CN[CondReconfigToAddMod #N]
C1 --> ID1[condReconfigId = 1<br/>候选唯一标识]
C1 --> COND1[condExecutionCond<br/>执行条件]
C1 --> CFG1[候选专用 NR 配置<br/>rrcReconfiguration]
COND1 --> Q1[触发量: RSRP / RSRQ / SINR<br/>最多 2 个,逻辑组合]
COND1 --> EVT1[绑定测量事件 A3 / A5<br/>通过已配置的 measId]
CFG1 --> SYNC1[ReconfigurationWithSync<br/>目标 cell,含 T304]
CFG1 --> RB1[RadioBearerConfig / CellGroupConfig]
note[注: 候选配置不得包含 DAPS HO 配置<br/>TS 38.300 §9.2.3.4]
style COND1 fill:#ffe9a8
style note fill:#f0d0d0,stroke:#b00
执行条件(condExecutionCond)是整个机制的"心脏"。它把一个测量事件(event-based)从单纯的"上报触发"复用为"切换执行触发"。其设计要点:
| 维度 | 传统 HO(R15) | 条件切换 CHO(R16) |
|---|---|---|
| 决策主体 | 网络(源 gNB) | UE(本地评估执行条件) |
| 目标准备时机 | 决策后准备 | 决策前提前准备(多候选) |
| 命令下发 | HO Command,立即执行 | RRCReconfiguration + 条件,延后执行 |
| 失败窗口 | 命令下发瞬间链路脆弱 | 命令提前下发,规避末段链路恶化 |
| 多目标 | 单目标 | 多候选,首个满足条件者执行 |
| 5GC 参与 | 视路径(Xn/N2) | R16 仅 Xn,5GC 不参与准备/执行 |
| 数据转发 | 切换执行时 SN STATUS TRANSFER | 可选 EARLY STATUS TRANSFER 提前转发 |
| 与 DAPS | 可与 DAPS 组合 | 候选配置不可含 DAPS(互斥) |
| 信令开销 | 单候选、轻量 | 多候选、配置体积大、占 UE 存储与内存 |
stateDiagram-v2
[*] --> CONNECTED: RRC_CONNECTED(源小区工作)
CONNECTED --> CHO_CONFIGURED: 收到 condReconfigToAddModList<br/>存储候选,启动评估
CHO_CONFIGURED --> CHO_CONFIGURED: 条件未满足,持续测量
CHO_CONFIGURED --> LEGACY_HO: 期间收到 Legacy HO Command<br/>优先级抢占,丢弃 CHO
CHO_CONFIGURED --> CHO_EXECUTING: 任一候选条件满足<br/>应用其配置,启动 T304
CHO_EXECUTING --> HO_COMPLETED: 同步目标+发 RRCRecfgComplete<br/>释放所有其余候选配置
CHO_EXECUTING --> RLF: T304 超时/接入失败
RLF --> [*]: RRC 连接重建
HO_COMPLETED --> CONNECTED
状态转换的两个工程要点:
ReconfigurationWithSync 中,UE 选定候选、应用配置时启动。若 T304 超时(目标同步或随机接入失败),UE 判定切换失败并触发 RLF→重建。排错时 T304 超时往往指向目标侧准入/前导分配/PUCCH 资源问题。HANDOVER SUCCESS 同步状态,否则源 gNB 仍以为其他候选有效,造成资源悬挂。Release 17 在 CHO 基础上做了两个重要增强:
如何在 trace 中识别 CHO 流程:
RRCReconfiguration,解码 ASN.1,看是否含 condReconfigToAddModList-r16(这是 CHO 的唯一指纹,传统 HO 只有 reconfigurationWithSync 直接在主配置里)。HO REQUEST / HO REQUEST ACKNOWLEDGE 是否逐候选多次出现,且后续是否有 EARLY STATUS TRANSFER、HANDOVER SUCCESS。RRCReconfigurationComplete 与发往源的 RRCReconfigurationComplete 之间,存在一段 UE 本地评估期——这段空窗正是 CHO 区别于 Legacy HO 的特征。常见故障与排错思路:
| 现象 | 根因方向 | 排查动作 |
|---|---|---|
| 配置下发后一直不切换 | 执行条件未满足 / 候选时效已过 | 复核 condExecutionCond 阈值、A3/A5 偏移,对比 MR 实测值是否真够格 |
| 条件满足却执行失败 | 目标准备过期 / T304 超时 | 检查 EARLY STATUS TRANSFER 是否到达、目标侧 RACH/PUCCH 资源、T304 取值 |
| 资源悬挂 / 重复准备 | HANDOVER SUCCESS 未及时到源 | 查 Xn 链路、源 gNB 候选清理逻辑 |
| UE 内存告警 | 候选过多、配置过大 | 限制 condReconfigToAddModList 候选数,评估 R17 时效控制 |
| 乒乓 | A3 偏移过小、未配迟滞 Hys | 调整事件触发迟滞与时间触发(TTT) |
Q1: CHO 与 DAPS 切换能同时用吗? A: 不能。TS 38.300 明确规定 CHO 候选配置不得包含 DAPS HO 配置。DAPS 提供"双收双发、源目标并行"的链路级保护,CHO 提供"提前准备、UE 自主触发"的决策级优化,二者机制重叠且资源冲突,规范将其设为互斥。
Q2: 如果 UE 已配置 CHO,网络又下发 Legacy HO Command 会怎样? A: Legacy HO 优先。UE 立即按新 HO Command 执行,停止 CHO 条件评估并丢弃存储的候选配置。这条优先级规则确保网络侧在需要时仍能"夺回"控制权,避免双轨决策打架。
Q3: CHO 为什么 R16 不支持 N2(NG-C)接口准备? A: R16 将 CHO 限定在 Intra-NR、Xn 准备的场景,以降低 5GC 信令复杂度与跨节点状态同步难度。N2 based CHO 的标准化在后续版本中随 NG-RAN 重定位等议题推进,早期版本刻意收敛范围以保稳定性。
Q4: Early Data Forwarding 是不是越多越好? A: 否。EARLY STATUS TRANSFER 在条件未满足时就提前转发数据,能压缩执行时延,但若条件始终不满足(候选被放弃),这些转发的数据即成浪费,还占用 Xn 带宽与目标缓存。运营商通常按场景(如 FR2 高速移动)选择性开启。
Q5: 多个候选同时满足条件,UE 切到哪个? A: UE 选择首个满足其执行条件的候选执行,并立即停止对其余候选的评估。规范不保证"最优"候选被选中,只保证"最先满足者"被执行——这也是 CHO 在极端场景下用确定性换最优性的工程权衡。
本文由「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 等场景全覆盖。
