计算机网络:系统方法(原书第6版)
作者 : [美]拉里·L. 彼得森(Larry L. Peterson) [美]布鲁斯·S. 戴维(Bruce S. Davie)著
译者 : 王勇 薛静锋 王李乐 等译
丛书名 : 计算机科学丛书
出版日期 : 2022-06-21
ISBN : 978-7-111-70567-3
适用人群 : 高等院校计算机专业学生,网络领域技术人员
定价 : 169.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 520
开本 : 16
原书名 : Computer Networks: A Systems Approach, Sixth Edition
原出版社: Elsevier Inc.
属性分类: 教材
包含CD : 无CD
绝版 :
图书简介

本书是计算机网络领域的经典教材,被哈佛大学、斯坦福大学、卡内基-梅隆大学、康奈尔大学、普林斯顿大学等众多名校采用。本书利用网络和协议设计的真实例子来探索计算机网络的关键原则。“系统方法”鼓励读者思考独立的网络组件如何融入更大、更复杂的交互系统。第6版延续了之前版本的特色,并基于专为本书开发的开源模型进行了全面更新,扩充了对于网络专业人员和学生而言至关重要的主题,涉及WiFi、蜂窝通信、安全、密码学、多媒体等众多应用。此外,对于喜欢采用“自上而下”方法教授网络课程的教师,本书还提供了扩展指南。

图书特色

经典教材全新升级,通过“系统方法”理解网络设计的重要原则

图书前言

本书第5版出版至今已近10年。在这段时间里,计算机网络发生了很大的变化:最显著的是云和智能手机应用程序的暴增。在许多方面,这让人想起1996年我们出版第1版时Web在因特网上所产生的巨大影响。
第6版适应了时代,但保持了系统方法这个宗旨。概括而言,我们通过四种主要方式更新和改进新版:
更新一些示例以反映现状。这包括删除过时的技术(如拨号调制解调器),使用流行应用程序(如Netflix、Spotify)来阐述问题,更新数字以代表最先进的技术(如10 Gbps以太网)。
将推动多播、实时视频流和服务质量等技术发展的原始研究与现在流行的云应用(如Zoom、Netflix和Spotify)联系起来。这符合我们对设计过程而不仅仅是最终结果的强调。这在今天尤为重要,因为因特网的许多功能主要由专用商业服务提供。
将因特网置于更广泛的云环境中,同样重要的是,置于塑造云的商业力量的环境中。这对整本书中的技术细节影响很小,每章末尾新增的“透视图”部分将对此进行讨论。我们希望这些讨论能引导读者了解因特网的不断发展,并理解其中的智慧和创新机会。
一系列关键要点给出了网络设计的重要原则。每一个结论都是对一般系统设计规则或基本网络概念的简明陈述,并利用了文中的相关示例。从教学角度来看,这些结论与本书的高级学习目标相对应。
第6版中的新内容
更具体地说,第6版包括以下主要变化:
第1章新增的透视图介绍了之后将会反复出现的云化主题。
新增的2.8节描述了接入网络,包括无源光网络(PON)和5G的无线接入网络(RAN)。
重构了3.1节(交换基础)和3.2节(交换式以太网)中的主题,扩充了VLAN的内容。
更新3.5节,新增对白盒交换机和软件定义网络(SDN)的说明。
第3章中新增的透视图描述了虚拟网络覆盖、VXLAN以及覆盖在云中的作用。
重构了4.1节(全球互联网)和4.2节(IPv 6)中的主题。
第4章的透视图部分描述了云如何影响因特网结构。
对5.2节进行了扩展,新增对QUIC的讨论。
对5.3节进行了扩展,新增对gRPC的说明。
更新6.3节和6.4节,新增对TCP CUBIC、DCTCP和BBR的说明。
对6.4节进行了扩展,新增对主动队列管理(AQM)的描述。
对7.1节进行了扩展,新增对协议缓冲区的描述。
对7.2.4节进行了扩展,新增对HTTP自适应流的描述。
新增的8.1节介绍了威胁和信任的双重性。
重构了8.3节(密钥预分发)和8.4节(认证协议)中的主题。
第8章中的透视图部分描述了去中心化的身份认证和区块链的作用。
对9.1节进行了更新,新增对HTTP/2的描述,以及对REST、gRPC和云服务的讨论。
对9.3节进行了扩展,新增对现代网络管理系统的描述,包括OpenConfig和gNMI的使用。
内容组织
要围绕本书构建一门网络课程,有必要先了解本书的组织架构。本书包含三个主要部分:
概念性和基础性内容,即网络的核心思想;
核心协议和算法,说明如何将基本思想付诸实践;
高级材料,可作为可选材料用于一学期的课程。
这种描述可以应用于章层面:第1章是基础,第2、3、5和9章是核心,第4、6、7和8章涵盖更高级的主题。
这种描述也可以应用于节层面,粗略地说,每一章都从基本概念到具体技术再到高级技术逐步展开。例如,第3章首先介绍交换式网络的基础知识(3.1节),然后介绍交换式以太网和IP互联网的具体情况(3.2~3.4节),最后讨论SDN(3.5节)。同样,第6章从基本思想(6.1~6.2节)开始,然后探讨TCP拥塞控制(6.3节),最后介绍可选的高级材料(6.4~6.5节)。
致谢
我们要感谢以下人员针对新内容所提供的帮助:
Larry Brakmo(TCP拥塞控制)
Carmelo Cascone(白盒交换机)
Charles Chan(白盒交换机)
Jude Nelson(去中心化的身份认证)
Oguz Sunay(蜂窝网络)
Thomas Vachuska(网络管理)
我们还要感谢以下人员(GitHub用户)的贡献和提供的勘误:
Mohammed Al-Ameen
Mike Appelman
Andy Bavier
Manuel Berfelde
Brian Bohe
Peter DeLong
Chris Goldsworthy
John Hartman
Ethan Lam
Diego López León
Matteo Scandolo
Mike Wawrzoniak
罗泽轩(spacewander)
Arnaud(arvdrpoo)
Desmond(kingdido999)
Guo(ZJUGuoShuai)
Hellman(eshellman)
Xtao(vertextao)
Joep(joepeding)
Seth(springbov)
最后,我们要感谢下面的审稿人,感谢他们提出了许多有益的意见和建议。他们的影响是巨大的:
Mark J. Indelicato(罗切斯特理工学院)
Michael Yonshik Choi(伊利诺伊理工学院)
Sarvesh Kulkarni(维拉诺瓦大学)
Alexander L. Wijesinha(陶森大学)
相关资源
这本书的开源资源可以在https://github.com/SystemsApproach上找到,根据知识共享(CC BY 4.0)许可证的条款提供,并邀请社区成员根据相同条款提供更正、改进、更新和新材料。
像许多开源软件项目一样,这一项目的内容也曾一度受到限制:本书第5版的版权由爱思唯尔所有。我们希望,本书的开源既能促进其广泛使用,又能吸引新的内容:更新已有内容,扩展内容以涵盖新的主题,并用额外的教学辅助资料扩充正文。
如果你使用本书,其归属应包括以下信息:
书名:计算机网络:系统方法
作者:Larry Peterson和Bruce Davie
版权所有:Elsevier,2022
来源:https://github.com/SystemsApproach
许可证:CCBY 4.0(https://creativecommons.org/licenses/by/4.0)
如何做出贡献
我们希望,如果你使用本书,也会愿意为其做出贡献。如果你是开源新手,可以看看“如何为开源做出贡献”(https://opensource.guide/how-to-contribute)这份指南。除此之外,你还将了解如何发布你希望解决的“问题”,并“请求”将你的改进合并回GitHub。
我们希望你多年来从本书中有所收获,我们也热切希望你加入我们的新探险。
实验教程
最后,与第5版一样,本书配有一套实验。这些实验由马萨诸塞大学达特茅斯分校的Emad Aboelela教授开发,通过仿真实验来探讨本书中协议的行为、可扩展性和性能。讨论实验相关材料的章节均带有标记。仿真使用OPNET仿真工具集。

Larry L. Peterson
Bruce S. Davie
2020年11月

上架指导

计算机\网络

封底文字

第6版对云技术给予了极大的关注,并且讨论了与安全相关的信任、身份和区块链等问题。然而,如果回看第1版,你会发现其中的基本概念是相同的。本书正是网络这个故事的现代版本,包含众多与时俱进的新实例和新技术。
—— David D. Clark 麻省理工学院

无论是第一次向本科生介绍网络知识,还是为了扩大研究生的知识面,本书都是完美的选择。多年来,我一直信任第5版,现在很高兴将我的学生和他们即将创造的未来网络“托付”给第6版。
—— Christopher (Kit) Cischke 密歇根理工大学

本书不仅描述“怎么做”,而且解释“为什么”,以及同样重要的“为什么不”。这是一本能够帮助学生建立工程直觉的书,并且可以培养学生就设计或选择下一代系统做出正确决策的能力,在技术快速变革的时代,这一点至关重要。
—— Roch Guerin 宾夕法尼亚大学

作者在不牺牲技术严谨性的情况下,将网络简化为简单且易于组织和呈现的概念。本书在网络架构设计的基本原则和构建于其上的应用程序之间取得了平衡,对网络课程的学生和教师来说是必不可少的资源。
—— Arvind Krishnamurthy 华盛顿大学

教授计算机网络课程多年,阅读了几乎每一本相关教材,我可以负责任地说,没有哪本书比这本书更好。虽然分层方法对于初学者学习网络基础知识非常有用(本书也可以这样使用),但系统方法才是我在课堂上所采用的,也是深受认可的,它帮助学生完成了从学习到实践的过程。
—— G. Aaron Wilkin 罗斯-霍曼理工学院

图书序言

序  言
Computer Networks: A Systems Approach, Sixth Edition
亲爱的读者:在你开始读这本书之前,先花点时间把你的时间机器设定在1996年,也就是这本书的第1版出版的时候。你还记得1996年吗?那时你出生了吗?人们似乎忘记了因特网的基础是多久以前建立的。
1996年,NSFNET退役,因特网的商业阶段才刚刚开始。第一个搜索引擎(Alta Vista,你还记得吗?)刚刚问世。内容分发网络并不存在—Akamai成立于两年后的1998年,也就是谷歌正式诞生的同一年。云只是地平线上远处的一片薄雾,而且没有住宅宽带或消费者无线网络这样的东西,我们使用的是拨号调制解调器—56 K调制解调器刚刚发明。在那之前有分组无线电,但它比拨号的速度慢,而且体积有冰箱那么大,需要一辆卡车或至少一辆吉普车才能移动。
1995年左右,Peterson和Davie决定写这本书。从今天的角度来看,我们可能很难记得1996年这样一本书有多么重要,它抓住了很多隐性知识,让任何愿意阅读的人都能读到。它不仅给出了一系列的协议描述,还讲解了各个部分如何组合在一起。它说明了因特网是如何工作的,而不仅仅是列出它的组成部分。
思考因特网如何发展的一种方式是通过应用程序设计者的视角。毕竟,因特网作为分组传输系统的目的是支持应用程序,只有极客才会发送分组来取乐。1996年,如果你想构建一个应用程序,则这个生态系统包括IP分组传输服务、TCP(用以消除因特网层的丢包)、DNS,所需要的任何其他东西都必须从头开始构建。
现在,应用程序设计者有很多资源可用于构建应用程序:云、云网络、可以将服务连接在一起的其他全球网络、CDN、应用程序开发环境,等等。其中一些可能看起来与1996年的情况大不相同,细节上也是如此。云数据中心在成本、能效、性能和恢复能力方面已经变得非常成熟。(不过,我讨厌用“云”这个词,在我看来,“云”是用来形容柔软而蓬松的东西的,但如果你见过足球场那么大的兆瓦级耗电量的数据中心,你就不会觉得柔软和蓬松。)关于如何建立一个现代化的数据中心,有很多东西需要学习。但基本原理是一样的:分组转发、统计容量共享、传输协议、路由协议、追求通用性和广泛实用性,等等。
展望未来,云等技术显然是核心,本书对云给予了相当大的关注。提高安全性等要求至关重要,本书还讨论了与安全相关的其他问题:信任、身份和新的热门话题——区块链。然而,如果你翻看第1版,会发现许多基本概念是相同的。本书正是这个故事的现代版本,包含新的示例和现代技术。请欣赏吧。

David D. Clark
麻省理工学院
美国马萨诸塞州剑桥市
2020年10月




第1版序言
Computer Networks: A Systems Approach, Sixth Edition
面条型代码(spaghetti code)一词普遍被认为是一种侮辱。所有优秀的计算机科学家都推崇模块化,这是因为它能带来许多好处,最大的好处是解决问题而不必了解问题的所有环节。因此,本书在表达观点和编写代码时,模块化扮演着重要的角色。如果一本书的材料以模块化的方式有效地组织起来,那么读者就会很乐意从头读到尾。
在网络协议领域,采用国际标准形式即ISO的七层网络协议参考模型,给出了“恰当的”模块化,这或许是独一无二的。该模型反映了一种分层的模块化方法,经常作为讨论协议的起点,以分析所讨论的设计是符合还是偏离这种模型。
看上去根据这种分层模型来组织一本网络书籍是理所当然的。但事实上这样做是有风险的,因为OSI模型在组织网络的核心概念时并不成功。一些基本需求,如可靠性、流量控制或安全,能够在多数(即使不是所有)OSI分层中解决。这种实际情况导致对参考模型理解的巨大混乱,有时甚至产生怀疑。实际上,如果严格按照层次模型来组织一本书,那么它就具有某些面条型代码的特点了。
本书是根据什么来组织的呢?Peterson和Davie遵循传统的分层模型,但他们并不否认该模型实际上无助于理解网络中的重大问题。作者采用一种与层次无关的方法来组织基本概念的讨论。因此,在阅读本书后,读者将会理解流量控制、拥塞控制、可靠性增强、数据的表示以及同步等问题。同时,读者将了解在传统分层模型的某一层中如何解决这些问题。
这是一本与时俱进的书。本书着眼于当前使用的重要协议,尤其是有关因特网的协议。Peterson和Davie长期从事因特网相关工作,具有丰富的经验。因此,他们的书不仅从理论上而且从实践上揭示了协议设计的问题。本书也介绍了许多新的协议,读者可以从中获取新的观点。更重要的是,本书对基本问题的讨论源自问题的本质,而不受分层参考模型或当前协议细节的限制。在这一点上,本书既体现了时效性,又不受时间的限制。本书的独特之处在于它将有关的实际问题、实例和基本概念的解释有机地结合在一起。

David D. Clark
麻省理工学院
美国马萨诸塞州剑桥市

译者序

由Larry L. Peterson和Bruce S. Davie两位顶尖网络专家撰写的《计算机网络:系统方法》已经成为计算机网络课程的主流教材,被哈佛大学、斯坦福大学、卡内基·梅隆大学、康奈尔大学、普林斯顿大学等国外众多名校采用。本书英文版已经更新到第6版,为了方便国内高校师生和广大读者使用这本经典教材,我们继续翻译了这一版。
第6版紧跟计算机网络近年来的发展热点,特别是云计算和智能手机应用,对第5版做了改进和提升,同时删除了过时的技术。书中增加或扩展了接入网络技术[无源光网络(PON)]、虚拟局域网(VLAN)、软件定义网络(SDN)、可靠的端到端传输(QUIC、gRPC)、拥塞控制机制(TCP CUBIC、DCTCP和BBR)、协议缓冲区、HTTP/2、现代网络管理系统(OpenConfig、gNMI)等内容,删减了拨号调制解调器等过时的内容。在新增加的透视图部分重点介绍了云、虚拟网络覆盖、去中心化身份管理和区块链等内容,以反映现实世界中计算机网络的发展状况。
作者强调网络现有工作方式的成因,采用“系统方法”将网络看作由相互关联的构造模块组成的系统(反对严格的分层),并引入丰富的因特网实例说明实际网络的设计。书中给出的程序代码不是基于某个特定的操作系统,而是经过重新改编以适应通用环境,说明网络软件是如何实现的,从而帮助读者了解网络的基础构件是如何结合在一起的。
本书是目前内容较新的关于计算机网络的优秀教材,为学生和专业人士理解现行的网络技术以及即将出现的新技术奠定了良好的理论基础。
本书由北京理工大学计算机学院的王勇副教授主持翻译,参加翻译工作的有北京理工大学的王勇(第1、2、3章)、薛静锋(第4章)、刘振岩(第5章)、张继(第6章),公安部第三研究所的王李乐(第7、8章),山东兖矿技师学院的解旭东(第9章、前言、习题选答、术语表)。另外,北京理工大学的研究生李雪薇和彭金雪对本书的译稿进行了校对。
由于译者水平有限,书中可能有错误或不甚完善之处,读者如果有意见或建议,欢迎通过E-mail与译者联系:wangyong@bit.edu.cn。

译者

图书目录

赞誉
译者序
序言
第1版序言
前言
第1章 基础 1
问题:建造网络 1
1.1 应用 2
1.2 需求 4
1.2.1 利益相关者 5
1.2.2 可扩展的连通性 5
1.2.3 经济高效的资源共享 9
1.2.4 支持通用服务 11
1.2.5 可管理性 15
1.3 体系结构 15
1.3.1 分层和协议 16
1.3.2 封装 18
1.3.3 多路复用和多路分解 20
1.3.4 七层OSI模型 20
1.3.5 因特网体系结构 21
1.4 软件 23
1.4.1 应用编程接口(套接字) 24
1.4.2 应用示例 26
1.5 性能 29
1.5.1 带宽与时延 29
1.5.2 延迟带宽积 33
1.5.3 高速网络 34
1.5.4 应用的性能需求 35
透视图:功能增速 37
习题 38
第2章 直接相连 43
问题:连接到网络 43
2.1 技术概览 44
2.2 编码 47
2.3 组帧 50
2.3.1 面向字节的协议(PPP) 51
2.3.2 面向比特的协议(HDLC) 52
2.3.3 基于时钟的组帧(SONET) 53
2.4 差错检测 56
2.4.1 因特网校验和算法 57
2.4.2 循环冗余校验 58
2.5 可靠传输 62
2.5.1 停止等待 62
2.5.2 滑动窗口 64
2.5.3 并发逻辑信道 72
2.6 多路访问网络 72
2.6.1 物理特性 73
2.6.2 访问协议 74
2.6.3 以太网使用经验 77
2.7 无线网络 77
2.7.1 基本问题 79
2.7.2 802.11/Wi-Fi 81
2.7.3 蓝牙(802.15.1) 86
2.8 接入网络 87
2.8.1 无源光网络 88
2.8.2 蜂窝网络 89
透视图:边缘竞赛 92
习题 94
第3章 网络互联 101
问题:并不是所有网络都是
直接相连的 101
3.1 交换基础 102
3.1.1 数据报 103
3.1.2 虚电路交换 104
3.1.3 源路由 111
3.2 交换式以太网 113
3.2.1 学习型网桥 114
3.2.2 实现 115
3.2.3 生成树算法 116
3.2.4 广播和多播 120
3.2.5 虚拟局域网(VLAN) 120
3.3 互联网(IP) 122
3.3.1 什么是互联网 122
3.3.2 服务模型 124
3.3.3 全局地址 129
3.3.4 IP数据报转发 130
3.3.5 子网划分和无类地址 132
3.3.6 地址转换(ARP) 137
3.3.7 主机配置(DHCP) 139
3.3.8 差错报告(ICMP) 141
3.3.9 虚拟网络和隧道 142
3.4 路由 144
3.4.1 用图表示网络 146
3.4.2 距离向量(RIP) 147
3.4.3 链路状态(OSPF) 153
3.4.4 度量 159
3.5 实现 162
3.5.1 软件交换机 162
3.5.2 硬件交换机 163
3.5.3 软件定义网络 165
透视图:虚拟网络一直走下去 167
习题 168
第4章 高级网络互联 179
问题:扩展到数十亿节点 179
4.1 全球互联网 179
4.1.1 路由区 181
4.1.2 域间路由(BGP) 182
4.2 IPv6 190
4.2.1 历史视角 190
4.2.2 地址和路由 191
4.2.3 分组格式 194
4.2.4 高级功能 196
4.3 多播 197
4.3.1 多播地址 198
4.3.2 多播路由(DVMRP、PIM、MSDP) 199
4.4 多协议标签交换(MPLS) 208
4.4.1 基于目的地的转发 209
4.4.2 显式路由 213
4.4.3 虚拟专用网和隧道 214
4.5 移动设备之间的路由 217
4.5.1 移动网络的挑战 218
4.5.2 路由到移动主机(移动IP) 219
透视图:云正在“吞噬”因特网 224
习题 225
第5章 端到端协议 229
问题:进程间如何通信 229
5.1 简单多路分解(UDP) 230
5.2 可靠字节流(TCP) 232
5.2.1 端到端问题 232
5.2.2 报文段格式 234
5.2.3 连接建立与终止 236
5.2.4 再论滑动窗口 240
5.2.5 触发传输 244
5.2.6 自适应重传 246
5.2.7 记录边界 249
5.2.8 TCP扩展 250
5.2.9 性能 251
5.2.10 其他设计选择(SCTP、QUIC) 253
5.3 远程过程调用 256
5.3.1 RPC基础 256
5.3.2 RPC实现(SunRPC、DCE、gRPC) 261
5.4 实时传输(RTP) 270
5.4.1 需求 271
5.4.2 RTP设计 272
5.4.3 控制协议 275
透视图:HTTP是新的“细腰” 277
习题 279
第6章 拥塞控制 286
问题:分配资源 286
6.1 资源分配问题 287
6.1.1 网络模型 287
6.1.2 分类方法 290
6.1.3 评价标准 292
6.2 排队规则 294
6.2.1 FIFO 294
6.2.2 公平排队 295
6.3 TCP拥塞控制 298
6.3.1 加性增/乘性减 299
6.3.2 慢启动 301
6.3.3 快速重传和快速恢复 305
6.3.4 TCP CUBIC 307
6.4 高级拥塞控制 308
6.4.1 主动队列管理(DECbit、RED、ECN) 308
6.4.2 基于源的拥塞避免(Vegas、BBR、DCTCP) 313
6.5 服务质量 319
6.5.1 应用需求 319
6.5.2 综合服务(RSVP) 323
6.5.3 区分服务(EF、AF) 330
6.5.4 基于方程的拥塞控制 334
透视图:软件定义流量工程 336
习题 337
第7章 端到端数据 344
问题:我们用数据做什么? 344
7.1 表示格式化 345
7.1.1 分类方法 346
7.1.2 例子(XDR、ASN.1、NDR、Protobufs) 349
7.1.3 标记语言(XML) 354
7.2 多媒体数据 357
7.2.1 无损压缩技术 358
7.2.2 图像表示和压缩(GIF、JPEG) 360
7.2.3 视频压缩(MPEG) 364
7.2.4 在网上传输MPEG 368
7.2.5 音频压缩(MP3) 370
透视图:大数据和分析 371
习题 373
第8章 网络安全 377
问题:安全攻击 377
8.1 信任和威胁 378
8.2 密码构建块 379
8.2.1 密码原理 379
8.2.2 对称密钥密码 381
8.2.3 公钥密码 382
8.2.4 认证码 384
8.3 密钥预分发 386
8.3.1 公钥预分发 387
8.3.2 对称密钥预分发 390
8.3.3 Diffie-Hellman密钥交换 391
8.4 认证协议 392
8.4.1 原始性和时效性技术 393
8.4.2 公钥认证协议 394
8.4.3 对称密钥认证协议 395
8.5 系统实例 398
8.5.1 良好隐私 398
8.5.2 安全外壳 400
8.5.3 传输层安全(TLS、SSL、HTTPS) 402
8.5.4 IP安全 405
8.5.5 无线安全(802.11i) 407
8.5.6 防火墙 408
透视图:区块链和去中心化因特网 412
习题 414
第9章 应用 417
问题:应用需要自己的协议 417
9.1 传统应用 417
9.1.1 电子邮件(SMTP、MIME、IMAP) 418
9.1.2 万维网(HTTP) 424
9.1.3 Web服务 430
9.2 多媒体应用 437
9.2.1 会话控制和呼叫控制(SDP、SIP、H.323) 437
9.2.2 多媒体应用的资源分配 444
9.3 基础设施应用 447
9.3.1 名字服务(DNS) 448
9.3.2 网络管理(SNMP、OpenConfig) 455
9.4 覆盖网络 458
9.4.1 路由覆盖网络 460
9.4.2 对等网 465
9.4.3 内容分发网络 474
透视图:云是新的因特网 478
习题 479
习题选答 483
术语表 493

教学资源推荐
作者: 王志文 陈妍 夏秦 何晖 编著
作者: 肖明
作者: 卓伟 李俊锋 李占波 主编
参考读物推荐
作者: 孙燕唐等译
作者: 毛广献 编著