首页 › core-network › N2切换三阶段信令与数据转发博弈

5G N2切换核心网侧NGAP/PFCP三阶段信令与数据转发博弈

1 N2切换的触发条件与设计哲学

5G系统中,当源gNB与目标gNB之间不存在Xn接口、Xn接口不可用或Xn切换被拒绝时,系统回退到N2-based Handover——即核心网控制的切换流程。与Xn切换的gNB直连旁路架构不同,N2切换将AMF推上"信令中继仲裁者"的位置,所有控制面信令经由AMF在两个gNB之间转发。

N2切换在3GPP TS 23.502 V18.x中定义为Section 4.9.3.2(Intra-AMF N2 Handover)和Section 4.9.3.3(Inter-AMF N2 Handover)。NGAP层面由TS 38.413定义Handover Preparation/Resource Allocation/Execution/Completion四阶段状态机。PFCP层面由TS 29.244定义SMF与UPF之间的会话修改规则。

设计意图:N2切换是Xn切换的"安全网"。它的代价是更高的切换时延(约20-40ms额外开销),但换来了对任意网络拓扑的普适支持——跨厂商、跨AMF区域、跨PLMN边界均可工作。

2 N2切换完整信令时序图(Intra-AMF场景)

以下信令流基于TS 23.502 Section 4.9.3.2 Figure 4.9.3.2.2-1,覆盖从测量报告到路径切换的全链路:

sequenceDiagram
    participant UE
    participant S_gNB as Source gNB
    participant AMF
    participant SMF
    participant UPF as UPF(PSA)
    participant T_gNB as Target gNB

    Note over UE,T_gNB: Phase 1: Handover Preparation
    UE->>S_gNB: Measurement Report (Event A3/A5)
    S_gNB->>S_gNB: HO Decision (Xn unavailable)
    S_gNB->>AMF: NGAP Handover Required
    Note right of S_gNB: IE: Target ID, Source-toTarget-TransparentContainer,<br/>PDU Session Resource List,<br/>HO Type (intra5GS)

    AMF->>SMF: Nsmf_PDUSession_UpdateSMContext Request
    Note right of AMF: IE: HO State=PREPARING,<br/>Target ID, N2 SM Info

    SMF->>UPF: PFCP Session Modification Request
    Note right of SMF: IE: Create FAR(forwarding),<br/>DL PDR with forwarding action

    UPF-->>SMF: PFCP Session Modification Response
    Note right of UPF: IE: F-TEID(forwarding tunnel)

    SMF-->>AMF: Nsmf_PDUSession_UpdateSMContext Response
    Note right of SMF: IE: N2 SM Info,<br/>QoS Flow Profile,<br/>Forwarding Tunnel Info

    AMF->>T_gNB: NGAP Handover Request
    Note right of AMF: IE: UE AggregateMaxBitRate,<br/>PDU Session Resource Setup List,<br/>Security Context,<br/>Source-toTarget-TransparentContainer

    T_gNB->>T_gNB: Allocate Radio Resources
    T_gNB-->>AMF: NGAP Handover Request Acknowledge
    Note right of T_gNB: IE: Target-toSource-TransparentContainer,<br/>PDU Session Resource Admitted List,<br/>UL NG-U UP TNL Info(TEID)

    Note over UE,T_gNB: Phase 2: Handover Execution
    AMF->>S_gNB: NGAP Handover Command
    Note right of AMF: IE: Target-toSource-TransparentContainer

    S_gNB->>UE: RRC Reconfiguration (HO Command)
    Note right of S_gNB: IE: targetCellIdentity,<br/>newUE-Identity,<br/>reconfigurationWithSync

    Note over S_gNB,UPF: Data Forwarding (DL data buffered)
    S_gNB->>T_gNB: DL Forwarding (direct/indirect)

    UE->>T_gNB: RRC Connection Reconfiguration Complete
    Note right of UE: Random Access + RRC Complete

    Note over UE,T_gNB: Phase 3: Handover Completion
    T_gNB->>AMF: NGAP Handover Notify
    Note right of T_gNB: IE: User Location Info(T-gNB)

    AMF->>SMF: Nsmf_PDUSession_UpdateSMContext Request
    Note right of AMF: IE: HO State=COMPLETED,<br/>UL Tunnel Info(T-gNB N3 TEID)

    SMF->>UPF: PFCP Session Modification Request
    Note right of SMF: IE: Update FAR(DL→T-gNB),<br/>Remove Forwarding FAR

    UPF->>UPF: Send End Marker on old DL path
    UPF-->>SMF: PFCP Session Modification Response

    SMF-->>AMF: Nsmf_PDUSession_UpdateSMContext Response

    AMF->>S_gNB: NGAP UE Context Release Command
    S_gNB-->>AMF: NGAP UE Context Release Complete

3 三阶段深度解析

3.1 Phase 1: Handover Preparation(准备阶段)

NGAP Handover Required(TS 38.413 Section 8.3.1)是N2切换的起点。源gNB在以下条件下发送此消息: - Xn接口不存在或不可用 - Xn切换被目标gNB拒绝 - 源gNB决定需要核心网参与(例如跨AMF区域)

关键IE解析:

IE名称 来源 说明
Target ID S-gNB 目标gNB的Global NG-RAN Node Identifier(含PLMN ID + gNB ID)
Source-toTarget-TransparentContainer S-gNB AS层上下文容器:含目标Cell ID、UE History、AS Security Context、RRM配置
PDU Session Resource List S-gNB 待切换的PDU会话列表,每个会话携带UL NG-U TNL Info(源侧N3 TEID)
Handover Type S-gNB intra5GS / inter5GS(EPS互操作场景)
Cause S-gNB 触发原因(如ho-desired-reason-ran-oper)

AMF收到Handover Required后,需要对每个PDU会话调用Nsmf_PDUSession_UpdateSMContext服务(TS 29.502 Section 6.1.3.2),将HO State设为"PREPARING"。SMF收到后判断是否需要建立数据转发隧道。

PFCP Session Modification(TS 29.244 Section 7.5.4)是数据转发的关键步骤。SMF在UPF上创建转发规则:

PFCP Rule 操作 说明
PDR(Packet Detection Rule) 创建转发DL PDR 匹配DL数据流,关联到转发FAR
FAR(Forwarding Action Rule) 创建转发FAR Apply Action=FORWARD,Forwarding Parameters含目标侧F-TEID
BAR(Buffering Action Rule) 可选 在转发隧道建立前缓存DL数据

NGAP Handover Request(TS 38.413 Section 8.4.1)从AMF发往目标gNB。这是AMF作为"信令中继"的核心体现——AMF将源gNB的上下文打包转发,加上SMF提供的QoS信息:

IE名称 来源 说明
UE Aggregate Maximum Bit Rate AMF/UDM UE聚合速率上限
PDU Session Resource Setup List AMF+SMF 含QoS Flow Profile、S-NSSAI、Session-AMBR
Security Context AMF 含Security Key、Next Hop Chaining Count
Source-toTarget-TransparentContainer 透传 直接从源gNB透传到目标gNB
Masked IMEISV AMF 终端标识

目标gNB资源分配成功后,回复NGAP Handover Request Acknowledge(TS 38.413 Section 8.5.1),其中最关键的IE是PDU Session Resource Admitted List——表示目标侧接受了哪些PDU会话(可能只接受部分),并携带UL NG-U UP TNL Information(目标侧N3上行TEID)。

3.2 Phase 2: Handover Execution(执行阶段)

AMF收到Handover Request Acknowledge后,将目标gNB的容器透传回源gNB(NGAP Handover Command)。源gNB从Ack中提取Target-toSource-TransparentContainer,封装到RRC Reconfiguration消息中发送给UE。

数据转发是执行阶段的关键博弈点。根据TS 23.502 Section 4.9.3.2,存在三种转发模式:

graph TB
    subgraph Direct["直连转发 (Direct Forwarding)"]
        S1[Source gNB] -->|Xn-U / 直接IP| T1[Target gNB]
    end

    subgraph Indirect["间接转发 (Indirect Forwarding)"]
        S2[Source gNB] -->|N3 tunnel| UPF1[UPF PSA]
        UPF1 -->|N9/N3 tunnel| T2[Target gNB]
    end

    subgraph NoForward["无转发 (No Forwarding)"]
        S3[Source gNB] -->|丢弃DL数据| X[Discard]
        UPF2[UPF PSA] -->|新N3 tunnel| T3[Target gNB]
    end

    style Direct fill:#e8f5e9
    style Indirect fill:#fff3e0
    style NoForward fill:#ffebee

三种转发模式的选择逻辑:

模式 触发条件 优缺点
Direct Forwarding S-gNB与T-gNB间有IP可达性 时延最低,但需要gNB间直接IP路由
Indirect Forwarding 无直接IP路径,需经UPF中转 普适性强,但引入额外UPF跳数和PFCP规则开销
No Forwarding 源侧无缓存数据或对丢包容忍 零转发开销,但可能丢包

SMF如何决定转发模式:根据TS 23.502 Section 4.9.3.2 Step 7a/7b: - 若SMF判断S-gNB和T-gNB间可直接转发,在N2 SM Info中只携带T-gNB的N3 TEID - 若需间接转发,SMF创建额外的PFCP转发规则,在UPF上建立S-gNB→UPF→T-gNB的N9隧道

End Marker机制(TS 23.502 Section 4.9.3.2 Step 16b):当UPF将DL路径切换到T-gNB后,必须在旧路径上发送一个或多个GTP-U End Marker包。这些标记包的作用是通知目标gNB"旧路径数据已全部到达,之后的数据来自新路径",从而让目标gNB正确排序数据并转发给UE。

3.3 Phase 3: Handover Completion(完成阶段)

UE成功接入目标gNB后,T-gNB发送NGAP Handover Notify(TS 38.413 Section 8.6.1),通知AMF切换完成。此时AMF触发SMF执行路径切换:

  1. SMF通过PFCP Session Modification将UPF的DL FAR更新为指向T-gNB的新N3隧道
  2. UPF在旧DL路径上发送End Marker
  3. SMF可选地释放数据转发隧道(PFCP Session Modification删除转发FAR)
  4. AMF通过NGAP UE Context Release Command释放源gNB资源

4 Inter-AMF N2切换:N14接口信令博弈

当源gNB和目标gNB属于不同AMF的服务区域时,切换涉及Inter-AMF N2 Handover(TS 23.502 Section 4.9.3.3)。核心区别在于:

sequenceDiagram
    participant S_gNB as Source gNB
    participant S_AMF as Source AMF
    participant T_AMF as Target AMF
    participant SMF
    participant UDM

    S_gNB->>S_AMF: NGAP Handover Required
    Note right of S_AMF: S-AMF判断Target ID<br/>不属于自己服务的gNB

    S_AMF->>T_AMF: Namf_Communication_CreateUEContext Request (N14)
    Note right of S_AMF: IE: Target ID,<br/>UE Context(Security,MM State),<br/>PDU Session List,<br/>Source-toTarget-Container

    T_AMF->>UDM: Nudm_UECM_Registration
    T_AMF->>SMF: Nsmf_PDUSession_UpdateSMContext Request

    SMF-->>T_AMF: UpdateSMContext Response

    T_AMF->>T_AMF: Forward to Target gNB

    T_AMF-->>S_AMF: Namf_Communication_CreateUEContext Response

    Note over S_AMF,T_AMF: HO Execution...

    T_AMF->>SMF: Path Switch (UpdateSMContext)
    S_AMF->>S_AMF: Release Source UE Context

Inter-AMF切换的额外信令开销:

额外步骤 接口 增量时延
S-AMF→T-AMF Context Transfer N14(Namf) +5-10ms
T-AMF→UDM Registration Update Nudm +3-5ms
S-AMF→T-AMF Response N14 +5-10ms

关键设计点:S-AMF通过Namf_Communication_CreateUEContext服务(TS 29.518 Section 6.1.6.2.3)将完整的UE上下文(含SUPI、Security Context、MM State、PDU Session列表)传给T-AMF。这个服务调用是同步阻塞的——S-AMF必须等T-AMF完成资源准备后才能向S-gNB发送Handover Command。

5 NGAP切换状态机

NGAP层面的切换过程可抽象为以下状态机(基于TS 38.413 Section 8.2):

stateDiagram-v2
    [*] --> HO_None : UE in Connected Mode

    HO_None --> HO_Preparing : Handover Required sent

    HO_Preparing --> HO_Prepared : Handover Request Ack received
    HO_Preparing --> HO_Failed : Handover Preparation Failure<br/>or Handover Cancel

    HO_Prepared --> HO_Executing : Handover Command sent

    HO_Executing --> HO_Completed : Handover Notify received
    HO_Executing --> HO_Failed : Handover Failure (T304 expiry)

    HO_Completed --> HO_None : UE Context Release Complete
    HO_Failed --> HO_None : RRC Reestablishment<br/>or Connection Release

关键定时器:

定时器 位置 超时动作
T304 UE侧 HO执行失败,发起RRC Reestablishment
NGAP HO Guard Timer AMF侧 Preparation超时,发Handover Cancel给T-gNB
PFCP Response Timer SMF侧 UPF无响应,切换流程失败

6 抓包识别与排错实战

6.1 Wireshark抓包过滤

# NGAP Handover Required
ngap.procedureCode == 7 && ngap.handoverRequired

# NGAP Handover Request
ngap.procedureCode == 8 && ngap.handoverRequest

# PFCP Session Modification(HO期间)
pfcp.message_type_value == 53 && pfcp.f_teid

# HTTP/2 Nsmf UpdateSMContext(SBI接口)
http2.header.value contains "sm-contexts" && http2.header.value contains "modify"

6.2 常见故障点

故障现象 可能原因 排错方法
Handover Required后无Handover Request AMF无法解析Target ID,或SMF无响应 检查AMF日志中Target ID解析,检查Nsmf接口HTTP状态码
Handover Request被拒绝 T-gNB资源不足或QoS无法满足 检查T-gNB的NGAP Cause IE(radio-resources-not-available)
UE发送RRC Complete后数据不通 UPF路径未切换或End Marker未发送 检查PFCP Session Modification中的FAR更新,确认DL TEID指向T-gNB
间接转发隧道建立失败 UPF不支持N9转发或F-TEID分配失败 检查PFCP Response中是否有Create FAR失败的原因码
Inter-AMF切换超时 N14接口不可达或T-AMF过载 检查S-AMF→T-AMF的Namf服务调用HTTP 503
## 7 与Xn切换的对比分析
维度 Xn Handover N2 Handover
信令路径 S-gNB ←Xn→ T-gNB S-gNB ←N2→ AMF ←N2→ T-gNB
AMF参与度 仅Notify阶段参与 全程中继控制
SMF参与度 Path Switch Request 三次Nsmf_UpdateSMContext
UPF参与度 仅路径切换 可能需要间接转发隧道
典型时延 10-20ms 30-60ms
数据转发 默认直连 直连/间接/无转发
适用场景 同区域gNB间 跨区域/跨AMF/无Xn
3GPP章节 TS 23.502 §4.9.1.3 TS 23.502 §4.9.1.4

常见问题

Q1: N2切换中SMF被调用几次UpdateSMContext?各自的作用是什么?

A: 标准Intra-AMF N2切换中SMF被调用3次: 1. Preparation阶段:AMF通知SMF准备切换,SMF在UPF上创建数据转发隧道规则 2. Completion阶段(Handover Notify后):AMF通知SMF切换完成,SMF更新UPF的DL路径指向T-gNB 3. 资源释放阶段:SMF可选地删除数据转发隧道规则,释放旧路径资源

Q2: Direct Forwarding和Indirect Forwarding如何选择?

A: 由SMF决策(TS 23.502 §4.9.3.2 Step 7)。SMF检查S-gNB与T-gNB之间是否有IP路由可达性——如果有,优先使用Direct Forwarding(转发数据直接从S-gNB发给T-gNB,不经过UPF);如果没有,SMF在UPF上建立间接转发隧道,数据经UPF中转。SMF将决策结果通过N2 SM Info告知AMF和目标gNB。

Q3: Inter-AMF N2切换中,S-AMF如何知道目标gNB属于另一个AMF?

A: S-AMF根据Handover Required中的Target ID(Global NG-RAN Node Identifier)查询本地配置或NRF,判断目标gNB是否在自己的服务范围内。如果不在,S-AMF通过NRF发现T-AMF,然后通过N14接口(Namf_Communication_CreateUEContext)将UE上下文传递给T-AMF。

Q4: 为什么UPF切换路径后必须发送End Marker?

A: End Marker是GTP-U协议中定义的标记包(TS 29.281 Section 5.1)。在切换过程中,目标gNB可能同时收到来自旧路径(转发数据)和新路径(直接数据)的下行数据包。End Marker标记了旧路径的最后一个数据包,让目标gNB知道旧路径数据已全部到达,此后可以停止等待转发数据并将新路径数据直接发给UE,避免数据乱序。

Q5: N2切换中PDU会话可以被部分接纳吗?

A: 可以。目标gNB在Handover Request Acknowledge中通过PDU Session Resource Admitted List和PDU Session Resource Failed to Modify List分别指示成功和失败的PDU会话。对于未被接纳的会话,SMF需要在切换完成后决定是释放该会话还是保持其在源侧(取决于运营商策略和会话类型)。

参考来源

  1. 3GPP TS 23.502 V18.10.0 — Section 4.9.3.2 (Intra-AMF N2 Handover), Section 4.9.3.3 (Inter-AMF N2 Handover)
  2. 3GPP TS 38.413 V18.x — NGAP Handover Required/Request/Command/Acknowledge/Notify定义
  3. 3GPP TS 29.244 V18.7.0 — PFCP Session Modification, PDR/FAR规则定义
  4. free5GC Blog — Introduction of Xn and NG (N2) based handover — 开源5GC实现中的N2切换分析
  5. ETH Zürich — A Comprehensive Formal Analysis of 5G Handover — N2 Handover安全性与形式化分析

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