同样是高性能转发,DPDK 更快但会独占 CPU。这篇讲清两者的取舍,以及为什么 XDP 更适合家用与中小机房。
问题出在哪 传统 Linux 转发路径上,每个数据包都要在内核态与用户态之间搬运一次。带宽不大时看不出问题,但小包量一上来,CPU 大量算力就耗在搬运本身,而不是真正的转发决策。 三条路线的取舍 方案 每秒转发包数 大致吞吐 传统 Linux 协议栈 100–200 万 1–5 Gbps XDP + eBPF(iNextOS 采用) 500–1000 万 10–40 Gbps DPDK 用户态转发 2000–4000 万 40–100 Gbps 为什么不用最快的 DPDK 确实最快,但它需要独占 CPU 核心不停轮询网卡。哪怕一点流量都没有,那几个核心也是满载状态,费电、发热,机器一直在高负荷运转。运营商机房里这不是问题,放在客厅或小机房就很难接受。 XDP 是 Linux 内核原生支持的机制,在网卡驱动层就完成转发决策,数据包不进协议栈也不做拷贝。它在速度与日常可用性之间取得平衡,而且不需要专用驱动或独占硬件。Facebook 的 Katran、Cilium 都在用这套技术。