dpdk叫数据平面开发工具包(data plane development kit),这是运行在用户态的一组软件库和驱动程序,可以在cpu体系机构上加速对网络数据包的处理。
基于linux内核协议栈为基础的网络方案,底层硬件在进行数据传输,数据处理的过程中,存在许多瓶颈,无法高性能地去处理一些数据包。Linux内核的协议栈的瓶颈点在于跨态内存拷贝,用户态到内核态的切换。
所以我们需要一个解决方案去消除这些瓶颈,同时保持原有linux应用程序的兼容。并且这种方案应该以库的形式打包到我们的Linux发行版中去
在2010年,intel基于Nehalem微架构的Xeon处理器推出了dpdk的初始版本。
dpdk它的作用在于绕过内核,在用户态进行数据包处理,在性能方面得到了显著提升
DPDK的程序运行在操作系统的用户态,利用自带的数据平面库进行数据包的发送接收,绕过了Linux内核网络协议栈,消除了跨态内存拷贝,在性能上有了显著提升。
DPDK的网卡驱动程序运行在用户态,屏蔽了网卡大部分的中断,断链,错误这些中断除外,采用了主动轮询的方式去持续检查网卡的接收和发送队列,看看是否有数据的到达和发送,从而实现高性能。dpdk的驱动程序又被称为轮询模式驱动程序。
DPDK的主要作用在于,绕过内核协议栈,在用户态进行数据交互和处理,从而提升性能。