DPDK
DPDK(英語:Data Plane Development Kit),是一组快速處理数据包的开发平台及接口。[1][2] ,运行于Intel X86與arm平台上(最新版本也开始支持PowerPC[3])。该平台采用BSD许可证发布。
当前版本 | 17.05(2017年5月10日 | )
---|---|
源代码库 | |
编程语言 | C |
操作系统 | FreeBSD, Linux |
类型 | 數據包 處理 |
许可协议 | BSD |
网站 | dpdk |
概述
在X86结构中,处理数据包的传统方式是CPU中断方式,即网卡驱动接收到数据包后通过中断通知CPU处理,然后由CPU拷贝数据并交给协议栈。在数据量大时,这种方式会产生大量CPU中断,导致CPU无法运行其他程序。
而DPDK则采用轮询方式实现数据包处理过程:DPDK重载了网卡驱动,该驱动在收到数据包后不中断通知CPU,而是将数据包通过零拷贝技术存入内存,这时应用层程序就可以通过DPDK提供的接口,直接从内存读取数据包。
这种处理方式节省了CPU中断时间、内存拷贝时间,并向应用层提供了简单易行且高效的数据包处理方式,使得网络应用的开发更加方便。但同时,由于需要重载网卡驱动,因此该开发包目前只能用在部分采用Intel网络处理芯片的网卡中。