种豆资源网

当前位置:首页 > 百科 > 百科综合 / 正文

TCP/IP高效编程:改善网路程式的44个技巧

(2019-03-28 09:22:47) 百科综合
TCP/IP高效编程:改善网路程式的44个技巧

TCP/IP高效编程:改善网路程式的44个技巧

《TCP/IP高效编程:改善网路程式的44个技巧》是人民邮电出版社出版的一本图书,作者Jon C. Snader

基本介绍

  • 书名:TCP/IP高效编程:改善网路程式的44个技巧
  • 作者:Jon C. Snader 
  • 原版名称: Effective TCP/IP Programming: 44 Tips to Improve Your Network Programs
  • 译者:陈涓 赵振平
  • ISBN:9787115249371
  • 页数:268
  • 出版社:人民邮电出版社
  • 出版时间:2011年4月
  • 开本:16

内容简介

《tcp/ip高效编程:改善网路程式的44个技巧》是tcp/ip 领域的经典着作,对tcp/ip 网路编程中存在的各种问题进行了全面解析,旨在帮助读者深入透彻地理解tcp/ip 网路编程。本书组织方式比较特别,正文部分包括4 章,将网路编程中存在的常见问题组织成44 个技巧,探讨问题的过程中构建并运行了多个程式,并且指出了代码的源地址,便于读者查看。全书以技巧的形式解答了日常工作中遇到的经典问题,将本书作为手册使用,极其方便。
《tcp/ip高效编程:改善网路程式的44个技巧》主要面向有一定经验的初学者或中级网路程式设计师,也可作为计算机相关专业人士的参考读物。

译者序

网路已经无处不在,和我们的生活息息相关,绝大部分有趣和有用的程式都需要进行网路访问。
TCP/IP是网际网路的核心协定,它最流行的编程接口是套接字。应用程式通过套接字可以很容易地进行网路通信。然而,实际的程式在运行时,常会碰到各种各样的性能和连通性方面的问题。如果对网路协定的底层运作细节没有深入的了解,就会被这些问题所困扰,难以开发出高效和稳健的应用程式。
Jon C. Snader的这本书是深入学习TCP/IP网路编程的必备书籍。通过一个个独立的技巧,本书对网路编程中可能碰到的各种微妙问题一一进行了深入的分析和阐释,并提供了很多可以方便扩展的实例代码。有些複杂的问题还在多个技巧中反覆提起,从多种角度帮助读者加深理解。本书还对解决联网问题的常用工具进行了精要的介绍,帮助读者利用工具提高分析和解决联网问题的能力。
如今的编程工作除了靠埋头苦干,还要充分利用网路带来的便利,学习和利用世界上其他编程人员的优秀成果,避免毫无意义的重複劳动,切不可闭门造车或重蹈覆辙。本书最后的阅读代码技巧中,对网路和作业系统方面的可以公开获得的优秀书籍和开源项目进行了梳理,旨在帮助读者找到适宜的学习目标,从而少走弯路,加快学习和成长的速度。
本书适用读者範围广泛,对有一定网路编程基础和经验丰富的工程师都具有很高的参考价值。我自身虽然具有多年网路编程教学和产品开发方面的实践经验,但在翻译本书的过程中也学习和完善了很多知识。
IT技术发展迅猛,许多书籍很快就会过时。而本书的英文原版虽然出版于2000年,但它是作者长期分析实践总结出的真知灼见,如今看来,它不但没有过时,还将会伴随TCP/IP体系的进一步发展,产生深远的影响。
陈涓
2011年1月

媒体评论

“本书从程式设计师的角度剖析了TCP/IP的基本原理,没有任何照本宣科式的说教,而是採用了大量实用的建议、技巧,一定会让每一位网路编程人员爱不释手、受益匪浅。”
─—Uri Raz,TCP/IP专家、资深网路工程师
“本书可以跟Stevens的书互为补充。书中的内容可以用言简意赅来形容,作者在如此少的篇幅中讨论了那幺多TCP/IP开发的知识点,真是令人惊叹不已。它特别适合偶尔做做相关开发,而不愿意啃大部头着作的程式设计师。”
─—亚马逊读者评论
“谢天谢地,本书帮我解决了在一个大型公司级网路编程项目中遇到的所有难题!它不仅教会了我使用各种网路编程工具,而且更重要的是让我以前那些模糊的认识都得到了澄清。好书,快看,马上学以致用吧!”
─—W. J. Vovil “Wayne”,程式设计师

目录

《tcp/ip高效编程:改善网路程式的44个技巧》
第1章 概述 1
1.1 几个约定 1
1.2 本书其余部分的内容介绍 2
1.3 客户端—伺服器结构 4
1.4 对基本套接字api的回顾 5
1.5 小结 12
第2章 基本概念 13
2.1 技巧1:理解面向连线和无连线协定之间的区别 13
2.2 技巧2:理解子网和cidr的概念 18
2.2.1 分类编址 18
2.2.2 子网划分 21
2.2.3 cidr 26
2.2.4 子网划分和cidr的状态 27
2.2.5 小结 27
2.3 技巧3:理解私有地址和nat 28
2.4 技巧4:开发并使用应用程式“框架” 30
2.4.1 tcp伺服器框架 31
2.4.2 tcp客户端框架 36
2.4.3 udp伺服器框架 38
.2.4.4 udp客户端框架 39
2.4.5 小结 41
2.5 技巧5:套接字接口比xti/tli更好用 41
2.6 技巧6:记住,tcp是一种流协定 43
2.7 技巧7:不要低估tcp的性能 50
2.7.1 udp源程式与接收程式 52
2.7.2 tcp源程式及接收程式 53
2.7.3 小结 59
2.8 技巧8:避免重新编写tcp 59
2.9 技巧9:要认识到tcp是一个可靠的,但并不绝对可靠的协定 61
2.9.1 可靠性——是什幺,不是什幺 61
2.9.2 故障模式 63
2.9.3 网路中断 63
2.9.4 对等实体崩溃 64
2.9.5 对等实体的主机崩溃 68
2.9.6 小结 69
2.10 技巧10:记住,tcp/ip不是轮询的 69
2.10.1 保持活跃 70
2.10.2 心跳信号 71
2.10.3 另一个例子 76
2.10.4 小结 81
2.11 技巧11:提防对等实体的不友好动作 81
2.11.1 检测客户端的终止 82
2.11.2 检测无效输入 84
2.11.3 小结 88
2.12 技巧12:成功的lan策略不一定能推广到wan中去 88
2.12.1 性能问题举例 88
2.12.2 隐含错误举例 89
2.12.3 小结 93
2.13 技巧13:了解协定是怎样工作的 93
2.14 技巧14:不要把osi七层参考模型太当回事 94
2.14.1 osi模型 95
2.14.2 tcp/ip模型 96
2.14.3 小结 98
第3章 构建高效且健壮的网路程式 99
3.1 技巧15:理解tcp的写操作 99
3.1.1 从应用程式的角度看写操作 99
3.1.2 从tcp角度看写操作 100
3.1.3 小结 103
3.2 技巧16:理解tcp的有序释放操作 103
3.2.1 shutdown调用 104
3.2.2 有序释放 106
3.2.3 小结 110
3.3 技巧17:考虑用inetd来装载应用程式 111
3.3.1 tcp伺服器 111
3.3.2 udp伺服器 114
3.3.3 小结 118
3.4 技巧18:考虑用tcpmux为伺服器“分配”知名连线埠 118
3.5 技巧19:考虑使用两条tcp连线 126
3.5.1 单连线结构 127
3.5.2 双连线架构 128
3.5.3 小结 133
3.6 技巧20:使应用程式成为事件驱动的(1) 133
3.7 技巧21:使应用程式成为事件驱动的(2) 140
3.8 技巧22:不要用time-wait暗杀来关闭一条连线 147
3.8.1 它是什幺 147
3.8.2 为什幺要使用它 149
3.8.3 time-wait暗杀 150
3.8.4 小结 151
3.9 技巧23:伺服器应该设定so_reuseaddr选项 151
3.10 技巧24:可能的话,使用一个大规模的写操作,而不是多个小规模的写操作 155
3.10.1 禁用nagle算法 158
3.10.2 将写操作合併起来 159
3.10.3 小结 161
3.11 技巧25:理解如何使connect调用逾时 162
3.11.1 使用告警 162
3.11.2 使用select 164
3.11.3 小结 167
3.12 技巧26:避免数据複製 167
3.12.1 共享记忆体缓冲区 168
3.12.2 一个共享记忆体缓冲区系统 169
3.12.3 一个unix实现 171
3.12.4 一个windows实现 175
3.12.5 小结 179
3.13 技巧27:使用前将结构sockadddr_in清零 179
3.14 技巧28:不要忘记位元组的性别 180
3.15 技巧29:不要将ip地址或连线埠号硬编入应用程式中 182
3.16 技巧30:理解已连线的udp套接字 187
3.17 技巧31:记住,并不是所有程式都是用c编写的 190
3.18 技巧32:理解缓冲区长度带来的影响 195
第4章 工具和资源 199
4.1 技巧33:熟悉ping实用工具 199
4.2 技巧34:学习使用tcpdump或类似的工具 201
4.2.1 tcpdump是如何工作的 202
4.2.2 使用tcpdump 205
4.2.3 tcpdump的输出 206
4.2.4 小结 210
4.3 技巧35:学习使用traceroute 210
4.3.1 traceroute是如何工作的 212
4.3.2 windows tracert 214
4.3.3 小结 215
4.4 技巧36:学习使用ttcp 215
4.5 技巧37:学习使用lsof 219
4.6 技巧38:学习使用netstat 221
4.6.1 活动套接字 221
4.6.2 接口 223
4.6.3 路由表 223
4.6.4 协定统计 225
4.6.5 windows版的netstat 227
4.6.6 小结 227
4.7 技巧39:学习使用系统中的调用追蹤工具 227
4.7.1 过早终止 227
4.7.2 ttcp性能问题 231
4.7.3 小结 232
4.8 技巧40:构建并使用捕获icmp报文的工具 233
4.8.1 读取icmp报文 233
4.8.2 列印icmp报文 234
4.8.3 小结 239
4.9 技巧41:读stevens的书 240
4.9.1 《tcp/ip详解》丛书 240
4.9.2 《unix网路编程》丛书 241
4.10 技巧42:阅读代码 242
4.11 技巧43:访问rfc编辑者的页面 243
4.12 技巧44:经常访问新闻组 244
附录a 各种unix代码 247
附录b 各种windows代码 250
参考书目 253
索引 257

标 签

搜索
随机推荐

Powered By 种豆资源网||