Linux高性能网络详解:从DPDK、RDMA到XDP
正版保障 假一赔十 可开发票
¥
78.41
6.6折
¥
118.8
全新
库存78件
作者刘伟
出版社人民邮电出版社
ISBN9787115609649
出版时间2022-08
装帧平装
开本16开
定价118.8元
货号12261809
上书时间2024-10-27
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
刘伟,拥有14年网络设备开发领域的从业经验,当前就职于浪潮电子信息产业股份有限公司体系结构研究部,负责高性能网卡的架构设计和驱动程序开发工作。在此之前,曾以驱动团队和网络接入设备产品开发负责人的身份在上海诺基亚贝尔固网事业部工作了7年;还曾经就职于中兴通讯和上海爱吉信息技术有限公司,负责多款通信产品的研发工作。平时喜欢钻研技术和读书,并经常在自己的个人公 众号“布鲁斯的读书圈”中发表原创的技术文章。
目录
第 1部分 背景知识 第 1章 计算机网络概述 3 1.1 计算机网络的定义和构成 3 1.2 计算机网络的体系结构 4 1.3 常见术语 6 第 2章 计算机硬件 10 2.1 中央处理器 10 2.1.1 处理器体系结构 11 2.1.2 Cache 12 2.1.3 NUMA 17 2.2 存储器 19 2.3 总线 19 2.4 网卡 22 第3章 Linux操作系统 25 3.1 Linux操作系统的诞生和发展 25 3.2 用户态和内核态 27 3.3 虚拟地址、物理地址和页表 28 3.4 用户空间和内核空间 30 3.5 Linux内核的组成 31 3.5.1 Linux内核源代码的目录结构 31 3.5.2 Linux内核的主要组成部分 32 3.6 Linux设备驱动程序 35 第4章 软件和硬件之间传递信息的方式 37 4.1 寄存器 37 4.2 数据缓存 38 4.3 队列和描述符 39 4.4 中断 43 4.5 DMA 46 第5章 内核协议栈方案及其存在的问题 47 5.1 内核协议栈方案的工作过程 47 5.2 内核协议栈方案的数据流 49 5.3 内核协议栈方案的缺点 50 第6章 Corundum——一个开源的基于FPGA的100G网卡方案 51 6.1 Corundum方案简介 51 6.2 Corundum的队列 54 6.3 Corundum的Linux网络设备驱动程序解析 56 6.3.1 驱动程序源码概览 57 6.3.2 驱动程序的编译和使用 57 6.3.3 驱动程序的加载和注册 58 6.3.4 驱动程序和设备的匹配 59 6.3.5 初始化阶段 60 6.3.6 打开网络接口 72 6.3.7 数据发送 75 6.3.8 中断处理 81 6.3.9 发送完成处理 85 6.3.10 数据接收 89 第 2部分 DPDK 第7章 认识DPDK 97 7.1 为什么需要DPDK 97 7.2 DPDK体系结构 98 7.2.1 核心组件 98 7.2.2 轮询模式驱动 100 7.3 一个典型的DPDK应用程序 102 第8章 DPDK的内存管理 104 8.1 影响数据包处理速度的内存问题 104 8.2 大页 105 8.2.1 在Linux系统中预留和配置大页 105 8.2.2 DPDK的大页管理 106 8.3 mempool 111 8.4 通道和rank 113 8.5 DPDK使用的内存管理技巧总结 114 第9章 UIO——DPDK的基石 115 9.1 UIO驱动程序的构成 115 9.2 应用程序和UIO的交互方式 118 9.3 UIO驱动程序的API 119 9.4 DPDK如何使用UIO 120 第 10章 DPDK的基本使用方法 123 10.1 编译DPDK 123 10.2 使用dpdk-testpmd进行数据包转发测试 123 10.2.1 运行环境和连接方式 124 10.2.2 使用Linux以太网驱动程序运行dpdk-testpmd 125 10.2.3 使用轮询模式驱动程序运行dpdk-testpmd 129 10.3 使用pktgen测试Mellanox ConnectX-4 LX 10G网卡 132 10.3.1 硬件环境 132 10.3.2 软件版本 132 10.3.3 安装Mellanox网卡驱动程序 132 10.3.4 编译和安装DPDK 133 10.3.5 “回环+转发”测试 133 10.3.6 编译pktgen 138 10.3.7 “外部发包+本地转发”测试 138 10.3.8 测试过程中可能遇到的问题及解决方法 141 第 11章 测试和分析高性能网卡 142 11.1 关于DDR访问速率的思考和测试 142 11.1.1 硬件配置和软件版本 143 11.1.2 DDR理论速率 144 11.1.3 内存性能测试工具mbw 145 11.1.4 单核测试 146 11.1.5 多核测试 148 11.2 基于100G网卡的单核和多核测试 150 11.2.1 硬件配置 150 11.2.2 软件版本和配置 150 11.2.3 单核测试 150 11.2.4 双核测试 152 11.2.5 测试结果总结 153 11.3 使用Intel VTune Profiler定量分析DPDK 154 11.3.1 硬件环境和软件版本 154 11.3.2 Intel VTune Profiler的下载和安装 155 11.3.3 测试模型 155 11.3.4 重新编译安装DPDK 155 11.3.5 使用Intel VTune Profiler启动和监控dpdk-testpmd 156 11.3.6 开始产生和发送数据包 159 11.3.7 统计和分析 159 第12章 为Corundum编写DPDK驱动程序 163 12.1 Corundum DPDK驱动程序的组成 164 12.2 注册和打开调试日志 164 12.2.1 DPDK的日志级别 164 12.2.2 Corundum DPDK驱动程序的日志 165 12.3 Corundum DPDK驱动程序的注册 167 12.4 Corundum DPDK驱动程序的初始化 168 12.5 启动队列 173 12.6 数据发送 176 12.7 编写驱动程序时的注意事项 179 第3部分 RDMA 第 13章 RDMA技术简介 185 13.1 RDMA的控制通路和数据通路 185 13.2 RDMA的优势 188 13.3 RDMA协议 189 13.3.1 InfiniBand 190 13.3.2 RoCE 190 13.3.3 iWARP 192 13.4 RDMA网络构成 192 13.5 LID和GID 194 13.5.1 LID 194 13.5.2 GID 195 第 14章 RDMA软件架构 198 14.1 rdma-core 198 14.2 内核RDMA子系统 199 14.3 RDMA软件架构总览 201 第 15章 RDMA基本元素 202 15.1 WQ和WQE 202 15.2 QP和QPN 203 15.3 CQ和CQN 205 15.4 WR和WC 206 15.5 RDMA基本元素总结 207 第 16章 RDMA基本操作类型及其配套机制 208 16.1 Send和Receive 208 16.2 RDMA Write 209 16.3 RDMA Read 210 16.4 其他RDMA操作类型 212 16.5 RDMA操作类型总结 213 16.6 Memory Region 214 16.6.1 MR的基本概念 215 16.6.2 MR的作用之一 215 16.6.3 MR的作用之二 216 16.6.4 MR的作用之三 217 16.7 PD 218 16.8 Doorbell机制 219 16.9 RDMA各种元素的实体形式 220 第 17章 RDMA传输服务 222 17.1 传输服务维度一——可靠/不可靠 222 17.2 传输服务维度二——连接/数据报 223 17.3 传输服务类型 225 第 18章 一个简单的RDMA应用程序 229 18.1 程序的执行和输出 229 18.2 代码执行流程 230 第 19章 RDMA主要元素的实现 234 19.1 分配PD 234 19.2 注册MR 240 19.2.1 代码执行流程分析 240 19.2.2 注册MR的具体工作 242 19.2.3 硬件查表获取MR物理地址的过程 246 19.2.4 MR相关的软硬件行为汇总 248 19.3 创建CQ 249 19.3.1 代码执行流程分析 249 19.3.2 CQ buffer的组织形式 253 19.3.3 CQ Context的组织形式 255 19.3.4 硬件获取CQE地址的过程 257 19.3.5 CQ相关的软硬件行为汇总 258 19.4 创建QP 258 19.4.1 代码执行流程分析 258 19.4.2 QP buffer的组织形式 263 19.4.3 QP Context的组织形式 264 19.5 修改QP 265 19.5.1 应用程序修改QP 265 19.5.2 代码执行流程分析 267 19.5.3 硬件获取WQE地址的过程 270 第 20章 进行一次数据传输 272 20.1 发起数据传输——RDMA Write 272 20.1.1 应用程序发起数据传输 272 20.1.2 代码执行流程分析 273 20.2 确认数据传输完毕——轮询CQ 276 20.3 软件和硬件行为汇总 277 第 21章 RoCEv2网卡的MAC、IP和GID 279 21.1 RoCEv2网卡的GID 279 21.2 向RoCEv2网卡配置自己的MAC、IP和GID 281 21.2.1 获取RoCEv2网卡自己的MAC 281 21.2.2 获取RoCEv2网卡自己的IP地址 281 21.2.3 配置RoCEv2网卡自己的0号GID 281 21.2.4 配置RoCEv2网卡自己的非0号GID 282 21.3 向RoCEv2网卡配置对端设备的MAC、IP和GID 282 21.3.1 应用程序获取本地和对端设备的0号GID 283 21.3.2 应用程序获取对端设备的非0号(3号)GID 284 21.3.3 向RoCEv2网卡配置对端设备的MAC地址 284 21.3.4 向RoCEv2网卡配置对端设备的IP地址 285 第 22章 RDMA性能测试工具—perftest 286 22.1 源码获取和安装 286 22.2 测试方法和注意事项 286 22.3 测试选项 287 22.4 简单的测试过程和结果呈现 289 第4部分 XDP 第 23章 XDP简介 293 23.1 什么是BPF和eBPF 293 23.2 XDP系统架构 294 23.2.1 XDP程序的执行流程 295 23.2.2 BPF map 297 第 24章 XDP教程代码分析 298 24.1 xdp-tutorial代码获取和编译 298 24.2 基础课程 299 24.2.1 XDP程序的加载和卸载 299 24.2.2 按名称加载SEC 301 24.2.3 使用BPF map 302 24.2.4 多程序交流和共享 304 24.3 数据包处理课程 308 24.3.1 解析数据包 308 24.3.2 改写数据包 311 24.3.3 重定向 313 第 25章 简单的XDP性能测试 319 25.1 测试方法 319 25.2 测试流程和命令 320 25.3 测试结果 321 25.4 测试结果分析 321 第 26章 让网卡驱动程序支持XDP功能 322 26.1 XDP代码在网卡驱动中的位置 322 26.2 数据包的准备 323 26.3 返回值的处理 323 附录A 在Linux系统中查找各种核的对应关系 325 附录B 关于内存性能测试工具mbw的问题分析 331 附录C 简单分析memcpy的代码优化方法 335 附录D 用线性回归方法计算CPU频率 338
内容摘要
《Linux高性能网络详解:从DPDK、RDMA到XDP》主要介绍了DPDK、RDMA和XDP三种高性能网络技术的原理、使用方法和实现方案。
《Linux高性能网络详解:从DPDK、RDMA到XDP》总计26章,分为四大部分。第1部分介绍了计算机网络、计算机硬件和Linux操作系统的基础知识,以及软件和硬件之间传递信息的方式、以内核协议栈为基础的网络方案和Corundum。第2部分介绍了DPDK的入门知识、DPDK的内存管理、UIO/DPDK的基本使用方法、测试和分析高性能网卡,以及如何为Corundum编写DPDK驱动程序。第3部分包括RDMA技术简介、软件架构、基本元素、基本操作类型及其配套机制、传输服务类型、应用程序执行流程、主要元素的实现、数据传输、RoCEv2网卡的配置、性能测试工具等内容。第4部分包括XDP简介、XDP教程代码分析、简单的XDP性能测试、如何让网卡驱动程序支持XDP功能等内容。
《Linux高性能网络详解:从DPDK、RDMA到XDP》适合对高性能网络技术感兴趣的软件和硬件开发工程师、系统工程师、网络性能分析人员阅读。
主编推荐
源自作者十多年高性能网络设备领域的开发经验总结 细致剖析Linux高性能网络主流解决方案以及开发细节 涵盖DPDK和RDMA等当下热点技术,同时涉及前沿的XDP技术 源码级教学,图示软硬件交互流程,实现方法翔实齐全,可直接用于业务实践,提升高性能网络开发能力 本书主要内容: 第1部分,背景知识 介绍网络基本概念、计算机硬件构成、Linux操作系统、软硬件之间的信息传递方式、内核协议栈方案及其存在的问题,并详细讲解了开源网卡解决方案Corundum的实现机制。 第2部分,DPDK 介绍DPDK技术,具体内容包括DPDK简介、内存管理、UIO机制、基本使用方法等,并测试和分析DPDK的性能,以及为Corundum编写DPDK驱动程序。 第3部分,RDMA 介绍RDMA技术,内容包括其软件架构、基本元素、基本操作类型及其配套机制、传输服务、RDMA主要元素的实现等。 第4部分,XDP 介绍XDP的基本概念、实现机制、使用方法,以及如何在Linux设备驱动中支持XDP功能。
精彩内容
《Linux高性能网络详解:从DPDK、RDMA到XDP》主要介绍了DPDK、RDMA和XDP三种高性能网络技术的原理、使用方法和实现方案。 《Linux高性能网络详解:从DPDK、RDMA到XDP》总计26章,分为四大部分。第1部分介绍了计算机网络、计算机硬件和Linux操作系统的基础知识,以及软件和硬件之间传递信息的方式、以内核协议栈为基础的网络方案和Corundum。第2部分介绍了DPDK的入门知识、DPDK的内存管理、UIO/DPDK的基本使用方法、测试和分析高性能网卡,以及如何为Corundum编写DPDK驱动程序。第3部分包括RDMA技术简介、软件架构、基本元素、基本操作类型及其配套机制、传输服务类型、应用程序执行流程、主要元素的实现、数据传输、RoCEv2网卡的配置、性能测试工具等内容。第4部分包括XDP简介、XDP教程代码分析、简单的XDP性能测试、如何让网卡驱动程序支持XDP功能等内容。 《Linux高性能网络详解:从DPDK、RDMA到XDP》适合对高性能网络技术感兴趣的软件和硬件开发工程师、系统工程师、网络性能分析人员阅读。
— 没有更多了 —
以下为对购买帮助不大的评价