本书是一本关于TCP/IP协议原理编程技术的教材,由两部分组成:第1部分系统地介绍了TCP/IP协议族的体系结构,并分别介绍了IP层、传输层和应用层中各种协议的具体原理和工作机制;第2部分介绍了基于socket编程接口的网络编程技术,重点讲述了客户端和服务器端编程应注意的问题、可用的模式和技术。作为一本TCP/IP协议理论基础和编程技术的教材,本书既注重清晰地描述概念和理论,又做到了理论联系实际,能有效提高读者对TCP/IP的理解和网络开发能力。它可作为高等院校计算机、通信等专业的教学参考书,也可供从事相关开发工作和网络管理人员参考。本书前言Internet是20世纪最伟大的发明之一,它将全世界数以千万计的计算设备(不管它们是庞大的巨型机,还是桌面上的个人电脑,甚至是人们口袋中的移动电话)连接成一个巨大的网络,并使它们能够在彼此之间迅速方便地传输信息。整个世界好像突然变小了,不同地区的人与人之间的距离不再遥不可及。然而,改变整个世界的不只是Internet本身,还有无法计数的构筑在其上的应用软件。通过电子邮件,信件的往来不再需要几天甚至几周了;通过网上商城,在家就可以购物;视频点播让人们可以在家中欣赏喜爱的电影。如果没有这些应用,Internet至今还仅仅是科研人员实验室里使用的科研工具。正如Internet的核心TCP/IP协议的目标所指出的,任何人都可以方便地使用Internet,并在其上开发出新的应用。当然,要开发基于Internet上的应用必须先知道它是如何工作的,即它是如何将各种不同的设备连接起来的,如何将数据从一个计算设备传输到另一个的,是如何支撑各种各样的应用软件的。当然,如果你的工作不需要知道这些,如果你对此不感兴趣,那就可以合上这本书了。但如果你是一个程序员,或者你想成为他们中的一员;如果你正在开发一个网络软件,你开发的软件的客户端或服务器端在局域网工作正常但在广域网中却总出问题,或者它们的效率总达不到要求;如果你是所在单位的网络管理员,那么本书将会对你有所帮助。司机虽然不用生产自己开的汽车,但一个好的司机应该知道汽车的工作原理。同样,网络软件开发人员不用自己设计通信网络的协议,但应该知道网络协议的工作原理和机制,这样才能开发出正确、稳定、高效的网络软件。本书的目的是帮助读者提高对Internet的理解和网络编程能力。为达到这个目的,本书从Internet的工作原理TCP/IP协议族和实际的编程模式和技巧两个方面进行了介绍。本书由两部分组成:第1部分由1~16章组成,介绍了TCP/IP协议族的体系结构及各层组成协议的工作机制。这部分介绍的各种协议是网络编程中常见的需要了解的协议,对它们的理解有助于理解各种网络编程技术。第1章介绍了Internet的发展历史、现状及发展趋势;第2章对TCP/IP协议族总体的体系结构进行了系统的说明;第3~7章介绍网络层中的部分重要协议,其中重点是作为TCP/IP核心的IP协议;第8章和第9章分别介绍了传输层的两个协议:UDP和TCP;第10~14章介绍几种常见的应用层协议,包括远程登录、电子邮件、HTTP协议、网络文件和网络管理等;第15章对下一代IP协议即IPv6进行了介绍;第16章则简单介绍了常见操作系统(Windows,UNIX/Linux)中的TCP/IP协议的实现机制。第2部分由17~22章组成,介绍了网络编程的接口、模式和技巧。第17章和19章详细介绍了Windows中的网络编程接口Socket及使用;第18章、第20章和21章介绍客户端/服务器的网络编程模型,并重点介绍了服务器端编程经常使用的技术,第22章通过对一个完整的Web服务器程序的分析,进一步说明了这部分各章中介绍的各种编程技术。通过对各种协议工作机制的了解,并使用试验验证各种网络编程技术,理论和实践紧密结合,相信读者对Internet的理解和编程能力都能在较短时间内得到提高。如果本书确实能够为读者提供帮助,那将是我们最大的荣幸。由于时间仓促,加之作者水平有限,书中难免会有不足之处,真诚欢迎各位读者予以批评指正。