本书采用一种现代的、自顶向下的方法来讲授计算机网络。该方法从应用层协议开始并沿着协议栈向下展开介绍,一开始就强调应用层范例和应用程序编程接口,使得读者及早“自己动手”,在每天使用的应用程序环境下学习和实现协议。以自顶向下方式进行分层体系结构的研究,使得读者关注所需要的网络服务,进而学习如何提供这些服务。
本书第二版的内容已经得到更新,以反映近年来网络领域的迅速变化。它包括了有关网络安全、移动性和移动IP、对等网络、内容分布网络、SIP、蓝牙等多方面新的和扩充的材料。此外还增加了课后习题、实验练习。
本书具有原理与实践相结合的特点,在描述原理的同时,用从因特网提取出的例子来说明这些原理,从而使本书的讨论形象生动、引人入胜。本书适合作为计算机科学系及电子工程系本科生课程和研究生一年级课程的教科书。对于希望理解因特网实际是如何运行的网络专业人士而言,本书是一本很好的参考书。
第1章 计算机网络和因特网 1
1.1 什么是因特网 1
1.1.1 架构描述 1
1.1.2 服务描述 3
1.1.3 什么是协议 4
1.1.4 一些好的超链接 6
1.2 网络边缘 6
1.2.1 端系统、客户机和服务器 6
1.2.2 无连接和面向连接的服务 8
1.3 网络核心 10
1.3.1 电路交换和分组交换 10
1.3.2 计算机网络中的分组转发 17
1.4 网络接入和物理媒体 20
1.4.1 网络接入 20
1.4.2 物理媒体 24
1.5 ISP和因特网主干 27
1.6 分组交换网络中的时延和分组丢失 29
1.6.1 时延的类型 29
1.6.2 排队时延和分组丢失 31
1.6.3 因特网中的时延和路由 33
1.7 协议层次及其服务模型 34
1.7.1 分层的体系结构 34
1.7.2 因特网协议栈 37
1.7.3 网络实体和层次 39
1.8 计算机网络和因特网的历史 40
1.8.1 分组交换的发展:1961-1972 40
1.8.2 专用网络和网络互连:1972-1980 41
1.8.3 网络的激增:1980-1990 42
1.8.4 因特网爆炸:20世纪90年代 43
1.8.5 最新发展 44
1.9 小结 44
本书路线图 45
课后习题和问题 45
习题 46
讨论题 49
人物专访:Leonard Kleinrock 50
第2章 应用层 52
2.1 应用层协议原理 52
2.1.1 应用层协议 53
2.1.2 应用所需要的服务 57
2.1.3 因特网运输协议提供的服务 58
2.1.4 本书提及的网络应用 60
2.2 Web应用和HTTP协议 60
2.2.1 HTTP概况 61
2.2.2 非持久连接和持久连接 63
2.2.3 HTTP报文格式 65
2.2.4 用户服务器交互:特许和Cookies 68
2.2.5 条件GET方法 70
2.2.6 HTTP内容 71
2.3 文件传输协议:FTP 71
2.3.1 FTP命令和回答 72
2.4 因特网中的电子邮件 73
2.4.1 SMTP 75
2.4.2 与HTTP的对比 77
2.4.3 邮件报文格式和MIME 77
2.4.4 邮件访问协议 81
2.5 DNS:因特网的目录服务 84
2.5.1 DNS提供的服务 85
2.5.2 DNS工作机理概述 86
2.5.3 DNS记录 91
2.5.4 DNS报文 91
2.6 TCP套接字编程 93
2.6.1 TCP套接字编程 93
2.6.2 Java客户机/服务器应用示例 95
2.7 UDP套接字编程 100
2.8 构造一个简单的Web服务器 106
2.8.1 Web服务器的功能 106
2.9 内容分布 110
2.9.1 Web缓存 110
2.9.2 内容分布网络 114
2.9.3 对等文件共享 117
2.10 小结 122
课后习题和问题 122
习题 123
讨论题 126
编程习题 126
人物专访:Tim Berners-Lee 127
第3章 运输层 129
3.1 概述和运输层服务 129
3.1.1 运输层和网络层的关系 130
3.1.2 因特网运输层概述 131
3.2 复用与分解 132
3.3 无连接运输:UDP 137
3.3.1 UDP报文段结构 139
3.3.2 UDP检验和 139
3.4 可靠的数据传输原理 141
3.4.1 构造可靠的数据传输协议 142
3.4.2 可靠的管道数据传输协议 149
3.4.3 Go-Back-N(GBN) 151
3.4.4 选择性重传(SR) 155
3.5 面向连接的运输:TCP 159
3.5.1 TCP连接 159
3.5.2 TCP报文段结构 161
3.5.3 往返时延的估计与超时 164
3.5.4 可靠的数据传输 166
3.5.5 流量控制 172
3.5.6 TCP连接管理 174
3.6 拥塞控制原理 177
3.6.1 拥塞原因与开销 178
3.6.2 拥塞控制方法 182
3.6.3 网络辅助的拥塞控制:ATM ABR拥塞控制 183
3.7 TCP拥塞控制 184
3.7.1 公平性 188
3.7.2 TCP时延建模 190
3.8 小结 197
课后习题和问题 198
习题 198
讨论题 203
编程作业3:实现一个可靠的运输协议 203
人物专访:Sally Floyd 204
第4章 网络层和选路 206
4.1 概述和网络服务模型 206
4.1.1 网络服务模型 208
4.1.2 数据报和虚电路服务的由来 210
4.2 选路原理 211
4.2.1 链路状态选路算法 213
4.2.2 距离向量选路算法 216
4.2.3 其他选路算法 222
4.3 层次选路 223
4.4 互联网协议(IP) 225
4.4.1 IPv4编址 226
4.4.2 从源到目的地传输数据报:编址、选路和转发 232
4.4.3 数据报格式 234
4.4.4 IP数据报分片 236
4.4.5 ICMP:互联网控制报文协议 238
4.4.6 动态主机配置协议 239
4.4.7 网络地址转换(NAT) 241
4.5 因特网中的选路 242
4.5.1 因特网中自治系统内部选路:RIP和OSPF 243
4.5.2 自治系统之间的选路:BGP 247
4.6 路由器的构成 251
4.6.1 输入端口 253
4.6.2 交换结构 254
4.6.3 输出端口 255
4.6.4 何时出现排队 256
4.7 IPv6 258
4.7.1 IPv6数据报格式 259
4.7.2 从IPv4向IPv6的迁移 260
4.8 多播选路 263
4.8.1 概述:因特网多播抽象和多播组 263
4.8.2 IGMP 265
4.8.3 多播选路:通常情况 268
4.8.4 因特网中的多播选路 272
4.9 移动性和网络层 274
4.9.1 网络层设计中的移动性考虑 274
4.9.2 移动性管理 275
4.9.3 移动IP 280
4.10 小结 283
课后习题和问题 284
习题 286
讨论题 289
编程作业 290
人物专访:Vinton G.Cerf 291
第5章 链路层和局域网 293
5.1 数据链路层:概述和服务 294
5.1.1 链路层提供的服务 294
5.1.2 适配器通信 296
5.2 差错检测和纠错技术 297
5.2.1 奇偶校验 298
5.2.2 检验和方法 299
5.2.3 循环冗余检测 300
5.3 多路访问协议 301
5.3.1 信道划分协议 303
5.3.2 随机访问协议 307
5.3.3 轮流协议 311
5.3.4 局域网(LAN) 312
5.4 LAN地址和ARP 313
5.4.1 LAN地址 314
5.4.2 地址解析协议 315
5.5 以太网 318
5.5.1 以太网基础 319
5.5.2 CSMA/CD:以太网的多路访问协议 321
5.5.3 以太网技术 323
5.6 集线器、网桥和交换机 326
5.6.1 集线器 326
5.6.2 网桥 327
5.6.3 交换机 332
5.7 无线链路 335
5.7.1 WLAN:IEEE 802.11b 336
5.7.2 蓝牙 340
5.8 PPP:点对点协议 341
5.8.1 PPP数据成帧 342
5.8.2 PPP链路控制协议(LCP)和多种网络控制协议 344
5.9 异步传输方式(ATM) 345
5.9.1 ATM主要特性 345
5.9.2 ATM物理层 347
5.9.3 ATM层 348
5.9.4 ATM适配层 348
5.9.5 ATM上的IP 350
5.10 帧中继 352
5.10.1 历史背景 352
5.10.2 帧中继 353
5.11 小结 355
课后习题和问题 356
习题 357
讨论题 361
人物专访:Robert M.Metcalfe 362
第6章 多媒体网络 364
6.1 多媒体网络应用 364
6.1.1 多媒体应用的例子 364
6.1.2 当今因特网上的多媒体障碍 367
6.1.3 因特网如何演化以更好地支持多媒体 367
6.1.4 音频和视频压缩 368
6.1.5 因特网中的视频压缩 369
6.2 流式存储音频和视频 370
6.2.1 通过Web服务器访问音频和视频 371
6.2.2 从流式服务器向助理应用程序发送多媒体 372
6.2.3 实时流协议(RTSP) 374
6.3 充分利用尽力服务:一个因特网电话的例子 377
6.3.1 尽力服务的限制 377
6.3.2 在接收方消除音频的时延抖动 379
6.3.3 从分组丢失中恢复 381
6.3.4 流式存储音频和视频 383
6.4 实时交互应用的协议 383
6.4.1 RTP 384
6.4.2 RTP控制协议(RTCP) 387
6.4.3 SIP 389
6.4.4 H.323 392
6.5 超越尽力服务 394
6.5.1 情况1:1 Mbit/s的音频应用和FTP传输 395
6.5.2 情况2:1 Mbit/s的音频应用和高优先级FTP传输 396
6.5.3 情况3:异常的音频应用和FTP传输 396
6.5.4 情况4:一条过载的1.5Mbit/s链路上的两个1Mbit/s音频应用 398
6.6 调度和监管机制 398
6.6.1 调度机制 399
6.6.2 监管:漏桶 402
6.7 综合服务 404
6.7.1 有保证的服务质量 405
6.7.2 受控负载的网络服务 405
6.8 RSVP 406
6.8.1 RSVP的要点 406
6.8.2 一些简单的例子 407
6.9 区分服务 409
6.9.1 区分服务:一个简单的情况 410
6.9.2 流量分类和调节 411
6.9.3 每跳行为 413
6.9.4 对区分服务的批评 414
6.10 小结 414
课后习题和问题 415
习题 416
讨论题 418
编程作业 418
人物专访:Henning Schulzrinne 419
第7章 计算机网络安全 421
7.1 什么是网络安全 421
7.2 密码学的原则 423
7.2.1 对称密钥密码学 425
7.2.2 公钥加密 428
7.3 鉴别 431
7.3.1 鉴别协议ap1.0 432
7.3.2 鉴别协议ap2.0 432
7.3.3 鉴别协议ap3.0 433
7.3.4 鉴别协议ap3.1 434
7.3.5 鉴别协议ap4.0 434
7.3.6 鉴别协议ap5.0 435
7.4 完整性 437
7.4.1 生成数字签名 437
7.4.2 报文摘要 438
7.4.3 散列函数算法 441
7.5 密钥分发和认证 442
7.5.1 密钥分发中心 443
7.5.2 公钥认证 444
7.6 访问控制:防火墙 447
7.6.1 分组过滤 448
7.6.2 应用程序网关 450
7.7 攻击和对策 451
7.7.1 映射 451
7.7.2 分组嗅探 452
7.7.3 哄骗 453
7.7.4 拒绝服务攻击和分布式拒绝服务攻击 453
7.7.5 劫持 454
7.8 多个层次中的安全性:案例研究 454
7.8.1 安全电子邮件 455
7.8.2 安全套接字层(SSL)和运输层安全性(TLS) 459
7.8.3 网络层安全性:IPsec 461
7.8.4 IEEE 802.11的安全性 464
7.9 小结 465
课后习题和问题 466
习题 466
讨论题 467
人物专访:Steven M. Bellovin 468
第8章 网络管理 470
8.1 什么是网络管理 470
8.2 网络管理的基础设施 473
8.3 因特网的标准网络框架 475
8.3.1 管理信息结构:SMI 476
8.3.2 管理信息库:MIB 478
8.3.3 SNMP协议运行和传输映射 480
8.3.4 安全性和管理 481
8.4 ASN.1 484
8.5 小结 487
课后习题和问题 488
习题 488
讨论题 489
人物专访:Jeff Case 489
参考文献 491
我从事计算机网络研究和教学工作已近20年,而当我首次看到Kurose和Ross两位教授所著的这本书时,就立即被它新颖的“自顶向下”教学法所吸引。由于计算机网络的复杂性,长期以来按分层体系结构讲授网络课程内容是一种定式,由底层向上逐层讲解也是一种定式,似乎难以想像从应用层自顶向下讲解到物理层的教学方法。Kurose和Ross将这种“不可能”变为了现实,而且取得了出乎意料的成功。除了作者们在本书第二版序言中总结的本书具有的“自顶向下的方法,关注因特网,注重原则和实践,以及易于理解的风格和学习计算机网络的方法”等特点外,本书独具匠心之处还包括:给出了与许多与人类生活类比的例子,使人们易于理解复杂的网络理论和技术;按照原理、机理和实践的原则进行讲解,使读者易于抓住本课程的基本概念;注重应用编程,启发学生们在因特网上的创造力:教学内容既引入了重要的最新知识,也放弃了许多过时的内容。
本书已经被世界上数以百计的学院和大学采用,被数以万计的学生和业界人员使用;在国内也已被解放军理工大学的计算机、网络工程等专业的本科生作为计算机网络课程教材使用了两年,取得了良好的教学效果,验证了这本书适用于我国高校的计算机科学系和电子工程系的学生。不足之处是教学中存在着语言障碍,即学生们往往将大量时间用于对英文的阅读理解上,而不是对计算机网络技术的理解上,教学活动中感到学时偏紧。这次人民邮电出版社组织翻译这本书,恰好能弥补这个遗憾。在此,我要特别感谢李际编辑为本书出版所付出的艰辛劳动。
本书的翻译是由中国人民解放军理工大学教授陈鸣博士(第1、2、7、8章和序言等部分)、李兵副教授(第3、4章)和贾永兴博士(第5、6章)完成的:全文由陈鸣进行了校对与统稿。在本书的翻译工作中,译者们根据国内标准或主流译法对书中涉及到的网络技术术语进行了统一,请教了有关专家特别是谢希仁教授;改正了原文中存在的若干明显错误;博士研究生郝继红、硕士研究生张国敏、陈剑和周骏也做了部分工作。
尽管译者们都抱有为读者提供高质量计算机网络教材的愿望,但限于时间和学识,译文错漏难免;如有识者,望不吝赐教。译者的联系方式是:mingchen@public.ptt.js.cn
欢迎阅读《计算机网络——用自顶向下方法描述因特网特色》一书的第二版。自从本书的第一版于两年前出版发行以来,我们这本书已经被全世界数以百计的学院和大学采用,被数以万计的学生和业界人员使用。我们倾听了许多读者的意见,赞扬之声不绝于耳。
我们认为本书成功的一个重要原因是,本书为计算机网络教学提供了一种崭新的方法。为什么需要新方法呢?大家都知道在近几年中,网络领域产生了两个革命性的变化,但这种变化并没有在20世纪80年代和90年代出版的网络教科书中得到体现。首先,因特网已经接替了计算机网络,今天有关计算机网络的任何严肃讨论都必须与因特网联系起来。第二,在过去的10年中,增长最快的领域是网络服务和应用程序,这种变化能够从Web的出现、无所不在的电子邮件的使用、音频和视频流、因特网电话、即时信息、对等应用程序和在线商务等得到佐证。
第二版的新颖之处
我们在第二版中做了一些改变,但是也保持了本书中我们认为(也得到使用本书的教师和学生的证实)最为重要的方面没有变化,即它的自顶向下的方法,它关注因特网,它注重原则和实践,以及它易于理解的风格和学习计算机网络的方法。为了反映过去几年中网络领域的迅速变化,第二版更新了内容。它包括有关对等网络、内容分布网络、移动性和移动IP、无线网络、BGP、多媒体网络和网络安全等很多新的和扩充的材料。根据该领域的改变和第一版读者的反馈意见,对全部文本和参考资料进行了更新。另外本版还增加了课后习题和新的实验练习(包括一个令人兴奋的有关使用RTP和RTSP的视频流的实验)。
本书对象
本教科书适合作为计算机网络学科的入门教材。既可以用于计算机科学系的学生,也可以用于电子工程系学生。至于编程语言,使用本书的学生需要具有C、C++或Java的编程经验。用过C、C++而没有用过Java编程的学生,在阅读书中的应用程序编程材料时不会有任何困难,尽管这些材料是在Java环境中提供的。与其他入门性的计算机网络教科书相比,本书表述更为精确、分析更为细致,然而书中很少用到高中阶段没有教过的数学概念。我们有意避免使用任何高等计算、概率论和随机过程等概念。因此,本书适合作为本科生课程和研究生一年级课程的教科书。本书对于电信业的从业人员也应当是
有用的。
本书的独特之处
计算机网络这门学科的内容极为复杂,涉及到错综复杂且彼此交织的许多概念、协议和技术。为了对付这种大的跨度和复杂性,许多计算机网络方面的教科书都围绕计算机网络体系结构的“层次”来组织内容。借助于这种分层的组织结构,学生们能够透过计算机网络复杂性看到其内部,他们在学习整个体系结构的某个部分中的独特概念和协议的同时,也看清了所有这些部分是如何整合在一起的全貌。例如,许多内容都是围绕7层OSI体系结构来组织的。从教学法的角度来看,我们的个人体验是这种分层的教学方法的确是非常必要的。然而,我们发现那种传统的自底向上的教学方法,即从物理层到应用层逐层进行讲解的方法,对于现代的计算机网络课程而言并非是最佳方法。
自顶向下方法
与计算机网络的其他教科书不同,本书是以自顶向下的方式来组织内容的,这就是说从应用层开始向下一直讲到物理层。这种自顶向下方法有几个重要的好处。首先,它特别强调应用层,而应用层恰恰一直是计算机网络领域的高“增长点”。实际上,计算机网络领域中的许多革命性创新都发生在应用层,其中包括Web、音频和视频流以及内容分布等。在着手写本书的第一版时,我们认为应用层将会在该领域保持最高的增长点,无论是在研究还是在实际部署方面都会如此。接下来的几年也已经证明这种看法是正确的!本书采用的及早强调应用层的方法不同于在多数其他教科书中所采取的方法,那些教科书只有少量关于网络应用及其需求、应用范式(例如客户机服务器)以及应用编程接口等方面的内容,有的则干脆没有这方面的内容。
第二,我们作为教师的经验是,在课程一开始就讲授网络应用的内容,可以有力地调动学生们学习的积极性。学生们急于知道诸如Web和电子邮件等网络应用是如何工作的,这些都是多数学生在日常生活中使用的。一旦理解了网络应用,学生们则能理解支持这些应用的网络服务。接下来他们则会研究在较低层可能提供和实现这些服务的各种方式。因此,及早地学习应用程序能够激发学生们学习本书其余部分的积极性。
第三,自顶向下方法使得教师能够在教学的早期阶段介绍网络应用程序的开发。学生们不仅能够看到流行的应用程序和协议工作原理,还能体会到创造自己的网络应用程序和应用级协议有多么容易。其他入门性计算机网络教科书不讲解应用程序的开发和套接字编程(尽管有专门讲解网络编程的书,但不是入门性网络教科书)。我们通过提供用Java语言写成的套接字编程的例子来强调主要思想,尽量使用简明的代码使学生们能够抓住要点。电子工程和计算机科学系的本科生读这些代码应当不会有困难。因此,采用自顶向下的方法后,学生们能够及早地搞清应用编程接口(API)、服务模型和协议的概念,这些概念是后续讨论的各层中还会出现的重要概念。
以因特网为研究目标
从书名就可以知道本教科书以因特网为中心。在现有的大多数教科书中,电信网络和协议集合占了很大比重,而将因特网作为众多联网技术之一对待。我们却把因特网放在显要位置,使用因特网协议集作为学习某些更为基本的计算机网络概念的手段。也许有人会问,为什么将因特网置于如此显要的地位?为什么不研究某些其他网络技术,如ATM?首先,计算机网络现在已经是因特网的同义词。而5到10年前还不是这种情况,那时有许多关于ATM局域网的讨论,应用程序直接与ATM(而不是通过TCP/IP)接口。但是今天我们面临的情况是,几乎所有的数据流量都通过因特网(或内联网)传输。今天,惟一能与因特网抗衡的其他类型网络是电路交换电话网,而这个竞争对手也有可能消失。今天大多数的话音流量还是通过电话网传送的,但网络设备制造商和电话公司运营商正准备向因特网技术上作大迁移。
强调因特网的另一个好处是,大多数计算机科学和电子工程的学生急切地希望学习因特网及其协议。他们每天都在使用因特网(至少用来发送电子邮件和Web冲浪),他们听说因特网是一种革命性的和造成动荡的技术,正在深远地改变着我们的世界。如果有了对因特网大量中肯的认识,学生们自然而然就会有学习其原理的欲望。因此,使用因特网作为引导的目标,教师就易于调动学生们学习计算机网络基本原理的积极性。
因为我们的课本是以因特网为重点进行讲解的,我们就围绕因特网体系结构的5层模型来组织材料,而不是围绕更为传统的OSI的7层模型。这5个层次就是应用层、运输层、网络层、链路层和物理层。
着眼原理
本书的两个独特之处是它的自顶向下方法和关注因特网,这可以从本书的副标题看出。如果想在该副标题中加进第三个词的话,这个词将是“原理”一词。计算机网络领域已经发展得相当成熟,许多基础性的重要问题已经研究得较为清楚。例如,运输层的基础性问题包括建立在不可靠的网络层上的可靠通信、连接建立/拆除与握手、拥塞和流量控制以及多路复用。网络层的两个基础性的问题是,在两台路由器之间找到“好的”路径,处理大量异构系统的互联。数据链路层的基础性问题是共享多路访问信道。在网络安全中,提供机密性、鉴别、报文完整性的技术都基于密码学基本理论。本书在指明基础性网络问题的同时,也给出解决这些问题的方法。我们相信,用因特网将学生引入网络之门后,再结合强调网络基础性问题及其解决方案的方法,会使他们迅速地理解几乎任何网络技术。
相关Web站点
关于本教科书的英文版,我们为所有读者提供了一个包含广泛内容的Web站点http://www.aw.com/kurose-ross,内容包括:
交互式学习材料。该站点包含了交互式Java小程序,阐明了重要的网络概念。还提供了对Tracerout这样的程序的直接访问(通过浏览器),Tracerout程序显示出分组在因特网中行走的路径。教师们能够使用这些交互式的功能作为小实验。该Web站点还提供了到查找因特网草案的搜索引擎和讨论本书主题的新闻组的直接访问。
与500多个相关材料的链接。正如所有因特网热衷者所知,描述因特网的多数最好的材料都在因特网上。我们尽力使本书的参考文献包括了尽可能多的Web URL。参考书目是在线的,并随链接改变或新材料的出现而更新。这些链接不仅指向RFC文档、期刊和会议文章,还指向本质上更具教学意义的站点,包括有关因特网技术特定方面原创性的页面和在商业杂志中出现的文章。教师们可以将这些链接的材料作为补充读物甚至必读材料。
作者的多媒体讲课材料。该WWW站点也能提供作者们用本书教授学生们的Real-Audio课内讲授材料。
我们也希望不断地扩充该网站的内容,增加来自教师们、读者们的材料以及我们自己的新特色。网站内容每3个月更新一次。如果对该Web网站有什么意见,请发送电子邮件至aw.cse@aw.com。
教学特色
我们俩都已经教了差不多20年的计算机网络课程。这本书结合了我们30多年教了3 000多个学生的教学经验。在教学期间我们也是计算机网络领域活跃的研究人员(事实上,我们俩于1979年在哥伦比亚大学初次见面,当时我们是硕士研究生,共同选修了由Mischa Schwartz执教的计算机网络课程)。我们认为所有这些都给了我们对于网络现状和网络未来可能发展的良好观察力。无论如何,我们在组织这本书的材料时,抵御住了偏向自己钟爱的研究项目的诱惑。如果你对我们的研究项目感兴趣的话,可以访问我们的个人网站。因此,这是一本关于现代计算机网络的书,因为该书包含了当代协议和技术以及支撑这些协议和技术的基本原理。我们尽力使学习(和讲授)网络知识能够变得更加有趣。本书中包括的类比方法、幽默感和实际的例子为这些材料增加了趣味性。
历史事件和实践中的原则
始于20世纪60年代后期的计算机网络领域具有丰富而引人入胜的历史。我们在本书讲解计算机网络历史时做了特别的尝试。我们在第1章中特地安排一节的篇幅介绍了历史,并在其余的各章中分插了10多个历史事件。在这些历史事件的片段中,我们谈及了分组交换技术的发明、因特网的演化、Cisco和3Com这些网络巨人的崛起以及许多其他事件。学生们将会受到这些历史事件的激励。正如历史学家告诉我们的那样,历史帮助我们预测未来。在这个迅速变化的领域中,正确地预测未来对于任何网络协议和技术的成功是至关重要的。
正如前面所指出的那样,本书强调计算机网络所依据的原则,以及这些原则在实践中的作用。在每章中我们都包括一个特殊的补充说明,重点指出计算机网络中的重要原则。这些补充说明将有助于学生们理解应用于计算机网络中的某些基本概念。
人物专访
此外本书还具有另一个原创性特色,用以激发学生们的学习热情,这就是对网络领域声名卓著的创新家们的专访。其中就包括对Len Kleinrock、Tim Berners-Lee、Sally Floyd、Vint Cerf、Bob Metcalfe、Henning Schulzrinne、Steven Bellovin和Jeff Case的专访。
各章间的关联性
本书的第1章提供了对计算机网络完整的概述。该章介绍了许多重要的概念与术语,为本书的其余部分奠定了基础。其他各章都依赖于第1章的内容。在讲解完第1章之后,建议按顺序讲解第2章到第5章,这样就在教学中体现了自顶向下的原理。这5章中任何1章都用到了前面各章的内容。
在完成前5章后,后面的教学工作可以相对灵活一些。最后3章之间没有依存关系,因此能够以任何顺序进行教学。但是,最后3章中的每一章都依赖于前5章。最理想的情况是教师有时间在一个完整的学期中有选择地教授最后3章的内容。
我们也注意到本书的第1章内容广泛并且独立,能够作为网络短训课程的基础教材。
最后的话
我们鼓励教师们和学生们编写新的Java小程序来阐明本书中的概念和协议。如果你有了自认为适合于本书的Java小程序,请将它发送给作者。如果该Java小程序(包括注释和术语)确实合适的话,我们很乐意将它放在本书的网站上,并附上该Java小程序作者的适当信息。我们也鼓励教师们向我们发送新的课后习题(及其解答),以完善现有的课后习题。这些习题将被放在该Web网站上只有教师才能访问的部分。
我们也鼓励学生们和教师们向我们发送电子邮件,发表对我们这本书任何可能的评论。对我们而言,能够听到来自全世界的教师们和学生们就本书的第一版的反响,一直是一件令人愉快的事情。请大家毫无保留地告诉我们有趣的URL,指出排版错误,不赞成我们的哪些主张,告诉我们怎样做效果好,怎样做效果不好。告诉我们你认为在下一版本中应当包括哪些内容,应当删除哪些内容。我们的电子邮件地址分别是kurose@cs.umass.edu和ross@eurecom.fr