DPDK(英語:Data Plane Development Kit),是一组快速處理数据包的开发平台及接口。[1][2] ,运行于Intel X86與arm平台上(最新版本也开始支持PowerPC[3])。该平台采用BSD许可证发布。

DPDK
当前版本17.05(2017年5月10日 (2017-05-10)
源代码库 編輯維基數據鏈接
编程语言C
操作系统FreeBSD, Linux
类型數據包 處理
许可协议BSD
网站dpdk.org

概述

X86结构中,处理数据包的传统方式是CPU中断方式,即网卡驱动接收到数据包后通过中断通知CPU处理,然后由CPU拷贝数据并交给协议栈。在数据量大时,这种方式会产生大量CPU中断,导致CPU无法运行其他程序。

而DPDK则采用轮询方式实现数据包处理过程:DPDK重载了网卡驱动,该驱动在收到数据包后不中断通知CPU,而是将数据包通过零拷贝技术存入内存,这时应用层程序就可以通过DPDK提供的接口,直接从内存读取数据包。

这种处理方式节省了CPU中断时间、内存拷贝时间,并向应用层提供了简单易行且高效的数据包处理方式,使得网络应用的开发更加方便。但同时,由于需要重载网卡驱动,因此该开发包目前只能用在部分采用Intel网络处理芯片的网卡中。

参考资料

  1. ^ Simon Stanley,All Change for Packet Processing页面存档备份,存于互联网档案馆), Heavy Reading, 2013
  2. ^ Shamus McGillicudy, Intel DPDK, switch and server ref designs push SDN ecosystem forward页面存档备份,存于互联网档案馆), SearchSDN, April 2013
  3. ^ 存档副本. [2015-08-27]. (原始内容存档于2015-06-26). 

外部链接