图书介绍

深入浅出DPDKPDF|Epub|txt|kindle电子书版本网盘下载

深入浅出DPDK
  • 朱河清,粱存铭,胡雪焜,曹水等编 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111537830
  • 出版时间:2016
  • 标注页数:267页
  • 文件大小:39MB
  • 文件页数:287页
  • 主题词:应用软件-软件包

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

深入浅出DPDKPDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第一部分 DPDK基础篇3

第1章 认识DPDK3

1.1 主流包处理硬件平台3

1.1.1 硬件加速器4

1.1.2 网络处理器4

1.1.3 多核处理器5

1.2 初识DPDK7

1.2.1 IA不适合进行数据包处理吗7

1.2.2 DPDK最佳实践9

1.2.3 DPDK框架简介10

1.2.4 寻找性能优化的天花板11

1.3 解读数据包处理能力12

1.4 探索IA处理器上最艰巨的任务13

1.5 软件包处理的潜力——再识DPDK14

1.5.1 DPDK加速网络节点14

1.5.2 DPDK加速计算节点15

1.5.3 DPDK加速存储节点15

1.5.4 DPDK的方法论16

1.6 从融合的角度看DPDK16

1.7 实例17

1.7.1 HelloWorld17

1.7.2 Skeleton19

1.7.3 L3fwd22

1.8 小结25

第2章 Cache和内存26

2.1 存储系统简介26

2.1.1 系统架构的演进26

2.1.2 内存子系统28

2.2 Cache系统简介29

2.2.1 Cache的种类29

2.2.2 TLB Cache30

2.3 Cache地址映射和变换31

2.3.1 全关联型Cache32

2.3.2 直接关联型Cache32

2.3.3 组关联型Cache33

2.4 Cache的写策略34

2.5 Cache预取35

2.5.1 Cache的预取原理35

2.5.2 NetBurst架构处理器上的预取36

2.5.3 两个执行效率迥异的程序37

2.5.4 软件预取38

2.6 Cache一致性41

2.6.1 Cache Line对齐41

2.6.2 Cache一致性问题的由来42

2.6.3 一致性协议43

2.6.4 MESI协议44

2.6.5 DPDK如何保证Cache一致性45

2.7 TLB和大页47

2.7.1 逻辑地址到物理地址的转换47

2.7.2 TLB48

2.7.3 使用大页49

2.7.4 如何激活大页49

2.8 DDIO50

2.8.1 时代背景50

2.8.2 网卡的读数据操作51

2.8.3 网卡的写数据操作53

2.9 NUMA系统54

第3章 并行计算57

3.1 多核性能和可扩展性57

3.1.1 追求性能水平扩展57

3.1.2 多核处理器58

3.1.3 亲和性61

3.1.4 DPDK的多线程63

3.2 指令并发与数据并行66

3.2.1 指令并发67

3.2.2 单指令多数据68

3.3 小结70

第4章 同步互斥机制71

4.1 原子操作71

4.1.1 处理器上的原子操作71

4.1.2 Linux内核原子操作72

4.1.3 DPDK原子操作实现和应用74

4.2 读写锁76

4.2.1 Linux读写锁主要API77

4.2.2 DPDK读写锁实现和应用78

4.3 自旋锁79

4.3.1 自旋锁的缺点79

4.3.2 Linux自旋锁API79

4.3.3 DPDK自旋锁实现和应用80

4.4 无锁机制81

4.4.1 Linux内核无锁环形缓冲81

4.4.2 DPDK无锁环形缓冲82

4.5 小结89

第5章 报文转发90

5.1 网络处理模块划分90

5.2 转发框架介绍91

5.2.1 DPDK run to completion模型94

5.2.2 DPDK pipeline模型95

5.3 转发算法97

5.3.1 精确匹配算法97

5.3.2 最长前缀匹配算法100

5.3.3 ACL算法102

5.3.4 报文分发103

5.4 小结104

第6章 PCIe与包处理I/O105

6.1 从PCIe事务的角度看包处理105

6.1.1 PCIe概览105

6.1.2 PCIe事务传输105

6.1.3 PCIe带宽107

6.2 PCIe上的数据传输能力108

6.3 网卡DMA描述符环形队列109

6.4 数据包收发——CPU和I/O的协奏111

6.4.1 全景分析111

6.4.2 优化的考虑113

6.5 PCIe的净荷转发带宽113

6.6 Mbuf与Mempool114

6.6.1 Mbuf114

6.6.2 Mempool117

6.7 小结117

第7章 网卡性能优化118

7.1 DPDK的轮询模式118

7.1.1 异步中断模式118

7.1.2 轮询模式119

7.1.3 混和中断轮询模式120

7.2 网卡I/O性能优化121

7.2.1 Burst收发包的优点121

7.2.2 批处理和时延隐藏124

7.2.3 利用Intel SIMD指令进一步并行化包收发127

7.3 平台优化及其配置调优128

7.3.1 硬件平台对包处理性能的影响129

7.3.2 软件平台对包处理性能的影响133

7.4 队列长度及各种阈值的设置136

7.4.1 收包队列长度136

7.4.2 发包队列长度137

7.4.3 收包队列可释放描述符数量阈值(rx_free_thresh)137

7.4.4 发包队列发送结果报告阈值(tx_rs_thresh)137

7.4.5 发包描述符释放阈值(tx_free_thresh)138

7.5 小结138

第8章 流分类与多队列139

8.1 多队列139

8.1.1 网卡多队列的由来139

8.1.2 Linux内核对多队列的支持140

8.1.3 DPDK与多队列142

8.1.4 队列分配144

8.2 流分类144

8.2.1 包的类型144

8.2.2 RSS145

8.2.3 Flow Director146

8.2.4 服务质量148

8.2.5 虚拟化流分类方式150

8.2.6 流过滤150

8.3 流分类技术的使用151

8.3.1 DPDK结合网卡Flow Director 功能152

8.3.2 DPDK结合网卡虚拟化及Cloud Filter功能155

8.4 可重构匹配表156

8.5 小结157

第9章 硬件加速与功能卸载158

9.1 硬件卸载简介158

9.2 网卡硬件卸载功能159

9.3 DPDK软件接口160

9.4 硬件与软件功能实现161

9.5 计算及更新功能卸载162

9.5.1 VLAN硬件卸载162

9.5.2 IEEE1588硬件卸载功能165

9.5.3 IP TCP/UDP/SCTP checksum硬件卸载功能167

9.5.4 Tunnel硬件卸载功能168

9.6 分片功能卸载169

9.7 组包功能卸载170

9.8 小结172

第二部分 DPDK虚拟化技术篇175

第10章 X86平台上的I/O虚拟化175

10.1 X86平台虚拟化概述176

10.1.1 CPU虚拟化176

10.1.2 内存虚拟化177

10.1.3 I/O虚拟化178

10.2 I/O透传虚拟化180

10.2.1 Inte?VT-d简介180

10.2.2 PCIe SR-IOV概述181

10.3 PCIe网卡透传下的收发包流程183

10.4 I/O透传虚拟化配置的常见问题184

10.5 小结184

第11章 半虚拟化Virtio185

11.1 Virtio使用场景185

11.2 Virtio规范和原理186

11.2.1 设备的配置187

11.2.2 虚拟队列的配置190

11.2.3 设备的使用192

11.3 Virtio网络设备驱动设计193

11.3.1 Virtio网络设备Linux内核驱动设计193

11.3.2 基于DPDK用户空间的Virtio网络设备驱动设计以及性能优化196

11.4 小结198

第12章 加速包处理的vhost优化方案199

12.1 vhost的演进和原理199

12.1.1 Qemu与virtio-net199

12.1.2 Linux内核态vhost-net200

12.1.3 用户态vhost201

12.2 基于DPDK的用户态vhost设计201

12.2.1 消息机制202

12.2.2 地址转换和映射虚拟机内存203

12.2.3 vhost特性协商204

12.2.4 virtio-net设备管理205

12.2.5 vhost中的Checksum和TSO功能卸载205

12.3 DPDK vhost编程实例206

12.3.1 报文收发接口介绍206

12.3.2 使用DPDK vhost lib进行编程207

12.3.3 使用DPDK vhost PMD进行编程209

12.4 小结210

第三部分 DPDK应用篇213

第13章 DPDK与网络功能虚拟化213

13.1 网络功能虚拟化213

13.1.1 起源213

13.1.2 发展215

13.2 OPNFV与DPDK217

13.3 NFV的部署219

13.4 VNF部署的形态221

13.5 VNF自身特性的评估222

13.5.1 性能分析方法论223

13.5.2 性能优化思路224

13.6 VNF的设计225

13.6.1 VNF虚拟网络接口的选择225

13.6.2 IVSHMEM共享内存的PCI设备226

13.6.3 网卡轮询和混合中断轮询模式的选择228

13.6.4 硬件加速功能的考虑228

13.6.5 服务质量的保证229

13.7 实例解析和商业案例231

13.7.1 Virtual BRAS231

13.7.2 Brocade vRouter 5600235

13.8 小结235

第14章 Open vSwitch (OVS)中的DPDK性能加速236

14.1 虚拟交换机简介236

14.2 OVS简介237

14.3 DPDK加速的OVS239

14.3.1 OVS的数据通路239

14.3.2 DPDK加速的数据通路240

14.3.3 DPDK加速的OVS性能比较242

14.4 小结244

第15章 基于DPDK的存储软件优化245

15.1 基于以太网的存储系统246

15.2 以太网存储系统的优化247

15.3 SPDK介绍249

15.3.1 基于DPDK的用户态TCP/IP栈249

15.3.2 用户态存储驱动254

15.3.3 SPDK中iSCSI target实现与性能257

15.4 小结261

附录A缩略词262

附录B推荐阅读265

热门推荐