《计算机网络:自顶向下方法(原书第4版)》反映了网络技术的新变化。
《计算机网络:自顶向下方法(原书第4版)》特点
●新颖的“自顶向下”教学法。《计算机网络:自顶向下方法(原书第4版)》特别强调应用层,尽早激发读者的学习热情,并强调自主开发网络应用程序。
●着眼原理。计算机网络领域的许多基础性问题已经研究得较为清楚,重点研究这些原则,将使读者获得长“保质期”的知识。
●以因特网为研究对象。该书以因特网体系结构的5层模型来组织材料,为读者的学习热情提供了原动力。
●及时更新教学内容。从2001年的第1版直到现在的第4版,《计算机网络:自顶向下方法(原书第4版)》及时引入重要的新知识并抛弃过时的内容。
●注重教学法。为帮助读者理解关键的技术概念,《计算机网络:自顶向下方法(原书第4版)》包括了许多类比和实例,引人入胜的历史事件和实践原则,对网络领域著名专家的专访,循序渐进的Ethereal实验,以及网站上翔实的教学资料和实验内容等。
《计算机网络:自顶向下方法(原书第4版)》是当前世界上最为流行的计算机网络教科书之一,采用了作者独创的自顶向下的方法来讲授计算机网络的原理及其协议,即从应用层协议开始沿协议栈向下讲解,强调应用层范例和应用编程接口,使读者尽快进入每天使用的应用程序环境之中进行学习和“创造”。《计算机网络:自顶向下方法(原书第4版)》的讲解以因特网为例,学以致用,注重教学法,深入浅出地重点讲解计算机网络的基本原理。
第4版全面关注了网络安全问题;更新并扩展了无线网络的覆盖范围,增加了有关802.11(WiFi)、802.16(WiM.AX)和蜂窝网络的新内容。增强了P2P应用程序的内容,包括文件共
享协议、BitTorrent等文件分发协议以及Skype的IP话音等新型多媒体应用;更新了局域网和多媒体网络的章节,以反映这些领域中理论与实践的变化;第1章中增加了有关端到端吞吐量分析的新材料;全面修订并增加了新的课后习题,以及附加了循序渐进的:Ethereal实验。
《计算机网络:自顶向下方法(原书第4版)》适合作为计算机、电子工程等专业本科生的“计算机网络”课程教科书(第1~5章或根据需求取舍),相关专业的研究生也可用《计算机网络:自顶向下方法(原书第4版)》的高级专题章节(第6~9章)作为教材。对网络从业者、有一定网络基础的人员甚至专业网络研究人员,《计算机网络:自顶向下方法(原书第4版)》也是一本不可多得的参考书。
2.1.2 进程通信
在构建网络应用程序前,也需要对运行在多个端系统上的程序的互相通信情况有一个基本了解。在操作系统的术语中,进行通信的实际上是进程(process)而不是程序。进程可以被认为是运行在端系统中的程序。当进程运行在相同的端系统上的时候,它们使用进程间通信机制相互通信。进程间通信的规则由端系统上的操作系统确定。在本书中,我们对运行在同一台主机上的进程间的通信不感兴趣,而只关注运行在不同端系统(可能具有不同的操作系统)上的进程间的通信。
不同端系统上的进程通过跨越计算机网络交换报文(message,)而相互通信。发送进程创建并向网络中发送报文,接收进程接收这些报文并可能负责回送报文。图2-1举例说明了进程是如何通过使用5层协议栈的应用层而互相通信的。
1.客户机和服务器进程
网络应用程序是由成对的进程组成,这些进程通过网络相互发送报文。例如,在Web应用程序中,一个客户机浏览器进程与一台Web服务器进程交换报文。在一个P2P文件共享系统中,文件从一个对等方中的进程传输到另一个对等方中的进程。对每对通信进程,我们通常将这两个进程之一标示为客户机(cllent),而另一个进程标示为服务器(server)。在Web中,浏览器是一个客户机进程,Web服务器是一个服务器进程。对于P2P文件共享,下载文件的对等方被标示为客户机,上载文件的对等方被标示为服务器。
你或许已经观察到,在P2P文件共享等应用中,一个进程可以既是客户机又是服务器。实际上,在P2P文件共享系统中,一个进程既能上载文件又能下载文件。无论如何,在给定的一对进程之间的通信会话中,我们仍能标示一个进程为客户机,标示另一个进程为服务器。我们定义客户机和服务器进程如下:
在给定的一对进程之间的通信会话中,发起通信(即在该会话开始时与其他进
程联系)的进程被标示为客户机,在会话开始时等待联系的进程是服务器。
在web中,一个浏览器进程向某Web服务器进程发起联系,因此该浏览器进程是客户机,而该Web服务器进程是服务器。在P2P文件共享中,当对等方A请求对等方B发送一个特定的文件时,在这个特定的通信会话中对等方A是客户机,而对等方B是服务器。在不会混淆的情况下,我们有时也使用术语“应用程序的客户机端和服务器端”。在本章的结尾,我们将逐步讲解网络应用程序的客户机端和服务器端的简单代码。
……
出版者的话
作译者简介
译者序
前言
第1章 计算机网络和因特网
1.1 什么是因特网
1.1.1 具体构成描述
1.1.2 服务描述
1.1.3 什么是协议
1.2 网络边缘
1.2.1 客户机和服务器程序
1.2.2 接入网
1.2.3 物理媒体
1.3 网络核心
1.3.1 电路交换和分组交换
1.3.2 分组是怎样通过分组交换网形成其通路的
1.3.3 ISP和因特网主干
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 小结
本书路线图
课后习题和问题
复习题
习题
讨论题
Ethereal实验
人物专访
第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 在P2P区域中搜索信息
2.6.3 案例学习:Skype的P2P因特网电话
2.7 FCP套接字编程
2.7.1 TCP套接字编程
2.7.2 一个Java客户机/服务器应用程序例子
2.8 UDP套接字编程
2.9 小结
课后习题和问题
复习题
习题
讨论题
套接字编程作业
Ethereal实验
人物专访
第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 小结
课后习题和问题
复习题
习题
讨论题
编程作业
Ethereal实验:探究TCP
Ethereal实验:探究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.4 网际协议:因特网中的转发和编址
4.4.1 数据报格式
4.4.2.IPv4编址
4.4.3 ICMP:互联网控制报文协议
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 因特网中As内部选路:OSPF
4.6.3 自治系统间的选路:BGP
4.7 广播和多播选路
4.7.1 广播选路算法
4.7.2 多播
4.8 小结
课后习题和问题
复习题
习题
讨论题
编程作业
Ethereal实验
人物专访
第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 局域网
5.4 链路层编址
5.4.1 MAC地址
5.4.2 地址解析协议
5.5 以太网
5.5.1 以太网帧结构
5.5.2 CSMA/CD:以太网的多路访问协议
5.5.3 以太网技术
5.6 链路层交换机
5.6.1 交换机转发和过滤
5.6.2 自学习
5.6.3 链路层交换机的性质
5.6.4 交换机和路由器的比较
5.7 PPP:点对点协议
5.8 链路虚拟化:网络作为链路层
5.8.1 异步传输方式
5.8.2 多协议标签交换
5.9 小结
课后习题和问题
复习题
习题
讨论题
Ethereal实验
人物专访
第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以外的标准:蓝牙和WiMAX
6.4 蜂窝因特网接入
6.4.1 蜂窝网体系结构概述
6.4.2 蜂窝网标准和技术:简要回顾
6.5 移动管理:原理
6.5.1 寻址
6.5.2 选路到移动节点
6.6 移动IP
6.7 蜂窝网中的移动性管理
6.7.1 对移动用户呼叫的选路
6.7.2 GSM中的切换
6.8 无线和移动性:对高层协议的影响
6.9 小结
课后习题和问题
复习题
习题
讨论题
Ethereal实验
人物专访
第7章 多媒体网络
7.1 多媒体网络应用
7.1.1 多媒体应用的例子
7.1.2 当今因特网上的多媒体障碍
7.1.3 因特网应该如何演化才能更好地支持多媒体
7.1.4 音频和视频压缩
7.2 流式存储音频和视频
7.2.1 通过Web服务器访问音频和视频
7.2.2 从流式服务器向助手应用程序发送多媒体
7.2.3 实时流协议
7.3 充分利用尽力而为服务
7.3.1 尽力而为服务的限制
7.3.2 在接收方消除音频的时延抖动
7.3.3 从丢包中恢复
7.3.4 在今天的因特网中分发多媒体:内容分发网络
7.3.5 规划尽力而为网络以提供服务质量
7.4 实时交互应用的协议
7.4.1 RTP
7.4.2 RTP控制协议
7.4.3 SIP
7.4.4 H.3 23
7.5 提供多个等级的服务
7.5.1 启发研究的场景
7.5.2 调度和监管机制
7.5.3 区分服务
7.6 提供服务质量保证
7.6.1 一个有启发的例子
7.6.2 资源预约、呼叫准入、呼叫建立
7.6.3 在因特网中确保QoS:Intserv和RSVP
7.7 小结
课后习题和问题
复习题
习题
讨论题
编程作业
人物专访
第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.4.6 鉴别协议ap5.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 鉴别首部协议
8.7.2 ESP协议
8.7.3 SA和密钥管理
8.8 使无线LAN安全
8.8.1 有线等效保密
8.8.2 IEEE802.11i
8.9 运行安全性:防火墙和入侵检测系统
8.9.1 防火墙
8.9.2 入侵检测系统
8.10 小结
课后习题和问题
复习题
习题
讨论题
Ethereal实验
人物专访
第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 小结
课后习题和问题
复习题
习题
讨论题
人物专访
参考文献