DPDK
DPDK(英語:),是一组快速處理数据包的开发平台及接口。[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网络处理芯片的网卡中。
参考资料
- Simon Stanley,All Change for Packet Processing 页面存档备份,存于, Heavy Reading, 2013
- Shamus McGillicudy, Intel DPDK, switch and server ref designs push SDN ecosystem forward 页面存档备份,存于, SearchSDN, April 2013
- . [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.