子域:切片与边缘计算(slicing-mec) · 规范基线:3GPP Release 18(TS 23.501 V18.10.0 / TS 38.413 V18.6.0)
URLLC(超可靠低时延通信)对可靠性的目标值在 TS 22.261 中被定义为"用户面 PDCP SDU 在 1ms 内成功交付的概率达到 1 − 10⁻⁵",而面向工业自动化的增强场景甚至要求达到 1 − 10⁻⁶。这是一个非常苛刻的指标:如果把整条用户面路径(UE → 空口 → gNB → N3 → UPF → N6 → DN 应用服务器)看成一条串联链,任意一段的瞬时故障(空口深衰落、传输光路瞬断、UPF 进程抖动)都会让这一次"1ms 内交付"失败。
单凭 QoS 调度(5QI、GBR、PDB)只能降低"正常状态下的时延",无法消除"单点瞬时故障"。3GPP 在 R16 给出的工程答案就是冗余传输(Redundant Transmission):用空间/路径上的两份独立拷贝,把单路径的 10⁻⁵ 失效概率"相乘"成接近 10⁻¹⁰ 的双路径联合失效概率。
TS 23.501 在 Section 5.33.2 定义了三套不同的冗余架构,本文聚焦其中最具代表性、信令链也最长的一套——Section 5.33.2.1 "Redundant user plane paths based on dual connectivity"(基于双连接的端到端冗余用户面路径),俗称"双 PDU 会话端到端冗余"。它的核心思想是:UE 用两个彼此完全独立的 PDU 会话打通两条端到端不相交的用户面路径,一条走主节点(MN)、一条走辅节点(SN),再由 UE 侧和应用服务器侧做复制与去重。
在拆信令之前,必须先把三种架构的"冗余落在哪一段"分清楚,否则后面的 IE 与抓包会看不懂。
flowchart TB
subgraph A["5.33.2.1 端到端冗余(双PDU会话+双连接)"]
direction TB
UE1[UE] -->|PDU会话1 主路径| MN1[MN gNB]
UE1 -->|PDU会话2 辅路径| SN1[SN gNB]
MN1 -->|N3-a| UPF1a[PSA UPF-A]
SN1 -->|N3-b| UPF1b[PSA UPF-B]
UPF1a -->|N6-a| DN1[应用服务器]
UPF1b -->|N6-b| DN1
end
subgraph B["5.33.2.2 单PDU会话双N3/N9隧道"]
direction TB
UE2[UE] -->|单PDU会话| gNB2[gNB]
gNB2 -->|N3-1 双隧道| UPF2a[I-UPF]
gNB2 -->|N3-2| UPF2a
UPF2a -->|N9-1| PSA2[PSA UPF]
UPF2a -->|N9-2| PSA2
end
subgraph C["5.33.2.3 传输层冗余(R19)"]
direction TB
UE3[UE] --> gNB3[gNB]
gNB3 -->|N3双隧道+IP/ETH层复制| UPF3[UPF]
UPF3 -->|N6| DN3[DN]
end
三种架构的本质区别在于"冗余从哪一段开始、到哪一段结束":
本文主角 5.33.2.1 的设计意图非常清晰:为对可靠性要求最高的工业控制、远程驾驶等场景提供"全段无单点故障"的管道,把可靠性责任从单一网元分散到两条物理/逻辑独立的路径上。
要让两条路径真正"不相交",下面六类资源必须各自独立,这是 SMF 在会话建立时要做好的编排工作:
正是这"六件配对独立"决定了后面信令流程里每一个 IE 的存在意义。
下面这张时序图是本文的核心。它串起了 URSP 下发 → 两个 PDU 会话分别建立 → NGAP 冗余会话信息透传 → 双连接 SN Addition → PDCP 复制激活 → 应用层冗余握手 这条完整链条。为了便于理解,图中假设会话 #A 由 SMF-A/UPF-A/MN 服务、会话 #B 由 SMF-B/UPF-B/SN 服务。
sequenceDiagram
autonumber
participant UE
participant MN as MN-gNB
participant SN as SN-gNB
participant AMF
participant SMFA as SMF-A
participant SMFB as SMF-B
participant PCF
participant UPFA as UPF-A(PSA)
participant UPFB as UPF-B(PSA)
participant DN as 应用服务器
Note over UE,PCF: 阶段0:URSP规则下发(让UE知道用两条PDU会话)
PCF->>AMF: Namf_Communication_N1N2MessageTransfer (URSP规则, TS23.503)
AMF->>UE: DL NAS TRANSPORT (UE Configuration Update, 携带URSP)
Note over UE: URSP: 业务流描述符 → RSD1(DNN-urlrc, S-NSSAI-X)<br/>+ RSD2(DNN-urlrc, S-NSSAI-Y) 触发双会话
Note over UE,UPFA: 阶段1:建立PDU会话#A(主路径)
UE->>AMF: UL NAS TRANSPORT (PDU Session Establishment Req, PDU Session ID=10)
AMF->>SMFA: Nsmf_PDUSession_CreateSMContext (DNN, S-NSSAI-X)
SMFA->>SMFA: UPF(PSA)选择=UPF-A; 标记冗余对(冗余集)
SMFA->>AMF: N1N2 SM Info: N2=PDU Session Res Setup(含Redundant PDU Session Info), N1=PDU Sess Est Acc
AMF->>MN: PDU SESSION RESOURCE SETUP REQUEST (PSI=10)
Note over MN: 会话#A的DRB建在MN(主节点)
MN->>UE: RRC Reconfiguration (DRB建立)
Note over UE,UPFB: 阶段2:建立PDU会话#B(辅路径)
UE->>AMF: UL NAS TRANSPORT (PDU Session Establishment Req, PDU Session ID=20)
AMF->>SMFB: Nsmf_PDUSession_CreateSMContext (DNN, S-NSSAI-Y)
SMFB->>SMFB: UPF(PSA)选择=UPF-B; 关联到同一冗余集
SMFB->>AMF: N1N2 SM Info: N2=PDU Session Res Setup(含Redundant PDU Session Info, 配对PSI=10)
AMF->>MN: PDU SESSION RESOURCE SETUP REQUEST (PSI=20)
Note over MN,SN: 阶段3:双连接——把会话#B移到辅节点SN
MN->>SN: XnAP S-NODE ADDITION REQUEST (携带PSI=20的DRB需求)
SN-->>MN: S-NODE ADDITION REQUEST ACK
SN->>UE: RRC Reconfiguration (会话#B的DRB建在SN)
Note over UE,DN: 阶段4:上行冗余数据面
UE->>MN: 上行副本#1 (经会话#A → UPF-A → N6-a)
UE->>SN: 上行副本#2 (经会话#B → UPF-B → N6-b)
DN->>DN: 去重(先到先用,后到丢弃)
下面逐段拆解每条消息里真正决定冗余能不能成立的那些 IE。
PCF 通过 Namf_Communication_N1N2MessageTransfer(TS 23.502 4.2.4)下发 URSP 规则,封装在 UE Configuration Update Command 的 NAS 消息里(TS 24.501)。URSP 规则(TS 23.503 / TS 24.526)的结构是:
ctrl.factory.local、DNN 匹配等。冗余的关键在于同一个业务流被配置两个 RSD(例如 RSD1={S-NSSAI-X, DNN=urlrc} 和 RSD2={S-NSSAI-Y, DNN=urlrc})。UE 的 URSP 求解逻辑(TS 24.526)发现已有 PDU 会话无法同时满足两个 RSD,于是为该业务流分别建立两个 PDU 会话。R17 还专门在 URSP 里增加了冗余相关描述,使 UE 能明确识别"这是冗余成对会话"。
设计意图:把"是否冗余、用哪条路径"的策略权交给 PCF/运营商,而不是写死在应用里——这样切片、路径编排可以集中管控。
两条会话各走一遍 TS 23.502 4.3.2.2 的标准 PDU 会话建立流程,差异全部隐藏在 SMF 的选择决策里:
N4 Session Establishment(TS 29.244)时按"与已有冗余会话 UPF 不同机房/不同拓扑域"的原则选 UPF-B,确保 N3/N9/N6 物理不交叉。这是 5.33.2.1 区别于其它方案最关键的一步。当会话 #B 的 PDU SESSION RESOURCE SETUP REQUEST 到达 MN(主节点)后,MN 不在本节点建 DRB,而是发起 XnAP 的 S‑Node Addition Procedure(TS 38.423),把会话 #B 的 DRB 需求转给 SN(辅节点 gNB-c):
S‑NODE ADDITION REQUEST,携带要建在 SN 侧的 PDU 会话资源信息(含冗余配对提示)。ACK,承担会话 #B 的空口 DRB 与到 UPF-B 的 N3 隧道。到这一步,UE 真正实现了"一条腿踩在 MN、一条腿踩在 SN"的双连接,两条用户面路径在空口段就已经物理分离。
上行方向:UE 侧冗余处理(应用层或 R17 的网络层冗余处理功能)对同一业务流产生两份副本,分别经会话 #A、#B 发出。DN 侧应用服务器收到两份,按"先到先用、后到丢弃"策略去重。下行方向同理反向。
很多人会忽略一个事实:仅靠两个独立 PDU 会话并不能保证 RAN 真的把它们分开传输。如果 MN 把两条会话的 N3 隧道都走同一条传输光路,冗余就形同虚设。为此,Rel‑17 在 NGAP 里引入了冗余会话显式标识,让 RAN 据此把成对会话路由到不同传输资源。
SMF 在构造 N2 SM 信息(PDUSessionResourceSetupRequestTransfer,TS 38.413)时,对该冗余会话填入 Redundant PDU Session Information,经 AMF 透传给 NG‑RAN。其语义见下表。
| NGAP/N2 SM IE | 所在消息 | 作用 | 取值示例 |
|---|---|---|---|
| Redundant PDU Session Information | PDU Session Resource Setup/Modify Request Transfer | 告知本会话属于某个冗余对,并给出配对 PDU Session ID,使 RAN 将两条会话调度到不同传输 | redundantPduSessionSet={paired-PSI=10} |
| Redundant QoS Flow Information(可选) | PDU Session Resource Setup | 指示哪条 QoS Flow 是冗余 QoS Flow,便于 RAN 端按流粒度处理 | QFI=5, redundant=true |
| PDU Session ID | 全流程 | 唯一标识会话,用于配对匹配 | 10 / 20 |
| S-NSSAI / DNN | SM Context | AMF/SMF 据此做拓扑分离选择 | S-NSSAI-X / DNN=urlrc |
RAN 收到配对信息后,会在底层把两条会话的 N3 隧道绑定到不同的传输接口或不同的 TNL Association,并避免在同一段物理链路上叠加,从而兑现"不相交路径"的承诺。
除了"会话级"的双连接冗余,NR 还提供"承载级"的 PDCP 复制(TS 38.300 16.x / TS 38.323):一个 PDCP 实体关联两个 RLC 实体(通常两条 leg),原始 PDCP PDU 在两条 leg 上各发一份。它与 5.33.2.1 的关系是互补而非替代——PDCP 复制在空口段进一步降低单 leg 深衰落导致的丢包,而双连接冗余负责端到端路径分离。
PDCP 复制的激活/去激活通过 Duplication Activation/Deactivation MAC CE(TS 38.321)动态控制,RRC 配置在 pdcp-Config 中(TS 38.331)。
flowchart LR
subgraph PDCP["PDCP复制(承载级空口冗余)"]
direction TB
P[PDCP SDU] --> PA[PDCP实体]
PA -->|复制| RLC1[RLC leg1 - MN]
PA -->|复制| RLC2[RLC leg2 - SN]
RLC1 --> MAC1[MAC1]
RLC2 --> MAC2[MAC2]
MAC1 -->空口1[载波1]
MAC2 -->空口2[载波2]
end
flowchart TB
URSP["URSP规则 (TS 23.503)"] --> TD["Traffic Descriptor<br/>目的IP/FQDN/连接特性"]
URSP --> RSDs["Route Selection Descriptor 列表"]
RSDs --> RSD1["RSD1: S-NSSAI-X, DNN=urlrc"]
RSDs --> RSD2["RSD2: S-NSSAI-Y, DNN=urlrc"]
RSD1 --> PSI10["→ PDU会话 #10 (PSI=10)"]
RSD2 --> PSI20["→ PDU会话 #20 (PSI=20)"]
PSI10 -.成对冗余.-> PSI20
| 抓包位置 | 看哪个协议/消息 | 识别要点 |
|---|---|---|
| UE↔网络(N1 NAS) | UL NAS TRANSPORT / UE CONFIGURATION UPDATE COMMAND |
URSP 规则中同一 Traffic Descriptor 下出现 ≥2 个 RSD;PDU Session ID 出现 10、20 两个值且 DNN 相同 |
| N2(AMF↔gNB) | NGAP PDU SESSION RESOURCE SETUP REQUEST |
出现 Redundant PDU Session Information,且成对 PSI 互相引用;两次 Setup 的 SMF 不同 |
| Xn(MN↔SN) | XnAP S‑NODE ADDITION REQUEST |
携带第二条会话(PSI=20)的 DRB 需求——这是"双连接冗余"最直接的证据 |
| N3(gNB↔UPF) | GTP‑U | 同一 UE 出现两条独立 TEID 的隧道,分别终结在 UPF-A、UPF-B;同一应用流上行包在两条隧道里内容相同 |
| N6(UPF↔DN) | IPv6/Ethernet | 应用服务器同一端口收到两份相同载荷,源地址为两个不同 IPv6 前缀 |
典型排错思路: - 症状:可靠性没提升,抓包看到两条 N3 隧道走同一段物理传输 → 检查 SMF/传输编排是否真的把配对会话调度到了不同 TNL,Redundant PDU Session Information 是否正确下发并被 RAN 处理。 - 症状:DN 只收到一份 → UE 侧 URSP 求解只建了一个会话,或应用未启用双 socket;检查 UE Configuration Update 是否成功、URSP 是否含两个 RSD。 - 症状:双连接未生效,两条 DRB 都在 MN → 检查 MN 是否触发了 S‑Node Addition,SN 是否准入;可能是 SN 容量或邻区关系未配置。
Q1:5.33.2.1(双PDU会话)和 5.33.2.2(双N3/N9隧道)到底怎么选? A:看冗余要做到哪一段。需要端到端含空口和 DN 全段冗余、能容忍 UE/DN 发两份流量,选 5.33.2.1;只担心 5G 网络内部(传输/UPF)单点、希望 UE 和 DN 无感知、空口由 PDCP 复制兜底,选 5.33.2.2。前者可靠性最高但成本高,后者部署更轻。
Q2:双连接是不是必须用两个不同 gNB? A:是的。5.33.2.1 要求主、辅 RAB 分别落在 MN 和 SN 两个节点,正是为了在空口和 N3 入口段都消除单点。如果两条会话都落在同一 gNB,RAN 侧就失去了双连接带来的隔离价值(尽管 N3 之后仍可分离)。
Q3:PDCP 复制和双连接冗余会冲突吗? A:不冲突,是两个粒度。双连接冗余是"会话/路径级",PDCP 复制是"承载/空口级"。实际部署常叠加使用:双连接保证端到端路径分离,PDCP 复制进一步降低单条空口 leg 的瞬时丢包。注意 PDCP 复制会占用额外空口资源,宜用 MAC CE 按链路质量动态激活。
Q4:为什么 NGAP 里要专门加 Redundant PDU Session Information?两个会话不是天然独立吗? A:两个会话在控制面确实独立,但 RAN 不知道它们"是一对冗余",默认可能把两条 N3 隧道调度到同一传输。显式标识让 RAN 主动把成对会话路由到不同传输资源,这是"逻辑独立"落实为"物理不相交"的关键。
Q5:R19 的 5.33.2.3 传输层冗余解决了什么新问题? A:它让 5G 系统在不依赖 IEEE FRER 等应用层冗余协议、也不强制双 PDU 会话的前提下,通过传输层双 N3 隧道 + IP/以太网层冗余实现网络内冗余,填补了"既不想动 UE、又不想依赖 DN 应用层"的中间地带。
本文由「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 等场景全覆盖。
