网络加速架构深度比较
以下图表详细对比了传统TCP/IP、RDMA、DPDK和XDP四种网络处理架构。所有图例均遵循行业标准画法,以英文标注核心组件,并清晰描绘了数据流路径。
图例 (Legend)
数据路径 (Data Path): 代表实际业务数据包的流动路径。
控制路径 (Control Path): 代表配置、管理和设置等非数据操作的路径
(如内存注册、加载程序)。
AF_XDP 零拷贝路径:
一种特殊的数据路径,表示数据绕过内核协议栈直接到达用户态。
内核协议栈路径: 表示数据被送入内核 TCP/IP 协议栈进行常规处理。
图 1: 传统 TCP/IP 数据路径 (Baseline)
Traditional TCP/IP Path
Host A (Sender)
User Space
Application
User Buffer
Kernel Space
Socket API (write)
Socket Buffer
TCP/IP Stack
NIC Driver
Hardware
NIC
Host B (Receiver)
User Space
Application
User Buffer
Kernel Space
Socket API (read)
Socket Buffer
TCP/IP Stack
NIC Driver
Hardware
NIC
图 2: RDMA (Remote Direct Memory Access)
RDMA Path (e.g., RoCEv2)
Host A
User Space
Application
Registered Memory
Kernel Space
Verbs API
TCP/IP Stack
Hardware
RNIC
Host B
User Space
Application
Registered Memory
Kernel Space
Verbs API
TCP/IP Stack
Hardware
RNIC
1. Control Path
2. Data Path
RoCEv2 协议封装示例
Ethernet Header
IP Header
UDP Header
InfiniBand BTH + Payload
ICRC + FCS
RoCEv2 数据包在以太网上传输时,其核心报文被封装在 UDP/IP 包内。
图 3: DPDK (Data Plane Development Kit)
DPDK Path
Single Host
User Space
DPDK Application
DPDK Mempool
Poll Mode Driver (PMD)
Kernel Space (Bypassed)
TCP/IP Stack
Kernel NIC Driver (unbound)
Hardware
Dedicated CPU Core(s)
NIC
图 4: XDP (eXpress Data Path)
XDP Paths & Actions
Single Host
User Space
Control Plane App (via libbpf)
AF_XDP Socket (UMEM)
Kernel Space
TCP/IP Stack
XDP Program (eBPF)
NIC Driver
Hardware
NIC
1. 加载eBPF决策程序
**XDP_PASS**
**XDP_DROP /
TX**
**AF_XDP:
零拷贝旁路**
关键点: 位于内核的 XDP Program (eBPF) 做出快速决策,然后通过 AF_XDP
将数据包零拷贝到用户态的共享内存(UMEM),完全绕过协议栈。