用TCP/IP进行网际互联第二卷:设计、实现与内核(第三版)
基本信息
- 原书名:Internetworking With TCP/IP Vol Ⅱ:Design,Implementation,and Internals Third Edition
内容简介回到顶部↑
书籍
计算机书籍
本书是一部有关计算机网络的经典教科书。它是目前美国大多数大学里所开设的计算机网络课程的主要参考书。目前国内外能见到的各种有关TCP/IP的书籍,其主要内容均出自本书。本书的特点是:强调原理、概念准确、深入浅出、内容丰富且新颖。
全书共分为三卷。第一卷介绍了TCP/IP的基本概念,第二卷在第一卷的基础上,进一步详细讨论了TCP/IP的实现过程,这一卷的突出特点是非常注重实际。本书作者利用程序代码实现了TCP/IP的每一个具体细节,并且所有的代码在书中均可找到,这对于读者深入了解并掌握TCP/IP的细节内容大有帮助。各章之后附有很多习题,内容全面且结合实际。全书最后还有三个附录,分别给出了过程调用交叉参考表、程序代码中用到的c数据结构交叉参考表以及xinu函数和常量。本书可供计算机和通信专业的研究生、高年级本科生作为教科书和学习参考书,也可供各种从事科研的人员参考。
计算机书籍
本书是一部有关计算机网络的经典教科书。它是目前美国大多数大学里所开设的计算机网络课程的主要参考书。目前国内外能见到的各种有关TCP/IP的书籍,其主要内容均出自本书。本书的特点是:强调原理、概念准确、深入浅出、内容丰富且新颖。
全书共分为三卷。第一卷介绍了TCP/IP的基本概念,第二卷在第一卷的基础上,进一步详细讨论了TCP/IP的实现过程,这一卷的突出特点是非常注重实际。本书作者利用程序代码实现了TCP/IP的每一个具体细节,并且所有的代码在书中均可找到,这对于读者深入了解并掌握TCP/IP的细节内容大有帮助。各章之后附有很多习题,内容全面且结合实际。全书最后还有三个附录,分别给出了过程调用交叉参考表、程序代码中用到的c数据结构交叉参考表以及xinu函数和常量。本书可供计算机和通信专业的研究生、高年级本科生作为教科书和学习参考书,也可供各种从事科研的人员参考。
作译者回到顶部↑
目录回到顶部↑
第1章 引言与概述
1.1 tcp/ip协议
1.2 了解细节的必要性
1.3 协议间交互作用的复杂性
1.4 本书采用的方法
1.5 研究代码的重要性
1.6 xinu操作系统
1.7 本书其余部分的组织
1.8 小结
深入研究
第2章 操作系统中的tcp/ip软件结构
2.1 引言
2.2 进程的概念
2.3 进程的优先级
2.4 进程的同步通信
2.5 进程间通信
2.5.1 端口
2.5.2 消息传送
2.6 设备驱动程序和输人、输出程序
2.7 网络的输入和中断
1.1 tcp/ip协议
1.2 了解细节的必要性
1.3 协议间交互作用的复杂性
1.4 本书采用的方法
1.5 研究代码的重要性
1.6 xinu操作系统
1.7 本书其余部分的组织
1.8 小结
深入研究
第2章 操作系统中的tcp/ip软件结构
2.1 引言
2.2 进程的概念
2.3 进程的优先级
2.4 进程的同步通信
2.5 进程间通信
2.5.1 端口
2.5.2 消息传送
2.6 设备驱动程序和输人、输出程序
2.7 网络的输入和中断
前言回到顶部↑
很荣幸Doug Comer给我这个机会,让我能在他的这本书第三版付印时与诸位探讨一些个人的想法。在过去的十年期间,Internet以惊人的速度发展着。Internet上主机的数目从1989年的100000台发展到1998年的30000 000台。在本书第二版出版的时候,连接到Intemet的网络大约有26000个。到1998年,这个数字大约在200000到350000之间,这还不包括那些利用互联网技术但未连接到公共网络上的专用内联网。
除了规模上的变化,Internet在应用上也发生了惊人的变化。Internet技术与正在蓬勃发展的WWW作为一个完整的、不可缺少的系统已被人们所认可。而WWW在商业、学术和政府等部门都掀起了一场革命。在WWW上每天出现的“网页”可达3.2亿之多,并且还在不断涌现。有些学校大约四分之一的入学申请都是通过电子邮件或其他网页申请形式进行的。Dell公司透露,他们通过网站每天销售价值大约600万美元的PC机。Amazon网上书店以季度盈利达6600万美元而成为历史上发展最快的公司,这也是第一个在一年之内销售额超过2.5亿美元的公司。
目前,至少有两千多家无线电台将其音频服务推向了Internet,许多网站也开始提供音频甚至低质量的视频服务。随着访问速度提高到兆比特的范围以及主干网容量的增加,视频服务质量也将得到提高。
随着1996年网络电视和1997年Nokia推出的支持网络功能的手机的问世,其他支持网络功能的产品也不断地涌现。更多的实用产品实现了相似的网络功能,例如水暖加热器既可以由家用电脑来控制,也可以由电力公司来控制,以满足适度的调峰需求。尽管智能代理还没有成为主流,但是XML近来的发展也表明Internet上有关事务处理的应用正在急剧增多。SML的标准“文档”表示方式以及一致的常用解释格式构成了一种可传输对象,该对象已形成所有商业、金融事务、数据库事务及其他需要标准表示方式和解释格式的交易的基础。
再回头看看电话产品的发展,无论传统的服务商还是现代企业都在将支持网络的电话产品推向市场。“Soft PBX”系统利用LAN和Internet实现传统的专用交换机的功能,基于微处理器的电话机也正在改变远程通信的经济情况和可操作性。具有IP功能的传真机已经出现。网关把原有的模拟世界与现在的Intemet世界联系在一起,起着非常重要的作用。
对Internet服务需求量的增长速度赶上甚至超过了网络本身的增长。主干网络的速度达到622MM/s已是很平常的事。利用硬件IP交换机的新一代路由器可望以10Gb/s(OC192)以上的速度处理Internet分组。下一个挑战是利用单模光纤处理每秒兆兆字节的信息量。
网络的安全性过去总是处于后台操作状态,随着更多领域依赖于Internet,安全性已逐渐走向前台。防火墙技术、端—端加密、密钥管理、证书系统和鉴别系统已成为成功管理Internet的关键因素。
再向未来展望,网络协议和结构已经朝着星际互联的方向发展,也许会形成和互联网一样的形式。域名系统如果还存在,还要考虑将不同的行星计人命名体系。“互联的Internet”协议将能够处理更高的延迟,传统的TCP概念也将被更多的单向过程取代。未来的网际邀游者回看这十年,一定会觉得这是个充满挑战但技术相对落后的时代。在他们看来,这段前言中的观点可能已经过时又难以理解,因为他们所面对的是经历了另外二十年变革的Internet。
Vinton Cerf
Camelot
Northern Virginia
除了规模上的变化,Internet在应用上也发生了惊人的变化。Internet技术与正在蓬勃发展的WWW作为一个完整的、不可缺少的系统已被人们所认可。而WWW在商业、学术和政府等部门都掀起了一场革命。在WWW上每天出现的“网页”可达3.2亿之多,并且还在不断涌现。有些学校大约四分之一的入学申请都是通过电子邮件或其他网页申请形式进行的。Dell公司透露,他们通过网站每天销售价值大约600万美元的PC机。Amazon网上书店以季度盈利达6600万美元而成为历史上发展最快的公司,这也是第一个在一年之内销售额超过2.5亿美元的公司。
目前,至少有两千多家无线电台将其音频服务推向了Internet,许多网站也开始提供音频甚至低质量的视频服务。随着访问速度提高到兆比特的范围以及主干网容量的增加,视频服务质量也将得到提高。
随着1996年网络电视和1997年Nokia推出的支持网络功能的手机的问世,其他支持网络功能的产品也不断地涌现。更多的实用产品实现了相似的网络功能,例如水暖加热器既可以由家用电脑来控制,也可以由电力公司来控制,以满足适度的调峰需求。尽管智能代理还没有成为主流,但是XML近来的发展也表明Internet上有关事务处理的应用正在急剧增多。SML的标准“文档”表示方式以及一致的常用解释格式构成了一种可传输对象,该对象已形成所有商业、金融事务、数据库事务及其他需要标准表示方式和解释格式的交易的基础。
再回头看看电话产品的发展,无论传统的服务商还是现代企业都在将支持网络的电话产品推向市场。“Soft PBX”系统利用LAN和Internet实现传统的专用交换机的功能,基于微处理器的电话机也正在改变远程通信的经济情况和可操作性。具有IP功能的传真机已经出现。网关把原有的模拟世界与现在的Intemet世界联系在一起,起着非常重要的作用。
对Internet服务需求量的增长速度赶上甚至超过了网络本身的增长。主干网络的速度达到622MM/s已是很平常的事。利用硬件IP交换机的新一代路由器可望以10Gb/s(OC192)以上的速度处理Internet分组。下一个挑战是利用单模光纤处理每秒兆兆字节的信息量。
网络的安全性过去总是处于后台操作状态,随着更多领域依赖于Internet,安全性已逐渐走向前台。防火墙技术、端—端加密、密钥管理、证书系统和鉴别系统已成为成功管理Internet的关键因素。
再向未来展望,网络协议和结构已经朝着星际互联的方向发展,也许会形成和互联网一样的形式。域名系统如果还存在,还要考虑将不同的行星计人命名体系。“互联的Internet”协议将能够处理更高的延迟,传统的TCP概念也将被更多的单向过程取代。未来的网际邀游者回看这十年,一定会觉得这是个充满挑战但技术相对落后的时代。在他们看来,这段前言中的观点可能已经过时又难以理解,因为他们所面对的是经历了另外二十年变革的Internet。
Vinton Cerf
Camelot
Northern Virginia
序言回到顶部↑
用TCP/IP进行网际互联第二卷提供了第一卷所没有包含的关于TCP/IP协议的一些细节问题。第二卷如同将TCP/IP置于放大镜下,考察每个协议的具体细节。它讨论了协议的实现方案,并着重于介绍协议软件的内部机制。第三版包含了对某些协议的修改和更新的内容。其中的代码改用C++语言的ANSI标准C子集,包含了函数原型和参数的声明。另外还纠正了一些错误。我们将SNMP更新为SNMPv2,其中包括替换了地址转换表,增加了UDP listener列表。在本书的最后,还增加了附录2,给出了书中代码所用到的主要数据结构的声明及变量的交叉参考表,并扩充了附录1中的过程调用交叉参考的内容。
书中的范例代码用Gnu C++编译器在Intel体系平台编译通过,也在Pentium TM系统上经过测试。所有的代码均可在以下网址得到:
ftP://ftp.cs.purdue.edu/pub/comer/TCPIP—vol2.dist.tar.Z
虽然本书受到版权保护,但书中的代码可供读者使用,而且已经在许多商业产品中实现。这些代码使用的惟一限制是不得在公开出版物中出版。
我们鼓励读者利用计算机工具来查看、修改、编译和测试这些代码。事实上,尽管附录1和附录2中提供了定位代码条目的有效途径,但在查看大段代码时,UNIXgrep程序的价值更是不可估量。
对于各种正式的协议规范,以及对协议的实现和使用的讨论,可参见请求评论文档(RFC)。尽管一些RFC文档对初学者来讲难以理解,但这些文档是信息详尽的权威性资源,没有哪个作者能够做到在自己编写的书中包含RFC文档中的所有内容。尽管RFC文档涉及了每一个协议,但有时它们对协议之间的交互问题并未加以说明。例如,选路信息协议(RIP或OSPF)之类的选路协议规定了网关如何将路由置人IP路由表中,以及如何将表中的路由通知其他网关。RIP还规定路由必须设立定时机制,一旦某条路由超时,就将其删除。但是,我们在RFC文档中并不容易看出RIP和其他协议之间是如何交互作用的,随之而来的问题是:“路由超时机制将如何影响路由表中那些由ICMP设置的路由呢?”我们可能还会考虑这样一个问题:“当RIP更新路由时,应不应该推翻那些由管理员直接输入的路由呢?”
为了有助于解释协议之间的交互作用,并确保我们的方案能协调工作,我们设计并构造了一个工作系统,作为全书的中心范例。该系统提供了TCP/IP协议族中的大部分协议,包括:TCP、IP、ICMP、IGMP、UDP、ARP、RIP、SNMPv2以及OSPF的主要部分。另外,该系统还有一个finger服务的客户和服务器范例。由于本书包括了每一个协议的程序代码,读者可以研究其实现方法并了解其内部结构。最重要的是,由于范例系统将所有协议软件集成为一个工作整体,读者可以清楚地了解协议之间的交互作用。
范例的程序代码试图做到一方面遵守协议标准,另一方面引入一些新的思想。例如,我们的TCP程序代码中包含了“糊涂窗口预防”技术、Jacobson—Karels的“慢启动”和“拥塞预防”等优化技术,诸如此类的性能可能在商业实现中被忽略。但同时我们也清楚地认识到商业领域并不总是遵从已经公布的标准,因此我们也努力将系统调整到能够在现实环境中使用。例如,程序代码中包含了一个配置参数,使得它既可以采纳Internet标准,也可以采纳BSD UNIX中“TCP紧急数据指针”的实现方法。
我们并不认为书中所提供的程序代码都是准确无误的,甚至不能断言它肯定比其他实现方法要好。事实上,经过多年使用,我们仍然在不断完善这套软件,同时,也希望读者跟我们一起继续改进它。
本书可以作为网络工程人员的高级教程或者作为研究生教材使用。在作为本科教程使用时,应将重点放在前几章,而忽略有关OSPF、SNMP和RIP这几章内容。研究生可能会在有关TCP的章节中发现一些最为有趣和最难理解的概念。为保证其高性能而采用的自适应重发和相关的试探法尤为重要,应当仔细加以研究。纵观全书,绝大部分习题都向大家提示了其他可选择的实现方案及其大致情况,这些内容并不要求死记硬背,学生们可能需要阅读本书以外的其他资料,才能解答这些习题。
正如任何耗费甚巨的工程一样,本书中包含了许多人的心血,对此我们表示衷心的感谢。作者.之一David Stevens完成了大部分软件的编制工作,其中包括一个完整的TCP版本。Shawn Ostermann为本书付出了许多努力。Shawn将TCPAP代码集成到xinu版本8中,并将其从最初的Sun 3平台移植到DECstion 3100上。在这一版本中,他还对上一版中由Vic Norman编写的SNMP软件进行了大量的修改,以符合第二版的标准并有助于代码的调试。John Lin对书中的技术细节进行了校对,纠正了一些错误。
珀杜(Purdue)大学的网际互联研究小组(Internetworking Research Group)的许多成员对程序代码的早期版本做过很多贡献。Andy Muckelbauer和Steve Chapin建立了一个UNIX兼容库,并与Shawn Ostermann和Scott Mark合作,使用TCP代码运行一个X window服务器。他们对TCP做了大量的测试工作,并指出其性能上存在的几个问题。Scott M.Ballew参与了一些软件的开发工作。
我的妻子Christine对本书手稿进行了编辑,并提出了许多建议。最后,我们感谢珀杜大学的计算机科学系和计算个L1所提供的帮助。
Douglas E.Comer
David L.Stevens
书中的范例代码用Gnu C++编译器在Intel体系平台编译通过,也在Pentium TM系统上经过测试。所有的代码均可在以下网址得到:
ftP://ftp.cs.purdue.edu/pub/comer/TCPIP—vol2.dist.tar.Z
虽然本书受到版权保护,但书中的代码可供读者使用,而且已经在许多商业产品中实现。这些代码使用的惟一限制是不得在公开出版物中出版。
我们鼓励读者利用计算机工具来查看、修改、编译和测试这些代码。事实上,尽管附录1和附录2中提供了定位代码条目的有效途径,但在查看大段代码时,UNIXgrep程序的价值更是不可估量。
对于各种正式的协议规范,以及对协议的实现和使用的讨论,可参见请求评论文档(RFC)。尽管一些RFC文档对初学者来讲难以理解,但这些文档是信息详尽的权威性资源,没有哪个作者能够做到在自己编写的书中包含RFC文档中的所有内容。尽管RFC文档涉及了每一个协议,但有时它们对协议之间的交互问题并未加以说明。例如,选路信息协议(RIP或OSPF)之类的选路协议规定了网关如何将路由置人IP路由表中,以及如何将表中的路由通知其他网关。RIP还规定路由必须设立定时机制,一旦某条路由超时,就将其删除。但是,我们在RFC文档中并不容易看出RIP和其他协议之间是如何交互作用的,随之而来的问题是:“路由超时机制将如何影响路由表中那些由ICMP设置的路由呢?”我们可能还会考虑这样一个问题:“当RIP更新路由时,应不应该推翻那些由管理员直接输入的路由呢?”
为了有助于解释协议之间的交互作用,并确保我们的方案能协调工作,我们设计并构造了一个工作系统,作为全书的中心范例。该系统提供了TCP/IP协议族中的大部分协议,包括:TCP、IP、ICMP、IGMP、UDP、ARP、RIP、SNMPv2以及OSPF的主要部分。另外,该系统还有一个finger服务的客户和服务器范例。由于本书包括了每一个协议的程序代码,读者可以研究其实现方法并了解其内部结构。最重要的是,由于范例系统将所有协议软件集成为一个工作整体,读者可以清楚地了解协议之间的交互作用。
范例的程序代码试图做到一方面遵守协议标准,另一方面引入一些新的思想。例如,我们的TCP程序代码中包含了“糊涂窗口预防”技术、Jacobson—Karels的“慢启动”和“拥塞预防”等优化技术,诸如此类的性能可能在商业实现中被忽略。但同时我们也清楚地认识到商业领域并不总是遵从已经公布的标准,因此我们也努力将系统调整到能够在现实环境中使用。例如,程序代码中包含了一个配置参数,使得它既可以采纳Internet标准,也可以采纳BSD UNIX中“TCP紧急数据指针”的实现方法。
我们并不认为书中所提供的程序代码都是准确无误的,甚至不能断言它肯定比其他实现方法要好。事实上,经过多年使用,我们仍然在不断完善这套软件,同时,也希望读者跟我们一起继续改进它。
本书可以作为网络工程人员的高级教程或者作为研究生教材使用。在作为本科教程使用时,应将重点放在前几章,而忽略有关OSPF、SNMP和RIP这几章内容。研究生可能会在有关TCP的章节中发现一些最为有趣和最难理解的概念。为保证其高性能而采用的自适应重发和相关的试探法尤为重要,应当仔细加以研究。纵观全书,绝大部分习题都向大家提示了其他可选择的实现方案及其大致情况,这些内容并不要求死记硬背,学生们可能需要阅读本书以外的其他资料,才能解答这些习题。
正如任何耗费甚巨的工程一样,本书中包含了许多人的心血,对此我们表示衷心的感谢。作者.之一David Stevens完成了大部分软件的编制工作,其中包括一个完整的TCP版本。Shawn Ostermann为本书付出了许多努力。Shawn将TCPAP代码集成到xinu版本8中,并将其从最初的Sun 3平台移植到DECstion 3100上。在这一版本中,他还对上一版中由Vic Norman编写的SNMP软件进行了大量的修改,以符合第二版的标准并有助于代码的调试。John Lin对书中的技术细节进行了校对,纠正了一些错误。
珀杜(Purdue)大学的网际互联研究小组(Internetworking Research Group)的许多成员对程序代码的早期版本做过很多贡献。Andy Muckelbauer和Steve Chapin建立了一个UNIX兼容库,并与Shawn Ostermann和Scott Mark合作,使用TCP代码运行一个X window服务器。他们对TCP做了大量的测试工作,并指出其性能上存在的几个问题。Scott M.Ballew参与了一些软件的开发工作。
我的妻子Christine对本书手稿进行了编辑,并提出了许多建议。最后,我们感谢珀杜大学的计算机科学系和计算个L1所提供的帮助。
Douglas E.Comer
David L.Stevens
评论交流
共有12人开贴评论 18人参与评论 11人参与打分 查看
发表于:2003-4-26 12:18:00
大家好,首先抱歉这么晚才来这个网站。
需要申明一点:
本书《用TCP/IP进行网际互联》第二卷,第三版
乃最后一位译者“黄述真”一人功劳。原第二版译者
张娟、王海没有参与翻译第三版一个字。所有第三版
翻译的问题前两位译者无法负责。之所以要带上前二位
译者,我猜测出版社主要是考虑在翻译第三版时使用了部分第二版翻译内容。
鉴于前两位译者水平有限,错误必然很多。在此非常希望大家提出具体的指导性意见。如果有针对第一、第二版翻译的意见,请发email 至haiwang@ieee.org.译者不甚感激。
需要申明一点:
本书《用TCP/IP进行网际互联》第二卷,第三版
乃最后一位译者“黄述真”一人功劳。原第二版译者
张娟、王海没有参与翻译第三版一个字。所有第三版
翻译的问题前两位译者无法负责。之所以要带上前二位
译者,我猜测出版社主要是考虑在翻译第三版时使用了部分第二版翻译内容。
鉴于前两位译者水平有限,错误必然很多。在此非常希望大家提出具体的指导性意见。如果有针对第一、第二版翻译的意见,请发email 至haiwang@ieee.org.译者不甚感激。
| 我要写评论 |
| 查看所有评论交流(共12条) |








点击看大图






加载中...

