首页 › slicing-mec › MEC本地分流ULCL分支点信令拆解

MEC本地分流UL CL/BP分支点机制全链拆解:从N4 PDR/FAR规则到数据面选择性转发

一、问题本质:为什么需要 UL CL/BP

在传统的 5G PDU Session 中,用户面路径是一条单向链:UE → (R)AN → UPF(PSA) → DN。PSA(PDU Session Anchor,PDU 会话锚点)UPF 是唯一与 N6 数据网络接口相连的节点,所有上下行流量都汇聚到这一个集中式锚点。这种"单锚点、长迂回"的拓扑对普通互联网业务无害,但面对 MEC(多接入边缘计算)场景就出了根本性矛盾:

一个典型的矛盾场景——AR 眼镜的低时延渲染业务部署在本地边缘 MEC 应用服务器(AS),但 UE 的 PSA 锚在省中心的核心网 UPF。结果是:上行包从基站穿越城域/骨干网到达省中心 PSA,再从省中心折返回边缘 MEC AS,一来一回徒增 20–40ms 的回程时延,彻底抵消了 MEC 的低时延价值。

要解决这个矛盾,3GPP 没有选择"为 MEC 单独建一张专网"这种粗暴方案,而是在不改变 UE 单一 PDU Session、单一 IP 地址的前提下,在用户面路径中间插入一个"分流节点"。这个节点能识别业务流,把去往本地 MEC 的流量从最近的边缘 PSA 上 N6 出去,把去往中央互联网的流量仍送到集中 PSA 上 N6 出去。这个分流节点就是 Uplink Classifier(UL CL,上行分类器) 或 Branching Point(BP,分支点)。

二者的规范定义在 TS 23.501 Section 5.6.4,信令流程主要落在 TS 23.502 Section 4.3.5 系列,而真正决定"哪些包分流到哪里"的规则,是通过 N4 接口的 PFCP 协议(TS 29.244) 下发到 UPF 的。本文聚焦的就是这条从 SMF 规则决策 → N4 PFCP 下发 → UPF 数据面选择性转发的全链机制。

二、UL CL 与 BP 的本质区别

很多资料把 UL CL 和 BP 混为一谈,但它们在 TS 23.501 中是两个明确区分的功能,触发条件和适用场景不同。理解这个区别是后续分析 N4 规则的前提。

维度 Uplink Classifier (UL CL) Branching Point (BP)
规范章节 TS 23.501 §5.6.4.2 TS 23.501 §5.6.4.1
触发输入 Traffic Filter(业务过滤器:IP 五元组/Application ID/FQDN) IPv6 Multi-homing(多个 IPv6 前缀)
决策依据 业务流特征(深度匹配) IP 前缀/地址(基于前缀路由)
适用场景 MEC 本地分流(按业务分流) IPv6 多归属(一个会话多前缀,如同时接入多个运营商 DN)
典型部署位置 I-UPF(中间 UPF) I-UPF / PSA
上下行处理 上下行均参与(早期仅上行,Rel-16 后下行同样支持) 上下行均分支
N4 规则差异 多套 PDR/FAR 按 SDF Filter 区分 多套 PDR/FAR 按 UE IP 前缀区分

一个关键的设计意图:UL CL 是"按业务分流",BP 是"按地址分支"。在绝大多数 MEC 商用部署中,用的是 UL CL——因为运营商需要按"是不是访问本地 MEC 应用"这个业务特征来分流,而不是按 UE 有几个 IP 地址。下文如无特别说明,均以 UL CL 为分析对象,并在 N4 规则层面指出两者规则结构的共性。

三、用户面拓扑与节点角色

理解 UL CL 机制,先要厘清插入后的用户面拓扑。一个 PDU Session 在插入 UL CL 后,从"单链"变成"树形":

graph TD
    UE[UE<br/>单一IP: 10.0.0.5] -->|N3 GTP-U| gNB[(gNB)]
    gNB -->|N3| IUPF[UL CL UPF<br/>分流节点<br/>中间UPF]
    IUPF -->|N9 本地业务流| LPSA[Local PSA UPF<br/>边缘锚点]
    IUPF -->|N9 中央业务流| CPSA[Central PSA UPF<br/>集中锚点]
    LPSA -->|N6 本地分流| MEC[MEC AS<br/>边缘应用服务器]
    CPSA -->|N6 默认路由| Internet[Internet/中央DN]
    style IUPF fill:#fff3cd,stroke:#d39e00,stroke-width:2px
    style LPSA fill:#d4edda,stroke:#28a745
    style CPSA fill:#cce5ff,stroke:#007bff

节点角色说明:

设计意图很清晰:保持 UE 侧的"单一性"(单一 PDU Session、单一 UE IP、单一 N3 F-TEID),把复杂性全部下沉到网络侧的 UL CL 节点。这样 UE 无需感知分流,UE 协议栈零改动,这是 UL CL 相比 SSC Mode 3(重建会话、换 IP)的核心优势。

四、N4 接口:PDR/FAR 规则引擎

UL CL"按什么分流、分流到哪里",全部由 SMF 通过 N4 接口的 PFCP 协议(TS 29.244)下发的规则集决定。这套规则引擎是整个机制的"大脑"。核心规则实体有五种,构成一个有向匹配-执行管线:

flowchart LR
    subgraph 入口["入站匹配"]
        PDR1[PDR #1<br/>匹配: UE-IP + 本地业务Filter<br/>PDI → Application-ID=EAS]
        PDR2[PDR #2<br/>匹配: UE-IP + 通配Filter<br/>PDI → SDF Filter=any]
    end
    PDR1 -->|关联| FAR1[FAR #1<br/>Apply-Action=FORW<br/>Outer-Header→Local PSA<br/>N9隧道]
    PDR2 -->|关联| FAR2[FAR #2<br/>Apply-Action=FORW<br/>Outer-Header→Central PSA<br/>N9隧道]
    FAR1 --> QER1[QER<br/>QoS执行<br/>Gate/MBR/QRBI]
    FAR2 --> QER2[QER<br/>QoS执行]
    QER1 --> URR1[URR<br/>用量上报<br/>本地业务计量]
    QER2 --> URR2[URR<br/>用量上报]
    style PDR1 fill:#fff3cd
    style FAR1 fill:#d4edda

规则实体职责(均定义于 TS 29.244):

UL CL 分流的核心技巧:在 UL CL UPF 上,SMF 会下发至少两套 PDR/FAR。一套高优先级 PDR 精确匹配本地 MEC 业务(如目的 IP = MEC AS 的 IP 段,或 Application ID 标识的特定业务),关联到一个指向 Local PSA 的 FAR(Apply Action=FORW,Outer Header 指向 Local PSA 的 N9 F-TEID);另一套低优先级"兜底"PDR 用通配 filter 匹配所有其他流量,关联到指向 Central PSA 的 FAR。这就是"业务分流"在数据面的实现本质。

五、UL CL 插入的完整信令时序

下面以网络触发(NEF/AF 经 PCF 策略下发,或 UE 移动触发)的 UL CL 插入为典型场景,画出从策略触发到数据面生效的全链时序。该流程主要涉及 TS 23.502 §4.3.5.3(UE/网络发起的 PDU Session Modification)与 §4.3.5.7(BP/UL CL 与新增 PSA 的同时变更),N4 消息遵循 TS 29.244 §7.x PFCP 流程。

sequenceDiagram
    autonumber
    participant UE
    participant RAN as gNB
    participant AMF
    participant SMF
    participant PCF
    participant ULCL as UL CL UPF<br/>(I-UPF)
    participant LPSA as Local PSA UPF
    participant CPSA as Central PSA UPF
    participant MEC as MEC AS

    Note over UE,SMF: 初始状态:PDU Session 已锚定 Central PSA,正常上网
    AF->>PCF: 1a. 策略触发(经NEF或直接)<br/>Application=本地业务需本地分流
    PCF->>SMF: 1b. SM Policy Association Modification<br/>PCC Rule: 流量过滤器→本地路由
    Note over SMF: 2. SMF决策:选择Local PSA,决定插入UL CL
    SMF->>LPSA: 3. N4 PFCP Session Estab. Req<br/>下发PDR/FAR(N6→MEC)、URR
    LPSA-->>SMF: 3a. N4 PFCP Session Estab. Resp<br/>分配Local N9 F-TEID
    SMF->>ULCL: 4. N4 PFCP Session Modification Req<br/>新增PDR#1(本地业务→Local PSA TEID)<br/>+PDR#2(兜底→Central PSA TEID)
    ULCL-->>SMF: 4a. N4 PFCP Session Modification Resp<br/>确认规则生效
    Note over ULCL: 4b. 数据面分支点激活:<br/>两条转发规则就绪
    SMF->>CPSA: 5. N4 PFCP Session Mod. Req<br/>更新下行FAR(N9→指向UL CL而非RAN)
    CPSA-->>SMF: 5a. N4 PFCP Session Mod. Resp
    SMF->>AMF: 6. Nsmf_PDUSession_UpdateSMContext Req<br/>请求更新N3隧道(如需)
    AMF->>RAN: 7. N2 PDU Session Resource Modify<br/>(可选,若N3变更)
    RAN-->>AMF: 7a. N2 Response
    AMF-->>SMF: 7b. Nsmf Response
    SMF->>UE: 8. PDU Session Modification Command<br/>(多数情况空, UE无感知)
    Note over UE,MEC: 9. 数据面生效:本地业务经UL CL→Local PSA→MEC<br/>互联网业务经UL CL→Central PSA→Internet
    UE->>ULCL: 9a. 上行包(本地业务)→命中PDR#1
    ULCL->>LPSA: 9b. N9转发
    LPSA->>MEC: 9c. N6本地分流到达

逐步解析关键消息与 IE:

消息①(PCF→SMF,策略触发):这是分流的"起搏器"。当 AF(应用功能,常部署在 MEC 平台)通过 NEF 或直接向 PCF 发起流量影响请求,PCF 计算出 PCC Rule,其中携带 Traffic Filter Data(业务过滤器,IP 五元组或 Application ID)和 Routing Requirement(路由要求,如指示本地路由)。SMF 据此知道"哪些业务要分流"。

消息②(SMF 决策):SMF 是规则的"编排者"。它需要做三件事——决定插入 UL CL、选择 Local PSA(基于 DNAI——Data Network Access Identifier,数据网络接入标识,TS 23.501 §5.6.6)、确定 UL CL UPF。DNAI 是连接 5GC 与 MEC 编排的关键标识,标识 UPF 到某个 DN(本地 MEC)的接入点。

消息③(N4 → Local PSA):PFCP Session Establishment Request,下发 Local PSA 的规则。关键 IE: - Create PDR(IE type 0x2):PDI 中 Source Interface=Core(针对 MEC 下行)/ F-TEID(接收 N9); - Create FAR(0x3):Apply Action=FORW,Forwarding Parameters 中 Outer Header Creation 描述 N6 非隧道出口,Destination Interface=SGi-LAN(0x2),指向 MEC AS; - Create URR(0xa):计量本地流量供计费。 - Create FAR Resp 返回 Local PSA 在 N9 侧分配的 F-TEID,供 UL CL 转发时填入外层头。

消息④(N4 → UL CL,核心动作):PFCP Session Modification Request,这是分流的实质。SMF 向 UL CL UPF 下发两套新增 PDR/FAR: - PDR#1(高优先级,Precedence 小):PDI = {UE IP + SDF Filter(本地业务五元组) 或 Application ID(本地业务)},关联 FAR#1:Apply Action=FORW,Outer Header Creation = {GTP-U, Local PSA 的 N9 IP + 消息③返回的 N9 F-TEID}; - PDR#2(低优先级,Precedence 大,兜底):PDI = {UE IP + 通配 Filter},关联 FAR#2:Apply Action=FORW,Outer Header Creation = {GTP-U, Central PSA 的 N9 F-TEID}。 - UPF 回 PFCP Session Modification Response,规则即时生效。注意:N4 是事务型协议,SMF 收到 Response 后规则才确认下发完成。

消息⑤(N4 → Central PSA):下行方向的"回程修正"。原来 Central PSA 的下行 FAR 直接指向 RAN(N3),插入 UL CL 后,需要把 Central PSA 的下行 Outer Header 改为指向 UL CL 的 N9 F-TEID,否则下行互联网包会绕过 UL CL 直达 RAN,UE 侧没问题,但破坏了"所有流量过 UL CL"的计量一致性。

消息⑥–⑧(更新 N3,可选):若 UL CL 插入伴随 N3 隧道变更(如 UE 移动到新 I-UPF),需要 N2 PDU Session Resource Modify 更新 gNB 侧的 N3 F-TEID;若 UL CL 与原 I-UPF 合设、N3 不变,则跳过。

消息⑧(→UE):多数 UL CL 插入场景对 UE 透明,UE 不需要收到任何 Modification Command,因为 UE 的 IP、PDU Session ID、N3 F-TEID 都没变。这正是 UL CL 设计的精髓——网络侧拓扑变化对 UE 不可见。

六、关键 IE 参数说明表

下表汇总 N4 规则中的核心 IE 及其在 UL CL 场景的取值含义(字段编号与定义见 TS 29.244 §7.5):

IE 名称 编号 关键字段/取值 UL CL 场景含义
PDI 0x1 Source Interface / F-TEID / UE IP / SDF Filter / Application ID 决定"匹配谁"。本地业务用 Application ID 或精确 SDF Filter
Create PDR 0x2 Precedence / PDI / Outer Header Removal Precedence 越小优先级越高,本地 PDR 必须高于兜底 PDR
Apply Action 0x5 FORW / DROP / BUFF / NOCP / DUPL 分流用 FORW;NOCP 用于下行通知触发场景
Create FAR 0x3 Apply Action / Forwarding Parameters 决定"送到哪",区分去 Local PSA 还是 Central PSA
Forwarding Parameters 0x4 Outer Header Creation / Destination Interface N9 隧道用 GTP-U 头;N6 用非隧道,Destination Interface=SGi-LAN
Outer Header Creation 0x84 TEID / IP / GTP-U vs 非 GTP UL CL→Local PSA 的 N9 F-TEID 是分流的核心指针
Create QER 0xa Gate Status / MBR / QFI 本地业务与中央业务可差异化 QoS
Create URR 0xc Measurement Method / Reporting Triggers 分别计量本地/中央流量,支撑差异化计费
F-TEID 0x21 TEID + IP N3/N9 隧道端点标识,分流路径的"路牌"
UE IP Address 0x93 IPv4/IPv6 PDR 匹配条件,锁定本会话 UE

七、数据面分流的工作逻辑(状态视角)

从 UPF 数据面看,插入 UL CL 后,每一个上行包都要经过一条固定的"匹配-转发"决策管线。下图描述这一状态机逻辑:

stateDiagram-v2
    [*] --> 收到上行包: N3方向(gNB→UL CL)
    收到上行包 --> 剥外层头: 移除N3 GTP-U
    剥外层头 --> PDR匹配: 按Precedence从高到低
    PDR匹配 --> 命中本地PDR: 目的IP/MAC匹配本地业务过滤器?
    PDR匹配 --> 命中兜底PDR: 仅匹配UE_IP(其余通配)
    命中本地PDR --> 执行FAR#1: Apply=FORW
    命中兜底PDR --> 执行FAR#2: Apply=FORW
    执行FAR#1 --> 加N9外层头: 目标=Local PSA TEID
    执行FAR#2 --> 加N9外层头: 目标=Central PSA TEID
    加N9外层头 --> 发往Local PSA: N9隧道
    加N9外层头 --> 发往Central PSA: N9隧道
    发往Local PSA --> [*]: 经N6到达MEC AS
    发往Central PSA --> [*]: 经N6到达Internet

下行回程逻辑对称:Local PSA / Central PSA 收到 DN 侧下行包后,各自按自己的 FAR(Outer Header 指向 UL CL 的 N9 F-TEID)发往 UL CL;UL CL 收到后剥 N9 头,命中"Core→Access"的下行 PDR,重新封装 N3 GTP-U(指向 gNB 的 DL F-TEID)发往 UE。这样 UE 看到的仍是一条连贯的 N3 隧道,完全无感知分流。

八、抓包识别:如何用 Wireshark 验证 UL CL

实战排错中,UL CL 分流问题常常表现为"业务没走到本地 MEC"或"流量串绕"。抓包识别要点:

  1. N4 面(PFCP):过滤 pfcp,查找 PFCP Session Modification Request,展开 Create PDR 与 Create FAR,确认存在两套规则、Precedence 顺序正确、Outer Header Creation 的 TEID 指向正确的 PSA。
  2. N9 面(GTP-U):过滤 gtp && udp.port==2152,对比本地业务包的目的 IP(外层 IP)应为 Local PSA 的 N9 IP,而互联网包应为 Central PSA 的 N9 IP。若本地业务包的外层目的 IP 仍是 Central PSA,说明 UL CL 的 PDR#1 未命中或 FAR 指向错误。
  3. N3 面:UE 侧应只看到单一 N3 F-TEID,证实对 UE 透明。

常见故障点: - PDR Precedence 配置错误:兜底 PDR 优先级高于本地 PDR,导致所有流量都走中央,本地 MEC 永远收不到业务——这是最高频故障,表现为 Local PSA URR 计量为零。 - SDF Filter 与实际业务不匹配:AF 下发的过滤器(如端口号)与 UE 实际业务端口不符,PDR#1 永不命中。需核对 PCF PCC Rule 的 Traffic Filter Data。 - DNAI/UPF 选择错误:SMF 选错了 Local PSA(跨地域),分流反而增加时延,违背 MEC 初衷。 - Outer Header TEID 不一致:FAR#1 的 TEID 与 Local PSA 实际分配的 N9 F-TEID 不符,导致 GTP-U 包被丢弃,表现为业务不通。

九、与其他分流方案的对比

方案 是否换 IP UE 是否感知 切换时延 规则位置 典型场景
UL CL/BP(本文) 否 否 极低 N4 PDR/FAR(数据面) MEC 按业务本地分流
SSC Mode 3 锚点重定位 是 是(重建会话) 较高 控制面重建 PDU Session UE 移动跨大区换锚点
LADN 否 否(仅特定区域可用) 无 SMF 位置校验 + 普通 PSA 区域性专网数据网络
IPv6 Multi-homing BP 多前缀 是(多 IPv6 地址) 中 N4 按前缀分支 多 DN 并发接入
本地 N6 breakout(无 UL CL) 否 否 低 单 PSA 多 N6 简单边缘出口

UL CL 的独特价值在于"业务粒度分流 + UE 完全透明"的双重优势,代价是 UL CL UPF 的规则复杂度和算力开销。

十、常见问题

Q1: UL CL UPF 和 Local PSA UPF 必须是两个不同的 UPF 吗? A: 不必须。逻辑上是两个角色(分流节点 + 边缘锚点),但商用中合设是最常见形态——同一物理 UPF 同时承担 UL CL 和 Local PSA,省去 N9 隧道跳数,时延最低。分离部署多见于演示/学习环境。

Q2: UL CL 和 Branching Point 在 N4 规则上有什么实质区别? A: 规则结构几乎相同(都是多套 PDR/FAR),区别在匹配条件:UL CL 的 PDR 用 SDF Filter / Application ID(业务特征)匹配;BP 的 PDR 用 UE IP 的不同前缀(IPv6 Multi-homing 的多前缀)匹配。简单记:UL CL 按"业务",BP 按"地址"。

Q3: UE 会感知到 UL CL 的插入或删除吗? A: 典型情况下完全无感知。UE 的 IP、PDU Session ID、N3 F-TEID 都不变,无需收发任何 Modification Command。只有在 UL CL 插入伴随 N3 隧道变更(如跨 I-UPF 移动)时,UE 才会收到 N2 层的资源修改。

Q4: 为什么本地业务的 PDR Precedence 必须比兜底 PDR 高? A: PDR 按 Precedence 从小到大(高→低)匹配,命中即停。若兜底 PDR(通配)优先级更高,所有包会先命中它全部走中央 PSA,本地 PDR 永不执行。所以精确匹配的本地 PDR 必须设更小的 Precedence 值。

Q5: UL CL 与已覆盖的 SSC Mode 3 锚点重定位冲突吗? A: 不冲突,是互补的两个维度。SSC Mode 3 是控制面的"重建会话换锚点换 IP"机制;UL CL 是数据面的"在现有会话中间插入分流节点不换 IP"机制。MEC 低时延分流优先用 UL CL(无感、低时延),UE 大范围移动跨锚点时才用 SSC Mode 3。

参考来源

  1. 3GPP TS 23.501 V18.10.0 - System architecture for the 5G System — §5.6.4 Uplink Classifier / Branching Point、§5.6.6 DNAI
  2. 3GPP TS 29.244 - Interface between CP and UP nodes (PFCP) — §5.2.2 PDR、§5.2.3 FAR、§7.5 PFCP IE 定义
  3. TS 23.502 §4.3.5.7 Simultaneous change of BP or UL CL and additional PSA - iTecSpec — BP/UL CL 同时变更流程解读
  4. Packet Forwarding Rules (PDR/FAR/QER/URR/BAR) - DeepWiki open5gs — PFCP 规则引擎实现细节
  5. 5G at the Edge: ULCL Proof of Concept - Medium — UL CL/C-PSA/L-PSA 部署与抓包验证
  6. 3GPP Edge Computing - Session breakout 拓扑 — 官方 MEC 会话分流架构概述

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