在MEC(多接入边缘计算)场景中,终端随移动而在不同边缘站点之间穿梭。若PDU会话锚点(PSA,PDU Session Anchor UPF)始终钉死在初始UPF上,用户面迂回(hairpin)距离会迅速拉长,时延敏感的边缘应用(如云游戏、AR/VR、工业控制)体验瞬间崩塌。3GPP为这一矛盾专门设计了SSC模式3(Session and Service Continuity mode 3):它允许在不中断业务的前提下,把PDU会话锚点从旧的PSA1"平滑迁移"到靠近终端新位置的PSA2。
本文聚焦 TS 23.502 第4.3.5.3条 "Change of SSC mode 3 PDU Session Anchor with IPv6 Multi-homed PDU Session" 这一具体流程,结合 TS 23.501 §5.6.4.3(多宿主PDU会话)与 §5.6.9.2.3(SSC模式3)的定义,逐信令拆解"先接后断(make-before-break)"的IPv6多宿主锚点重定位机制,并给出抓包识别要点与排错思路。
5G系统(5GS)定义了三种会话与业务连续性模式,本质上对应对"IP地址/锚点是否可变"的不同承诺等级:
| 维度 | SSC模式1 | SSC模式2 | SSC模式3 |
|---|---|---|---|
| 锚点(PSA)是否可变 | 否(钉死) | 是(先断后接) | 是(先接后断) |
| IP地址/前缀 | 全程不变 | 全程必变 | 旧前缀与新增前缀并存,最终替换 |
| 业务中断 | 无 | 有(重建立间隙) | 无(多宿主期双前缀共存) |
| 适用场景 | 远端固定DN、IMS语音 | 无状态短连接、小数据 | MEC边缘漂移、长连接低时延业务 |
| 标准出处 | TS 23.501 §5.6.9.2.1 | §5.6.9.2.2 | §5.6.9.2.3 |
核心设计意图:SSC模式3并非"模式1和模式2的简单折中",而是面向IPv6多宿主(Multi-homing)的独立机制。它利用IPv6"一个会话可同时拥有多个全局前缀"的天然能力,让终端在迁移期间同时握有Prefix1(走PSA1到旧边缘应用)和Prefix2(走PSA2到新边缘应用),从而为上层应用提供"平滑切换前缀"的窗口期——这正是SSC模式1做不到(锚点钉死)、模式2做不到(必须先断再接、IP必变)的关键差异。
关键结论:SSC模式3的"业务不中断",是通过 IPv6多前缀并存 + 分支点(Branching Point, BP)按源前缀分流用户面 共同实现的,而非靠单前缀切换。这也是为什么标准明确限定多宿主仅适用于IPv6类型PDU会话(TS 23.501 §5.6.4.3)。
锚点重定位期间的典型用户面拓扑演化如下:
flowchart TD
subgraph 初始["初始:单锚点"]
U1[UE] --> R1[gNB]
R1 -->|N3| PSA1["PSA1(兼首跳UPF)"]
PSA1 -->|N6| DN1[DN/边缘App1]
end
subgraph 过渡["过渡:多宿主双锚点"]
U2[UE] --> R2[gNB]
R2 -->|N3| BP["BP UPF(首跳+分流)"]
BP -->|N9<br/>Prefix1上行| PSA1b["PSA1(旧锚点)"]
BP -->|N9<br/>Prefix2上行| PSA2["PSA2(新锚点)"]
PSA1b -->|N6| DN1b[DN/边缘App1]
PSA2 -->|N6| DN2[DN/边缘App2<br/>本地]
end
subgraph 终态["终态:单锚点"]
U3[UE] --> R3[gNB]
R3 -->|N3| PSA2b["PSA2(兼首跳UPF)"]
PSA2b -->|N6| DN3[DN/边缘App2]
end
初始 ==> 过渡 ==> 终态
三个关键功能角色(可能由物理上同一UPF实例承担,也可能分离):
Prefix1的N6到DN通路,过渡期继续承载未迁移流量。Prefix2,N6直连靠近终端新位置的边缘应用服务器(DNAI对应的本地DN)。设计要点:BP必须位于"首跳"位置(RAN→BP→PSA),因为只有首跳UPF能同时看到上行所有包并按源地址分流;若BP放在PSA之后,则无法对上行做分流。这一拓扑约束直接决定了N3隧道终点必须从PSA1迁移到BP(即一次N2路径切换)。
下面是网络发起的IPv6多宿主锚点重定位完整信令时序。前置条件:PDU会话已用SSC模式3建立,当前仅有PSA1和Prefix1,UE已移动到新位置或DNAI策略要求本地分流。
sequenceDiagram
autonumber
participant UE
participant gNB as gNB(RAN)
participant AMF
participant SMF
participant BP as BP UPF
participant PSA1 as PSA1(旧)
participant PSA2 as PSA2(新)
Note over UE,PSA1: 触发:UE移动/AF影响DNAI/策略,SMF决定插入BP+PSA2
rect rgb(245,248,255)
Note over SMF: ① 选网元与N4建立(先接)
SMF->>SMF: UPF选择(选BP与PSA2,TS 23.501 §6.3.3)
SMF->>PSA2: N4 Session Establishment<br/>(锚点PDR/FAR: DL→BP via N9)
PSA2-->>SMF: N4响应(N9 DL F-TEID)
SMF->>BP: N4 Session Establishment<br/>(配置为Branching Point)
BP-->>SMF: N4响应(N3 UL F-TEID, N9 UL F-TEID×2)
SMF->>PSA1: N4 Session Modification<br/>(DL FAR: RAN/N3 → BP/N9)
end
rect rgb(255,250,240)
Note over SMF,gNB: ② N3路径切换(首跳由PSA1改为BP)
SMF->>AMF: Namf_Communication_N1N2MessageTransfer<br/>(N2 SM Info: 新N3 UL TNL=BP)
AMF->>gNB: N2 PDU Session Resource Modify<br/>(新UL N3 F-TEID)
gNB-->>AMF: N2 PDU Session Resource Modify Ack
AMF-->>SMF: Nsmf_PDUSession_UpdateSMContext(新DL N3 F-TEID)
SMF->>BP: N4 Session Modification<br/>(DL FAR: → gNB新N3)
end
rect rgb(243,255,243)
Note over SMF,UE: ③ 分配新前缀并通告(业务并行)
SMF->>SMF: 为本会话分配新IPv6前缀 Prefix2
SMF->>BP: 通过N4下发Router Advertisement(Prefix2)
BP->>gNB: RA(ICMPv6 type134, Prefix Info Option)
gNB->>UE: 透传RA,宣告Prefix2
Note over UE: UE配置Prefix2地址,应用可向新前缀发起连接
Note over UE,PSA2: 上行Prefix2流量 → BP → PSA2 → 本地DN
Note over UE,PSA1: 上行Prefix1流量 → BP → PSA1 → 旧DN(仍可达)
end
rect rgb(255,240,240)
Note over SMF,PSA1: ④ 业务迁移完成后释放旧锚点(后断)
SMF->>PSA1: N4 Session Deletion(回收Prefix1、N9)
SMF->>SMF: 可将BP功能并入PSA2(首跳回归单锚点)
Note over UE,PSA2: 终态:UE—gNB—PSA2—本地DN,Prefix2
end
步骤① "先接"——N4会话建立与改向
- N4 Session Establishment (SMF→PSA2):核心是给PSA2下发PDR(Packet Detection Rule)——以"源接口=Core(N6侧DN)+ 应用检测规则"匹配下行;FAR(Forwarding Action Rule)——外层封装N9 GTP-U,目的IP=BP,并携带BP分配的N9 DL F-TEID。
- N4 Session Establishment (SMF→BP):这是流程的灵魂。SMF在BP上下发多条PDR/FAR:
- 上行PDR-A:Source Interface=Access, F-TEID=gNB侧N3, UE-IP src∈Prefix1 → FAR→PSA1(N9 UL F-TEID@PSA1)
- 上行PDR-B:Source Interface=Access, UE-IP src∈Prefix2 → FAR→PSA2(N9 UL F-TEID@PSA2)
- 下行PDR-C:Source Interface=Core, 来自PSA1的N9 → FAR→gNB(N3 DL F-TEID)
- 下行PDR-D:Source Interface=Core, 来自PSA2的N9 → FAR→gNB(N3 DL F-TEID)
- N4 Session Modification (SMF→PSA1):把PSA1的下行FAR从"直发RAN/N3"改为"发往BP/N9"。从此PSA1退化为纯锚点,不再做首跳。
步骤② N3路径切换——首跳权交接
- SMF经AMF向gNB发送 N2 PDU Session Resource Modify,关键IE是 UL NG-U UP TNL Information 更新为BP的N3 F-TEID(IP+TEID)。gNB回 DL NG-U UP TNL Information(gNB侧新下行隧道端点)。SMF再下发给BP完成下行FAR刷新。这一步是"PSA1让出首跳"的物理动作,必须在BP上行分流规则生效后执行,否则会出现上行黑洞。
步骤③ 新前缀通告——业务并行窗口期开启
- SMF为该会话新分配一个64位IPv6前缀 Prefix2,并通过ICMPv6 Router Advertisement(类型134,RFC 4861)携带在 Prefix Information Option 中下发给UE。RA经由SMF→N4→BP→gNB(N3)→UE透传。
- UE收到RA后为Prefix2做无状态地址自动配置(SLAAC),获得新全局地址。此时应用层有两条前缀可用:旧前缀的连接不中断,新前缀可承载发往本地边缘App的新连接。这正是"业务不中断"的实质。
步骤④ "后断"——释放旧锚点
- 当SMF判定业务已迁移(如UE已无Prefix1上行流量持续若干秒、或AF通知旧应用可释放、或定时器到),发起 N4 Session Deletion (SMF→PSA1),回收Prefix1与PSA1的N9资源。此后BP可被"折叠"进PSA2(PSA2重新承担首跳),用户面回归单锚点拓扑。
从UE视角,SSC模式3会话在重定位期间的锚点状态演化如下:
stateDiagram-v2
[*] --> SingleAnchor_Pfx1: SSC3会话建立(仅PSA1)
SingleAnchor_Pfx1 --> MultiHomed: SMF插入BP+PSA2<br/>下发Prefix2的RA
MultiHomed --> MultiHomed: 双前缀并存<br/>业务平滑迁移
MultiHomed --> SingleAnchor_Pfx2: 释放PSA1<br/>BP折叠进PSA2
SingleAnchor_Pfx2 --> MultiHomed: 再次触发锚点重定位
SingleAnchor_Pfx2 --> [*]: 会话释放
设计意图解读:MultiHomed(多宿主)是一个可控的过渡态而非稳态。标准刻意把它做成"有限窗口":双前缀并存会带来双倍N9隧道、BP分流开销与潜在的流量计量复杂度,因此一旦上层应用完成迁移(或网络强制迁移),必须收敛回单锚点。这也是为什么RA机制由SMF集中控制而非UE自行触发——保证状态机的迁移节奏由网络侧统一调度。
| 消息/接口 | 关键IE | 含义与作用 | 标准出处 |
|---|---|---|---|
| N4 (PFCP) | Create PDR + FAR(BP上4条规则) |
按源前缀上行分流、按入口隧道下行汇聚 | TS 29.244 |
| N4 (PFCP) | F-TEID(N3/N9各端点) |
BP、PSA1、PSA2、gNB间的GTP-U隧道端点 | TS 29.244 |
| N2 SM | UL NG-U UP TNL Info |
首跳切到BP:gNB上行目的=BP的N3 | TS 38.413 §9.3 |
| ICMPv6 | Router Advertisement(Type 134) |
携带 Prefix Info Option 通告 Prefix2 |
RFC 4861 |
| NAS | PDU Session Establishment Accept 中 SSC mode |
协商/指示本会话为SSC模式3 | TS 24.501 §8.3.1 |
| Nsmf/SBI | DNAI(Data Network Access Identifier) |
标识边缘DN接入点;PSA2即对应新DNAI | TS 23.501 §5.6.7 |
| UE Policy | URSP RouteSelectionDescriptor |
决定新业务流走哪条前缀/会话(见下) | TS 23.503 §6.6 |
实践中"SSC模式3"有两条落地路径,工程师常混淆。下表对照其差异——这决定了你抓包看到的是"单会话双前缀"还是"两个独立会话":
| 对比维度 | 路径A:网络发起·IPv6多宿主+BP | 路径B:UE发起·URSP触发新会话 |
|---|---|---|
| 触发方 | SMF(移动/DNAI/AF) | UE(依据URSP规则) |
| PDU Session ID | 不变(同一会话) | 新增一个(两个会话并存) |
| IP前缀 | 同会话两个IPv6前缀并存 | 两条会话各自独立IP |
| 用户面分流实体 | BP UPF(按源前缀) | 两条N3/N9独立隧道,无需BP |
| 标准流程 | TS 23.502 §4.3.5.3 | URSP(TS 23.503)+ 常规PDU会话建立 |
| 协议类型限制 | 仅IPv6 | IPv4/IPv6均可 |
| 业务连续性 | L3层真·先接后断,零感知 | 依赖应用层重连(应用感知切换) |
| 典型用例 | 运营商自建MEC、长连接低时延 | 第三方边缘应用、IPv4存量业务 |
选型建议:对时延极敏感、要求IP层零中断的MEC业务,优先路径A(多宿主+BP);对IPv4业务或希望应用自主控制切换时机的场景,选路径B(URSP新会话)。本文拆解的§4.3.5.3专指路径A。
SMF并非随意发起锚点重定位,需满足以下触发条件之一(TS 23.501 §5.6.9.2.3):
Nsmf_PDUSession_UpdateSMContext 发现新gNB无法由现有PSA高效服务。触发后,SMF综合UPF选择规则(TS 23.501 §6.3.3)——DNAI、S-NSSAI、DNN、UE位置、UPF能力与负载——确定PSA2与BP。其中DNAI是"边缘就近"的核心判据:PSA2必须能以N6直连目标边缘应用所在的本地DN。
在SBI/N4/N2/N3多接口联合抓包中,SSC模式3锚点重定位(路径A)的特征指纹:
PDU Session Establishment Request(消息类型),随后对原UPF(PSA1)出现 PDU Session Modification Request,最后对PSA1出现 PDU Session Deletion Request——这是"先建、后改、最后删"的三段式。PDU Session Resource Modify 携带 UL NG-U UP TNL Information 变更(指向BP)。Nsmf_PDUSession_UpdateSMContext 或 AF影响接口 Nsmf_PDUSession_SMContext 的操作轨迹。| 故障现象 | 可能原因 | 排查方向 |
|---|---|---|
| UE收到RA但无法用Prefix2通信 | BP上行分流PDR-B未生效或FAR目的TEID错 | 核对BP上 src∈Prefix2→PSA2 的FAR与PSA2 N9 UL F-TEID |
| 业务在步骤②后中断数秒 | N3路径切换早于BP分流规则生效 | 确认SMF先下发BP PDR/FAR,再做N2 Modify |
| PSA1已删但仍有回程流量丢包 | 应用层未及时迁移到Prefix2,旧连接被强切 | 检查URSP/RA下发时序;延长多宿主窗口 |
| IPv4会话无法触发该机制 | 多宿主仅支持IPv6 | 改用路径B(URSP新会话) |
| RA从未到达UE | BP未配置RA下发,或gNB/UE过滤ICMPv6 | 确认BP的RA下发N4规则;检查UE防火墙/SLAAC开关 |
厂商差异提示:不同厂商对"BP是否独立实例"实现不同——有的把BP与PSA2合并为同一物理UPF(首跳兼锚点),有的保持三者分离;前者抓包上N4消息更少,后者N9隧道更清晰。排错时务必先确认目标网络的UPF部署形态。
SSC模式3锚点重定位是5G"使能边缘计算"用户面能力的基石。它向上承接 AF影响流量路由(TS 23.502 §4.3.6) 与 EASDF边缘应用发现(EAS发现见 TS 23.548),向下落地为PSA/DNAI的就近选择。在一个完整的MEC业务连续性方案中,三者协作链条为:
UE移动 → (AF通知DNAI变化/SMF检测) → SSC3锚点重定位到本地PSA2 → EASDF解析到本地EAS → 应用层连接迁移到Prefix2 → PSA1释放
这条链路中,SSC模式3承担的是"用户面就近"这一环,保证数据通道始终锚定在最靠近终端的边缘UPF,从而把端到端时延压到毫秒级。
Q1:SSC模式3和模式2都会换锚点,本质区别是什么? A:模式2是"先断后接"——先释放旧会话(含IP),再重新建立,存在不可忽略的业务中断且IP必变;模式3是"先接后断"——通过IPv6多宿主让新旧前缀并存一个窗口期,业务在窗口期内完成平滑迁移后再断旧锚点,IP层零中断。模式2适合无状态短连接,模式3适合长连接低时延MEC业务。
Q2:为什么SSC模式3的多宿主只支持IPv6,不支持IPv4? A:因为多宿主的本质是"一个PDU会话同时绑定多个全局前缀",IPv6天然支持同一接口多前缀(SLAAC可分配多个),而IPv4一个接口通常只有一个地址,无法在同一会话内同时承载两个IPv4地址并按源地址分流。IPv4业务要实现类似连续性,需走"URSP触发新PDU会话"的路径B。
Q3:BP(分支点)和UL CL(上行分类器)有什么区别? A:两者都做用户面分流,但场景不同。BP专用于多宿主IPv6会话,按"源IPv6前缀"分流到不同PSA,且必须位于首跳;UL CL用于单锚点选择性分流(如本地Breakout),按"目的五元组/Application ID"将部分流量导向本地DN。SSC模式3的边缘迁移用的是BP;纯本地分流(不换锚点)用的是UL CL。
Q4:终端在SSC模式3重定位期间,应用层需要做什么? A:理想情况下应用层无需感知——IPv6双栈前缀并存由网络保证。但若希望主动加速迁移,应用可依据URSP规则把新连接优先绑定到Prefix2;对已建立在Prefix1上的长连接,应用可选择平滑重连到新前缀对应的本地边缘App,以彻底告别PSA1。网络侧的"后断"通常会给应用留足迁移窗口。
Q5:抓包时怎么快速判断看到的是SSC模式3而不是普通切换? A:三条特征同时出现即可判定:(1) PFCP对同一PDU Session ID先建立新UPF、最后删除旧UPF;(2) N2出现N3隧道终点变更;(3) 用户面出现携带新IPv6前缀的Router Advertisement。若只有(1)(2)而无(3),则更可能是SSC模式2或普通I-UPF重定位。
本文由「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 等场景全覆盖。
