内容简介
作为网络程序员,你是否发现自己的应用程序远远不够健壮?那么,你需要了解编写高效TCP/IP程序所需的各种知识。本书正是这么一本经典著作,它专注于协议族中那些细微的特性,提炼出的44个技巧可立竿见影地提升编程能力�?br /> 本书在介绍这些技巧的同时,对TCP/IP编程的基本思想和概念进行了说明,结合大量实例透彻解析了TCP/IP中的实践经验以及法则,还说明了如何避免网络编程中一些最常见的问题。书中提供的框架代码和常用函数库让你能够方便快捷地编写出应用程序,而无需操心一些细枝末节�?br /> 书中对下列问题提出了宝贵建议�?br /> IP编址、子网以及CIDR的研�?br /> 使用套接字接口代替XTI/TLI?
使用两条TCP连接?
使应用程序成为事件驱动的
使用一次大规模写操作代替多次小规模写操�?
避免数据复制?
理解TCP可靠性的涵义
认识缓冲区大小带来的影响?
高效使用tcpdump、traceroute、netstat和ping
媒体评论
“本书从程序员的角度剖析了TCP/IP的基本原理,没有任何照本宣科式的说教,而是采用了大量实用的建议、技巧,一定会让每一位网络编程人员爱不释手、受益匪浅。”
─—Uri Raz,TCP/IP专家、资深网络工程师
“本书可以跟Stevens的书互为补充。书中的内容可以用言简意赅来形容,作者在如此少的篇幅中讨论了那么多TCP/IP开发的知识点,真是令人惊叹不已。它特别适合偶尔做做相关开发,而不愿意啃大部头著作的程序员。”
─—亚马逊读者评论
“谢天谢地,本书帮我解决了在一个大型公司级网络编程项目中遇到的所有难题!它不仅教会了我使用各种网络编程工具,而且更重要的是让我以前那些模糊的认识都得到了澄清。好书,快看,马上学以致用吧!”
─—W. J. Vovil “Wayne”,程序员
目录
�?�?概述
1.1 几个约定
1.2 本书其余部分的内容介�?br /> 1.3 客户端—服务器结构
1.4 对基本套接字API的回�?br /> 1.5 小结
�?�?基本概念
2.1 技�?:理解面向连接和无连接协议之间的区别
2.2 技�?:理解子网和CIDR的概�?br /> 2.2.1 分类编址
2.2.2 子网划分
2.2.3 CIDR
2.2.4 子网划分和CIDR的状�?br /> 2.2.5 小结
2.3 技�?:理解私有地址和NAT
2.4 技�?:开发并使用应用程序“框架�?br /> 2.4.1 TCP服务器框�?br /> 2.4.2 TCP客户端框�?br /> 2.4.3 UDP服务器框�?br /> 2.4.4 UDP客户端框�?br /> 2.4.5 小结
2.5 技�?:套接字接口比XTI/TLI更好�?br /> 2.6 技�?:记住,TCP是一种流协议
2.7 技�?:不要低估TCP的性能
2.7.1 UDP源程序与接收程序
2.7.2 TCP源程序及接收程序
2.7.3 小结
2.8 技�?:避免重新编写TCP
2.9 技�?:要认识到TCP是一个可靠的?但并不绝对可靠的协议
2.9.1 可靠性——是什么,不是什�?br /> 2.9.2 故障模式
2.9.3 网络中断
2.9.4 对等实体崩溃
2.9.5 对等实体的主机崩�?br /> 2.9.6 小结
2.10 技�?0:记住,TCP/IP不是轮询�?br /> 2.10.1 保持活跃
2.10.2 心跳信号
2.10.3 另一个例�?br /> 2.10.4 小结
2.11 技�?1:提防对等实体的不友好动�?br /> 2.11.1 检测客户端的终�?br /> 2.11.2 检测无效输�?br /> 2.11.3 小结
2.12 技�?2:成�?LAN策略不一定能推广到WAN中去
2.12.1 性能问题举例
2.12.2 隐含错误举例
2.12.3 小结
2.13 技�?3:了解协..
书摘
网络已经无处不在,和我们的生活息息相关,绝大部分有趣和有用的程序都需要进行网络访问。
TCP/IP是因特网的核心协议,它最流行的编程接口是套接字。应用程序通过套接字可以很容易地进行网络通信。然而,实际的程序在运行时,常会碰到各种各样的性能和连通性方面的问题。如果对网络协议的底层运作细节没有深入的了解,就会被这些问题所困扰,难以开发出高效和稳健的应用程序。
Jon C. Snader的这本书是深入学习TCP/IP网络编程的必备书籍。通过一个个独立的技巧,本书对网络编程中可能碰到的各种微妙问题一一进行了深入的分析和阐释,并提供了很多可以方便扩展的实例代码。有些复杂的问题还在多个技巧中反复提起,从多种角度帮助读者加深理解。本书还对解决联网问题的常用工具进行了精要的介绍,帮助读者利用工具提高分析和解决联网问题的能力。
如今的编程工作除了靠埋头苦干,还要充分利用网络带来的便利,学习和利用世界上其他编程人员的优秀成果,避免毫无意义的重复劳动,切不可闭门造车或重蹈覆辙。本书最后的阅读代码技巧中,对网络和操作系统方面的可以公开获得的优秀书籍和开源项目进行了梳理,旨在帮助读者找到适宜的学习目标,从而少走弯路,加快学习和成长的速度。
本书适用读者范围广泛,对有一定网络编程基础和经验丰富的工程师都具有很高的参考价值。我自身虽然具有多年网络编程教学和产品开发方面的实践经验,但在翻译本书的过程中也学习和完善了很多知识。
IT技术发展迅猛,许多书籍很快就会过时。而本书的英文原版虽然出版于2000年,但它是作者长期分析实践总结出的真知灼见,如今看来,它不但没有过时,还将会伴随TCP/IP体系的进一步发展,产生深远的影响。
陈涓
2011年1月
简介
因特网、无线通信以及联网技术总体上的爆炸性发展,使得编写联网应用程序的程序员和工程师的数量也在激增。TCP/IP编程看起来很容易,因而很有诱惑力。API(Application Programming Interface,应用编程接口)也很易懂,即使是超级新手也可以把客户端或服务器模板充实为能够工作的应用程序。
但是,在最初的生产率激增之后,新手们往往会陷入细节的泥沼之..