在4G EPC架构中,一条PDN连接自始至终锚定在同一个PGW上,无论终端(UE)如何移动,分配到的IP地址全程保持不变。这种"锚点固定、IP不变"的模型虽然保证了会话连续性,却把整个用户面的回程流量都强行拉回中心PGW,无法适应5G的边缘计算(MEC)与本地分流需求。
5G核心网(5GC)将用户面功能(UPF)从集中式演进为分布式可编程节点,要求锚点UPF能够跟随UE的移动而动态重选,使业务流量就近卸载。但"换锚点"必然带来一个问题:IP地址要不要变?业务要不要断? 3GPP在TS 23.501 clause 5.6.9中用三种会话与服务连续性(Session and Service Continuity, SSC)模式来精确回答这两个问题,SSC mode 3就是其中工程上最复杂、对边缘计算最关键的一种。
本文聚焦TS 23.501 §5.6.9.3与TS 23.502 §4.3.2定义的SSC模式三PSA(PDU Session Anchor)重选机制,拆解其Make-Before-Break(先建后拆)信令全链、关键IE(TS 24.501)、SMF决策逻辑,以及抓包识别与排错方法。
SSC模式的本质是"当锚点UPF需要更换时,网络以何种方式完成过渡"。三者的差异集中在IP是否保持与业务是否中断两个维度上。
| 维度 | SSC Mode 1 | SSC Mode 2 | SSC Mode 3 |
|---|---|---|---|
| 锚点PSA | 全程不变 | 改变(旧先释放) | 改变(新先建立) |
| 切换模型 | 固定锚点 | Break-Before-Make | Make-Before-Break |
| IP地址/前缀 | 保持 | 改变 | 改变 |
| 业务中断 | 无 | 有(旧会话释放→新建间隙) | 几乎无(新旧会话短暂并存) |
| 路由最优性 | 差(锚点固定,远端回程) | 好 | 好 |
| 触发方 | 无需触发 | 网络触发释放,UE重建 | 网络触发新建,再释放旧 |
| 典型场景 | IMS/VoNR、需IP稳定的TCP长连接 | 普通Internet访问、可容忍短暂中断 | URLLC、MEC本地业务、实时流媒体 |
下面的状态图刻画了同一DNN+S-NSSAI下三条PDU会话在SSC模式三PSA重选过程中的生命周期与锚点迁移:
stateDiagram-v2
direction LR
[*] --> SessA_Old: PDU会话A建立(SSC mode3)\n锚点=PSA-Old
SessA_Old --> SessB_New: SMF触发新建会话B\n锚点=PSA-New
note right of SessB_New
Make-Before-Break窗口
会话A与会话B短暂并存
用户面双路径同时在线
end note
SessB_New --> SessA_Released: 新会话B用户面就绪\nSMF释放会话A
SessA_Released --> SessB_Stable: 旧PSA-Old N4拆除
SessB_Stable --> [*]: 锚点迁移完成\nIP前缀已更新
设计意图可以归纳为三点:第一,把"IP保持"和"路由最优"解耦——mode 1要IP保持就牺牲路由,mode 2/3要路由最优就接受IP变化;第二,用"双会话并存窗口"换取零中断——这是mode 3区别于mode 2的核心代价(需要UE支持同时维护两条到同一DN的PDU会话);第三,把锚点选择权交给SMF的策略决策(SSC模式选择、UPF重选触发条件均由SMF依据签约与本地策略决定)。
下图是SSC模式三PSA重选的完整信令流,假设UE已存在一条锚定在PSA-Old的PDU会话(PSS ID=5,SSC mode 3)。SMF在检测到重选条件后,先建立一条锚定在PSA-New的新会话(PSS ID=6),再释放旧会话,整个过程UE短暂持有两条PDU会话。
sequenceDiagram
autonumber
participant UE
participant AN as (R)AN/gNB
participant AMF
participant SMF
participant PSA_O as PSA-Old
participant PSA_N as PSA-New
participant NRF
participant PCF
Note over UE,PSA_O: 阶段0:已有会话A(PSS=5)锚定PSA-Old, SSC mode3
Note over SMF: 阶段1:SMF决策PSA重选(UE移动/DNAI变化/本地策略)
SMF->>NRF: Nnrf_NFDiscovery(UPF, DNAI, S-NSSAI)
NRF-->>SMF: 返回候选UPF列表
SMF->>SMF: 选择PSA-New为新锚点
Note over SMF,PSA_N: 阶段2:建立新会话B(PSS=6)的N4用户面
SMF->>PSA_N: N4 Session Establishment Request(F-TEID, PDR/FAR/QER)
PSA_N-->>SMF: N4 Session Establishment Response(N9 F-TEID)
SMF->>PCF: Nsmf_SMPolicyControl_Update(DNAI变更通知)
PCF-->>SMF: 更新后的PCC规则(可选新ULCL/I-UPF)
Note over SMF,UE: 阶段3:网络触发新会话B建立(Make)
SMF->>AMF: Namf_Communication_N1N2MessageTransfer\nN2=PDU Session Resource Setup\nN1=PDU SESSION ESTABLISHMENT ACCEPT\n(新IP前缀, PSS=6, SSC mode3)
AMF->>AN: N2 PDU Session Resource Setup Request
AN->>UE: RRC Reconfiguration(含N1 SM容器)
Note over UE: UE获得新IP前缀, 会话B用户面就绪\nUE现同时持有会话A+B
Note over AN,SMF: 阶段4:新会话B用户面激活
AN-->>AMF: N2 PDU Session Resource Setup Response(AN隧道F-TEID)
AMF->>SMF: Nsmf_PDUSession_UpdateSMContext(AN隧道)
SMF->>PSA_N: N4 Session Modification(下发AN N3 F-TEID)
Note over SMF,PSA_O: 阶段5:释放旧会话A(Break旧锚点)
SMF->>AMF: Namf_Communication_N1N2MessageTransfer\nN1=PDU SESSION RELEASE COMMAND(PSS=5)\nN2=PDU Session Resource Release
AMF->>AN: N2 PDU Session Resource Release Command
AN->>UE: RRC释放PSS=5相关资源
UE-->>AN: 释放确认
AN-->>AMF: N2 Release Response
AMF->>SMF: Nsmf_PDUSession_UpdateSMContext(释放)
SMF->>PSA_O: N4 Session Release Request
PSA_O-->>SMF: N4 Session Release Response
Note over UE,PSA_N: 完成:会话B(PSS=6)锚定PSA-Old已迁移至PSA-New, 零中断
逐步解析关键交互:
步骤1-3(决策与发现):SMF的PSA重选触发源有三类——UE移动导致跟踪区(TA)变化、应用触发的DNAI(Data Network Access Identifier)变化、或运营商本地策略周期评估。SMF通过Nnrf_NFDiscovery按DNAI+S-NSSAI+UPF能力发现候选PSA-New,这里的关键查询参数是upf_info中的pdu_session_types与dnai_list。
步骤4-6(N4预建):SMF在通知UE之前,先与PSA-New完成N4会话建立,这是Make-Before-Break能在用户面层无缝衔接的前提。N4 Session Establishment Request中携带检测规则(PDR)、转发规则(FAR)、QoS执行规则(QER)。注意此时N9侧F-TEID已分配,但N3侧(到AN的隧道)尚未激活——因为新会话的N2信令还没下发。
步骤7-10(网络触发新会话建立):这是SSC模式三最核心的一步。普通PDU会话建立是UE主动发起(Request type=initial request),而SSC模式三是网络主动触发。SMF通过Namf_Communication_N1N2MessageTransfer一次性下发N2(给AN的PDU Session Resource Setup)和N1(给UE的PDU SESSION ESTABLISHMENT ACCEPT,内含新的IP前缀与PSS ID=6)。UE收到后即获得新IP,两条会话的用户面在AN侧短暂并存。
步骤11-13(新会话用户面激活):AN完成空口资源分配后,将AN侧N3隧道F-TEID通过N2 Response回传,AMF经Nsmf_PDUSession_UpdateSMContext转发给SMF,SMF再用N4 Session Modification把AN隧道写入PSA-New的FAR,新会话B用户面正式激活。
步骤14-20(释放旧会话):新会话B激活后,SMF才触发旧会话A(PSS=5)的释放——PDU SESSION RELEASE COMMAND给UE,N4 Session Release给PSA-Old。至此Make-Before-Break窗口关闭,锚点迁移零中断完成。
SSC模式三在空口NAS信令上的识别,依赖几个核心IE。下图是PDU SESSION ESTABLISHMENT REQUEST消息中与SSC相关的IE结构:
graph TD
A[PDU SESSION ESTABLISHMENT REQUEST] --> B[PDU Session Identity]
A --> C[PTI Procedure Transaction Identity]
A --> D[Integrity protection maximum data rate]
A --> E[PDU session type]
A --> F[SSC mode]
A --> G[5GSM capability]
A --> H[Maximum number of supported packet filters]
A --> I[DNN]
A --> J[S-NSSAI]
A --> K[Request type]
A --> L[SM PDU DN request container]
F --> F1["值=3 → SSC mode 3"]
K --> K1["值=0 initial request<br/>值=1 existing PDU session<br/>值=4 modification request"]
E --> E1["IPv4 / IPv6 / IPv4v6 / Ethernet / Unstructured"]
下表给出关键IE的取值与SSC模式三的关联:
| IE名称(TS 24.501) | 长度 | 取值 | SSC模式三中的含义 |
|---|---|---|---|
| SSC mode | 1 octet | 1 / 2 / 3 | UE请求mode 3;SMF校验签约是否允许该DNN+S-NSSAI使用mode 3 |
| Request type | 1 octet | initial/existing/modification | 新会话B建立时为initial request,与旧会话A的existing PDU session区分 |
| PDU session type | 1 octet | IPv4/IPv6/IPv4v6/Ethernet | 锚点迁移后新IP前缀类型必须与会话A一致(同DNN) |
| DNN | 可变 | 如internet/ims |
新旧会话B/A的DNN必须相同,否则不算同一业务的连续性迁移 |
| S-NSSAI | 4 octet | SST+SD | 新旧会话需属于同一切片 |
| PDU Session Identity | 1 octet | 0-15 | 新会话B必须用不同的PSS ID(如6),UE不能同时持两条同ID会话 |
| 5GSM capability | 1 octet | 反射QoS/多跳等 | UE需声明支持同时多PDU会话,否则无法完成Make-Before-Break |
值得强调的设计点:为什么新会话必须用新的PSS ID? 因为TS 23.501规定一条PDU会话由(UE ID, PDU Session ID)唯一标识,UE与SMF都不能为同一PSS ID同时维护两条N4会话。所以Make-Before-Break的"双会话窗口"在信令层面表现为两个PSS ID并存,而非一条会话挂两个锚点。这一点是抓包时区分SSC mode 3与mode 1/2的关键判据。
SMF侧在Namf_Communication_N1N2MessageTransfer中还有一个隐含的决策字段——PduSessionId与TEID的新旧配对。SMF在签约数据(UDM的SessionManagementSubscriptionData)中查询该DNN+S-NSSAI的allowed SSC modes,若签约仅允许mode 1而UE请求mode 3,SMF会以5GSM cause #67(SSC mode not allowed)拒绝。
PSA重选不是随时发生,SMF有一套明确的触发与决策逻辑。下图刻画SMF在判定是否启动SSC mode 3重选时的状态流转:
flowchart TD
Start([SMF持续监测触发源]) --> T1{触发源到达?}
T1 -->|UE移动到新TA| E1[位置变化事件]
T1 -->|AF/NEF通知DNAI变化| E2[应用重定位事件]
T1 -->|本地策略周期评估| E3[运营商策略事件]
E1 & E2 & E3 --> T2{会话SSC mode==3?}
T2 -->|否, mode1| R1[保持锚点不变]
T2 -->|否, mode2| R2[Break-Before-Make\n释放旧会话让UE重建]
T2 -->|是| T3{签约允许该DNN\n使用mode3?}
T3 -->|否| R1
T3 -->|是| T4{UE支持多PDU会话\n且资源充足?}
T4 -->|否| F1[降级为mode2处理]
T4 -->|是| T5{存在更优DNAI的\n候选PSA-New?}
T5 -->|否| R1
T5 -->|是| Act[启动Make-Before-Break\n建新会话B]
Act --> Fin([完成锚点迁移])
R1 --> Fin
R2 --> Fin
F1 --> Fin
关键决策点解读:
触发源(E1/E2/E3):E1是UE移动导致的TAU/注册更新;E2是应用通过AF-NEF-PCF-SMF链路(TS 23.502 §4.3.6)请求业务重定位到新的DNAI;E3是SMF本地策略(如基于时间/负载的锚点优化)。
SSC模式校验(T2):只有签约为mode 3的会话才走Make-Before-Break;mode 1永不重选锚点,mode 2走Break-Before-Make。
能力降级(T4→F1):如果UE在5GSM capability中未声明支持同时多PDU会话(常见于受限IoT终端),SMF无法维持双会话窗口,必须降级为mode 2处理——这是实际部署中容易被忽略的兼容性坑。
SSC模式选择与协商:TS 23.501 §5.6.7规定,UE在PDU SESSION ESTABLISHMENT REQUEST中带SSC mode为建议值,SMF以签约allowed SSC modes为准做最终裁决。同一DNN+S-NSSAI的签约可以是{mode1}、{mode2,mode3}、{mode1,mode2,mode3}等组合。
mode 2与mode 3都会换锚点、都会换IP,区别在于过渡方式,这直接决定了中断时长与UE实现复杂度。
| 对比项 | SSC Mode 2(Break-Before-Make) | SSC Mode 3(Make-Before-Break) |
|---|---|---|
| 时序 | 释放旧会话→UE重建新会话 | 建立新会话→释放旧会话 |
| 双会话窗口 | 无 | 有(短暂并存) |
| 业务中断 | 有,时长≈新会话建立全程 | 几乎无,仅UE应用切换本地IP |
| 网络侧N4 | 旧PSA先拆除 | 新PSA先建立,旧PSA后拆除 |
| UE实现复杂度 | 低(一次会话) | 高(需支持同DNN多会话+IP迁移) |
| 对AR/URLLC | 不友好(中断敏感) | 友好 |
| 信令消息量 | 少(一次Release+一次Est) | 多(两次Est/Release + 双N4) |
| 资源消耗 | 低 | 高(峰值双倍用户面资源) |
| 抓包特征 | 先见RELEASE再见ESTABLISH | 先见ESTABLISH再见RELEASE,PSS ID不同 |
一个高频疑问:既然mode 3零中断更好,为什么不全部用mode 3? 因为mode 3峰值占用双倍空口与N4资源,且要求UE具备多会话能力。对于海量mIoT终端或纯无连接类业务,mode 2的资源效率更高。运营商通常按业务类型在UDM签约中预设:IMS类用mode 1,普通宽带用mode 2,MEC/URLLC用mode 3。
在端到端抓包(NGAP/NAS/N4/PFCP)中识别SSC模式三,可按以下特征定位。
NAS层识别(N1接口,经NGAP透传):
- 用Wireshark过滤 nas-5gs.message_type == 0xc1(PDU SESSION ESTABLISHMENT REQUEST)与 0xc2(ACCEPT)。在同一DNN下连续看到两条ESTABLISH,且PSS ID不同、均带ssc_mode == 3,即可初步判定为mode 3重选。
- 关键判据:检查request_type——新会话B的request_type == initial request (0),而它并非由UE主动发起(无对应的前序UE ESTABLISH REQUEST,而是网络下发的ACCEPT)。
- 对比mode 2:会先看到PDU SESSION RELEASE COMMAND(消息类型0xc6),其后再见UE发起的ESTABLISH。
N4/PFCP层识别(SMF↔UPF):
- 过滤 pfcp.msg_type == 50(Session Establishment Request)。SSC mode 3的特征是:对同一UE同一DNN,先出现一条指向PSA-New的Session Establishment,随后才出现指向PSA-Old的Session Deletion(msg_type == 54)。这个"先建后删"顺序与mode 2的"先删后建"恰好相反,是最可靠的判据。
- 检查PDR/FAR中的F-TEID:新会话B的N9 F-TEID指向PSA-New,与旧会话A的N9 F-TEID指向PSA-Old形成对照。
NGAP层识别(N2接口):
- 过滤 ngap.procedureCode == 37(PDU Session Resource Setup)与 ngap.procedureCode == 38(PDU Session Resource Release)。mode 3下同一UE的Setup与Release会针对不同PDU Session ID成对出现,且Setup在前。
| 故障现象 | 可能根因 | 排错思路 |
|---|---|---|
| SSC mode 3请求被拒,cause #67 | 签约allowed SSC modes不含mode 3 |
查UDM SessionManagementSubscriptionData中该DNN+S-NSSAI的SSC配置 |
| Make-Before-Break窗口不消失,旧会话不释放 | SMF未收到新会话用户面激活确认(N2 Setup Response丢失) | 检查AN↔AMF的N2链路、Nsmf_PDUSession_UpdateSMContext是否回传AN F-TEID |
| 新会话建立后UE应用仍用旧IP | UE未处理新IP前缀(IPv6 RA / DHCPv4) | 抓N1 ACCEPT确认新IP已下发,查UE协议栈IPv6 Router Advertisement处理 |
| 双会话期资源超限导致RRC拒绝 | 空口无法同时承载两条PDU会话资源 | 评估UE多会话能力声明、检查gNB PDU Session Resource容量 |
| SMF选不到PSA-New | NRF DNAI未配置或UPF未注册对应DNAI | 查Nnrf NFDiscovery返回结果、UPF的dnai_list注册 |
排错优先级建议:先确认NAS层SSC模式协商(UE请求 vs 签约允许),再确认N4层"先建后删"顺序,最后定位用户面F-TEID配对。多数mode 3问题集中在签约配置与双会话资源窗口两个环节。
Q: SSC mode 3能否做到IP地址不变? A: 标准定义下mode 3允许IP变化,但工程上有"同会话PSA变更"的实现变体,可在IP不变的前提下完成锚点迁移(更接近mode 1的IP保持+mode 3的锚点可变)。是否支持取决于厂商与场景,TS 23.501 §5.6.9.3将其作为可选实现。
Q: Make-Before-Break的双会话窗口最长能持续多久? A: 标准未规定硬性时长,但要求SMF在新会话用户面激活后"尽快"释放旧会话。实际部署中通常在秒级内完成,过长的双会话窗口会造成空口与N4资源浪费,运营商一般通过SMF定时器(如数秒)兜底强制释放。
Q: UE如何感知需要发起mode 3的新会话建立?
A: mode 3下新会话建立是网络主动触发的——SMF经AMF下发PDU SESSION ESTABLISHMENT ACCEPT(携带新IP与PSS ID),UE被动接收。这区别于mode 2(UE感知旧会话释放后由应用层主动重建)。
Q: SSC mode 3与边缘计算ULCL分流是什么关系? A: 二者互补。ULCL是在单一锚点会话内插入分流规则实现本地卸载(IP不变);mode 3是迁移整个锚点PSA。MEC场景中常组合使用:mode 3把锚点迁到本地PSA,再在该PSA配置ULCL规则。DNAI是连接两者的纽带。
Q: 为什么我的抓包里mode 3看起来像两次普通会话建立? A: 因为信令层面mode 3的双会话窗口本质上就是"两条普通PDU会话建立"。区分关键在于:① 两条会话DNN/S-NSSAI相同;② PSS ID不同;③ N4侧"先建新PSA后删旧PSA"的顺序;④ 新会话由网络主动触发而非UE主动发起。
本文由「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 等场景全覆盖。
