跳转至

4g/5G 中的 handover 机制汇总

科普: DAPS

来源: https://devopedia.org/daps-handover

alt text

(1) 要解决的问题: 切换中断

在普通切换中,UE 从源小区移到目标小区时,会有一段时间完全不能收发数据。

LTE 基本切换的中断时间约为 30–60 ms,也有报告达到数百毫秒。5G URLLC 要求 1 ms 时延,这种中断就不能接受了。

中断的原因是: 普通切换属于 break-before-make (BBM) [UE 收到切换命令后,先断开源小区,再去目标小区接入(做随机接入),这期间没有任何链路可用]。

DAPS (Dual Active Protocol Stack, 双激活协议栈) 的思路:

切换期间 UE 同时维护两套协议栈,一套继续在源小区收发数据,另一套处理目标小区的业务。RAN 内部则把数据包从源节点转发到目标节点。

(2) 版本演进: MBB 与 DAPS

  • LTE 在 Rel-14 引入了 Make-Before-Break (MBB) 切换
  • Rel-16 在 LTE 和 5G 中都引入了 DAPS 切换
    • MBB 可以看作 DAPS 的简化版

需要注意术语:学术文献里常把 DAPS 统称为"make-before-break",但在 LTE 规范中,MBB 是一个特指的机制。两者的区别如下:

MBB(Rel-14,仅 LTE) DAPS(Rel-16,LTE + NR)
规范定义 收到切换的 RRC 消息后, 保持源 eNB 连接, 直到向目标 eNB 发出首次上行传输为止 收到切换 RRC 消息后保持源连接, 直到在目标侧随机接入成功、并释放源小区为止
何时断开源侧 源 eNB 自己决定何时停止下行;UE 在目标侧完成上行传输后即可断开源侧 必须等目标侧显式通知,UE 才释放源连接
与 DC 共存 适用于双连接场景下更换辅基站(SeNB) 不能与 DC 同时使用
与免 RACH 切换共存 可以配合 RACH-less 切换使用 不能,发起 DAPS 前 RAN 必须先释放 DC 和 RACH-less 配置

简单概括: MBB 只把断开源侧的时间推迟到"目标侧开始发上行", DAPS 则一直推迟到"目标侧明确确认成功", 源侧连接保持得更久, 也更稳。

(3) 切换流程: UE 与基站之间的逐步交互

下面按时间顺序整理文章中的执行流程(对应 TS 38.300 §9.2.3)

第 1 步:网络决定切换,并按承载启用 DAPS

  • UE、源/目标 NG-RAN 以及源/目标 AMF 都必须支持 DAPS
    • DAPS 只对有需要的 DRB 选择性启用
  • 术语说明:
    • DRB(数据无线承载, Data Radio Bearer)可以理解为 UE 和基站之间按 QoS 划分的一条"数据管道"
    • SRB(信令无线承载, Signaling Radio Bearer)则是传 RRC 控制消息的管道
    • alt text
    • 链接: 阿里云开发手册-无线承载SRB和DRB
  • 为什么按承载启用: 维护两套下层的开销很大,只有时延敏感的业务才值得这么做

第 2 步:UE 收到切换命令,建立第二套协议栈

  • 普通切换中,UE 会重置 MAC 实体、重建 RLC 实体
  • DAPS 中,UE 新建一个 MAC 实体,为每个启用 DAPS 的 DRB 新建一个 RLC 实体,并重新配置 PDCP 实体
  • 关键区别: 普通切换是把原有的栈清空后重用,DAPS 是保留旧栈、另建新栈

第 3 步:源侧数据继续,信令暂停

  • UE 暂停到源小区的 SRB,但启用了 DAPS 的 DRB 仍在源小区继续收发数据
  • 这样设计的原因:
    • 控制权只能归一方,否则两边的 RRC 配置会冲突
    • 数据面则可以两边同时走

第 4 步:UE 在目标侧随机接入,同时源侧继续服务并转发

  • 源 gNB 一直发送下行数据(同时转发给目标 gNB),直到收到目标 gNB 发来的 Handover Success
  • 即使 UE 已经切到目标侧, 它仍会向源 gNB 发送反馈信息: L1 CSI 反馈、HARQ 反馈、RLC 反馈、ROHC 反馈,以及 HARQ 和 RLC 的数据(重)传
  • 原因:
    • 源侧还有尚未确认的数据在途,反馈不能中断,否则这些数据会丢失或卡住
    • 代价是 UE 在这段时间要两路上行并发

第 5 步:源侧移交序号,停止服务

  • 源 gNB 收到 Handover Success 后,向目标 gNB 发送 SN Status Transfer
    • 此时源 gNB 停止向 UPF 递交上行 QoS 流,也不再为下行包分配 PDCP 序号
  • 术语说明:
    • SN Status Transfer 告诉目标侧 PDCP 序号已经用到哪里,目标侧从这里接着编号
    • 这一步保证了序号连续,接收端才能正确排序和去重

第 6 步:目标侧通知 UE 释放源侧

  • UE 连上目标小区后,目标小区命令 UE 释放源小区资源

失败回退

  • 如果切换失败,UE 继续留在源小区,恢复之前暂停的 SRB。UE 通过源小区上报失败,不需要触发 RRC 连接重建
  • 这是 DAPS 的另一个收益:普通切换失败后要做耗时较长的 RRC 重建,DAPS 有源侧兜底,所以失败了也不会掉线

(4) 对 PDCP 层的影响

UE 侧的 PHY/MAC/RLC 各复制一份,分别对应源小区和目标小区,但只有一个 PDCP 实体同时服务两侧

  • 发送方向:
    • PDCP 负责选路,决定数据包走源小区还是目标小区
    • PDCP 数据 PDU 发往目标小区,PDCP 控制 PDU 则按其关联关系发往源侧或目标侧
  • 接收方向:
    • 同一个 SDU 可能从源和目标两侧都收到,PDCP 负责检测并丢弃重复包
    • PS: PDU and SDU. SDU 纯数据面, PDU 包含控制面metadata
  • LTE 与 NR 的差异:
    • LTE 的 DAPS PDCP 与 NR 基本相同,区别在于完整性保护:LTE PDCP 只对控制面做完整性保护,而 DAPS 作用于用户面
为什么只有一个 PDCP

PDCP 负责序号、加密和排序

如果 PDCP 也有两个,就会出现两套序号,接收端无法合并两路数据

把 PDCP 作为唯一锚点,两条下层通路才能互为补充

(5) 适用限制汇总

  • 不支持异制式(inter-RAT)DAPS 切换(依据 TS 37.340 Annex B)
    • NOTE: 这点非常非常重要!!!
    • 比如: LTE ↔ NR 就不行!
    • 原因:
      • 承载模型不同: 在 LTE/EPC 中, DRB 和核心网的 EPS 承载是一一对应的
        • 在 NR/5GC 中,核心网以 QoS 流为单位,由 SDAP 层把多个 QoS 流映射到 DRB 上,映射关系由基站自行决定
        • 所以切换前的"DRB 3", 到了目标侧可能拆成或并入别的 DRB, DAPS 需要的 "同一个 DRB 有两条腿" 就没有意义了
      • PDCP 版本不同:
        • 文章提到 LTE PDCP 只对控制面做完整性保护,而 NR 的 PDCP 在头格式、序号长度、用户面完整性保护等方面也不一样
        • DAPS 的单个 PDCP 实体要同时持有两套密钥和头压缩上下文,但它本身只能是一个版本,不能一半是 LTE PDCP、一半是 NR PDCP
      • 核心网要换:
        • LTE(EPC)切到 NR(5GC)是跨系统切换,需要 MME 和 AMF 之间交互(例如经 N26)、重新推导安全上下文,用户面锚点也要变
        • DAPS 依赖源基站把数据转发给目标基站,再通过 SN Status Transfer 交接序号,这是同一个 RAN 内的流程
        • 跨系统时序号空间和密钥体系都要重建,这套交接就接不上
  • Rel-17 不支持 FR2 到 FR2 的 DAPS
  • 不能与 DC、RACH-less 切换共存

科普: Recommendation ITU-R M.2150-3