深入浅出DPDK朱河清梁存铭胡雪焜曹水pdf下载pdf下载

深入浅出DPDK朱河清梁存铭胡雪焜曹水百度网盘pdf下载

作者:
简介:本篇主要提供深入浅出DPDK朱河清梁存铭胡雪焜曹水pdf下载
出版社:互动出版网图书专营店
出版时间:2016-05
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

 书名:  深入浅出DPDK[图书]|4951982
 图书定价:  69元
 图书作者:  朱河清;梁存铭;胡雪焜;曹水
 出版社:  机械工业出版社
 出版日期:  2016/5/1 0:00:00
 ISBN号:  9787111537830
 开本:  16开
 页数:  267
 版次:  1-1
 作者简介
曹水:黑龙江省佳木斯人,2001年毕业于复旦大学计算机系,硕士。现为英特尔软件经理,从事嵌入式开发和软件行业超过15年,现主要负责DPDK软件测试工作。
陈静:湖北省沙市人,2006年毕业于华中科技大学,硕士。现为英特尔软件开发工程师,主要从事DPDK网卡驱动的开发和性能调优工作。
何少鹏:江西省萍乡人,毕业于上海交通大学,硕士。现为英特尔DPDK软件工程师,开发网络设备相关软件超过十年,也有数年从事互联网应用和SDN硬件设计工作。
胡雪焜:江西省南昌人,毕业于中国科学技术大学计算机系,硕士。现为英特尔网络通信平台部门应用工程师,主要研究底层虚拟化技术和基于IA架构的数据面性能优化,以及对网络演进的影响,具有丰富的SDN/NFV商业实践经验。
梁存铭:英特尔资深软件工程师,在计算机网络领域具有丰富的实践开发经验,提交过多项美国专利。作为DPDK早期贡献者之一,在PCIe高性能加速、I/O虚拟化、IA指令优化、改善闲时效率、协议栈优化等方面有较深入的研究。
刘继江:黑龙江省七台河人,毕业于青岛海洋大学自动化系,现主要从事DPDK网卡驱动程序和虚拟化研发,和overlay网络的性能优化工作。
陆文卓:安徽省淮南人,2004年毕业于南京大学计算机系,硕士。现为英特尔中国研发中心软件工程师。在无线通信、有线网络方面均有超过十年的从业经验。
欧阳长春:2006年毕业于华中科技大学计算机系,硕士。目前在阿里云任开发专家,从事网络虚拟化开发及优化,在数据报文加速、深度报文检测、网络虚拟化方面具有丰富开发经验。
仇大玉:江苏省南京人,2012年毕业于东南大学,硕士。现为英特尔亚太研发有限公司软件工程师,主要从事DPDK软件开发和测试工作。
陶喆:上海交通大学学士,上海大学硕士。先后在思科和英特尔从事网络相关的设备、协议栈和虚拟化的开发工作。曾获CCIE R&S认证。
万群:江西省南昌人,毕业于西安交通大学计算机系,硕士。现为英特尔上海研发中心研发工程师。从事测试领域的研究及实践近十年,对测试方法及项目管理有相当丰富的经验。
王志宏:四川省绵阳人,2011年毕业于华东师范大学,硕士。现为英特尔亚太研发中心高级软件工程师,主要工作方向为DPDK虚拟化中的性能分析与优化。
吴菁菁:江苏省扬州人,2007年毕业于西安交通大学电信系,硕士。现为英特尔软件工程师,主要从事DPDK软件开发工作。
许茜:浙江省杭州市人,毕业于浙江大学信电系,硕士,现为英特尔网络处理事业部软件测试人员,主要负责DPDK相关的虚拟化测试和性能测试。
杨子夜:2009年毕业于复旦大学软件学院,硕士。现为英特尔高级软件工程师,从事存储软件开发和优化工作,在虚拟化、存储、云安全等领域拥有5个相关专利以及20项申请。
张合林:湖南省湘潭人,2004年毕业于东华大学,工学硕士。现主要从事DPDK网卡驱动程序研发及性能优化工作。
张帆:湖南省长沙人,爱尔兰利莫里克大学计算机网络信息学博士。现为英特尔公司爱尔兰分部网络软件工程师,湖南省湘潭大学兼职教授。近年专著有《Comparative Performance and Energy Consumption Analysis of Different AES Implementations on a Wireless Sensor Network Node》等。发表SCI/EI检索国际期刊及会议论文3篇。目前主要从事英特尔DPDK在SDN应用方面的扩展研究工作。
朱河清:江苏省靖江人,毕业于电子科技大学数据通信与计算机网络专业,硕士,现为英特尔DPDK与Hyperscan软件经理,在英特尔、阿尔卡特、华为、朗讯有15年通信网络设备研发与开源软件开发经验。
Venky Venkatesan:毕业于印度孟买大学,现为英特尔网络产品集团高级主任工程师(Sr PE),DPDK初始架构师,在美国Oregon负责报文处理与加速的系统架构与软件创新工作。
 内容简介
年来,随着半导体和多核计算机体系结构技术的不断创新和市场的发展,越来越多的网络设备基础架构开始向基于通用处理器平台的架构方向融合,期望用更低的成本和更短的产品开发周期来提供多样的网络单元和丰富的功能,如应用处理、控制处理、包处理、信号处理等。为了适应这一新的产业趋势,英特尔公司十年磨一剑,联合第三方软件开发公司及时推出了基于Intel? x86的架构DPDK(Data Plane Development Kit,数据平面开发套件),实现了高效灵活的包处理解决方案。经过近3年的开源与飞速发展,DPDK已经发展成业界公认的高性能网卡和多通用处理器平台的开源软件工具包,并已成为通用处理器平台上影响力zuida的数据平面解决方案。主流的Linux发行版都已经将DPDK纳入,DPDK引发了基于Linux的高速网络技术的创新热潮,除了在传统的通信网络、安全设施领域应用之外,还被广泛应用于云计算、虚拟交换、存储网络甚至数据库、金融交易系统。
本书汇聚了zuizi深的DPDK技术专家的精辟见解和实战体验,详细介绍了DPDK技术的发展趋势、数据包处理、硬件加速技术、虚拟化以及DPDK技术在SDN、NFV、网络存储等领域的实际应用。书中还使用大量的篇幅讲解各种核心软件算法、数据优化思想,并包括大量详尽的实战心得和使用指南。
作为国内第一本全面阐述网络数据面的核心技术的书籍,本书主要面向IT、网络通信行业的从业人员,以及大专院校的师生,用通俗易懂的文字打开了一扇通向新一代网络处理架构的大门。DPDK完全依赖软件,对Linux的报文处理能力做了重大革新,它的发展历程是一个不可多得的理论联系实际的教科书般的实例。
 目录

序言
引言
作者介绍
第一部分 DPDK基础篇
第1章 认识DPDK 3
1.1 主流包处理硬件平台 3
1.1.1 硬件加速器 4
1.1.2 网络处理器 4
1.1.3 多核处理器 5
1.2 初识DPDK 7
1.2.1 IA不适合进行数据包处理吗 7
1.2.2 DPDKzuijia实践 9
1.2.3 DPDK框架简介 10
1.2.4 寻找性能优化的天花板 11
1.3 解读数据包处理能力 12
1.4 探索IA处理器上最艰巨的任务 13
1.5 软件包处理的潜力——再识DPDK 14
1.5.1 DPDK加速网络节点 14
1.5.2 DPDK加速计算节点 15
1.5.3 DPDK加速存储节点 15
1.5.4 DPDK的方法论 16
1.6 从融合的角度看DPDK 16
1.7 实例 17
1.7.1 HelloWorld 17
1.7.2 Skeleton 19
1.7.3 L3fwd 22
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 Cache 30
2.3 Cache地址映射和变换 31
2.3.1 全关联型Cache 32
2.3.2 直接关联型Cache 32
2.3.3 组关联型Cache 33
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 TLB 48
2.7.3 使用大页 49
2.7.4 如何激活大页 49
2.8 DDIO 50
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读写锁主要API 77
4.2.2 DPDK读写锁实现和应用 78
4.3 自旋锁 79
4.3.1 自旋锁的缺点 79
4.3.2 Linux自旋锁API 79
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 zuichang前缀匹配算法 100
5.3.3 ACL算法 102
5.3.4 报文分发 103
5.4 小结 104
第6章 PCIe与包处理I/O 105
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与Mempool 114
6.6.1 Mbuf 114
6.6.2 Mempool 117
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 RSS 145
8.2.3 Flow Director 146
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虚拟化技术篇
第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 Intel VT-d简介 180
10.2.2 PCIe SR-IOV概述 181
10.3 PCIe网卡透传下的收发包流程 183
10.4 I/O透传虚拟化配置的常见问题 184
10.5 小结 184
第11章 半虚拟化Virtio 185
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-net 199
12.1.2 Linux内核态vhost-net 200
12.1.3 用户态vhost 201
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应用篇
第13章 DPDK与网络功能虚拟化 213
13.1 网络功能虚拟化 213
13.1.1 起源 213
13.1.2 发展 215
13.2 OPNFV与DPDK 217
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 BRAS 231
13.7.2 Brocade vRouter 5600 235
13.8 小结 235
第14章 Open vSwitch(OVS)中的DPDK性能加速 236
14.1 虚拟交换机简介 236
14.2 OVS简介 237
14.3 DPDK加速的OVS 239
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
 编辑推荐
难得的NFV数据面软件书籍,全面系统地阐述硬件平台和数据面软件中一系列关键技术。
权威的数据面软件开发指南, 深入剖析核心算法的原理及详尽的DPDK编程实践。
最前沿的数据面产业应用和动向,全面介绍DPDK与NFV、软件存储等领域的深度融合的案例。