新闻资讯
看你所看,想你所想

Linux高性能伺服器编程

Linux高性能伺服器编程

《Linux高性能伺服器编程》是2013年机械工业出版社出版的图书,作者是游双。

基本介绍

  • 中文名:Linux高性能伺服器编程
  • 製作人:游双
  • 出版时间:2013-05-01
  • 出 版 社::机械工业出版社

基本介绍

作 者:游双 着
出 版 社:
出版时间:2013-05-01
所属分类:图书 > 计算机与网际网路 > 作业系统

内容简介

《Linux高性能伺服器编程》是Linux伺服器编程领域的经典着作,由资深Linux软体开发工程师撰写,从网路协定、伺服器编程核心要素、原理机制、工具框架等多角度全面阐释了编写高性能Linux伺服器套用的方法、技巧和思想。不仅理论全面、深入,抓住了重点和难点,还包含两个综合性案例,极具实战意义。
《Linux高性能伺服器编程》共17章,分为3个部分:第一部分对Linux伺服器编程的核心基础——TCP/IP协定进行了深入的解读和阐述,包括TCP/IP协定族、TCP/IP协定,以及一个经典的TCP/IP通信案例;第二部分对高性能伺服器编程的核心要素进行了全面深入的剖析,包含Linux网路编程API、高级I/O函式、Linux伺服器程式规範、高性能伺服器程式框架、I/O复用、信号、定时器、高性能I/O框架库Libevent、多进程编程、多执行绪编程、进程池和执行绪池等内容,原理、技术与方法并重;第三部分从侧重实战的角度讲解了高性能伺服器的最佳化与监测,包含伺服器的调製、调试和测试,以及各种实用系统监测工具的使用等内容。
本书另外免费赠送一个负载均衡伺服器程式的完整实际项目的原始码!

作者简介

游 双,资深Linux软体开发工程师,对Linux网路编程,尤其是伺服器端的编程,有非常深入的研究,实战经验也十分丰富。曾就职于摩托罗拉,担任高级Linux软体工程师。此外,他还精通C++、Android、QT等相关的技术。活跃于Chinaunix等专业技术社区,发表了大量关于Linux网路编程的文章,深受社区欢迎。

目录

前言
第一篇 TCPIP协定详解
第1章 TCPIP协定族
1.1 TCPIP协定族体系结构以及主要协定
1.1.1 数据链路层
1.1.2 网路层
1.1.3 传输层
1.1.4 套用层
1.2 封装
1.3 分用
1.4 测试网路
1.5 ARP协定工作原理
1.5.1 乙太网ARP请求应答报文详解
1.5.2 ARP高速快取的查看和修改
1.5.3 使用tcpdump观察ARP通信过程
1.6 DNS工作原理
1.6.1 DNS查询和应答报文详解
1.6.2 Linux下访问DNS服务
1.6.3 使用tcpdump观察DNS通信过程
1.7 socket和TCPIP协定族的关係
第2章 IP协定详解
2.1 IP服务的特点
2.2 IPv4头部结构
2.2.1 IPv4头部结构
2.2.2 使用tcpdump观察IPv4头部结构
2.3 IP分片
2.4 IP路由
2.4.1 IP模组工作流程
2.4.2 路由机制
2.4.3 路由表更新
2.5 IP转发
2.6 重定向
2.6.1 ICMP重定向报文
2.6.2 主机重定向实例
2.7 IPv6头部结构
2.7.1 IPv6固定头部结构
2.7.2 IPv6扩展头部
第3章 TCP协定详解
3.1 TCP服务的特点
3.2 TCP头部结构
3.2.1 TCP固定头部结构
3.2.2 TCP头部选项
3.2.3 使用tcpdump观察TCP头部信息
3.3 TCP连线的建立和关闭
3.3.1 使用tcpdump观察TCP连线的建立和关闭
3.3.2 半关闭状态
3.3.3 连线逾时
3.4 TCP状态转移
3.4.1 TCP状态转移总图
3.4.2 TIME_WAIT状态
3.5 复位报文段
3.5.1 访问不存在的连线埠
3.5.2 异常终止连线
3.5.3 处理半打开连线
3.6 TCP互动数据流
3.7 TCP成块数据流
3.8 带外数据
3.9 TCP逾时重传
3.10 拥塞控制
3.10.1 拥塞控制概述
3.10.2 慢启动和拥塞避免
3.10.3 快速重传和快速恢复
第4章 TCPIP通信案例:访问Internet上的Web伺服器
4.1 实例总图
4.2 部署代理伺服器
4.2.1 HTTP代理伺服器的工作原理
4.2.2 部署squid代理伺服器
4.3 使用tcpdump抓取传输数据包
4.4 访问DNS伺服器
4.5 本地名称查询
4.6 HTTP通信
4.6.1 HTTP请求
4.6.2 HTTP应答
4.7 实例总结
第二篇 深入解析高性能伺服器编程
第5章 Linux网路编程基础API
5.1 socket地址API
5.1.1 主机位元组序和网路位元组序
5.1.2 通用socket地址
5.1.3 专用socket地址
5.1.4 IP位址转换函式
5.2 创建socket
5.3 命名socket
5.4 监听socket
5.5 接受连线
5.6 发起连线
5.7 关闭连线
5.8 数据读写
5.8.1 TCP数据读写
5.8.2 UDP数据读写
5.8.3 通用数据读写函式
5.9 带外标记
5.10 地址信息函式
5.11 socket选项
5.11.1 SO_REUSEADDR选项
5.11.2 SO_RCVBUF和SO_SNDBUF选项
5.11.3 SO_RCVLOWAT和SO_SNDLOWAT选项
5.11.4 SO_LINGER选项
5.12 网路信息API
5.12.1 gethostbyname和gethostbyaddr
5.12.2 getservbyname和getservbyport
5.12.3 getaddrinfo
5.12.4 getnameinfo
第6章 高级IO函式
6.1 pipe函式
6.2 dup函式和dup2函式
6.3 readv函式和writev函式
6.4 sendfile函式
6.5 mmap函式和munmap函式
6.6 splice函式
6.7 tee函式
6.8 fcntl函式
第7章 Linux伺服器程式规範
7.1 日誌
7.1.1 Linux系统日誌
7.1.2 syslog函式
7.2 用户信息
7.2.1 UID、EUID、GID和EGID
7.2.2 切换用户
7.3 进程间关係
7.3.1 进程组
7.3.2 会话
7.3.3 用ps命令查看进程关係
7.4 系统资源限制
7.5 改变工作目录和根目录
7.6 伺服器程式后台化
第8章 高性能伺服器程式框架
8.1 伺服器模型
8.1.1 CS模型
8.1.2 P2P模型
8.2 伺服器编程框架
8.3 IO模型
8.4 两种高效的事件处理模式
8.4.1 Reactor模式
8.4.2 Proactor模式
8.4.3 模拟Proactor模式
8.5 两种高效的併发模式
8.5.1 半同步半异步模式
8.5.2 领导者追随者模式
8.6 有限状态机
8.7 提高伺服器性能的其他建议
8.7.1 池
8.7.2 数据複製
8.7.3 上下文切换和锁
第9章 IO复用
9.1 select系统调用
9.1.1 select API
9.1.2 档案描述符就绪条件
9.1.3 处理带外数据
9.2 poll系统调用
9.3 epoll系列系统调用
9.3.1 核心事件表
9.3.2 epoll_wait函式
9.3.3 LT和ET模式
9.3.4 EPOLLONESHOT事件
9.4 三组IO复用函式的比较
9.5 IO复用的高级套用一:非阻塞connect
9.6 IO复用的高级套用二:聊天室程式
9.6.1 客户端
9.6.2 伺服器
9.7 IO复用的高级套用三:同时处理TCP和UDP服务
9.8 超级服务xinetd
9.8.1 xinetd配置档案
9.8.2 xinetd工作流程
第10章 信号
10.1 Linux信号概述
10.1.1 传送信号
10.1.2 信号处理方式
10.1.3 Linux信号
10.1.4 中断系统调用
10.2 信号函式
10.2.1 signal系统调用
10.2.2 sigaction系统调用
10.3 信号集
10.3.1 信号集函式
10.3.2 进程信号掩码
10.3.3 被挂起的信号
10.4 统一事件源
10.5 网路编程相关信号
10.5.1 SIGHUP
10.5.2 SIGPIPE
10.5.3 SIGURG
第11章 定时器
11.1 socket选项SO_RCVTIMEO和SO_SNDTIMEO
11.2  SIGALRM信号
11.2.1 基于升序鍊表的定时器
11.2.2 处理非活动连线
11.3 IO复用系统调用的逾时参数
11.4 高性能定时器
11.4.1 时间轮
11.4.2 时间堆
第12章 高性能IO框架库Libevent
12.1 IO框架库概述
12.2 Libevent源码分析
12.2.1 一个实例
12.2.2 原始码组织结构
12.2.3 event结构体
12.2.4 往注册事件伫列中添加事件处理器
12.2.5 往事件多路分发器中注册事件
12.2.6 eventop结构体
12.2.7 event_base结构体
12.2.8 事件循环
第13章 多进程编程
13.1 fork系统调用
13.2 exec系列系统调用
13.3 处理殭尸进程
13.4 管道
13.5 信号量
13.5.1 信号量原语
13.5.2 semget系统调用
13.5.3 semop系统调用
13.5.4 semctl系统调用
13.5.5 特殊键值IPC_PRIVATE
13.6 共享记忆体
13.6.1 shmget系统调用
13.6.2 shmat和shmdt系统调用
13.6.3 shmctl系统调用
13.6.4 共享记忆体的POSIX方法
13.6.5 共享记忆体实例
13.7 讯息伫列
13.7.1 msgget系统调用
13.7.2 msgsnd系统调用
13.7.3 msgrcv系统调用
13.7.4 msgctl系统调用
13.8 IPC命令
13.9 在进程间传递档案描述符
第14章 多执行绪编程
14.1 Linux执行绪概述
14.1.1 执行绪模型
14.1.2 Linux执行绪库
14.2 创建执行绪和结束执行绪
14.3 执行绪属性
14.4 POSIX信号量
14.5 互斥锁
14.5.1 互斥锁基础API
14.5.2 互斥锁属性
14.5.3 死锁举例
14.6 条件变数
14.7 执行绪同步机制包装类
14.8 多执行绪环境
14.8.1 可重入函式
14.8.2 执行绪和进程
14.8.3 执行绪和信号
第15章 进程池和执行绪池
15.1 进程池和执行绪池概述
15.2 处理多客户
15.3 半同步半异步进程池实现
15.4 用进程池实现的简单CGI伺服器
15.5 半同步半反应堆执行绪池实现
15.6 用执行绪池实现的简单Web伺服器
15.6.1 http_conn类
15.6.2 main函式
第三篇 高性能伺服器最佳化与监测
第16章 伺服器调製、调试和测试
16.1 最大档案描述符数
16.2 调整核心参数
16.2.1 procsysfs目录下的部分档案
16.2.2 procsysnet目录下的部分档案
16.3 gdb调试
16.3.1 用gdb调试多进程程式
16.3.2 用gdb调试多执行绪程式
16.4 压力测试
第17章 系统监测工具
17.1 tcpdump
17.2 lsof
17.3 nc
17.4 strace
17.5 netstat
17.6 vmstat
17.7 ifstat
17.8 mpstat

相关推荐

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:yongganaa@126.com