《计算机网络:自顶向下方法(原书第6版)》一导读-阿里云开发者社区

开发者社区> 华章出版社> 正文

《计算机网络:自顶向下方法(原书第6版)》一导读

简介:


image

前 言

欢迎阅读《计算机网络:自顶向下方法》的第6版。自从本书的第1版于12年前出版以来,我们这本书已经被几百所大学和学院采用,被译为14种语言,并被世界上几十万的学生和从业人员使用。我们倾听了许多读者的意见,赞扬之声不绝于耳。
第6版的新颖之处

我们认为本书成功的一个重要原因是,持续地为计算机网络教学提供了一种新颖和与时俱进的方法。在第6版中我们做了改变,但也保持了我们认为(并且得到了使用本书的教师和学生的认可)本书最为重要的方面:它的自顶向下的方法,它关注因特网和计算机网络的现代处理方法,它的注重原则和实践,以及它易于理解的风格和学习计算机网络的方法。无论如何,第6版中已经进行了相当多的修订和更新:
配套Web网站进行了大大的扩展,并且丰富了VideoNotes和交互式练习,后面将讨论它们。
在第1章中,已经更新了接入网的论述,并且因为近期出现的内容提供商网络(如谷歌公司的网络),对因特网ISP生态系统的描述进行了相当多的改进。重新组织了分组交换和电路交换的表述,以更多地关注时下而不是历史。
在第2章中,用Python替代了Java来介绍套接字编程。Python代码仍能明确地揭示套接字API背后的关键思想,同时也更容易为编程新手所理解。此外,与Java不同,Python提供了对原始套接字的访问,使学生们能够构建各种各样的网络应用。基于Java的套接字编程实验已经由对应的Python实验所代替,并且增加了新的基于Python的ICMP ping实验。与往常一样,当材料不再在书中使用后,如基于Java的套接字编程材料,在本书的配套网站上仍将继续可用(参见下文说明)。
在第3章中,简化了一个可靠数据传输协议的表述,增加了一个有关TCP分岔的新“插入材料”(sidebar) 这种插入的补充资料多以文本框形式插在相应正文语境中。——编辑注,TCP分岔通常用于优化云服务的性能。
在第4章中,有关路由器体系结构的小节进行了很大更新,反映了该领域中的最新发展和实践。包括了几个涉及DNS、BGP和OSPF的新的综合“插入材料”。
第5章进行了重新组织,使之更加合理,这是因为在局域网中交换以太网的普遍存在,以及随之而来点到点场景中以太网使用的增加。此外,增加了有关数据中心网络的新的小节。
更新了第6章以反映无线网络中的最新进展,特别是蜂窝数据网和4G服务及体系结构。
第7章关注多媒体网络,该章进行了较大的修订。这一章现在包括了流式视频的深入讨论,包括了适应性流以及有关CDN的全新的和现代的讨论。新增加的一节描述了Netflix、YouTube和“看看”视频流系统。为给这些新主题让路而被删除的材料仍在配套网站上可供使用。
第8章现在包括有关端点鉴别的扩展讨论。
已经增加了涉及每章后面习题的可观新材料。与前面所有各版一样,对课后习题进行修订、增加和删除。

本书对象

本书适用于计算机网络的第一门课程,既可用于计算机科学系的学生,也可用于电子工程系的学生。就编程语言而言,本书仅假定学生们具有C、C++、Java或Python的编程经验(也只是在几个地方用到)。与许多入门性的其他计算机网络教科书相比,尽管本书表述更为精确,分析更为细致,然而书中很少用到高中阶段没有教过的数学概念。我们有意避免使用任何高等微积分、概率论或随机过程的概念(尽管我们为具有这种高级背景的学生们准备了某些课后习题)。因此,本书适用于本科生课程和一年级研究生课程。它对于电信业的从业人员也应当有用。

本书的独特之处

计算机网络这门课程极为复杂,涉及许多以错综复杂的方式彼此交织的概念、协议和技术。为了处理这种大跨度和高复杂性,许多计算机网络教科书都围绕计算机网络体系结构的“层次”来组织内容。借助于这种分层的组织结构,学生们能够透过计算机网络的复杂性看到其内部,他们在学习整个体系结构的某个部分中的独特概念和协议的同时,也能看清所有这些部分是如何整合在一起的全貌。从教学法的角度来看,我们的个人体验是这种分层的教学方法的确是非常必要的。然而,我们发现那种自底向上的传统教学方法,即从物理层到应用层逐层进行讲解的方法,对于现代计算机网络课程并非是最佳的方法。

自顶向下方法

本书于12年前首次以自顶向下的方式来对待网络,这就是说从应用层开始向下一直讲到物理层。我们从老师以及学生那里得到的反馈证实了这种自顶向下方法有许多好处,并且从教学法来讲的确很好实施。首先,它特别强调应用层(它是网络中的“高增长领域”)。的确,计算机网络中的许多近期革命,都发生在应用层,其中包括Web、对等文件共享和媒体流。及早强调应用层的方法不同于大多数其他教科书中所采取的方法,那些教科书中只有少量有关网络应用、它们的需求、应用层范式(例如客户-服务器和对等方到对等方)以及应用编程接口方面的内容。第二,我们(和使用本书的许多教师)作为教师的经验是,在课程开始后就教授网络应用的内容,是有效激励学习积极性的工具。学生们急于知道诸如电子邮件和Web等网络应用是如何工作的,这些都是多数学生每天都在使用的应用。一旦理解了这些应用,学生们便能够理解支持这些应用的网络服务,接下来则会仔细思考在较低层次中可能提供和实现这些服务的各种方式。因此,及早地涉及应用程序能够激发学生们学习本书其余部分的积极性。
第三,自顶向下方法使得教师能够在教学的早期阶段介绍网络应用程序的开发。学生们不仅能够明白流行的应用程序和协议的工作原理,还能学习到创造自己的网络应用程序和应用级协议是多么容易。采用自顶向下的方法后,学生们能够及早地搞清套接字编程、服务模型和协议的概念,这些重要概念为后续讨论的各层做了铺垫。通过提供用Python语言写成的套接字编程的例子,我们强调主要思想,而不会使学生们陷于复杂代码的困境。电气工程和计算机科学系的本科生理解这些代码应当不会有困难。

以因特网为研究目标

尽管自第4版起我们从书名中去掉了“Featuring the Internet”(描述因特网特色)这个短语,但这并不意味着我们不再关注因特网!的确,一切如初!而且因为因特网已经变得无所不在,我们反而认为任何网络教科书都必须非常关注因特网,因此该短语在某种程度上已经没有必要了。我们继续使用因特网的体系结构和协议为基本载体来学习基本的计算机网络概念。当然,我们也能把概念和协议放入其他网络体系结构中讲解。但是我们的关注焦点是因特网,这反映在我们围绕因特网体系结构的5层模型来组织材料,这5个层次是应用层、运输层、网络层、链路层和物理层。
聚焦因特网的另一个好处是,大多数计算机科学和电气工程的学生急切地希望学习因特网及其协议。他们知道因特网是一种革命性和破坏性的技术,正在深刻地改变着我们的世界。有了对因特网大量中肯的认识后,学生们自然而然会对学习其内部原理有了求知欲。因此,一旦用因特网作为定向焦点,教师就易于调动学生们学习基本原理的积极性了。

教授网络原理

本书的两个独特之处是自顶向下方法和关注因特网,这已经显现在本书的书名中。如果我们能够在副书名中加进第三个词的话,原理一词将包括在其中。网络领域已经发展得相当成熟,许多基础性的重要问题能够认识清楚。例如,在运输层,基础性问题包括建立在不可靠的网络层上的可靠通信、连接建立/拆除与握手、拥塞和流量控制以及多路复用。两个非常重要的网络层问题是,在两台路由器之间找到“好的”路径和互联大量的异构网络。在数据链路层,基础性问题是共享多路访问信道。在网络安全中,提供机密性、鉴别和报文完整性的技术都基于密码学基本理论。本书在指明基础性网络问题的同时,也会介绍解决这些问题的方法。学习这些原理的学生将获得具有长“保质期”的知识,在今天的网络标准和协议已经变得过时很长时间后,其中的原理将仍然重要和中肯。我们相信,用因特网将学生引入网络之门后,再强调基础性问题及其解决方案,这种两者结合的方法将使他们迅速理解几乎任何网络技术。

Web站点
本书配套的Web站点位于http://wps.pearsoned.com/ecs_kurose_compnetw_6 此为目前有效的网址,如果出现不可访问的情形,请联系Service.cn@Pearson.com。——编辑注。该站点包括:
交互式学习材料。本书第6版的一个重要的新组成部分是大大地扩充了在线和交互学习的材料。本书的配套网站现在包括视频要点(VideoNotes),即由作者制作的全书重要主题的视频呈现,以及对习题解答的简要讲解,这些习题类似于每章后面的习题。我们也增加了交互式练习,该练习能够生成与每章后面所选习题类似的问题(并呈现答案)。因为学生们能够产生无数类似问题的实例(并看到解答),他们能够练习到真正掌握这些材料为止。我们已经在Web站点上提供了第1~5章的视频要点和在线习题,并且将随时间推移而继续积极地增加和更新这些材料。如在前面版本中一样,该Web站点包含了交互式Java小程序,以动画方式显示了重要的网络概念。该站点也具有交互式小测验,允许学生们检查他们对该专题内容的基本理解。教授们能够将这些交互式特色综合进他们的讲义中或将它们用作小实验。

附加的技术材料。由于我们在本书的每个版本中都增加了新材料,故我们不得不删去某些现有主题以保持篇幅的合理。例如,为了在本版中为新材料腾出空间,我们删除了有关ATM网络和用于多媒体的RTSP协议。出现在本书较早版本上的材料仍然是有趣的,并且能够在本书Web网站上找到。
编程作业。Web网站也提供了一些详细的编程作业。这些编程作业包括了构建一台多线程Web服务器,构建一个具有GUI接口的电子邮件客户,发送端和接收端可靠数据传输协议的编程,分布式路由选择算法的编程,等等。
Wireshark实验。通过观察网络协议的动作,读者能够大大加深对它们的理解。该Web站点提供了一些Wireshark作业,使学生们能够实际观察两个协议实体之间报文的交换顺序。该Web站点包括了有关HTTP、DNS、TCP、UDP、IP、ICMP、以太网、ARP、WiFi和SSL的单独Wireshark实验,以及跟踪在获取一个Web网页的请求时所涉及的所有协议的Wireshark实验。

教学特色

我们每位作者都教了20多年的计算机网络课程,这本书凝聚了我们总共50多年教了几千名学生的教学经验。在此期间,我们也成为计算机网络领域活跃的研究人员。(事实上,James和Keith于1979年在哥伦比亚大学彼此相识,共同选了由Mischa Schwartz执教的硕士研究生计算机网络课程。)我们认为所有这些都给了我们对于网络现状和网络未来的可能发展方向的良好观察力。无论如何,我们在组织这本书的材料时,抵御住了偏向自己所钟爱的研究项目的诱惑。如果你对我们的研究工作感兴趣的话,可以访问我们的个人Web网站。因此,这是一本关于现代计算机网络的书,即该书包含了当代协议和技术以及支撑这些协议和技术的基本原理。我们也认为学习(和讲授)网络是令人开心的事。本书中包括的幽默、使用的类比和现实世界的例子将有望使这些材料更具趣味性。

教师们的补充材料

我们提供了一套完整的补充材料,以帮助教师们教授这门课程。这些材料都能通过访问Pearson的教师资源中心(http://www.pearsonhighered.com/irc 该地址为英文版教材的服务地址,中文版教师想获取相关教辅资料,请联系Service.CN@Pearson.com和www.pearsonhigher ed.com/educator。——编辑注)得到。有关获取访问这些教师补充材料的信息可访问教师资源中心或向computing@aw.com发送电子邮件。
PowerPoint幻灯片。我们提供了全部9章的PowerPoint幻灯片。幻灯片根据第6版进行了完整的更新。这些幻灯片详细地涵盖了每章的内容。幻灯片中使用了图片和动画(而非仅是单调的文本标题),这使得这些幻灯片有趣且在视觉上有吸引力。我们向教师提供了原始的幻灯片,使得教师能够做个性化修改以满足自己的教学需要。这些幻灯片中的某些部分就是由采用本书进行教学的教师所贡献的。
课后习题解答。我们提供了本书中课后习题的解题手册、编程作业和Wireshark实验。如前所述,我们在本书的前5章中引入了许多新的课后作业。

各章间的关联性

本书的第1章提供了对计算机网络自包含的概述。该章介绍了许多重要的概念与术语,为本书的其余部分奠定了基础。其他所有章都直接依赖于第1章的内容。在讲解完第1章之后,我们推荐按顺序讲解第2~5章的内容,这样就遵循了自顶向下的理念。这5章中任何一章都会用到前面各章的内容。在完成前5章的教学后,教师就有了相当大的灵活性。最后4章之间没有任何相关性,因此能够以任何顺序进行教学。然而,最后4章中的每一章都依赖于前5章中的材料。许多教师采用的教学方案是:教授前5章,然后讲授后4章之一作为点睛之笔。

最后的话:我们乐于听取你的意见

我们鼓励学生和教师向我们发送电子邮件,发表对本书的任何评论。对我们而言,能够听到来自全世界的教师和学生就本书前5版的反馈,是令人愉快的事。我们已经在本书新版中综合进这些建议中的许多条。我们也鼓励教师向我们发送新的课后习题(及其解答),这将完善当前的课后习题。我们将这些习题放在配套Web网站上只有教师才能访问的部分。我们也鼓励教师和学生编写新的Java小程序来诠释书中的概念和协议。如果你有了认为适合于本书的小程序,请将它发送给作者。如果该小程序(包括标记和术语)合适的话,我们很乐意将它放在本书的网站上,并附上该小程序作者的适当推荐。
正如谚语所说:“让那些卡片和信件到来吧!”我们郑重宣布,请大家一如既往地告诉我们有趣的URL,指出排版错误,不赞成我们的哪些主张,告诉我们怎样做效果好,怎样做效果不好。告诉我们你认为在本书下一版中应当包括哪些内容,应当删除哪些内容。我们的电子邮件地址是kurose@cs.umass.edu和ross@poly.edu。

第1章  计算机网络和因特网
1.1 什么是因特网
1.2 网络边缘
1.3 网络核心
1.4 分组交换网中的时延、丢包和吞吐量
1.5 协议层次及其服务模型
1.6 面对攻击的网络
1.7 计算机网络和因特网的历史
1.8 小结
第2章  应 用 层
2.1 应用层协议原理
2.2 Web和HTTP
2.3 文件传输协议:FTP
2.4 因特网中的电子邮件
2.5 DNS:因特网的目录服务
2.6 P2P应用
2.7 TCP套接字编程
2.8 小结
课后习题和问题
第3章 运输层
 3.1 概述和运输层服务
  3.1.1 运输层和网络层的关系
  3.1.2 因特网运输层概述
 3.2 多路复用与多路分解
 3.3 无连接运输:UDP
  3.3.1 UDP报文段结构
  3.3.2 UDP检验和
 3.4 可靠数据传输原理
  3.4.1 构造可靠数据传输协议
  3.4.2 流水线可靠数据传输协议
  3.4.3 回退N步
  3.4.4 选择重传
 3.5 面向连接的运输:TCP
  3.5.1 TCP连接
  3.5.2 TCP报文段结构
  3.5.3 往返时间的估计与超时
  3.5.4 可靠数据传输
  3.5.5 流量控制
  3.5.6 TCP连接管理
 3.6 拥塞控制原理
  3.6.1 拥塞原因与代价
  3.6.2 拥塞控制方法
  3.6.3 网络辅助的拥塞控制例子:ATM ABR拥塞控制
 3.7 TCP拥塞控制
 3.8 小结
 课后习题和问题
  复习题
  习题
 编程作业
 Wireshark实验:探究TCP
 Wireshark实验:探究UDP
 人物专访
第4章 网络层
 4.1 概述
  4.1.1 转发和路由选择
  4.1.2 网络服务模型
 4.2 虚电路和数据报网络
  4.2.1 虚电路网络
  4.2.2 数据报网络
  4.2.3 虚电路和数据报网络的由来
 4.3 路由器工作原理
  4.3.1 输入端口
  4.3.2 交换结构
  4.3.3 输出端口
  4.3.4 何处出现排队
  4.3.5 路由选择控制平面
 4.4 网际协议:因特网中的转发和编址
  4.4.1 数据报格式
  4.4.2 IPv4编址
  4.4.3 因特网控制报文协议
  4.4.4 IPv6
  4.4.5 涉足IP安全性
 4.5 路由选择算法
  4.5.1 链路状态路由选择算法
  4.5.2 距离向量路由选择算法
  4.5.3 层次路由选择
 4.6 因特网中的路由选择
  4.6.1 因特网中自治系统内部的路由选择:RIP
  4.6.2 因特网中自治系统内部的路由选择:OSPF
  4.6.3 自治系统间的路由选择:BGP
 4.7 广播和多播路由选择
  4.7.1 广播路由选择算法
  4.7.2 多播
 4.8 小结
 课后习题和问题
  复习题
  习题
 套接字编程作业
 编程作业
 Wireshark实验
 人物专访
第5章 链路层:链路、接入网和局域网
 5.1 链路层概述
  5.1.1 链路层提供的服务
  5.1.2 链路层在何处实现
 5.2 差错检测和纠正技术
  5.2.1 奇偶校验
  5.2.2 检验和方法
  5.2.3 循环冗余检测
 5.3 多路访问链路和协议
  5.3.1 信道划分协议
  5.3.2 随机接入协议
  5.3.3 轮流协议
  5.3.4 DOCSIS:用于电缆因特网接入的链路层协议
 5.4 交换局域网
  5.4.1 链路层寻址和ARP
  5.4.2 以太网
  5.4.3 链路层交换机
  5.4.4 虚拟局域网
 5.5 链路虚拟化:网络作为链路层
 5.6 数据中心网络
  5.6.1 负载均衡
  5.6.2 等级体系结构
  5.6.3 数据中心网络的发展趋势
 5.7 回顾:Web页面请求的历程
  5.7.1 准备:DHCP、UDP、IP和以太网
  5.7.2 仍在准备:DNS和ARP
  5.7.3 仍在准备:域内路由选择到DNS服务器
  5.7.4 Web客户-服务器交互:TCP和HTTP
 5.8 小结
 课后习题和问题
  复习题
  习题
 Wireshark实验
 人物专访
第6章 无线网络和移动网络
 6.1 概述
 6.2 无线链路和网络特征
 6.3 WiFi:802.11无线LAN
  6.3.1 802.11体系结构
  6.3.2 802.11 MAC协议
  6.3.3 IEEE 802.11帧
  6.3.4 在相同的IP子网中的移动性
  6.3.5 802.11中的高级特色
  6.3.6 802.11以外的标准:蓝牙和ZigBee
 6.4 蜂窝因特网接入
  6.4.1 蜂窝网体系结构概述
  6.4.2 3G蜂窝数据网:将因特网扩展到蜂窝用户
  6.4.3 走向4G:LTE
 6.5 移动管理:原理
  6.5.1 寻址
  6.5.2 路由选择到移动结点
 6.6 移动IP
 6.7 蜂窝网中的移动性管理
  6.7.1 对移动用户呼叫的路由选择
  6.7.2 GSM中的切换
 6.8 无线和移动性:对高层协议的影响
 6.9 小结
 课后习题和问题
  复习题
  习题
 Wireshark实验
 人物专访
第7章 多媒体网络
 7.1 多媒体网络应用
  7.1.1 视频的性质
  7.1.2 音频的性质
  7.1.3 多媒体网络应用的类型
 7.2 流式存储视频
  7.2.1 UDP流
  7.2.2 HTTP流
  7.2.3 适应性流和DASH
  7.2.4 内容分发网
  7.2.5 学习案例:Netflix、YouTube和“看看”
 7.3 IP语音
  7.3.1 尽力而为服务的限制
  7.3.2 在接收方消除音频的时延抖动
  7.3.3 从丢包中恢复
  7.3.4 学习案例:使用Skype的VoIP
 7.4 实时会话式应用的协议
  7.4.1 RTP
  7.4.2 SIP
 7.5 支持多媒体的网络
  7.5.1 定制尽力而为网络
  7.5.2 提供多种类型的服务
  7.5.3 区分服务
  7.5.4 每连接服务质量保证:资源预约和呼叫准入
 7.6 小结
 课后习题和问题
  复习题
  习题
 编程作业
 人物专访
第8章 计算机网络中的安全
 8.1 什么是网络安全
 8.2 密码学的原则
  8.2.1 对称密钥密码体制
  8.2.2 公开密钥加密
 8.3 报文完整性和数字签名
  8.3.1 密码散列函数
  8.3.2 报文鉴别码
  8.3.3 数字签名
 8.4 端点鉴别
  8.4.1 鉴别协议ap1.0
  8.4.2 鉴别协议ap2.0
  8.4.3 鉴别协议ap3.0
  8.4.4 鉴别协议ap3.1
  8.4.5 鉴别协议ap4.0
 8.5 安全电子邮件
  8.5.1 安全电子邮件
  8.5.2 PGP
 8.6 使TCP连接安全:SSL
  8.6.1 宏观描述
  8.6.2 更完整的描述
 8.7 网络层安全性:IPsec和虚拟专用网
  8.7.1 IPsec和虚拟专用网
  8.7.2 AH协议和ESP协议
  8.7.3 安全关联
  8.7.4 IPsec数据报
  8.7.5 IKE:IPsec中的密钥管理
 8.8 使无线LAN安全
  8.8.1 有线等效保密
  8.8.2 IEEE 802.11i
 8.9 运行安全性:防火墙和入侵检测系统
  8.9.1 防火墙
  8.9.2 入侵检测系统
 8.10 小结
 课后习题和问题
  复习题
  习题
 Wireshark实验
 IPsec实验
 人物专访
第9章 网络管理
 9.1 什么是网络管理
 9.2 网络管理的基础设施
 9.3 因特网标准管理框架
  9.3.1 管理信息结构:SMI
  9.3.2 管理信息库:MIB
  9.3.3 SNMP协议运行和传输映射
  9.3.4 安全性和管理
 9.4 ASN.1
 9.5 小结
 课后习题和问题
  复习题
  习题
 人物专访
参考文献

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

华章出版社

官方博客
官网链接