编辑推荐
《计算机网络:自顶向下方法(原书第6版)》是当前世界上流行的计算机网络教科书之一,采用作者独创的自顶向下方法讲授计算机网络的原理及其协议,即从应用层协议开始沿协议栈向下讲解,让读者从实现、应用的角度明白各层的意义,强调应用层范例和应用编程接口,使读者尽快进入每天使用的应用程序环境之中进行学习和“创造”。
内容简介
《计算机网络:自顶向下方法(原书第6版)》第1版于12年前出版,首创采用自顶向下的方法讲解计算机网络的原理和协议,出版以来已被几百所大学和学院选用。是业界经典的计算机网络教材之一。
《计算机网络:自顶向下方法(原书第6版)》继续保持了以前版本的特色,为计算机网络教学提供了一种新颖和与时俱进的方法。
同时也进行了相当多的修订和更新:第1章更多地关注时下,更新了接入网的论述;第2章用Python替代了Java来介绍套接字编程;第3章补充了用于优化云服务性能的TCP分岔知识;第4章有关路由器体系结构的内容做了大量更新;第5章重新组织并新增了数据中心网络的内容;第6章更新了无线网络的内容以反映其全新进展;第7章进行了较大修订,深入讨论了流式视频,包括了适应性流和CDN的讨论;第8章进一步讨论了端点鉴别;等等。另外,书后习题也做了大量更新。
《计算机网络:自顶向下方法(原书第6版)》适合作为本科生或研究生“计算机网络”课程的教材,同时也适合网络技术人员、专业研究人员阅读。
作者简介
James F.Kurose,是美国马萨诸塞大学阿默斯特分校计算机科学系教授。Kurose博士的教育工作已经得到了广泛认可。他获得了IEEE Taylor Booth教育奖章,确立了在马萨诸塞共同体信息技术促进会的领导地位。他还获得了通用电气公司研究基金、IBM教职员发展奖和Lilly研究基金。Kurose博士是《IEEE通信学报》和《IEEE/ACM网络学报》的前任主任编辑。多年来,他一直在IEEE Infocom、ACM SIGCOMM、ACM Internet Measurement Conference和ACM SIGMETRICS程序委员会中工作,并担任这些会议的技术程序联合主席。他是IEEE和ACM的会员。他的研究兴趣包括网络协议和体系结构、网络测量、传感器网络、多媒体通信以及建模和性能评价。他拥有哥伦比亚大学计算机科学的博士学位。
Keith W.Ross,是美国纽约理工大学(布鲁克林校区)计算机科学系的Leomard J.Shustek教授。从1985年到1998年,他是宾西法尼亚大学系统工程系的教授。从1998年到2003年,他是法Eureeom学院多媒体通信系的教授。Keith W.Ross也是Wimba的主要创立者和首任CEO,该公司为电子学习市场研发了IP话音和流技术。Ross教授的研究兴趣包括对等网络、因特网测量、视频流、Web缓存、内容分发网络、网络安全、IP话音和随机建模。他是IEEE的会员,目前是《IEEE/ACM网络学报》的副编辑。他是联邦贸易委员会P2P文件共享的顾问。他一直在IEEE Infocom、ACM SIGCOMM、ACMMultimedia、ACM Internet Measurement Conference和ACM SIGMETRICS程序委员会中工作。他拥有密歇根大学计算机、信息和控制工程的博士学位。
陈鸣,江苏无锡人,解放军理工大学教授、博士生导师,全军网络技术研究中心主任,军用网络技术实验室(军队重点实验室)主任;分别于1982年、1988年在解放军信息工程学院获得学士、硕士学位,于1991年在解放军通信工程学院获得博士学位,1999~2000年为美国哥伦比亚大学访问科学家,任中国计算机学会网络与数据通信专委会副主任,是中国通信学会等多个学术团体委员和IEEE会员;长期从事网络测量、分布式系统、网络体系结构、网络管理等领域研究和教学工作;承担了国家自然科学基金、国家863、国家973子课题等项目;开发的多个网络管理系统和应用系统得到广泛应用;撰写网络著作近10本,发表SCI/EI论文几十篇,有国家发明专利8项;获得国家教学成果二等奖1项、省部级科技进步二、三等奖十几项。
内页插图
目录
出版者的话
作译者简介
译者序
前言
第1章 计算机网络和因特网
1.1 什么是因特网
1.1.1 具体构成描述
1.1.2 服务描述
1.1.3 什么是协议
1.2 网络边缘
1.2.1 接入网
1.2.2 物理媒体
1.3 网络核心
1.3.1 分组交换
1.3.2 电路交换
1.3.3 网络的网络
1.4 分组交换网中的时延、丢包和吞吐量
1.4.1 分组交换网中的时延概述
1.4.2 排队时延和丢包
1.4.3 端到端时延
1.4.4 计算机网络中的吞吐量
1.5 协议层次及其服务模型
1.5.1 分层的体系结构
1.5.2 封装
1.6 面对攻击的网络
1.7 计算机网络和因特网的历史
1.7.1 分组交换的发展:1961~1972
1.7.2 专用网络和网络互联:1972~1980
1.7.3 网络的激增:1980~1990
1.7.4 因特网爆炸:20世纪90年代
1.7.5 最新发展
1.8 小结
课后习题和问题
复习题
习题
Wireshark实验
人物专访
第2章 应用层
2.1 应用层协议原理
2.1.1 网络应用程序体系结构
2.1.2 进程通信
2.1.3 可供应用程序使用的运输服务
2.1.4 因特网提供的运输服务
2.1.5 应用层协议
2.1.6 本书涉及的网络应用
2.2 Web和HTTP
2.2.1 HTTP概况
2.2.2 非持续连接和持续连接
2.2.3 HTTP报文格式
2.2.4 用户与服务器的交互:cookie
2.2.5 Web缓存
2.2.6 条件GET方法
2.3 文件传输协议:FTP
2.4 因特网中的电子邮件
2.4.1 SMTP
2.4.2 与HTTP的对比
2.4.3 邮件报文格式和MIME
2.4.4 邮件访问协议
2.5 DNS:因特网的目录服务
2.5.1 DNS提供的服务
2.5.2 DNS工作机理概述
2.5.3 DNS记录和报文
2.6 P2P应用
2.6.1 P2P文件分发
2.6.2 分布式散列表
2.7 TCP套接字编程
2.7.1 UDP套接字编程
2.7.2 TCP套接字编程
2.8 小结
课后习题和问题
复习题
习题
套接字编程作业
Wireshark实验:HTTP
Wireshark实验:DNS
人物专访
第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 网络辅助的拥塞控制例子:ATMABR拥塞控制
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 IPv
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.1 1无线LAN
6.3.1 802.1 1体系结构
6.3.2 802.1 1MAC协议
6.3.3 IEEE802.1 1帧
6.3.4 在相同的IP子网中的移动性
6.3.5 802.1 1中的高级特色
6.3.6 802.1 1以外的标准:蓝牙和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.0
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 IEEE802.1 1i
8.9 运行安全性:防火墙和入侵检测系统
8.9.1 防火墙
8.9.2 入侵检测系统
8.1 0小结
课后习题和问题
复习题
习题
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.
9.5 小结
课后习题和问题
复习题
习题
人物专访
参考文献
前言/序言
探索互联网的奥秘:连接世界的基石 在当今高度互联的数字时代,互联网已不再是遥不可及的科技概念,而是我们生活中不可或缺的一部分。从清晨的邮件推送,到午间的视频会议,再到夜晚的在线娱乐,每一次的点击、每一次的刷新,背后都蕴藏着一套精妙绝伦的机制。那么,我们每天使用的互联网究竟是如何工作的?它是如何将全球数十亿的设备连接起来,实现如此海量信息的瞬时传输?又是什么样的设计理念,让这个庞大的网络体系能够持续演进并保持其强大的生命力? 本书将带您踏上一场深入互联网核心的探索之旅,揭示那些构建起我们数字世界的基石。我们将从一个宏大的视角出发,审视互联网的整体架构,理解其分层设计的重要性,并逐一剖析每一层所扮演的关键角色。这不是一本枯燥的技术手册,而是一次生动的技术解析,旨在让您不仅了解“是什么”,更能洞悉“为什么”。 从应用层开始,理解用户最直接的体验 我们的互联网体验始于应用层,这里汇聚了我们日常接触到的各种网络应用。您是否曾经好奇,当您在浏览器中输入一个网址,按下回车键后,发生了什么?网页是如何被拉取并呈现在您眼前的?这背后涉及了诸如 HTTP (超文本传输协议) 这样的关键协议,它定义了浏览器和Web服务器之间如何进行通信,包括请求和响应的格式。我们将详细讲解HTTP的工作原理,理解GET、POST等请求方法的含义,以及状态码的意义,例如200 OK表示成功,404 Not Found表示找不到资源。 电子邮件,作为信息沟通的基石,同样依赖于一套成熟的应用层协议。SMTP (简单邮件传输协议) 负责将邮件从发送方传输到接收方,而 POP3 (邮局协议版本3) 和 IMAP (互联网消息访问协议) 则允许用户从邮件服务器上检索和管理邮件。我们将深入探讨这些协议的设计,理解它们在邮件发送、接收和同步过程中所起的作用,以及它们之间微妙的差异。 您可能还熟悉 DNS (域名系统),它如同互联网的电话簿,将我们易于记忆的域名(如www.example.com)解析成计算机能够理解的IP地址。没有DNS,我们将需要记忆一长串的数字才能访问网站,这显然是不现实的。我们将揭示DNS的层级结构,了解其解析过程,以及缓存机制如何提高效率。 此外,我们还会触及其他重要的应用层协议,例如文件传输协议 FTP,以及用于远程登录的 SSH,了解它们在特定场景下的应用和原理。通过对这些应用层协议的深入理解,您将能够更清晰地认识到,用户界面背后的数据交互是如何实现的。 传输层:可靠的旅程,亦或是高效的传输? 一旦数据通过应用层协议被封装,它就需要被可靠或高效地传输到目的地。这就是传输层的作用。在这里,两个最核心的协议将浮出水面:TCP (传输控制协议) 和 UDP (用户数据报协议)。 TCP以其可靠性而闻名。它提供了端到端的连接,确保数据能够按顺序、无丢失地到达接收端。这通过一系列复杂的机制实现,包括: 三次握手 (Three-Way Handshake):在建立连接时,TCP通过三次消息的交换,确保双方都准备好进行通信。 序号 (Sequence Numbers) 和 确认应答 (Acknowledgments):TCP为每个发送的数据段分配一个序号,接收方收到后会发送一个确认应答,如果发送方在规定时间内未收到确认,则会重新发送。 流量控制 (Flow Control):TCP会根据接收方的处理能力调整发送数据的速率,防止发送方发送过多数据导致接收方不堪重负。 拥塞控制 (Congestion Control):当网络出现拥塞时,TCP能够动态地调整发送速率,避免加剧网络拥塞,并努力在拥塞缓解后恢复传输速率。 我们将详细讲解TCP的这些机制,理解它是如何通过这些精妙的设计,保证了如Web浏览、文件下载等对可靠性要求极高的应用的顺畅运行。 相比之下,UDP则提供了一种尽力而为 (Best-Effort) 的传输服务。它没有复杂的连接建立过程,也没有序号、确认应答等可靠性机制。UDP的优势在于其速度和效率。因此,对于对实时性要求极高,但可以容忍少量数据丢失的应用,如在线游戏、视频会议、流媒体播放,UDP是更合适的选择。我们将探讨UDP的特点,并分析它在何时何地是优于TCP的。 网络层:找到正确的路径,通往世界 在传输层之上,网络层承担着将数据包从源主机路由到目的主机的任务,无论它们相隔多远。这里的核心概念是IP (网际协议),以及它所依赖的路由选择 (Routing) 机制。 IP协议为互联网上的每一台设备分配了一个唯一的IP地址,它类似于家庭的街道地址。然而,IP地址本身并不足以指导数据包的传输,还需要一个路由表 (Routing Table) 来指示数据包应该走向何方。 我们将深入探讨路由器 (Routers) 的工作原理,理解它们如何接收数据包,查找路由表,并将数据包转发到下一跳。这一过程涉及复杂的路由协议 (Routing Protocols),例如RIP(路由信息协议)和OSPF(开放最短路径优先),这些协议使路由器能够动态地学习网络拓扑,并计算出最佳的传输路径。 我们还会讨论无类别域间路由选择 (CIDR),以及网络地址转换 (NAT) 技术,理解它们如何有效地管理日益增长的IP地址空间,并解决IP地址短缺的问题。通过对网络层的学习,您将对数据包如何在庞大的互联网中穿梭,最终找到目的地,有一个清晰的认识。 链路层和物理层:最后的“一英里” 数据包在网络层被封装后,需要经过链路层和物理层才能真正地在物理介质上传输。 链路层 (Link Layer) 负责在直接相连的两个节点之间可靠地传输数据帧。它处理MAC地址(媒体访问控制地址),这是网络接口卡的唯一物理地址,类似于家庭的门牌号。我们将探讨以太网 (Ethernet) 等常见的链路层技术,理解其如何进行帧的封装和解封装,以及冲突检测和避免机制(如CSMA/CD)。 物理层 (Physical Layer) 则是将链路层传输的比特流转换为物理信号(如电信号、光信号)并在通信介质(如铜线、光纤、无线电波)上进行传输。虽然它看起来是最底层的,但它的实现对于网络的整体性能至关重要。我们将简要介绍不同类型的通信介质及其特性。 深入理解互联网的架构和原则 除了对每一层协议的详细解析,本书还将贯穿一些核心的设计理念和原则,帮助您从更宏观的层面理解互联网的成功之处: 分层抽象 (Layered Abstraction):为什么将网络功能划分为不同的层是如此重要?它如何简化设计、促进标准化和模块化? 端到端原则 (End-to-End Principle):在网络设计中,智能应该更多地体现在端点,而不是中间节点。这一原则是如何指导互联网的发展的? 分组交换 (Packet Switching):与传统的电路交换相比,分组交换为何能更有效地利用网络资源? 开放标准 (Open Standards):互联网的开放性是如何促进其广泛应用和快速发展的? 通过对这些原则的探讨,您将不仅仅是学习一套技术,更是理解一套解决复杂工程问题的思想体系。 超越基础:更广泛的网络主题 本书还将触及一些更广泛但同样重要的网络主题,例如: 网络安全 (Network Security):在日益复杂的网络环境中,如何保护我们的数据和通信免受威胁?我们将简要介绍加密、身份验证和防火墙等概念。 网络性能测量 (Network Performance Measurement):如何评估和诊断网络的性能问题? 未来网络展望 (Future Network Trends):对下一代网络技术,如软件定义网络 (SDN) 和网络功能虚拟化 (NFV) 的初步探讨。 为何要深入了解计算机网络? 无论您是计算机科学专业的学生,是软件开发者,是系统管理员,甚至是希望更深入理解数字世界运作方式的爱好者,掌握计算机网络知识都将为您带来巨大的价值。它不仅是理解现代信息技术的基础,更能激发您在网络设计、应用开发、安全防护等领域的创新思维。 这本书将为您打开一扇通往互联网内在世界的门,让您不再是被动的使用者,而是能够洞察其运作机制的理解者。准备好踏上这场充满启发性的旅程,去发现连接世界的强大力量吧!