出版时间:2004-8-1 出版社:清华大学出版社 作者:Andrew S. Tanenbaum 页数:743 译者:潘爱民
Tag标签:无
前言
这本经典著作问世已经10余年了,在这些年中发生的许多事情是令人惊奇的。Web已经从实验阶段变革到了万维网时期,基于IP的语音和P2P内容共享已经出现了,百兆技术已经普及,宽带网也已经进入了家庭,僵尸网络和其他可怕的安全问题越来越多。很多事情都发生了变化,新技术不断出现,但因特网的基础依旧存在。.10年中,本书也进行了多次修改,发展到了第4版。但本书的基本创作理念与第1版是相同的,本书给出了你所需要的事实,并将这些事实置于更广泛的背景下,这样,即使细节发生了改变,你所掌握的知识仍然是有用的。本书不仅告诉你网络的今天,而且使你能够为网络的明天做准备。本书增加了新的特征,即通过页.. ...
内容概要
本书是国内外使用最广泛的计算机网络经典教材。全书按照网络协议模型(物理层、数据链路层、介质访问控制层、网络层、传输层和应用层),自下而上系统地介绍了计算机网络的基本原理,并给出了大量实例。在讲述各网络层的同时,还融合了近年来迅速发展起来的各种网络技术,如Internet、SONET、ADSL、CDMA、WLAN和蓝牙等。另外,针对当前计算机网络的发展现状以及计算机安全的重要性,本书用了一整章的篇幅对计算机安全进行了深入讨论。 本书的适用对象很广泛。对于学习计算机网络课程的本科生以及研究生,本书都可以作为教材或教学参考书。每一章后面的大量练习题,可用于课程作业或复习要点。对于从事网络研究、网络工程以及使用和管理网络的科研和工程技术人员,本书也是一本很有价值的参考读物。
作者简介
作者:(美国)特南鲍姆(Tanenbaum A.S.) 译者:潘爱民潘爱民,浙江海宁人,获得了南开大学数学学士学位,清华大学工学硕士学位,以及北京大学计算机科学博士学位。他从中学时代开始接触计算机编程,经历了从DOS到Windows各种版本的发展历程。潘爱民于1994年开始在北京大学计算机研究所从事计算机应用方向的研究和开发工作,2000年破格晋升为副研究员。2002年担任北京大学计算机研究所信息安全研究室主任。 潘爱民曾经长期从事软件技术的研究和开发工作,并且撰写了大量的软件技术文章,1999年曾经是《微电脑世界》杂志社的合作专家。他著写了《COM原理与应用》(1999年出版),翻译了多部关于软件开发技术的经典名作,如《Visual C++技术内幕》(第四、六版)、《C++ Primer中文版》(第三版)、《COM本质论》、《Effective Java中文版》等。潘爱民于2000年开始转向网络与信息安全方向的研究,先后承担了两项由863计划资助的研究项目,并发表了多篇学术论文。 从2001年开始,潘爱民在北京大学计算机科学技术系承担研究生课程教学,共讲授了三门课程:《组件技术》、《网络与信息安全》和《程序开发环境分析与实践》,深受学生欢迎。其中前两门课程的讲义放在Internet上,可直接下载。 潘爱民获得了2001年微软亚洲研究院“微软学者”称号,2002年度北京大学优秀教学奖。2003年获得理学博士学位,专业方向为网络与信息安全。他现已加入微软亚洲研究院,从事网络与系统方向的研究工作。
书籍目录
第1章 概述 1.1 计算机网络的应用 1.1.1 商业应用 1.1.2 家庭应用 1.1.3 移动用户 1.1.4 社会问题 1.2 网络硬件 1.2.1 局域网 1.2.2 城域网 1.2.3 广域网 1.2.4 无线网络 1.2.5 家庭网络 1.2.6 互联网 1.3 网络软件 1.3.1 协议层次 1.3.2 各层的设计问题 1.3.3 面向连接与无连接的服务 1.3.4 服务原语 1.3.5 服务与协议的关系 1.4 参考模型 1.4.1 OSI参考模型 1.4.2 TCP/IP参考模型 1.4.3 OSI参考模型与TCP/IP参考模型的比较 1.4.4 OSI模型和协议的缺点 1.4.5 TCP/IP参考模型的缺点 1.5 网络实例 1.5.1 Internet 1.5.2 面向连接的网络:X.25、帧中继和ATM 1.5.3 以太网 1.5.4 无线LAN:802.11 1.6 网络标准化 1.6.1 电信领域中最有影响的组织 1.6.2 国际标准领域中最有影响的组织 1.6.3 Internet标准领域中最有影响的组织 1.7 度量单位 1.8 本书其余部分的概要 1.9 本章小结 习题第2章 物理层 2.1 数据通信的理论基础 2.1.1 傅立叶分析 2.1.2 带宽受限的信号 2.1.3 信道的最大数据传输率 2.2 有导向的传输介质 2.2.1 磁介质 2.2.2 双绞线 2.2.3 同轴电缆 2.2.4 光 纤 2.3 无线传输 2.3.1 电磁波谱 2.3.2 无线电传输 2.3.3 微波传输 2.3.4 红外线和毫米波 2.3.5 光波传输 2.4 通信卫星 2.4.1 地球同步卫星 2.4.2 中间轨道卫星 2.4.3 低轨道卫星 2.4.4 卫星和光纤 2.5 公共交换电话网络 2.5.1 电话系统的结构 2.5.2 电话业中的政治学 2.5.3 本地回路:调制解调器、ADSL和无线 2.5.4 干线和多路复用 2.5.5 交 换 2.6 移动电话系统 2.6.1 第一代移动电话:模拟语音 2.6.2 第二代移动电话:数字语音 2.6.3 第三代移动电话:数字语音与数据 2.7 有线电视 2.7.1 共天线电视 2.7.2 基于有线电视网络的Internet 2.7.3 频谱分配 2.7.4 电缆调制解调器 2.7.5 ADSL与有线电视网 2.8 本章小结 习题第3章 数据链路层 3.1 数据链路层设计要点 3.1.1 为网络层提供的服务 3.1.2 分 帧 3.1.3 错误控制 3.1.4 流控制 3.2 错误检测和纠正 3.2.1 纠错码 3.2.2 检错码 3.3 基本数据链路协议 3.3.1 一个无限制的单工协议 3.3.2 一个单工的停-等协议 3.3.3 有噪声信道的单工协议 3.4 滑动窗口协议 3.4.1 一个1位滑动窗口协议 3.4.2 使用回退n帧技术的协议 3.4.3 使用选择性重传的协议 3.5 协议验证 3.5.1 有限状态机模型 3.5.2 Petri网模型 3.6 数据链路层协议示例 3.6.1 HDLC-高级数据链路控制 3.6.2 Internet中的数据链路层 3.7 本章小结 习题第4章 介质访问控制子层 4.1 信道分配问题 4.1.1 LAN和MAN中的静态信道分配方案 4.1.2 LAN和MAN中的动态信道分配方案 4.2 多路访问协议 4.2.1 ALOHA 4.2.2 载波检测多路访问协议 4.2.3 无冲突的协议 4.2.4 有限制的竞争协议 4.2.5 波分多路访问协议 4.2.6 无线LAN协议 4.3 以太网 4.3.1 以太网电缆 4.3.2 曼切斯特编码 4.3.3 以太网MAC子层协议 4.3.4 二元指数后退算法 4.3.5 以太网的性能 4.3.6 交换式以太网 4.3.7 快速以太网 4.3.8 千兆以太网 4.3.9 IEEE 802.2:逻辑链路控制 4.3.10 关于以太网的回顾 4.4 无线LAN 4.4.1 802.11协议栈 4.4.2 802.11物理层 4.4.3 802.11 MAC子层协议 4.4.4 802.11帧结构 4.4.5 服 务 4.5 宽带无线网络 4.5.1 802.11和802.16的比较 4.5.2 802.16协议栈 4.5.3 802.16物理层 4.5.4 802.16 MAC子层协议 4.5.5 802.16帧结构 4.6 蓝牙技术 4.6.1 蓝牙的体系结构 4.6.2 蓝牙应用 4.6.3 蓝牙协议栈 4.6.4 蓝牙无线电层 4.6.5 蓝牙基带层 4.6.6 蓝牙L2CAP层 4.6.7 蓝牙的帧结构 4.7 数据链路层交换 4.7.1 从802.x到802.y的网桥 4.7.2 本地的网络互连 4.7.3 生成树网桥 4.7.4 远程网桥 4.7.5 转发器、集线器、网桥、交换机、路由器和网关 4.7.6 虚拟LAN 4.8 本章小结 习题第5章 网络层 5.1 网络层设计要点 5.1.1 存储-转发分组交换 5.1.2 向传输层提供的服务 5.1.3 无连接服务的实现 5.1.4 面向连接服务的实现 5.1.5 虚电路子网和数据报子网的比较 5.2 路由算法 5.2.1 优化化原则 5.2.2 最短路径路由 5.2.3 扩散法 5.2.4 距离矢量路由 5.2.5 链路状态路由 5.2.6 分级路由 5.2.7 广播路由 5.2.8 多播路由 5.2.9 移动主机的路由 5.2.10 Ad Hoc网络中的路由 5.2.11 对等网络中的节点查询 5.3 拥塞控制算法 5.3.1 拥塞控制的通用原则 5.3.2 拥塞预防策略 5.3.3 虚电路子网中的拥塞控制 5.3.4 数据报子网中的拥塞控制 5.3.5 负载脱落 5.3.6 抖动控制 5.4 服务质量 5.4.1 需 求 5.4.2 获得好的服务质量所使用的技术 5.4.3 综合服务 5.4.4 区分服务 5.4.5 标签交换和MPLS 5.5 网络互联 5.5.1 网络的不同之处 5.5.2 网络如何连接起来 5.5.3 串联虚电路 5.5.4 无连接的网络互连 5.5.5 隧道技术 5.5.6 互联网路由 5.5.7 分 段 5.6 Internet上的网络层 5.6.1 IP协议 5.6.2 IP地址 5.6.3 Internet控制协议 5.6.4 OSPF-内部网关路由协议 5.6.5 BGP-外部网关路由协议 5.6.6 Internet多播 5.6.7 移动IP 5.6.8 IPv6 5.7 本章小结 习题第6章 传输层 6.1 传输服务 6.1.1 向上层提供的服务 6.1.2 传输服务原语 6.1.3 Berkeley Socket(伯克利套接字) 6.1.4 套接字程序设计的例子:一个Internet文件服务器 6.2 传输协议的要素 6.2.1 编 址 6.2.2 建立连接 6.2.3 释放连接 6.2.4 流控制和缓冲 6.2.5 多路复用 6.2.6 崩溃恢复 6.3 一个简单的传输协议 6.3.1 服务原语示例 6.3.2 传输实体示例 6.3.3 传输实体作为一个有限状态机的示例 6.4 Internet传输协议-UDP 6.4.1 UDP介绍 6.4.2 远过程调用 6.4.3 实时传输协议 6.5 Internet传输协议-TCP 6.5.1 TCP介绍 6.5.2 TCP服务模型 6.5.3 TCP协议 6.5.4 TCP数据段的头 6.5.5 TCP连接的建立 6.5.6 TCP连接的释放 6.5.7 TCP连接的管理模型 6.5.8 TCP传输策略 6.5.9 TCP拥塞控制 6.5.10 TCP定时器管理 6.5.11 无线TCP和UDP 6.5.12 事务型TCP 6.6 性能问题 6.6.1 计算机网络中的性能问题 6.6.2 网络性能的测量 6.6.3 具有更好性能的系统设计 6.6.4 快速的TPDU处理 6.6.5 针对千兆网络的协议 6.7 本章小结 习题第7章 应用层 7.1 DNS-域名系统 7.1.1 DNS名字空间 7.1.2 资源记录 7.1.3 名字服务器 7.2 电子邮件 7.2.1 结构与服务 7.2.2 用户代理 7.2.3 消息格式 7.2.4 消息传输 7.2.5 最后的投递 7.3 万维网 7.3.1 结构概述 7.3.2 静态Web文档 7.3.3 动态Web文档 7.3.4 HTTP-超文本传输协议 7.3.5 性能增强 7.3.6 无线Web 7.4 多媒体 7.4.1 数字音频介绍 7.4.2 音频压缩 7.4.3 流式音频 7.4.4 Internet电台 7.4.5 IP语音 7.4.6 视频简介 7.4.7 视频压缩 7.4.8 视频点播 7.4.9 Mbone-多播骨干网 7.5 本章小结 习题第8章 网络安全 8.1 密码学 8.1.1 密码学简介 8.1.2 置换密码 8.1.3 转置密码 8.1.4 一次一密 8.1.5 两条基本的密码学原则 8.2 对称密钥算法 8.2.1 DES-数据加密标准 8.2.2 高级加密标准AES 8.2.3 密码算法的使用模式 8.2.4 其他密码算法 8.2.5 密码分析 8.3 公开密钥算法 8.3.1 RSA 8.3.2 其他的公开密钥算法 8.4 数字签名 8.4.1 对称密钥签名 8.4.2 公开密钥数字签名 8.4.3 消息摘要 8.4.4 生日攻击 8.5 公钥的管理 8.5.1 证书 8.5.2 X.509 8.5.3 公开密钥基础设施 8.6 通信安全 8.6.1 IPSec 8.6.2 防火墙 8.6.3 虚拟私有网络 8.6.4 无线网络安全 8.7 认证协议 8.7.1 基于共享秘密密钥的认证 8.7.2 建立一个共享密钥:Diffie-Hellman密钥交换协议 8.7.3 使用密钥分发中心的认证协议 8.7.4 使用Kerberos的认证协议 8.7.5 使用公开密钥密码学的认证协议 8.8 电子邮件安全 8.81 PGP-Pretty Good Privacy 8.8.2 PEM-Privacy Enhanced Mail 8.8.3 S/MIME 8.9 Web安全 8.9.1 威胁 8.9.2 安全的命名机制 8.9.3 安全套接字层SSL 8.9.4 移动代码的安全 8.10 社会问题 8.10.1 隐私 8.10.2 言论自由 8.10.3 版权 8.11 本章小结 习题第9章 阅读书目和参考文献 9.1 进一步阅读的建议 9.1.1 简介和综合论著 9.1.2 物理层 9.1.3 数据链路层 9.1.4 介质访问控制子层 9.1.5 网络层 9.1.6 传输层 9.1.7 应用层 9.1.8 网络安全 9.2 按字母顺序的参考文献
章节摘录
第1章 概述在过去的三个世纪中,每一个世纪都有一种占主导地位的技术。18世纪伴随着工业革命到来的是大型机械系统的时代;19世纪是蒸汽机的时代;而在20世纪的发展历程中,关键的技术是信息收集、处理和分发。在其他的发展方面,我们还可以看到:遍布全球的电话网络建立起来了;无线电广播和电视出现了;计算机工业诞生了,并且以超乎想象的速度在增长;另外,通信卫星也发射上天了。技术快速发展的一个直接结果是,这些领域正在快速地融合,信息收集、传输、存储和处理之间的差别正在迅速地消失。对于具有数百个办公室的大型组织来说,尽管这些办公室分布在广阔的地理区域中,但未来期望的情景是,工作人员只要单击一下按钮,就可以查看到最远处分部的状态。随着信息收集、处理和分发能力的不断提高,我们对于更加复杂的信息处理技术的需求也增长得更快。与其他的工业(比如汽车和航空运输业)相比,计算机工业还非常年轻,尽管如此,计算机技术却在很短的时间内有了惊人的进展。在计算机诞生之初的20年间,计算机系统是高度集中化的,通常位于一个很大的房间中。该房间通常配有玻璃墙,参观的人透过玻璃墙可以欣赏到里边伟大的电子奇迹。中等规模的公司或者大学可能会有一台或者两台计算机,而大型的研究机构最多也就几十台计算机。要在20年内生产出大量同样功能但是体积比邮票还小的计算机,在当时的人们看来纯属科学幻想。计算机和通信的结合对于计算机系统的组织方式产生了深远的影响。把一台大型的计算机放在一个单独的房间中,然后用户带着他们的处理任务去房间里上机,这种“计算机中心”的概念现在已经完全过时了。由一台计算机来处理整个组织中所有的计算需求,这种老式的模型已经被新的模型所取代,在新的模型下,由大量独立的、但相互连接起来的计算机来共同完成计算任务。这些系统称为计算机网络(computer networks)。如何设计这些网络,并且将这些网络组织起来,这是本书的主题。在本书中,我们将使用术语“计算机网络”来表示通过同一种技术相互连接起来的一组自主计算机的集合。如果两台计算机能够交换信息,则称这两台计算机是相互连接的(interconnected)。两台机器之间的连接不一定要通过铜线,光纤、微波、红外线和通信卫星也可以用来建立连接。以后我们将会看到,网络可以有不同的大小、形状和形式。Internet或者万维网(Wor1d Wide Web)都不是计算机网络,可能很多人对此会觉得很奇怪。到本书末尾的时候,你就会明白其中的原因。现在给出一个简单的答案:Internet并不是一个单一的网络,而是一个由许多个网络构成的网络;Web是一个分布式系统,它运行在Internet之上。在一些文献中,计算机网络和分布式系统(distributed system)这两个概念容易使人混淆。两者的关键差别在于:在一个分布式系统中,一组独立的计算机展现给用户的是一个统一的整体,就好像是一个系统似的。通常,对用户来说,分布式系统只有一个模型或-范型。在操作系统之上有一层软件中间件(midd1eware)负责实现这个模型。一个著名的分布式系统的例子是万维网(Wor1d Wide Web),在万维网中,所有的一切看起来就好像是一个文档(Web页面)一样。在计算机网络中,这种统一性、模型以及其中的软件都不存在。用户看到的是实际的的。如果一个用户希望在一台远程机器上运行一个程序,那么,他①必须登录到远程机器上,然后在那台机器上运行该程序。实际上,分布式系统是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络与分布式系统之间的区别更多地在于软件(特别是操作系统),而不是硬件。然而,这两个主题之间也有许多重合的地方。例如,分布式系统和计算机网络都需要移动文件。不同之处在于是谁来发起移动操作,是系统还是用户?虽然本书的焦点主要在于网络,但是讨论到的许多话题在分布式系统中也是很重要的。有关于分布式系统的更多信息,请参考(Tanenbaum and Van Steen,2002)。1.1 计算机网络的应用在开始讨论技术细节之前,首先值得花一点时间来说明为什么人们对于计算机网络很感兴趣,以及计算机网络可用来做些什么事情。毕竟,如果没有人对计算机网络感兴趣的话,那就不会建立这么多计算机网络了。我们首先讨论针对公司和个人的传统用法,然后再转移到最新的一些发展动向,包括针对移动用户和家庭网络的应用上来。1.1.1 商业应用许多公司都具有相当数量的计算机。例如,一家公司可能用一些单独的计算机来监视生产过程、记录库存,以及管理工资的发放工作。最初的时候,这些计算机都是独立工作的,但是后来管理部门决定将这些计算机连接起来,以便将有关整个公司的信息关联起来,并且可以随时访问这些信息。将这个公司的情形更加泛化一点,这里涉及到的问题是资源共享(resource sharing),其目标是,让每一个人都可以访问所有的程序、设备和特殊的数据,并且做到跟这些资源和用户的物理位置无关。一个既显然又非常普遍的例子是,让一个办公室里的所有工作人员共用同一台打印机。公司没有必要为每一个工作人员都配备一台个人打印机,而且,一台高性能的网络打印机通常比一大批独立的打印机更加便宜,打印速度更快,而且也更容易维护。然而,比共享物理资源(比如打印机、扫描仪和CD刻录机)更重要的是共享信息。每一个大型的或中等规模的公司和许多小型的公司都越来越依赖于计算机化的信息。大多数公司都有顾客记录、库存信息、收到的账单记录、财务报告、缴税信息以及其他更多的在线信息。如果一家银行的所有计算机都不能工作了,那么这家银行可能坚持不了5分钟。如果一个现代化的生产车间使用了计算机控制的装配线,那么计算机崩溃后也不可能继续工作。现在,即使是很小规模的旅行社,甚至只有三个人规模的律师事务所也与计算机网络有着密切的联系,通过计算机网络,雇员们可以即时地访问有关的信息和文档。对于小公司而言,可能所有的计算机都在一个办公室里,或者位于同一个建筑物内,但是对于大型的公司,计算机和雇员们可能分散在许多个办公室中,甚至分散在不同国家的多个分支机构中。然而,纽约的一个销售员有时候需要访问新加坡的产品库存数据库。换句话说,一个用户离他要访问的数据相隔15 000公里,但是他仍然要访问这些数据,就好像这些数据存放在本地一样。简而言之,计算机网络的这个目标可以定义为:企图打破“地理位置的束缚(tyranny of geography)”。按照最简单的形式,你可以把一个公司的信息系统想象成:由一个或者多个数据库,以及许多需要远程访问这些数据库的雇员们组成的。在这个模型中,数据存储在性能较强大的计算机上,称为服务器(server)。通常这些服务器集中在同一个场所,并且由系统管理员对它们进行维护。相反,雇员们的桌子上有一些简单的机器,称为客户(c1ient),通过这些客户,雇员可以访问远程的数据,例如,他们可以访问远程的电子表格。(有时候,我们也把客户机器的使用者称作“客户”,但是根据上下文环境,你应该可以判断出到底是指机器,还是指机器的用户。)客户和服务器通过网络连接起来,如图1.1所示。请注意,这里我们只是用一个简单的椭圆形来表示一个网络,而没有表达其中的任何细节。当我们从抽象意义上来表达一个网络的时候,就使用这种形式。当有需要的时候,我们也会提供更多的细节。这整个结构称为“客户-服务器模型(client—server model)”。这种模型有很广泛的应用,它也是许多网络应用的基础。当客户和服务器位于同一个建筑物内(比如,属于同一个公司)的时候,这种模型是适用的;当客户和服务器相隔很远的时候,这种模型也是适用的。例如,当一个人在家里访问一个Web页面的时候,就使用了这种模型;其中,远程的Web服务器就是模型中的服务器,用户的个人计算机是模型中的客户。在大多数情况下,一台服务器可以处理许多客户的请求。
图书封面
图书标签Tags
无
评论、评分、阅读与下载