Linux操作系统声名正旺,作为服务器系统,它对联网界尤其重要。这本使用Linux的新版第三卷是为那些渴望了解如何创建联网应用的程序员撰写的。大致说来,本书考察这样的问题,“应用软件如何使用TCP/IP协议通过因特网进行通信?”。本书**研究了客户一服务器范例,并考察了在分布式程序中客户和服务器这两部分所用的算法。本卷举例说明了每种设计,并讨论了包括应用层网关和隧道等技术。另外,本卷还重温了几个标准应用协议,并用它们来说明一些算法和实现技术。
尽管本卷可以单独阅读和使用,但它实际是和另外两卷共同构成了一套丛书。丛书**卷考虑的问题是:“什么是TCP/IP互联网?”;第二卷考察的问题是:“TCP/IP软件是如何工作的?”,它给出了更多的细节,考察了工作代码,比**卷探讨得更深入。因此,虽然程序员可以只通过第三卷学习创建网络应用,但学习其他各卷可以更好地理解下层技术。
第三卷的这个新版本包含了*新的技术,如,有一章解释了Linux程序如何利用POsIx线程设施创建并发服务器;关于NFS的章节讨论了NFS的第三版,这一版将为Linux界采用。此外,还有部分章节解释了slirp等程序所蕴涵的概念,这种程序能通过拨号电话连接访问因特网,而不要求每台计算机有一个惟一的IP地址。
还有两章显得特别及时,它们集中讨论了流式概念以及相关的技术,这些技术用于通过因特网发送音频和视频数据。第28章描述了实时协议(RTP)、编码、抖动缓存等基本概念。第29章展示了用于接收和播放MP3音频的RTP实现。
本书代码可在线获得。要通过万维网得到一个副本,可在以下网址的联网书籍清单中查找第三卷:
http://www.cs.purdue.edu/homes/comer/netbooks.html要通过FTP访问代码,使用以下网址:
ftp://ftp.cs.purdue.edu/pub/comer/TCPIP-vo13.1inux.dist.tar.Z
本书前几章介绍了客户-服务器模型,以及应用程序用于访问TCP/IP协议软件的套接字(socke)接口。此外,还描述了并发进程和用于创建进程的操作系统函数。随后的几章介绍了客户和服务器设计。
本书阐明了各式各样可能的设计并不是没有规则的。实际上,这些设计都遵循了一种模式。在考虑了并行性和传输的选择后,就可以理解这一观点。例如,有一章讨论了使用面向连接传输(如TCP)的非并发服务器设计,而另一章讨论了相似的设计,但它使用无连接传输(如UDP)。
我们描述了每个设计如何适应于各种可能的实现,但是,并没有试图开发一种客户一服务器交互的抽象“理论”。我们只是强调实用的设计原则,以及对程序员很重要的技术。每种技术在某些情况下都有其优点,并且每种技术都已用于正在工作的软件中。我们相信,理解这些设计之间的概念联系,将有助于读者理解每种方法的优缺点,并更容易在它们之间进行选择。