DPDK

DPDK英語:),是一组快速處理数据包的开发平台及接口。[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).

外部链接

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.