DPDK特性

数据平面开发套件DPDK(Data Plane Development Kit)是一个由多家公司(如6WIND、Intel等)开发的数据平面开发套件,也是一个用于快速数据包处理的函数库与驱动集合,可以极大提高数据处理性能和吞吐量,提高数据平面应用程序的工作效率。它不同于Linux系统以通用性设计为目的,而是专注于多核架构上网络应用中数据包的高性能处理。

DPDK软件架构

DPDK主要由一系列用户态基础软件及少量内核态模块组成,软件架构如图1所示。

图1 DPDK软件架构

DPDK报文收发原理

传统的报文接收方式中,当网卡接收到报文后会产生硬件中断,进而报文通过协议栈到达应用层,这个过程需要内核协议栈的处理。而DPDK改变了这一流程。应用层通过while死循环的方式,调用DPDK提供的接口(如rte_eth_rx_burst)轮询接收来自网卡的报文,这种方式绕过了内核协议栈,实现了内核旁路。通过轮询的方式,报文不经过内核,从而提高了网络转发性能,同时也降低了内核与用户态系统调用的开销。

关于DPDK的更多信息请参见DPDK官方网站查看。