标签
内容简介
《深入浅出DPDK》是国内较早系统梳理 DPDK(Data Plane Development Kit,数据平面开发套件)技术的专著,由英特尔 DPDK 相关团队的朱河清、梁存铭、胡雪焜、曹水等著,2016 年由机械工业出版社出版。全书围绕「通用处理器(x86)如何高效完成网络数据包处理」这一核心问题展开:先讲清 DPDK 的由来与定位——以轮询模式驱动、绕过内核协议栈、大页内存、无锁队列等手段,把包处理从内核态搬到用户态,换取确定性的高吞吐与低时延;再逐一拆解支撑这一性能的底层机制,包括 Cache 与内存层次、DDIO、NUMA、TLB 与大页、多核并行与同步互斥、报文转发框架与算法、PCIe 与网卡 DMA 描述符环、网卡 I/O 调优、流分类与多队列、硬件加速与功能卸载等。第二部分转向虚拟化场景,讨论 x86 平台 I/O 虚拟化、PCIe 网卡透传、半虚拟化 Virtio 以及基于 DPDK 的用户态 vhost 优化方案。第三部分讲应用落地,涵盖 DPDK 与 NFV/OPNFV 的结合、Open vSwitch 的 DPDK 加速,以及基于以太网的存储系统优化与 SPDK 简介。全书兼顾原理、软件算法与实战心得,配有大量配置与调优经验,是国内网络数据面方向较有代表性的入门到进阶读物。
编辑推荐
一本「不讲空话」的性能书。市面上不少讲高性能网络的书停留在「换更好的网卡」层面,而本书从 CPU 的角度回答一个更根本的问题:为什么通用服务器也能跑到几十 Gbps 的包转发?答案就藏在 Cache 行、DDIO、大页、无锁环形队列和轮询模式这些细节里。作者来自英特尔 DPDK 相关团队,讲原理时不回避硬件,讲硬件时又落回代码与配置,第 6 章的 DMA 描述符环、第 7 章的队列阈值调优尤其能看出实战底子。 结构安排也颇友好:基础篇(第 1—9 章)打地基,虚拟化篇(第 10—12 章)讲清 Virtio 与 vhost 的来龙去脉,应用篇(第 13—15 章)落到 NFV、OVS 与存储加速,正好对应读者从「看懂」到「会用」的路径。全书约 267 页,篇幅克制,读完不会淹没在 API 文档里。 需要提醒的是,本书成书于 2016 年,DPDK 的版本号、网卡型号和社区生态都已迭代多轮,部分接口与配置细节今天需要对照官方文档核实。但底层机制——Cache、NUMA、PCIe 收发路径、轮询与卸载——恰恰是变化最慢、最值得反复读的那一部分。
适合谁读
适合
- 从事网络设备、网关、负载均衡研发的工程师,想搞懂高性能包处理的底层原理
- 云计算与虚拟化方向的开发者,需要理解 Virtio、vhost 与 OVS-DPDK 的机制
- SDN/NFV 相关岗位从业者,希望系统认识数据面技术演进
- 通信、计算机专业高年级本科生与研究生,作为网络数据面方向的进阶读物
不适合
- 完全没有 C 语言和操作系统基础、想找「一键入门教程」的纯新手
- 只想学应用层 Web/后端开发、不涉及底层网络性能的读者
- 需要最新 DPDK 版本 API 与代码示例的读者,本书内容已明显滞后于社区版本
阅读建议
- 先读第 1 章建立全局认识,再按「Cache 与内存 → 并行与同步 → PCIe 收发 → 性能优化」的顺序推进,不要从附录跳过原理。
- 读到第 6、7 章时对照自己的网卡与服务器实际动手跑 l2fwd/l3fwd 等示例程序,用 perf 与网卡统计验证书中结论。
- 第 10—12 章可结合虚拟化环境的实际抓包与中断统计同步阅读,重点理解透传与 Virtio 两条路径的差异。
- 本书出版于 2016 年,阅读时把接口细节视为原理示例,实践中以 DPDK 官方文档与当前社区版本为准。
出版社简介
机械工业出版社
中国 · 成立于 1950 年
机械工业出版社(China Machine Press)在科技与专业出版之外,库内图书还体现出对心理学、计算机、管理、财经与社科等方向的持续关注。心理学方面收入荣格作品及分析心理学导论,并涉及压力与健康、成瘾与疗愈等应用议题;计算机领域有《计算机程序的构造和解释(JavaScript版)》;管理与财经类包括《管理行为(原书第4版)》《不平等的代价(珍藏版)》《这次不一样:八百年金融危机史(纪念版)》;科学哲学与科学史方面则有《世界观(原书第3版)》。相关作者资源涵盖C.G.荣格、威廉·麦圭尔、索努·沙姆达萨尼、加博尔·马泰等。公开资料有限,以上仅据库内图书归纳其出版面貌。
目录
- 前言
- 引言
- 作者介绍
- 第一部分 DPDK基础篇
- 第1章 认识DPDK
- 1.1 主流包处理硬件平台
- 1.2 初识DPDK
- 1.3 解读数据包处理能力
- 1.4 探索IA处理器上最艰巨的任务
- 1.5 软件包处理的潜力——再识DPDK
- 1.6 从融合的角度看DPDK
- 1.7 实例
- 1.8 小结
- 第2章 Cache和内存
- 2.1 存储系统简介
- 2.2 Cache系统简介
- 2.3 Cache地址映射和变换
- 2.4 Cache的写策略
- 2.5 Cache预取
- 2.6 Cache一致性
- 2.7 TLB和大页
- 2.8 DDIO
- 2.9 NUMA系统
- 第3章 并行计算
- 3.1 多核性能和可扩展性
- 3.2 指令并发与数据并行
- 3.3 小结
- 第4章 同步互斥机制
- 4.1 原子操作
- 4.2 读写锁
- 4.3 自旋锁
- 4.4 无锁机制
- 4.5 小结
- 第5章 报文转发
- 5.1 网络处理模块划分
- 5.2 转发框架介绍
- 5.3 转发算法
- 5.4 小结
- 第6章 PCIe与包处理I/O
- 6.1 从PCIe事务的角度看包处理
常见问题
这本书适合零基础直接读吗?
不太适合完全没有基础的人。书中会用到 C 语言、操作系统内存管理与中断、以太网与 PCIe 等背景知识,且默认读者对网卡收发包有一定概念。建议先补上计算机组成与操作系统基础,再来读效果更好。
书中内容在今天还有参考价值吗?
底层机制部分(Cache、DDIO、NUMA、大页、轮询模式、PCIe 描述符环、硬件卸载思路)依然成立,价值很高;但具体的 DPDK 版本、API 名称、网卡型号与调优参数已随社区演进发生变化,动手实践时应对照官方最新文档。
读完能直接上手写 DPDK 应用吗?
本书侧重原理与机制解释,并非逐行代码教程。读完后你会理解 DPDK 为何这样设计、性能瓶颈在哪里,但要写出可运行的程序,还需要配合官方示例、示例代码仓库和实际环境调试。
这本书和 SDN、NFV 有什么关系?
关系很紧密。第 13—15 章专门讲了 DPDK 在 NFV/OPNFV、Open vSwitch 加速以及存储(SPDK)中的应用。可以说 DPDK 是很多 NFV 与虚拟交换方案的数据面底座。
读者评论
查询本书
本站为索引目录:「全网查询」由您发起、在您的浏览器中运行,所列入口均指向第三方站点,请自行判断可用性。
作者简介
曹水
作者
曹水,目前公开资料有限,其相关信息尚未得到系统披露。从库内收录情况看,曹水现有一种作品《环境行为理论与空间设计方法》,该书归入工业技术类,显示其写作方向集中于环境行为学与空间设计方法的交叉领域。这一题材通常关注人与建成环境之间的互动关系,并尝试将行为分析纳入空间设计的思考框架,具有较强的应用性与方法论色彩。由于作者生平、学术背景与研究方向的具体信息暂不可考,目前只能依据这一种作品来认识曹水:其写作似偏重理论梳理与设计方法并结合,面向建筑、环境设计及相关专业的读者。更多关于作者的资料,有待后续补充与核实。