DPDK应用基础
作者: 唐宏,柴卓原,任平,王勇
出版时间:2016年8月
出版社:人民邮电出版社
- 人民邮电出版社
- 9787115426048
- 133096
- 2016年8月
- 未分类
- 未分类
- TP317
唐宏、柴卓原、任平、王勇等编著的《DPDK应用基础》分为基础原理、DPDK应用与测试、DPDK应用开发及实例解析3个部分。其中,第一部分简要介绍了DPDK相关背景、技术原理、部分库函数、DPDK安装部署和调试方法,帮助读者从宏观上了解DPDK,对其有一个基本认识。第二部分阐述了DPDK技术在NFV场景下的应用,并通过16个测试用例说明了基于DPDK的NFV转发性能调优实践与测试结果,以助于业界同仁开展NFV系统的研发与性能评估工作。第三部分介绍了基于DPDK的应用案例,案例介绍中融合了对如何基于DPDK进行上层应用开发的解析,以帮助读者更加深入地理解DPDK。
本书可以作为网络技术人员和IT系统开发人员的中初级读物,帮助他们快速了解DPDK社区及其大型通用控制器的开发方法。
第一部分 基础原理
第1章 背景概述
1.1 产业背景
1.1.1 x86架构性能分析
1.1.2 NFV中的网络转发性能分析
1.1.3 DPDK的引入
1.1.4 本书范围
1.2 DPDK开源社区
1.2.1 社区起源
1.2.2 社区网站
1.3 DPDK源代码
1.3.1 版本总述
1.3.2 最新版本特性介绍
参考文献
第2章 DPDK技术简介
2.1 软件架构
2.2 巨页技术
2.3 轮询技术
2.4 CPU亲和技术
2.5 DPDK性能影响因素
2.5.1 硬件结构
2.5.2 OS版本及其内核
2.5.3 OVS性能问题
2.5.4 内存管理
2.5.5 CPU核间无锁通信
2.5.6 目标CPU类型的正确设置
第3章 DPDK库函数
3.1 EAL库
3.1.1 内核初始化与启动
3.1.2 内存
3.1.3 多线程与亲和性
3.2 Ring库
3.2.1 单消费者入队
3.2.2 单消费者出队
3.3 Mempool库
3.4 mbuf库
3.4.1 数据存储.
3.4.2 缓冲区分配与释放
3.4.3 相关操作
3.5 PMD驱动
3.5.1 需求与设计
3.5.2 配置
3.6 IVSHMEM库
3.6.1 API概述
3.6.2 环境配置
3.7 Timer库
3.8 LPM库
3.8.1 API概述
3.8.2 实现说明
3.9 Hash库
3.9.1 API概述
3.9.2 实现说明
3.10 多进程支持
3. 10.1 内存共享
3. 10.2 局限性
参考文献
第4章 DPDK安装与部署
4.1 系统要求
4.1.1 BIOS设置要求
4.1.2 DPDK编译要求
4.1.3 运行DPDK应用程序要求
4.2 使用源代码编译DPDK
4.2.1 安装DPDK安装包
4.2.2 安装DPDK目标环境
4.2.3 查看已安装的DPDK环境
4.2.4 启用DPDK用户空间I/O的模块
4.2.5 加载VFIO模块
4.2.6 在内核模块绑定/解除网络端口
4.3 编译和运行示例应用程序
4.3.1 编译示例应用程序
4.3.2 运行示例应用程序
4.3.3 应用程序的逻辑核使用
4.3.4 应用程序巨页内存使用
4.3.5 其他应用示例程序
4.3.6 测试应用程序
4.4 启用其他功能
4.4.1 高精度事件计时器(HPET)功能
4.4.2 无权限运行DPDK应用程序
4.4.3 电源管理和节 能功能
4.4.4 核隔离功能
4.4.5 加载DPDKKNI内核模块
4.4.6 IOMMU功能
4.4.7 小数据分组高速转发功能
4.5 快速启动设置脚本
4.5.1 脚本组织结构
4.5.2 使用场景
第5章 DPDK自带应用软件调试
5.1 命令行应用例
5.1.1 概述
5.1.2 应用例编译
5.1.3 应用例运行
5.1.4 代码说明
5.2 HelloWorld应用例
5.2.1 应用例编译
5.2.2 运行应用例
5.2.3 代码说明
5.3 L2转发应用例
5.3.1 概述
5.3.2 编译
5.3.3 运行
5.3.4 代码说明
5.4 L3转发应用例
5.4.1 概述
5.4.2 L3转发应用例编译
5.4.3 L3转发应用例运行
5.4.4 代码说明
5.5 负载均衡应用例
5.5.1 概述
5.5.2 编译与运行
5.5.3 代码说明
5.6 QoS调度应用例
5.6.1 QoS调度应用例概述
5.6.2 QoS调度应用例编译
5.6.3 QoS调度应用例运行
5.6.4 应用例代码说明
5.7 定时器应用例
5.7.1 应用例编译与运行
5.7.2 应用例代码说明
5.8 分发器应用例
5.8.1 概述
5.8.2 分发器应用例编译
5.8.3 分发器应用例运行
5.8.4 分发器应用例代码说明
5.8.5 调试与统计信息
参考文献
第二部分 DPDK应用与测试
第6章 DPDK在NFV的应用和相关测试方法
6.1 DPDK在NFV中的应用场景
6.1.1 x86服务器上的应用
6.1.2 虚拟机+OVS的应用
6.1.3 虚拟机+SR-IOV技术的应用
6.2 NFV场景下的测试方法
6.2.1 测试拓扑
6.2.2 测试标准
6.2.3 测试平台说明
第7章 DPDK专项测试与结论
7.1 测试用例介绍
7.2 专项测试详情
7.2.1 x86服务器三层转发测试
7.2.2 SR-IOV测试
7.2.3 OVS测试
第三部分 DPDK应用开发及实例解析
第8章 DPDK应用开发基础
8.1 网卡设备
8.1.1 设备驱动
8.1.2 应用接口
8.1.3 设备接口
8.2 进程
8.2.1 线程
8.2.2 单进程
8.2.3 多进程
参考文献
第9章 vDPI应用实例
9.1 DPI简介
9.2 总体设计
9.2.1 模型设计
9.2.2 组件设计
9.3 实现方案设计
9.4 基于l3fwd的实现方案
9.4.1 DPDK以太网接口
9.4.2 DPI以太网接口
9.4.3 DPDK与DPI的数据接口转换
9.4.4 代码解析
9.5 基于pipeline的实现方案
9.6 实例运行及性能测试
参考文献
第10章 mTCP和BRAS应用实例
10.1 mTCP案例解析
10.1.1 mTCP简介
10.1.2 mTCP应用解析
10.2 BRAS案例解析
10.2.1 BRAS简介
10.2.2 BRAS应用解析
参考文献
附录
附录一 操作系统服务关闭说明
附录二 操作系统安装
附录三 DPDK编译
附录四 操作系统启动参数
附录五 l3fwd程序编译
附录六 l3fwd启动配置
附录七 SR-IOV测试配置
附录八 OVS安装
附录九 OVS测试配置
附录十 l3fwd在不同流量下启动配置
附录十一 大流表测试l3fwd启动配置