XDP
最后更新于
XDP(eXpress Data Path)为Linux内核提供了高性能、可编程的网络数据路径。由于网络包在还未进入网络协议栈之前就处理,它给Linux网络带来了巨大的性能提升(性能比DPDK还要高)。
XDP主要的特性包括
在网络协议栈前处理
无锁设计
批量I/O操作
轮询式
直接队列访问
不需要分配skbuff
支持网络卸载
DDIO
XDP程序快速执行并结束,没有循环
Packeting steering
相对于DPDK,XDP具有以下优点
无需第三方代码库和许可
同时支持轮询式和中断式网络
无需分配大页
无需专用的CPU
无需定义新的安全网络模型
注意XDP的性能提升是有代价的,它牺牲了通用型和公平性
XDP不提供缓存队列(qdisc),TX设备太慢时直接丢包,因而不要在RX比TX快的设备上使用XDP
XDP程序是专用的,不具备网络协议栈的通用性