第一部分
DPDK基础篇
软件正在统治整个世界。
——马克·安德森
本书的开始部分会重点介绍DPDK诞生的背景、基本概念、核心算法,并结合实例讲解各种基于IA平台的数据面优化技术,包括相关的网卡加速技术。希望可以帮助初次接触DPDK的读者全面了解DPDK,为后面的阅读打下基础。
DPDK基础篇共包括9章,其中前5章主要从软件优化的角度阐述如何利用DPDK来提升性能,包括cache优化、并行计算、同步互斥、转发算法等。后面4章则针对PCIe设备和高速网卡详细介绍如何优化网卡性能,提高网络带宽吞吐率。
第1章介绍了DPDK的技术演进历程,面临及需要解决的问题,以及如何从系统的角度看待DPDK的技术,最后结合几个编程实例帮助读者了解DPDK基本的编程模式。
第2章则系统地介绍内存和cache的相关基本知识,分析了各种IA平台上的cache技术的特点和优势,并介绍了一个DPDK的重要技术“大页”的使用。
第3章和第4章则围绕多核的使用,着重介绍如何使用多线程,最大限度地进行指令和数据的并行执行。为了解决多线程访问竞争的问题,还引入了几种常见的DPDK锁机制。
第5章详细讲述了DPDK的数据报文转发模型,帮助读者了解DPDK的工作模式。
从第6章开始,本书内容逐步从CPU转移到网卡I/O。其中,第6章将会从CPU与PCIe总线架构的角度,带领读者领略CPU与网卡DMA协同工作的整个交互过程。
第7章则专注于网卡的性能优化,详细介绍了DPDK如何在软件设计、硬件平台选择和配置上实现高效的网络报文处理。
第8章介绍了目前高速网卡中一个非常通用的技术“多队列与流分类”,解释了DPDK如果利用这个技术实现更高效的IO处理。
第9章介绍了目前以网卡为主的硬件卸载与智能化发展趋势,帮助读者了解如何将DPDK与网卡的硬件卸载技术结合,减少CPU的开销,实现高协同化的软硬件设计。