TCP/IP网络编程原理与技术PDF电子书下载
- 电子书积分:9 积分如何计算积分?
- 作 者:钟辉等编著
- 出 版 社:北京:清华大学出版社
- 出版年份:2019
- ISBN:9787302526025
- 页数:193 页
第1章 网络编程准备 1
1.1 TCP/IP技术的因特网应用 1
1.2 用TCP/IP构建分布式环境设计应用程序 2
1.3 用TCP/IP构建的标准和非标准应用协议 2
1.4 使用TCP/IP标准应用协议的例子 2
1.5 Telnet连接的例子 3
1.6 使用Telnet访问其他服务 4
1.7 TCP/IP应用协议和软件灵活性 5
1.8 从提供者的角度看服务 5
1.9 本教材内容介绍 6
1.10 小结 6
习题 6
第2章 客户-服务器模式软件设计概念 8
2.1 客户-服务器的起源 8
2.2 客户-服务器关键问题 9
2.3 客户-服务器术语 9
2.3.1 客户和服务器 10
2.3.2 服务器特权和复杂性 10
2.3.3 标准和非标准客户软件 10
2.3.4 客户的参数化 11
2.3.5 无连接的和面向连接的服务器 11
2.3.6 无状态和有状态服务器 12
2.3.7 无状态文件服务器的例子 13
2.3.8 有状态文件服务器的例子 13
2.3.9 客户标识 14
2.3.10 无状态是一个协议问题 15
2.3.11 充当客户的服务器 16
2.4 小结 16
习题 17
第3章 客户-服务器模式软件中的并发处理 18
3.1 引言 18
3.2 网络中的并发 18
3.3 服务器中的并发 19
3.4 并发术语 20
3.4.1 进程概念 20
3.4.2 局部和全局变量的共享 21
3.4.3 过程调用 22
3.5 一个创建并发进程的例子 22
3.5.1 一个顺序执行的C实例 22
3.5.2 程序的并发版本 23
3.5.3 时间分片 24
3.5.4 单线程的进程 25
3.5.5 使各进程分离 25
3.6 执行新的代码 26
3.7 上下文切换和协议软件设计 27
3.8 并发和异步I/O 27
3.9 小结 28
习题 28
第4章 网络编程协议的程序接口 29
4.1 引言 29
4.2 不精确指明的协议软件编程接口 29
4.3 接口功能 30
4.4 概念性接口的规范 30
4.5 操作系统调用 31
4.6 网络通信的两种基本方法 31
4.7 Linux中提供的基本I/O功能 32
4.8 将Linux I/O用于TCP/IP 33
4.9 小结 33
习题 33
第5章 接口实现——套接字API 35
5.1 引言 35
5.2 Berkeley套接字 35
5.3 指明一个协议接口 35
5.4 套接字的抽象 36
5.4.1 套接字描述符和文件描述符 36
5.4.2 针对套接字的系统数据结构 37
5.4.3 主动套接字或被动套接字 37
5.5 指明端点地址 38
5.6 类属地址结构 39
5.7 套接字API中的主要系统调用 40
5.7.1 socket调用 40
5.7.2 connect调用 40
5.7.3 send调用 41
5.7.4 recv调用 41
5.7.5 close调用 41
5.7.6 bind调用 41
5.7.7 listen调用 42
5.7.8 accept调用 42
5.7.9 在套接字中使用read和write 42
5.7.10 套接字调用小结 42
5.8 用于整数转换的实用例程 43
5.9 在程序中使用套接字调用 44
5.10 套接字调用的参数所使用的符号常量 44
5.11 小结 45
习题 46
第6章 客户软件算法及编程实例 47
6.1 引言 47
6.2 不是研究细节而是学习算法 47
6.3 客户体系结构和要解决的问题 48
6.3.1 标识服务器的位置 48
6.3.2 分析地址参数 49
6.3.3 查找域名 50
6.3.4 由名字查找某个熟知端口 51
6.3.5 端口号和网络字节 顺序 51
6.3.6 由名字查找协议 51
6.4 TCP客户算法 52
6.4.1 分配套接字 52
6.4.2 选择本地协议端口号 53
6.4.3 选择本地IP地址中的一个基本问题 53
6.4.4 将TCP套接字连接到某个服务器 54
6.4.5 使用TCP与服务器通信 54
6.4.6 从TCP连接中读取响应 55
6.4.7 关闭TCP连接 55
6.5 UDP客户算法 56
6.5.1 连接的和非连接的UDP套接字 57
6.5.2 对UDP使用connect 57
6.5.3 使用UDP与服务器通信 57
6.5.4 关闭使用UDP的套接字 57
6.5.5 对UDP的部分关闭 58
6.5.6 关于UDP不可靠性的警告 58
6.6 客户编程实例的重要性 58
6.7 隐藏细节 59
6.8 针对客户程序的过程库 59
6.8.1 connectTCP的实现 60
6.8.2 connectUDP的实现 60
6.8.3 构成连接的过程 61
6.9 过程库使用 63
6.10 DAYTIME服务 63
6.10.1 针对DAYTIME的TCP客户实现 64
6.10.2 从TCP连接中进行读 65
6.11 TIME服务 66
6.12 访问TIME服务 66
6.13 精确时间和网络时延 67
6.14 针对TIME服务的UDP客户 67
6.15 ECHO服务 69
6.16 针对ECHO服务的TCP客户 69
6.17 针对ECHO服务的UDP客户 71
6.18 小结 72
习题 74
第7章 服务器软件算法及编程实例 76
7.1 引言 76
7.2 概念性的服务器算法 76
7.3 并发服务器和循环服务器 76
7.4 面向连接的和无连接的访问 77
7.5 服务器需要考虑的几个问题 77
7.5.1 传输层协议的语义 77
7.5.2 选择传输协议 78
7.5.3 面向连接的服务器 78
7.5.4 无连接的服务器 79
7.5.5 服务器的故障、可靠性和无状态 80
7.5.6 优化无状态服务器 80
7.5.7 请求处理时间 82
7.6 服务器的四种基本类型 82
7.7 循环服务器的算法 83
7.8 循环的、面向连接的服务器的算法 83
7.8.1 用INADDR_ANY绑定熟知端口 83
7.8.2 将套接字置于被动模式 84
7.8.3 接受连接并使用这些连接 84
7.9 循环的、无连接的服务器的算法 84
7.10 并发服务器的算法 85
7.11 并发的、无连接的服务器的算法 86
7.12 并发的、面向连接的服务器的算法 86
7.12.1 服务器并发性的实现 87
7.12.2 把单独的程序作为从进程来使用 87
7.13 使用单线程获得表面上的并发性 88
7.14 各服务器类型所适用的场合 89
7.15 服务器类型小结 89
7.16 重要问题——服务器死锁 90
7.17 其他的实现方法 90
7.18 循环的、无连接的服务器设计 91
7.18.1 创建被动套接字 91
7.18.2 进程结构 94
7.18.3 TIME服务器举例 94
7.18.4 小结 96
7.19 循环的、面向连接的服务器设计 96
7.19.1 分配被动的TCP套接字 96
7.19.2 用于DAYTIME服务的服务器 97
7.19.3 进程结构 97
7.19.4 DAYTIME服务器举例 98
7.19.5 关闭连接 100
7.19.6 连接终止和服务器的脆弱性 100
7.19.7 小结 101
7.20 并发的、面向连接的服务器设计 101
7.20.1 并发ECHO 102
7.20.2 循环与并发实现的比较 102
7.20.3 进程结构 102
7.20.4 并发ECHO服务器举例 103
7.20.5 清除游离(errant)进程 106
7.20.6 小结 106
7.21 小结 107
习题 107
第8章 使用线程模型实现并发 110
8.1 引言 110
8.2 Linux线程概述 110
8.3 线程和进程的关系 111
8.3.1 描述符、延迟和退出 111
8.3.2 线程退出 112
8.4 线程协调和同步 112
8.4.1 互斥 112
8.4.2 信号量 113
8.4.3 条件变量 113
8.5 使用线程的服务器实例 114
8.6 监控 117
8.7 小结 118
习题 118
第9章 单线程并发服务器设计 119
9.1 引言 119
9.2 服务器中的数据驱动处理 119
9.3 用单线程进行数据驱动处理 120
9.4 单线程服务器的线程结构 120
9.5 单线程ECHO服务器举例 121
9.6 小结 123
习题 124
第10章 多协议服务器设计 125
10.1 引言 125
10.2 减少服务器数量的动机 125
10.3 多协议服务器的设计 125
10.4 进程结构 126
10.5 多协议DAYTIME服务器的例子 126
10.6 共享代码的概念 129
10.7 并发多协议服务器 130
10.8 小结 130
习题 130
第11章 多服务服务器设计 132
11.1 引言 132
11.2 合并服务器 132
11.3 循环的、无连接的、多服务服务器设计 132
11.4 循环的、面向连接的、多服务服务器设计 133
11.5 并发的、面向连接的、多服务服务器设计 134
11.6 并发的、单线程的、多服务服务器的实现 135
11.7 从多服务服务器调用单独的程序 135
11.8 多服务、多协议服务器设计 136
11.9 多服务服务器的例子 137
11.10 静态的和动态的服务器配置 143
11.11 UNIX超级服务器——inetd 144
11.12 inetd服务器的例子 146
11.13 小结 147
习题 148
第12章 服务器并发性管理 149
12.1 引言 149
12.2 在循环设计和并发设计间选择 149
12.3 并发等级 150
12.4 需求驱动的并发 150
12.5 并发的代价 150
12.6 额外开销和时延 151
12.7 小时延问题 151
12.8 从线程/进程的预分配 152
12.8.1 Linux中的预分配 153
12.8.2 面向连接的服务器中的预分配 153
12.8.3 互斥、文件锁定和accept并发调用 154
12.8.4 无连接的服务器中的预分配 155
12.8.5 预分配、突发通信量和NFS 155
12.8.6 多处理器上的预分配 156
12.9 延迟的从线程/进程分配 156
12.10 两种技术统一的基础 157
12.11 技术的结合 157
12.12 小结 158
习题 158
第13章 客户软件并发设计 160
13.1 引言 160
13.2 并发的优点 160
13.3 运用控制的动机 160
13.4 与多个服务器的并发联系 161
13.5 实现并发客户 162
13.6 单线程实现 162
13.7 使用ECHO的并发客户的例子 163
13.8 并发客户的执行 167
13.9 例子代码中的并发性 169
13.10 小结 169
习题 169
附录A 系统调用与套接字使用的库例程 170
参考文献 192
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《中国铁路人 第三届现实主义网络文学征文大赛一等奖》恒传录著 2019
- 《第一性原理方法及应用》李青坤著 2019
- 《计算机组成原理解题参考 第7版》张基温 2017
- 《程序逻辑及C语言编程》卢卫中,杨丽芳主编 2019
- 《高等院校保险学专业系列教材 保险学原理与实务》林佳依责任编辑;(中国)牟晓伟,李彤宇 2019
- 《刑法归责原理的规范化展开》陈璇著 2019
- 《教师教育系列教材 心理学原理与应用 第2版 视频版》郑红,倪嘉波,刘亨荣编;陈冬梅责编 2020
- 《单片机原理及应用》庄友谊 2020
- 《通信电子电路原理及仿真设计》叶建芳 2019
- 《市政工程基础》杨岚编著 2009
- 《家畜百宝 猪、牛、羊、鸡的综合利用》山西省商业厅组织技术处编著 1959
- 《《道德经》200句》崇贤书院编著 2018
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《法语词汇认知联想记忆法》刘莲编著 2020
- 《培智学校义务教育实验教科书教师教学用书 生活适应 二年级 上》人民教育出版社,课程教材研究所,特殊教育课程教材研究中心编著 2019
- 《国家社科基金项目申报规范 技巧与案例 第3版 2020》文传浩,夏宇编著 2019
- 《流体力学》张扬军,彭杰,诸葛伟林编著 2019
- 《大学计算机实验指导及习题解答》曹成志,宋长龙 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《大学生心理健康与人生发展》王琳责任编辑;(中国)肖宇 2019
- 《大学英语四级考试全真试题 标准模拟 四级》汪开虎主编 2012
- 《大学英语教学的跨文化交际视角研究与创新发展》许丽云,刘枫,尚利明著 2020
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《复旦大学新闻学院教授学术丛书 新闻实务随想录》刘海贵 2019
- 《大学英语综合教程 1》王佃春,骆敏主编 2015
- 《大学物理简明教程 下 第2版》施卫主编 2020
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019