DPDK

DPDKIntel针对数据I/O密集型网络应用而设计的开源数据平面工具集,提供了一个用户空间下的高效数据包处理库,通过旁路内核协议栈、轮询模式的报文无中断收发、内存/缓冲区/队列管理优化、基于网卡多队列和流识别的负载均衡等多项技术,实现了IAIntel ArchitectureIntel架构)处理器架构下的高性能报文转发能力,旨在帮助应用程序高效接收和发送网络数据,并为复杂网络软件的开发提供基础组件。

DPDKIA处理器架构下用户空间高效的数据包处理提供库函数和驱动支持,它不同于Linux操作系统以通用性设计为目的,而是专注于网络应用中数据包的高性能处理。DPDK应用程序运行在用户空间,利用自身提供的数据平面库来收发数据包,绕过了Linux内核协议栈对数据包处理过程。Linux内核将DPDK应用程序看作是一个普通的用户态进程,包括它的编译、链接和加载方式与普通的应用程序都没有区别。

DPDK设计理念和在整个Linux操作系统中的工作位置可以用下图表示。应用程序位于用户空间中,使用DPDK接收和发送网络数据包,在进行常规数据平面处理时绕过Linux内核,Linux内核对DPDK应用程序的处理和其他用户空间应用程序一样。

图-1 DPDK设计架构