Intel DPDK全称Intel Data Plane Development Kit,是intel提供的数据平面开发工具集,为Intel architecture(IA)处理器架构下用户空间高效的数据包处理提供库函数和驱动的支持,它不同于Linux系统以通用性设计为目的,而是专注于网络应用中数据包的高性能处理。DPDK应用程序是运行在用户空间上利用自身提供的数据平面库来收发数据包,绕过了Linux内核协议栈对数据包处理过程。Linux内核将DPDK应用程序看作是一个普通的用户态进程,包括它的编译、连接和加载方式和普通程序没有什么两样。DPDK程序启动后只能有一个主线程,然后创建一些子线程并绑定到指定CPU核心上运行。
背景
传统Linux网络驱动的问题
对比
DPDK 有三大法宝
ByPass Kernel , UIO/VFIO
微架构优化. Cache/DDIO/SIMD
内存管理. HugePage/mbuf/mempoo
左边是传统内核数据通路:数据从 网卡 -> 驱动 -> 协议栈 -> Socket接口 -> 业务
右边是DPDK的方式,基于UIO(Userspace I/O)旁路数据:数据从网卡 -> DPDK轮询模式-> DPDK基础库 -> 业务
详细参考:
设计原理(文末有高清PDF获取方式)
DPDK组成
详细内容
DPDK报文转发
内存管理
网卡性能优化
网卡多队列
硬件加速与功能卸载
DPDK内核驱动
网络虚拟化
OVS DPDK
网络存储优化SPDK
编程指南
高清完整版PDF,请在公众号里面回复"dpdk" 获取
《DPDK架构高清版.pdf》
《DPDK编程指南.pdf》
- END -
看完一键三连在看,转发,点赞
是对文章最大的赞赏,极客重生感谢你
推荐阅读
Linux Kernel TCP/IP Stack|Linux网络硬核系列