你每天刷视频、发微信、开视频会议时,数据包从手机出发,穿过无线空口,进入核心网,最终到达互联网。在这段旅程中,UPF(User Plane Function,用户面功能) 是最关键的中转站——它决定每个数据包去哪儿、以什么优先级走、要不要复制一份给计费系统。理解UPF,就掌握了5G数据面的底层逻辑。
想象一个超大规模的快递分拣中心:
UPF就是5G核心网里的"快递分拣中心"。每个从手机发出的IP数据包到达UPF后,UPF会根据一套预先配置好的规则集,决定这个包的归属和去向。
graph LR
UE[UE 手机] -->|无线空口| gNB[gNB 基站]
gNB -->|N3隧道| UPF[UPF 用户面功能]
UPF -->|N6接口| DN[DN 数据网络<br/>互联网/企业网]
UPF -->|N9隧道| UPF2[UPF<br/>中间锚点]
UPF2 -->|N6| DN2[另一个DN]
SMF[SMF 会话管理] -.->|N4接口<br/>下发规则| UPF
SMF -.->|N4接口| UPF2
style UPF fill:#e74c3c,color:#fff,stroke:#c0392b
style SMF fill:#3498db,color:#fff,stroke:#2980b9
如图所示,UPF处于数据面的核心枢纽位置:
关键认知:UPF是5G核心网中唯一处理用户实际数据的网元。AMF、SMF、PCF这些控制面网元只处理信令,不碰用户数据包。4G时代的SGW和PGW的用户面功能,在5G中被统一整合到了UPF。
| 对比维度 | 4G (SGW+PGW) | 5G (UPF) |
|---|---|---|
| 网元数量 | 两个网元分别处理用户面 | 单一逻辑功能,可灵活部署 |
| 控制面耦合 | SGW-C/PGW-C与用户面紧耦合 | N4接口解耦,SMF控制UPF |
| 部署位置 | 通常集中在核心网机房 | 可下沉到边缘(MEC场景) |
| 功能拆分 | SGW负责中转,PGW负责锚定和策略 | UPF集所有用户面功能于一身 |
| 扩展性 | 扩容需同时考虑SGW和PGW | UPF可独立水平扩展 |
5G的设计哲学是控制面与用户面分离(CUPS)。SMF负责"思考"(制定策略),UPF负责"干活"(转发数据包)。这种分离让UPF可以像服务器一样灵活部署——放在核心机房、放在边缘数据中心、甚至放在企业园区里。
UPF的核心工作方式可以用一句话概括:收到数据包 → 匹配规则 → 执行动作。
这个过程依赖三套核心规则,统称PFCP Rules(Packet Forwarding Control Protocol Rules)。
PDR(Packet Detection Rule,包检测规则) 是UPF工作的起点。每个PDR定义了一组匹配条件,用来识别特定类型的数据包。
收到一个数据包
↓
遍历所有PDR规则
↓
匹配成功? → 执行对应的FAR/QER/URR
↓
匹配失败? → 丢弃(默认行为)
PDR的匹配字段包括:
| 匹配字段 | 含义 | 示例 |
|---|---|---|
| Source Interface | 数据包来源方向 | Access(来自基站)、Core(来自DN) |
| F-TEID | GTP隧道端点标识 | 基站侧隧道的唯一ID |
| UE IP Address | 手机IP地址 | 10.1.2.3 |
| SDF Filter | 业务数据流过滤器 | 目的IP=视频服务器,协议=TCP,端口=443 |
| QFI | QoS Flow标识 | QFI=7(视频流) |
类比理解:PDR就像机场安检的登机牌扫描器。扫描你的登机牌(数据包头部),确认你是谁、从哪来、要去哪。匹配成功后才放行。
FAR(Forwarding Action Rule,转发动作规则) 告诉UPF匹配到的数据包该怎么处理。
FAR支持四种动作:
| 动作 | 含义 | 典型场景 |
|---|---|---|
| Forward | 转发到指定方向 | 正常数据包转发到DN或基站 |
| Drop | 丢弃数据包 | 策略禁止的流量、计费 quota用完 |
| Buffer | 缓存数据包 | 下行数据到达但手机处于空闲态 |
| Notify | 通知控制面 | 触发SMF进行某种处理(如唤醒手机) |
Forward动作的细节最丰富:
graph TD
PDR[PDR匹配成功] --> FAR{FAR转发动作}
FAR -->|Forward| OuterHeader[封装外层头部<br/>GTP/N3或N9隧道]
OuterHeader --> Direction{转发方向?}
Direction -->|Core方向| DN[发送到DN<br/>N6接口]
Direction -->|Access方向| gNB[发送到gNB<br/>N3隧道]
Direction -->|另一个UPF| UPF2[通过N9隧道<br/>发往中间UPF]
FAR -->|Drop| Discard[丢弃数据包<br/>可选:通知SMF]
FAR -->|Buffer| Cache[缓存数据包<br/>等待手机被寻呼唤醒]
Cache -->|手机恢复连接| Forward2[转发缓存数据]
实战提示:Buffering是5G独有的特性。在4G中,手机进入空闲态后,下行数据直接被SGW缓存。在5G中,UPF可以配置Buffering规则,当手机处于CM-IDLE状态时,缓存下行数据并通知SMF触发寻呼。这减少了数据丢失。
QER(QoS Enforcement Rule,QoS执行规则) 负责QoS相关的处理——限速、标记优先级。
QER的核心功能:
$$Rate_{allowed} = \min(Rate_{subscribed},\ Rate_{policy},\ Rate_{session})$$
限速值取签约速率、策略速率和会话速率中的最小值。
URR(Usage Reporting Rule,用量报告规则) 负责统计流量用量,为计费系统提供数据。
URR的工作方式:
| 触发条件 | 含义 |
|---|---|
| Volume Threshold | 流量达到阈值(如100MB) |
| Time Threshold | 时长达到阈值(如3600秒) |
| Quota Expiry | 配额用完 |
| Immediate Report | 立即报告(SMF主动查询) |
现在把PDR、FAR、QER、URR组合起来,看看一个完整的数据包处理流程:
sequenceDiagram
participant UE as 手机(UE)
participant gNB as 基站(gNB)
participant UPF as UPF
participant SMF as SMF
participant DN as 数据网络(DN)
Note over SMF,UPF: 1. 会话建立阶段:SMF通过N4下发规则
SMF->>UPF: N4: PDR+FAR+QER+URR规则集
UPF-->>SMF: N4: 确认(返回F-TEID)
Note over UE,UPF: 2. 数据传输阶段
UE->>gNB: 上行IP数据包(如访问网页)
gNB->>UPF: N3 GTP隧道封装数据包
Note over UPF: ① PDR匹配:源=Access, UE IP=10.1.2.3<br/>② QER执行:检查限速、标记QFI<br/>③ FAR执行:Forward到Core方向<br/>④ URR统计:累加字节数
UPF->>DN: N6接口发送(去掉GTP头)
DN->>UPF: 下行响应数据包
Note over UPF: ① PDR匹配:源=Core, 目的IP=10.1.2.3<br/>② QER执行:下行限速检查<br/>③ FAR执行:Forward到Access方向<br/>④ URR统计:累加字节数
UPF->>gNB: N3 GTP隧道封装数据包
gNB->>UE: 下行数据包
Note over UPF,SMF: 3. 用量报告
UPF->>SMF: N4: Usage Report(流量统计)
流程解读:
会话建立时,SMF通过N4接口向UPF下发完整的规则集(PDR+FAR+QER+URR)。UPF回复确认,并告知自己的GTP隧道端点标识(F-TEID),以便基站知道往哪里发数据。
上行数据包到达UPF后:先PDR匹配(确认这个包属于哪个会话),再QER限速和标记,然后FAR决定转发方向,同时URR默默记录流量。
下行数据包从DN到达UPF后:同样走PDR→QER→FAR→URR的流水线,最终通过N3隧道发给基站。
类比:这就像工厂流水线——PDR是"来料识别"(确认是什么产品),QER是"质量检查"(确保不超过规格),FAR是"分拣发货"(决定送往哪个仓库),URR是"台账记录"(统计生产了多少)。
UPF不只是简单的"数据包转发器"。在实际网络中,UPF有多种部署形态,支持不同的业务场景。
这三个概念描述了UPF在不同场景下的角色:
| 角色 | 全称 | 功能 | 典型场景 |
|---|---|---|---|
| PSA | PDU Session Anchor | 会话锚点,数据包的最终出口 | 所有PDU会话至少有一个PSA |
| UL CL | Uplink Classifier | 上行分类器,根据规则分流到不同PSA | 边缘计算(MEC)本地疏导 |
| BP | Branching Point | 分支点,支持多路并行转发 | 同时访问本地网络和互联网 |
graph TD
UE[UE] --> gNB[gNB]
gNB --> UPF1[UPF: UL CL<br/>上行分类器]
UPF1 -->|本地业务<br/>低延迟| PSA1[PSA-Local<br/>边缘UPF]
UPF1 -->|互联网业务<br/>常规路径| PSA2[PSA-Central<br/>中心UPF]
PSA1 --> MEC[MEC边缘服务器<br/>本地DN]
PSA2 --> Internet[互联网<br/>中心DN]
style UPF1 fill:#e67e22,color:#fff
style PSA1 fill:#27ae60,color:#fff
style PSA2 fill:#3498db,color:#fff
UL CL的工作原理:
为什么这样设计:边缘计算要求极低延迟(如AR场景需要<10ms)。如果所有流量都绕回中心UPF,往返延迟可能高达30-50ms。UL CL让本地流量"就近下车",大幅降低延迟。
5G支持一个PDU会话同时锚定多个UPF(多IPv6前缀场景)。这意味着:
这与4G有本质区别——4G中一个PDN连接只能有一个PGW锚点。
N6是UPF连接外部数据网络的接口。根据数据网络类型不同,N6的实现方式也不同:
| DN类型 | N6实现方式 | 说明 |
|---|---|---|
| 互联网 | 基于IP的路由/ NAT | UPF做NAT44或路由转发 |
| 企业专网 | 专线/VLAN/VPN | 独立的IP地址空间 |
| IMS(VoNR) | 专用路由到IMS域 | 语音业务专用通道 |
| 边缘计算 | 本地路由直连MEC平台 | 极低延迟 |
N6是UPF与"外部世界"的接口。在IPv6场景中,UPF通过RA(Router Advertisement)消息向手机通告IPv6前缀,手机据此配置自己的IPv6地址。
N4接口是控制面与用户面的"桥梁"。SMF通过N4接口管理UPF,使用PFCP协议(Packet Forwarding Control Protocol)。
PFCP是从4G的GTPv2-C演进而来的轻量级控制协议,专门用于控制面(SMF)与用户面(UPF)之间的通信。
graph LR
subgraph PFCP消息类型
Association[Association<br/>建立/维护关联]
Session[Session<br/>管理会话规则]
end
Association --> |PFCP Association Setup| Heartbeat[Heartbeat<br/>心跳保活]
Session --> |PFCP Session Establishment| Create[创建会话<br/>下发PDR/FAR/QER/URR]
Session --> |PFCP Session Modification| Modify[修改规则<br/>增删改规则]
Session --> |PFCP Session Deletion| Delete[删除会话<br/>释放资源]
Session --> |PFCP Session Report| Report[UPF主动上报<br/>用量/事件]
PFCP Association vs Session:
当用户建立PDU会话时,N4接口的交互流程:
| 步骤 | 方向 | 消息 | 关键内容 |
|---|---|---|---|
| 1 | SMF→UPF | PFCP Session Establishment Request | 创建PDR(匹配上行/下行包)、FAR(转发方向)、QER(QoS参数)、URR(计费规则) |
| 2 | UPF→SMF | PFCP Session Establishment Response | 返回F-TEID(GTP隧道端点标识),确认规则已安装 |
| 3 | SMF→UPF | PFCP Session Modification Request | 会话期间更新规则(如插入UL CL、修改QoS) |
| 4 | UPF→SMF | PFCP Session Report Request | 主动上报用量统计、下行数据通知等 |
| 5 | SMF→UPF | PFCP Session Deletion Request | 会话结束,释放所有规则和资源 |
工程注意:F-TEID的分配是关键。UPF在N4响应中返回自己的F-TEID,SMF将此F-TEID通过N2容器传给基站,基站据此建立N3 GTP隧道。如果UPF分配F-TEID失败或N4超时,PDU会话建立会失败——这是现网中常见的故障点。
UPF的部署位置直接决定了用户体验的端到端延迟:
$$Latency_{e2e} = T_{air} + T_{N3} + T_{UPF_process} + T_{N6} + T_{internet}$$
| 部署位置 | N3延迟 | 处理延迟 | 总延迟(参考) | 典型场景 |
|---|---|---|---|---|
| 中心机房(省会) | 10-20ms | <1ms | 15-30ms | 常规互联网访问 |
| 区域中心(地市) | 5-10ms | <1ms | 8-15ms | 大部分移动业务 |
| 边缘DC(区县) | 1-3ms | <0.5ms | 3-8ms | AR/VR、云游戏 |
| 企业园区(on-premise) | <1ms | <0.5ms | 2-5ms | 工业互联网、专网 |
场景1:PDU会话建立失败,查N4
症状:手机获得IP地址但无法上网
排查路径:
1. 查SMF日志 → N4 Session Establishment是否成功?
2. 如果失败 → UPF是否可达?Association是否建立?
3. 如果成功 → UPF返回的F-TEID是否正确?
4. 查基站日志 → N3隧道是否使用正确的F-TEID?
5. 查UPF日志 → 收到数据包后PDR是否匹配?
场景2:上行正常但下行不通
症状:手机能发数据但收不到响应
排查路径:
1. 在UPF上抓包 → DN侧(N6)是否收到下行包?
2. 如果N6有包 → UPF是否匹配了下行PDR?
3. PDR匹配后 → FAR是否正确指向Access方向?
4. FAR正确 → N3隧道封装是否正确(TEID、IP)?
5. 基站侧 → 是否收到N3包并正确转发给UE?
场景3:流量统计异常
症状:计费系统记录的流量与实际不符
排查路径:
1. 检查URR规则 → Volume Threshold是否设置合理?
2. 查UPF的Usage Report → 报告的流量是否准确?
3. 检查是否有多个PDR匹配到同一包 → 避免重复计数
4. 检查丢弃的包 → 是否被计入了URR统计?
| 指标 | 含义 | 典型参考值 |
|---|---|---|
| Throughput | 数据包转发吞吐量 | 100Gbps+(商业级UPF) |
| Packet Per Second (PPS) | 每秒处理包数 | 50M+ PPS |
| Session Capacity | 支持的PDU会话数 | 百万级 |
| N4 Transaction Rate | N4消息处理速率 | 数万TPS |
| Latency (processing) | 单包处理延迟 | <100μs |
现代UPF通常基于DPDK或SR-IOV技术实现高速数据包处理,部署在x86服务器或专用硬件上。
| 维度 | 4G EPS | 5G System |
|---|---|---|
| 用户面网元 | SGW-U + PGW-U | UPF |
| 控制面接口 | Sx (SGW-C/PGW-C ↔ SGW-U/PGW-U) | N4 (SMF ↔ UPF) |
| 控制协议 | PFCP(Rel-14引入CUPS后) | PFCP |
| 隧道协议 | GTPv1-U | GTPv1-U(兼容) |
| QoS模型 | Bearer(专用承载/默认承载) | QoS Flow(更灵活) |
| QoS标识 | EBI + QCI | QFI |
| 多锚点 | 不支持(一个PDN一个PGW) | 支持(多PSA、UL CL、BP) |
| 边缘计算 | 需要PGW下沉(困难) | UPF灵活下沉到边缘 |
| 计费规则 | 通过Gx接口从PCRF到PGW | 通过N28/N4从CHF/SMF到UPF |
核心区别总结:4G的用户面是"管道式"的——SGW中转,PGW锚定和策略执行,路径固定。5G的用户面是"乐高式"的——UPF可以被灵活组合(PSA、UL CL、BP),支持数据包在不同UPF间灵活路由。
传统UPF是大型网络设备(专用硬件+专用软件)。未来UPF正在向:
5G Advanced正在推动L4S(Low Latency, Low Loss, Scalable Throughput)支持,UPF需要:
Q1: UPF和路由器的区别是什么?UPF不就是转发数据包吗?
A: UPF确实转发数据包,但它和普通路由器有三个本质区别: 1. 状态感知:UPF知道每个数据包属于哪个用户、哪个会话、哪个QoS Flow,而路由器只看IP头 2. 规则驱动:UPF由SMF通过N4接口下发PDR/FAR/QER/URR规则集,转发行为完全可编程 3. 策略执行:UPF执行QoS限速、计费统计、流量镜像等通信专用功能,路由器通常只做路由转发
Q2: 一个PDU会话可以有多个UPF吗?
A: 可以。5G支持同一PDU会话经过多个UPF: - PSA(锚点UPF):每个会话至少一个,负责连接DN - UL CL(上行分类器UPF):SMF可以动态插入/移除,用于分流到不同锚点 - 中间UPF:在N9接口上中继数据,用于漫游场景 一个会话最多可以有一个UL CL/BP和两个PSA。
Q3: UPF如何处理手机空闲态时到达的下行数据?
A: UPF有两种策略: 1. 直接丢弃:如果该会话没有配置Buffering规则 2. 缓存+通知:UPF缓存下行数据,通过N4 Session Report通知SMF,SMF触发AMF发起寻呼(Paging),唤醒手机建立连接后,UPF再把缓存数据发给手机
Q4: N4接口失败会导致什么问题?
A: N4接口是UPF的"命脉"。如果N4断开: - 新会话无法建立(SMF无法下发规则给UPF) - 已有会话的规则无法更新(QoS变更、UL CL插入等失败) - UPF的用量报告无法上报(计费中断) - 如果配置了Graceful Shutdown,已有会话可能保持一段时间;否则UPF可能丢弃所有无法匹配规则的数据包
Q5: UPF部署在边缘和中心有什么实际区别?
A: 核心区别是数据路径长度: - 中心UPF:数据从基站→传输网→中心机房→互联网,延迟15-30ms,适合普通上网 - 边缘UPF:数据从基站→本地边缘DC→本地应用,延迟2-5ms,适合AR/VR、工业控制 - 代价是边缘UPF覆盖范围小,用户移动时可能需要切换锚点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 等场景全覆盖。
