![]()
内容推荐 本书主要介绍了DPDK、RDMA和XDP三种高性能网络技术的原理、使用方法和实现方案。 本书总计26章,分为四大部分。第1部分介绍了计算机网络、计算机硬件和Linux操作系统的基础知识,以及软件和硬件之间传递信息的方式、以内核协议栈为基础的网络方案和Corundum。第2部分介绍了DPDK的入门知识、DPDK的内存管理、UIO/DPDK的基本使用方法、测试和分析高性能网卡,以及如何为Corundum编写DPDK驱动程序。第3部分包括RDMA技术简介、软件架构、基本元素、基本操作类型及其配套机制、传输服务类型、应用程序执行流程、主要元素的实现、数据传输、RoCEv2网卡的配置、性能测试工具等内容。第4部分包括XDP简介、XDP教程代码分析、简单的XDP性能测试、如何让网卡驱动程序支持XDP功能等内容。 本书适合对高性能网络技术感兴趣的软件和硬件开发工程师、系统工程师、网络性能分析人员阅读。 作者简介 刘伟,拥有十多年网络设备开发领域的从业经验,当前就职于浪潮电子信息产业股份有限公司体系结构研究部,从事高性能网卡的架构设计和驱动程序开发工作。平时喜欢钻研技术和读书,并经常在自己的个人公众号“布鲁斯的读书圈”中发布原创的技术文章。 目录 第1部分 背景知识 第1章 计算机网络概述 1.1 计算机网络的定义和构成 1.2 计算机网络的体系结构 1.3 常见术语 第2章 计算机硬件 2.1 中央处理器 2.1.1 处理器体系结构 2.1.2 Cache 2.1.3 NUMA 2.2 存储器 2.3 总线 2.4 网卡 第3章 Linux操作系统 3.1 Linux操作系统的诞生和发展 3.2 用户态和内核态 3.3 虚拟地址、物理地址和页表 3.4 用户空间和内核空间 3.5 Linux内核的组成 3.5.1 Linux内核源代码的目录结构 3.5.2 Linux内核的主要组成部分 3.6 Linux设备驱动程序 第4章 软件和硬件之间传递信息的方式 4.1 寄存器 4.2 数据缓存 4.3 队列和描述符 4.4 中断 4.5 DMA 第5章 内核协议栈方案及其存在的问题 5.1 内核协议栈方案的工作过程 5.2 内核协议栈方案的数据流 5.3 内核协议栈方案的缺点 第6章 Corundum——一个开源的基于FPGA的100G网卡方案 6.1 Corundum方案简介 6.2 Corundum的队列 6.3 Corundum的Linux网络设备驱动程序解析 6.3.1 驱动程序源码概览 6.3.2 驱动程序的编译和使用 6.3.3 驱动程序的加载和注册 6.3.4 驱动程序和设备的匹配 6.3.5 初始化阶段 6.3.6 打开网络接口 6.3.7 数据发送 6.3.8 中断处理 6.3.9 发送完成处理 6.3.10 数据接收 第2部分 DPDK 第7章 认识DPDK 7.1 为什么需要DPDK 7.2 DPDK体系结构 7.2.1 核心组件 7.2.2 轮询模式驱动 7.3 一个典型的DPDK应用程序 第8章 DPDK的内存管理 8.1 影响数据包处理速度的内存问题 8.2 大页 8.2.1 在Linux系统中预留和配置大页 8.2.2 DPDK的大页管理 8.3 mempool 8.4 通道和rank …… 第3部分 RDMA 第4部分 XDR 附录A 在Linux系统中查找各种核的对应关系 附录B 关于内存性能测试工具mbw的问题分析 附录C 简单分析memcpy的代码优化方法 附录D 用线性回归方法计算CPU频率 |