常见问题目录 本光盘的使用方法:点击感兴趣的问题就可以链接到该问题的答案。所有文件都是用WORD打开的在点击所要看的问题时,请同时按住Control键(Ctrl) 第1章 概述 问题1-1:“主机”和“計算机”一样不一样? 问题1-2:能否说:“电路交换和面向连接是等同的而分组交换和无连接是等同的”?
问题1-3:因特网使用的IP协议是无連接的因此其传输是不可靠的。这样容易使人们感到因特网很不可靠那么为什么当初不把因特网的传输设计成为可靠的? 问题1-4:在具囿五层协议的体系结构中如果下面的一层使用面向连接服务或无连接服务,那么在上面的一层是否也必须使用同样性质的服务呢或者說,是否我们可以在各层任意使用面向连接服务或无连接服务呢
问题1-5:在运输层应根据什么原则来确定应当使用面向连接服务还是无连接服务? 问题1-6:在数据链路层应根据什么原则来确定应当使用面向连接服务还是无连接服务 问题1-7:TCP/IP的体系结构到底是四层还是五层? 问題1-8:我们常说“分组交换”但又常说“路由器转发IP数据报”或“路由器转发帧”。究竟“分组”一词应当用在什么场合 进程、线程与網络协议 7
//设置拨号服务器所属域名 ◇ 获取计算机的网卡地址【\chap2\ Local】 获取计算机安装的协议【\chap2\ Local】 获取计算机提供的服务【\chap2\ Local】 获取计算机的所有網络资源【\chap2\ Local】 修改本地计算机的所有网络设置【\chap2\ Local】 获取计算机TCP/IP协议的所有信息【\chap2\ Local】
(3)局域网网络通信编程实例
9.2 维護组播主机群的成员信息 119 9.3 主机群表 119 9.4 查找一个主机群 121 9.5 向主机群表中增加一个表项 122 9.6 为一个组播地址设置网络接口 124 9.7 IP组播地址和硬件组播地址之间嘚转换 125 9.8 从主机群表中删除一个组播地址 126 9.9 加入一个主机群 127 9.10 维持与一个组播路由器的联系
129 9.11 473 附录2 程序代码中使用到的C数据结构交叉参考表 493 附录3 程序代码中使用到的Xinu函数和常量 498 参考文献 513 附录页 前言 很荣幸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。
用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