网站首页  软件下载  游戏下载  翻译软件  电子书下载  电影下载  电视剧下载  教程攻略

请输入您要查询的图书:

 

书名 程序员进阶之路:缓存、网络、内存与案例
分类 教育考试-考试-计算机类
作者 邓中华
出版社 电子工业出版社
下载
简介
内容推荐
本书主要讲解计算机系统中核心的技术知识,涵盖缓存、内存屏障、无锁编程、网络基础、TCP/UDP、端口复用、网络收发包流程、物理内存、虚拟内存等内容。本书还分享了实际工作中可能出现的技术难题及解决方案供读者借鉴。为了使读者轻松、快速地理解书中晦涩难懂的技术知识,本书作者精心绘制了大量的流程图、结构图。为了使读者更好地理解Linux内核源码,本书还提供了大量经过注释的Linux内核源码供读者下载。通过阅读本书,读者可以轻松、快速地掌握这些技术知识,并通过源码和书中配图加强对相关知识的理解。
目录





第1章  缓存\t1
1.1  存储体系结构\t1
1.2  缓存一致性协议\t4
1.2.1  MESI协议\t4
1.2.2  MOESI协议\t8
1.2.3  MESIF协议\t9
1.3  写缓存区和无效队列\t9
1.3.1  写缓冲区的作用\t11
1.3.2  无效队列的作用\t11
1.4  内存屏障\t11
1.4.1  读写屏障\t12
1.4.2  单向屏障\t12
1.5  x86-TSO\t13
1.6  CPU黑盒测试\t15
1.6.1  测试核心内是否存在Store Buffer\t15
1.6.2  测试转发(Store Forwarding)是否生效\t17
1.6.3  测试StoreStore是否乱序执行\t18
1.6.4  测试LoadLoad是否乱序执行\t19
1.6.5  测试LoadStore是否乱序执行\t19
1.6.6  测试StoreLoad是否乱序执行\t20
1.7  CAS原理\t20
1.8  原子操作\t22
1.8.1  互斥锁\t23
1.8.2  自旋锁\t23
1.8.3  C++原子变量\t25
1.8.4  C++内存顺序\t26
1.9  无锁队列\t31
1.9.1  设计思路\t31
1.9.2  实现细节\t32
第2章  网络\t36
2.1  网络分层\t36
2.2  网络接口层(以太网)\t37
2.3  网络层(IP、ICMP)\t39
2.3.1  IP\t39
2.3.2  ICMP\t43
2.4  套接字编程\t47
2.4.1  套接字\t47
2.4.2  函数\t47
2.4.3  多路复用\t49
2.5  虚拟网卡\t54
2.5.1  Tun设备\t54
2.5.2  创建代码\t55
2.6  网络抓包\t56
2.6.1  tcpdump\t56
2.6.2  Wireshark\t59
2.7  网络工具\t61
2.7.1  ethtool工具\t61
2.7.2  ifconfig工具\t65
2.7.3  ip工具\t66
2.7.4  nc工具\t66
2.8  网卡的特性(Feature)\t67
2.8.1  LRO\t67
2.8.2  GRO\t67
2.8.3  TSO\t68
2.8.4  GSO\t68
2.9  网络栈的扩展(Scaling)\t69
2.9.1  RSS\t69
2.9.2  RPS\t71
2.9.3  RFS\t72
2.9.4  XPS\t73
2.10  硬中断的负载均衡\t74
2.10.1  硬中断的CPU亲和性\t74
2.10.2  irqbalance功能\t75
第3章  TCP\t76
3.1  协议体\t76
3.2  有限状态机\t81
3.2.1  netstat\t82
3.2.2  ss\t82
3.3  准备阶段\t83
3.4  握手阶段\t84
3.4.1  三次握手\t84
3.4.2  初始化序列号\t88
3.5  连接阶段\t89
3.5.1  重传机制\t90
3.5.2  确认机制\t93
3.5.3  乱序恢复机制\t94
3.5.4  保活机制\t95
3.6  流量控制\t97
3.6.1  滑动窗口\t97
3.6.2  流量控制过程\t99
3.6.3  零窗口\t100
3.7  拥塞控制\t101
3.7.1  拥塞控制算法\t101
3.7.2  CUBIC\t102
3.8  挥手阶段\t109
3.8.1  四次挥手\t109
3.8.2  三次挥手\t112
3.8.3  同时挥手\t113
3.8.4  关闭函数\t114
第4章  UDP\t117
4.1  协议体\t117
4.2  特点\t119
4.2.1  无连接性\t119
4.2.2  不可靠性\t122
4.2.3  面向报文\t122
4.2.4  优选交付\t124
4.2.5  最小开销\t125
4.3  应用场景\t125
4.4  可靠性保障\t126
4.4.1  ACK\t126
4.4.2  FEC\t126
第5章  端口\t128
5.1  问题\t128
5.2  地址和端口复用的总结\t128
5.2.1  两个选项均关闭\t129
5.2.2  仅开启一个选项\t129
5.2.3  仅开启地址复用选项\t130
5.2.4  开启端口复用选项\t131
5.3  地址复用的应用场景\t132
5.4  端口复用的应用场景\t133
5.4.1  单工作线程\t133
5.4.2  多工作线程\t137
5.5  TCP和UDP绑定同一端口\t138
第6章  收包\t139
6.1  网卡的准备过程\t139
6.1.1  网卡驱动的加载\t140
6.1.2  网卡驱动的初始化\t141
6.1.3  启用网卡\t143
6.2  收包过程总览\t145
6.3  网络接口层\t148
6.3.1  网卡收到数据包\t149
6.3.2  内核收到硬中断\t149
6.3.3  内核收到软中断\t150
6.3.4  清理接收队列\t152
6.3.5  GRO\t158
6.3.6  RPS\t159
6.3.7  数据包进入协议栈之前\t161
6.4  网络层(IP)\t168
6.4.1  网络协议栈入口\t169
6.4.2  数据包的流向\t171
6.4.3  数据包的转发\t172
6.4.4  数据包进入传输层之前\t173
6.5  传输层(UDP)\t174
6.5.1  UDP协议入口\t175
6.5.2  数据包的特殊处理\t176
6.5.3  将数据包放入接收队列\t178
6.5.4  唤醒等待数据的进程/线程\t179
6.6  套接字层\t183
6.6.1  创建套接字\t183
6.6.2  绑定套接字\t188
6.6.3  读取套接字\t189
第7章  发包\t195
7.1  发包流程总览\t195
7.2  套接字层\t198
7.2.1  send/sendto函数(用户态)\t198
7.2.2  send/sendto系统调用(内核态)\t199
7.2.3  选择发送函数\t200
7.2.4  将消息对象递交到传输层\t201
7.3  传输层(UDP)\t202
7.3.1  处理消息对象\t203
7.3.2  处理数据包(struct sk_buff)\t211
7.4  网络层(IP)\t212
7.4.1  IP层入口函数\t213
7.4.2  IPv4的发送函数\t214
7.4.3  执行BPF程序\t214
7.4.4  数据包的分片\t215
7.4.5  将数据包发给邻居子系统\t216
7.5  邻居子系统\t217
7.5.1  确定发送路径\t219
7.5.2  快速发送路径\t220
7.5.3  慢速发送路径\t222
7.6  网络接口层\t225
7.6.1  网络接口层入口\t226
7.6.2  内核选择发送队列\t229
7.6.3  运行排队规则\t233
7.6.4  将数据包递交到网卡驱动\t235
7.6.5  网卡驱动发包\t236
7.6.6  软中断处理过程\t240
7.6.7  网卡发送完成\t241
第8章  内存\t244
8.1  物理内存\t244
8.1.1  物理内存模型\t244
8.1.2  物理内存架构\t250
8.1.3  物理内存节点\t253
8.1.4  物理内存区域\t256
8.1.5  物理内存页\t261
8.1.6  物理内存布局\t266
8.1.7  物理内存硬件\t269
8.2  虚拟内存\t270
8.2.1  虚拟内存布局\t270
8.2.2  虚拟内存空间\t279
8.2.3  虚拟内存区域\t288
8.2.4  虚拟内存申请\t290
8.3  内存映射\t301
8.3.1  正向映射\t301
8.3.2  反向映射\t307
第9章  案例\t310
9.1  伪内存泄漏排查\t310
9.1.1  背景\t310
9.1.2  分析\t310
9.1.3  定位\t311
9.2  周期性事故处理\t312
9.2.1  背景\t312
9.2.2  猜想(大胆假设)\t312
9.2.3  定位(小心求证)\t313
9.2.4  总结\t316
随便看

 

霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。

 

Copyright © 2002-2024 101bt.net All Rights Reserved
更新时间:2025/4/18 7:25:11