图书介绍
Linux高性能服务器编程货PDF|Epub|txt|kindle电子书版本网盘下载
![Linux高性能服务器编程货](https://www.shukui.net/cover/35/31014347.jpg)
- 游双著 著
- 出版社: 北京:机械工业出版社
- ISBN:9787111425199
- 出版时间:2013
- 标注页数:346页
- 文件大小:80MB
- 文件页数:364页
- 主题词:Linux操作系统
PDF下载
下载说明
Linux高性能服务器编程货PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一篇 TCP/IP协议详解2
第1章 TCP/IP协议族2
1.1 TCP/IP协议族体系结构以及主要协议2
1.1.1 数据链路层2
1.1.2 网络层3
1.1.3 传输层4
1.1.4 应用层5
1.2 封装6
1.3 分用7
1.4 测试网络8
1.5 ARP协议工作原理9
1.5.1 以太网ARP请求应答报文详解9
1.5.2 ARP高速缓存的查看和修改10
1.5.3 使用tcpdump观察ARP通信过程10
1.6 DNS工作原理12
1.6.1 DNS查询和应答报文详解12
1.6.2 Linux下访问DNS服务14
1.6.3 使用tcpdump观察DNS通信过程15
1.7 socket和TCPIP协议族的关系16
第2章 IP协议详解17
2.1 IP服务的特点17
2.2 IPv4头部结构18
2.2.1 IPv4头部结构18
2.2.2 使用tcpdump观察IPv4头部结构20
2.3 IP分片21
2.4 IP路由22
2.4.1 IP模块工作流程23
2.4.2 路由机制24
2.4.3 路由表更新25
2.5 IP转发25
2.6 重定向26
2.6.1 ICMP重定向报文26
2.6.2 主机重定向实例27
2.7 IPv6头部结构27
2.7.1 IPv6固定头部结构28
2.7.2 IPv6扩展头部29
第3章 TCP协议详解30
3.1 TCP服务的特点30
3.2 TCP头部结构32
3.2.1 TCP固定头部结构32
3.2.2 TCP头部选项33
3.2.3 使用tcpdump观察TCP头部信息35
3.3 TCP连接的建立和关闭37
3.3.1 使用tcpdump观察TCP连接的建立和关闭37
3.3.2 半关闭状态39
3.3.3 连接超时39
3.4 TCP状态转移40
3.4.1 TCP状态转移总图41
3.4.2 TIME WAIT状态43
3.5 复位报文段44
3.5.1 访问不存在的端口44
3.5.2 异常终止连接45
3.5.3 处理半打开连接45
3.6 TCP交互数据流46
3.7 TCP成块数据流48
3.8 带外数据50
3.9 TCP超时重传51
3.10 拥塞控制53
3.10.1 拥塞控制概述53
3.10.2 慢启动和拥塞避免54
3.10.3 快速重传和快速恢复55
第4章 TCP/IP通信案例:访问Internet上的Web服务器57
4.1 实例总图57
4.2 部署代理服务器58
4.2.1 HTTP代理服务器的工作原理58
4.2.2 部署squid代理服务器59
4.3 使用tcpcump抓取传输数据包60
4.4 访问DNS服务器62
4.5 本地名称查询63
4.6 HTTP通信64
4.6.1 HTTP请求65
4.6.2 HTTP应答66
4.7 实例总结68
第二篇 深入解析高性能服务器编程70
第5章 Linux网络编程基础API70
5.1 socket地址API70
5.1.1 主机字节序和网络字节序70
5.1.2 通用socket地址71
5.1.3 专用socket地址72
5.1.4 IP地址转换函数73
5.2 创建socket74
5.3 命名socket75
5.4 监听socket76
5.5 接受连接78
5.6 发起连接80
5.7 关闭连接80
5.8 数据读写81
5.8.1 TCP数据读写81
5.8.2 UDP数据读写85
5.8.3 通用数据读写函数86
5.9 带外标记87
5.10 地址信息函数87
5.11 socket选项87
5.11.1 SO REUSEADDR选项89
5.11.2 SO_RCVBUF和SO_SNDBUF选项89
5.11.3 SO_RCVLOWAT和SO SNDLOWAT选项93
5.11.4 SO LINGER选项93
5.12 网络信息API94
5.12.1 gethostbyname和gethostbyaddr94
5.12.2 getservbyname和getservbyport95
5.12.3 getaddrinfo96
5.12.4 getnameinfo98
第6章 高级I/O函数100
6.1 pipe函数100
6.2 dup函数和dup2数101
6.3 readv函数和writev函数103
6.4 sendfile函数106
6.5 mmap函数和munmap函数107
6.6 splice函数108
6.7 tee函数110
6.8 fcntl函数112
第7章 Linux服务器程序规范114
7.1 日志114
7.1.1 Linux系统日志114
7.1.2 syslog函数115
7.2 用户信息116
7.2.1 UID、EUID、GID和EGID116
7.2.2 切换用户117
7.3 进程间关系118
7.3.1 进程组118
7.3.2 会话118
7.3.3 用ps命令查看进程关系119
7.4 系统资源限制119
7.5 改变工作目录和根目录120
7.6 服务器程序后台化121
第8章 高性能服务器程序框架123
8.1 服务器模型123
8.1.1 CS模型123
8.1.2 P2P模型124
8.2 服务器编程框架125
8.3 IO模型126
8.4 两种高效的事件处理模式127
8.4.1 Reactor模式128
8.4.2 Proactor模式128
8.4.3 模拟Proactor模式129
8.5 两种高效的并发模式130
8.5.1 半同步半异步模式131
8.5.2 领导者追随者模式134
8.6 有限状态机136
8.7 提高服务器性能的其他建议144
8.7.1 池144
8.7.2 数据复制145
8.7.3 上下文切换和锁145
第9章 I/O复用146
9.1 select系统调用146
9.1.1 selectAPI146
9.1.2 文件描述符就绪条件148
9.1.3 处理带外数据148
9.2 poll系统调用150
9.3 epoll系列系统调用151
9.3.1 内核事件表151
9.3.2 epoll wait函数152
9.3.3 LT和ET模式153
9.3.4 EPOLLONESHOT事件157
9.4 三组IO复用函数的比较161
9.5 IO复用的高级应用一:非阻塞connect162
9.6 IO复用的高级应用二:聊天室程序165
9.6.1 客户端165
9.6.2 服务器167
9.7 IO复用的高级应用三:同时处理TCP和UDP服务171
9.8 超级服务xinetd175
9.8.1 xinetd配置文件175
9.8.2 xinetd工作流程176
第10章 信号178
10.1 Linux信号概述178
10.1.1 发送信号178
10.1.2 信号处理方式179
10.1.3 Linux信号179
10.1.4 中断系统调用181
10.2 信号函数181
10.2.1 signal系统调用181
10.2.2 sigaction系统调用181
10.3 信号集182
10.3.1 信号集函数182
10.3.2 进程信号掩码183
10.3.3 被挂起的信号183
10.4 统一事件源184
10.5 网络编程相关信号188
10.5.1 SIGHUP188
10.5.2 SIGPIPE189
10.5.3 SIGU RG190
第11章 定时器193
11.1 socket选项SO RCVTIMEO和SO SNDTIMEO193
11.2 SIGALRM信号195
11.2.1 基于升序链表的定时器195
11.2.2 处理非活动连接200
11.3 IO复用系统调用的超时参数205
11.4 高性能定时器206
11.4.1 时间轮206
11.4.2 时间堆211
第12章 高性能I/O框架库Libevent218
12.1 IO框架库概述218
12.2 Libevent源码分析220
12.2.1 一个实例220
12.2.2 源代码组织结构222
12.2.3 event结构体224
12.2.4 往注册事件队列中添加事件处理器226
12.2.5 往事件多路分发器中注册事件230
12.2.6 eventop结构体233
12.2.7 event base结构体235
12.2.8 事件循环236
第13章 多进程编程239
13.1 fork系统调用239
13.2 exec系列系统调用240
13.3 处理僵尸进程240
13.4 管道241
13.5 信号量243
13.5.1 信号量原语243
13.5.2 semget系统调用244
13.5.3 semop系统调用245
13.5.4 semctl系统调用247
13.5.5 特殊键值IPC PRIVATE249
13.6 共享内存251
13.6.1 shmget系统调用251
13.6.2 shmat和shmdt系统调用252
13.6.3 shmctl系统调用253
13.6.4 共享内存的POSIX方法254
13.6.5 共享内存实例254
13.7 消息队列263
13.7.1 msgget系统调用263
13.7.2 msgsnd系统调用264
13.7.3 msgrcv系统调用264
13.7.4 msgctl系统调用265
13.8 IPC命令266
13.9 在进程间传递文件描述符267
第14章 多线程编程269
14.1 Linux线程概述269
14.1.1 线程模型269
14.1.2 Linux线程库270
14.2 创建线程和结束线程271
14.3 线程属性273
14.4 POSIX信号量275
14.5 互斥锁276
14.5.1 互斥锁基础API276
14.5.2 互斥锁属性277
14.5.3 死锁举例278
14.6 条件变量279
14.7 线程同步机制包装类280
14.8 多线程环境282
14.8.1 可重入函数282
14.8.2 线程和进程283
14.8.3 线程和信号284
第15章 进程池和线程池287
15.1 进程池和线程池概述287
15.2 处理多客户288
15.3 半同步半异步进程池实现289
15.4 用进程池实现的简单CGI服务器298
1 5.5 半同步半反应堆线程池实现301
15.6 用线程池实现的简单Web服务器304
15.6.1 http_conn类304
15.6.2 main函数318
第三篇 高性能服务器优化与监测324
第16章 服务器调制、调试和测试324
16.1 最大文件描述符数324
16.2 调整内核参数325
16.2.1 procsysfs目录下的部分文件325
16.2.2 procsysnet目录下的部分文件325
16.3 gdb调试326
16.3.1 用gdb调试多进程程序326
16.3.2 用gdb调试多线程程序328
16.4 压力测试329
第17章 系统监测工具333
17.1 tcpdump333
17.2 lsof334
17.3 nc336
17.4 strace338
17.5 netstat341
17.6 vmstat342
17.7 ifstat344
17.8 mpstat344
参考文献346