网站首页 软件下载 游戏下载 翻译软件 电子书下载 电影下载 电视剧下载 教程攻略
书名 | 深入理解Linux网络(修炼底层内功掌握高性能原理) |
分类 | 计算机-操作系统 |
作者 | 张彦飞 |
出版社 | 电子工业出版社 |
下载 | ![]() |
简介 | 内容推荐 本书通过先抛出一些开发、运维等技术人员在工作中经常遇见的问题,激发读者的思考。从这些问题出发,深入地对网络底层实现原理进行了拆解,带领读者看清楚问题的核心,理解其背后的技术本质,提高大家的技术功力。例如网络包是如何被接收和发送的?阻塞到底在内部是如何发生的?epoll的底层工作原理又是啥?TCP连接在底层上是如何支持和实现的?书中对这些内容都有深度的阐述。本书旨在通过带领读者修炼底层内功,进而帮助大家深度掌握网络高性能原理。 作者简介 张彦飞,2010年硕士毕业于西北大学计算机学院,有十多年的大型互联网公司项目经验,目前就职于腾讯。他喜欢对技术进行深度思考,善于挖掘技术点背后的原理。他的技术公众号“开发内功修炼”一年便收到五万多读者的关注。 目录 第1章 绪论 1.1 我在工作中的困惑 1.1.1 过多的TIME_WAIT 1.1.2 长连接开销 1.1.3 CPU被消耗光了 1.1.4 为什么不同的语言网络性能差别巨大 1.1.5 访问127.0.0.1过网卡吗 1.1.6 软中断和硬中断 1.1.7 零拷贝到底是怎么回事 1.1.8 DPDK 1.2 本书内容结构 1.3 一些约定 1.4 一些术语 第2章 内核是如何接收网络包的 2.1 相关实际问题 2.2 数据是如何从网卡到协议栈的 2.2.1 Linux网络收包总览 2.2.2 Linux启动 2.2.3 迎接数据的到来 2.2.4 收包小结 2.3 本章总结 第3章 内核是如何与用户进程协作的 3.1 相关实际问题 3.2 socket的直接创建 3.3 内核和用户进程协作之阻塞方式 3.3.1 等待接收消息 3.3.2 软中断模块 3.3.3 同步阻塞总结 3.4 内核和用户进程协作之epoll 3.4.1 epoll内核对象的创建 3.4.2 为epoll添加socket 3.4.3 epoll_wait之等待接收 3.4.4 数据来了 3.4.5 小结 3.5 本章总结 第4章 内核是如何发送网络包的 4.1 相关实际问题 4.2 网络包发送过程总览 4.3 网卡启动准备 4.4 数据从用户进程到网卡的详细过程 4.4.1 send系统调用实现 4.4.2 传输层处理 4.4.3 网络层发送处理 4.4.4 邻居子系统 4.4.5 网络设备子系统 4.4.6 软中断调度 4.4.7 igb网卡驱动发送 4.5 RingBuffer内存回收 4.6 本章总结 第5章 深度理解本机网络IO 5.1 相关实际问题 5.2 跨机网络通信过程 5.2.1 跨机数据发送 5.2.2 跨机数据接收 5.2.3 跨机网络通信汇总 5.3 本机发送过程 5.3.1 网络层路由 5.3.2 本机IP路由 5.3.3 网络设备子系统 5.3.4 “驱动”程序 5.4 本机接收过程 5.5 本章总结 第6章 深度理解TCP连接建立过程 6.1 相关实际问题 6.2 深入理解listen 6.2.1 listen系统调用 6.2.2 协议栈listen 6.2.3 接收队列定义 6.2.4 接收队列申请和初始化 6.2.5 半连接队列长度计算 6.2.6 listen过程小结 6.3 深入理解connect 6.3.1 connect调用链展开 6.3.2 选择可用端口 6.3.3 端口被使用过怎么办 6.3.4 发起syn请求 6.3.5 connect小结 6.4 完整TCP连接建立过程 6.4.1 客户端connect 6.4.2 服务端响应SYN 6.4.3 客户端响应SYNACK 6.4.4 服务端响应ACK 6.4.5 服务端accept 6.4.6 连接建立过程总结 6.5 异常TCP连接建立情况 6.5.1 connect系统调用耗时失控 6.5.2 第一次握手丢包 6.5.3 第三次握手丢包 6.5.4 握手异常总结 6.6 如何查看是否有连接队列溢出发生 6.6.1 全连接队列溢出判断 6.6.2 半连接队列溢出判断 6.6.3 小结 6.7 本章总结 第7章 一条TCP连接消耗多大内存 7.1 相关实际问题 7.2 Linux内核如何管理内存 7.2.1 node划分 7.2.2 zone划分 7.2.3 基于伙伴系统管理空闲页面 7.2.4 slab分配器 7.2.5 小结 7.3 TCP连接相关内核对象 7.3.1 socket函数直接创建 7.3.2 服务端socket创建 7.4 实测TCP内核对象开销 7.4.1 实验准备 7.4.2 实验开始 7.4.3 观察ESTABLISH状态开销 7.4.4 观察非ESTABLISH状态开销 7.4.5 收发缓存区简单测试 7.4.6 实验结果小结 7.5 本章总结 第8章 一台机器最多能支持多少条TCP连接 8.1 相关实际问题 8.2 理解Linux最大文件描述符限制 8.2.1 找到源码入口 8.2.2 寻找进程级限制n |
随便看 |
|
霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。