计算机网络与互联网 第2版
作者 : 王卫红 李晓明 编著
出版日期 : 2010-06-22
ISBN : 978-7-111-30516-3
定价 : 28.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 266
开本 : 16
原书名 :
原出版社:
属性分类: 教材
包含CD :
绝版 :
图书简介

信息技术是当代计算机学科发展的一个重要方向,网络技术是该方向的一个核心内容。本教材的目的在于介绍计算机网络与互联网运行的原理和主要技术,目标是使得学生在将来工作的时候,能够有效地参与本单位网络系统的构建、升级和维护运行。本教材根据信息技术的人才培养定位编写,分8章全面介绍了计算机网络的有关技术、知识。

图书特色

计算机网络与互联网
第2版
王卫红 李晓明 编著

本书是一本参照《高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)》要求编写的网络课程教材。作者基于自身对计算机网络技术的透彻理解和多年教学科研工作的实践,以一种简洁明快、通俗易懂的表述方式系统介绍了计算机网络与互联网的工作原理、实现技术和运行机制,使读者能够准确理解网络技术的各种基本概念及其相互关系,有效地把握网络技术全貌。

本书的主要特色
内容丰富的前言,重点阐述了与网络技术相关的最重要的三个概念,对采用本教材的教师把握教学内容、抓住教学重点具有很好的启发性。
以TCP/IP层次模型为主线展开对各种网络技术的讨论,但并不简单地拘泥于这种层次结构,而是将网络看成是一个由不同部件构成的整体,注重网络层次之间的关联和不同部件功能相互补充关系的描述。
采用引导式的教学方法,使学生在一两次课后就能对计算机网络的基本组成元素和技术有一个初步的、总体的同时也是具体的认识。
在介绍网络应用时,强调网络应用所依托的底层网络技术的支持原理,培养学生独立学习新技术和应用以及对应用中出现的问题进行分析的能力。
注重基本概念和技术原理描述的准确性、完整性和简练性,同时也给学生留有进一步学习和思考的空间。
本书注重基础性和原理性,在着重描述基本概念及其关系的同时,追求内容深度和广度的平衡,不但适合作为高校计算机网络课程的教材,也适合作为自学网络技术的参考书。

作者简介
王卫红 1999年获得美国科罗拉多州立大学计算机科学硕士学位,现为北京大学网络研究所专职教师。自1985年以来一直从事计算机软件开发和科研工作,先后承担过多项国家和企业的软件开发项目,并多年从事计算机技术相关的教学和培训工作,在教学方法方面积累了丰富的经验。
李晓明 1986年获得美国史蒂文斯理工学院计算机科学博士学位,现为北京大学网络研究所所长,教育部高等学校计算机科学与技术教学指导委员会副主任,多年从事计算机领域的教学和科研工作,讲授过的课程包括“互联网与Web技术概论”、“网络信息体系结构”、“并行处理技术”、“计算机系统结构”、“计算机操作系统”和“计算概论”等。

图书前言

“十五”期间,教育部高等学校计算机科学与技术教学指导委员会编制了《高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)》(后文简称《规范》)。“计算机网络与互联网”是其中信息技术专业方向的建议课程之一。本教材是参照《规范》附录2.4A和2.4B,将相关要求编写成一本教科书的尝试。

  互联网的英文即“Internet”,另一种常见的译法为“因特网”,本书的后续章节一般采用“因特网”的说法。

  按照《规范》所建议,“计算机网络与互联网”这门课的前导课程有“程序设计与问题求解”和“计算机系统平台”,后续可有“Web系统与技术”、“信息安全保障”和“系统管理与维护”。这是我们编写这本教材时考虑的一个基本定位。鉴于前面还有数学基础课程等,按照本教材开设的课程最早可以安排在二年级下学期,但放在三年级上学期会比较从容些。
  本教材的目的在于介绍计算机网络与互联网运行的原理和主要技术。教学目标是使得学生在将来工作的时候,能够有效地参与本单位网络系统的构建、升级和维护运行。这里,强调“将来”,意味着在教学内容的选择上应该注重基础性和原理性,不追求时髦。同时,作为“网络系统的构建、升级和维护运行”的目标定位,在内容的表述上将突出主要概念,力图简洁清晰;尽量避免形式化,或者为追求严谨而过于冗繁。从对信息技术专业方向人才培养的定位出发(见《规范》2.4节),我们力求内容的实用性,在着重于基本概念及其关系的同时,追求内容深度和广度的平衡。
  为了能够让读者对计算机网络有一个初步的认识,在前言中我们首先提出几个最基本的观念和技术,这些观念和技术是支撑计算机网络运行的核心,也是我们使用这本教材学习计算机网络的基础。这些基本的概念包括:信息传输的网络化,消息的分组交换,以及协议及其层次结构。最后我们将概述本教材每章的主要内容。
信息传输的网络化
  网络,广义地讲,作为支持在多个源和目的地之间输运物体或者信息的一种基础设施,是一个自然形成的、图1 网络的一种抽象很久远的概念。道路网、邮政网、电话网、互联网,等等。抽象起来看,它们都是由若干称为“节点”和“边”(或者“链路”)的元素构成的一个图,如图1所示。
  对于图1,从计算机网络的角度解释,圆圈表示节点,线条表示链路。节点的作用是转发数据,链路的作用是“携带”或传递数据。这里,特别注意到左右两边的两个小方块,它们是物资输运或者信息通信的源和目的地,在计算机网络中我们统称为数据终端,也称为主机或端系统。终端是数据信息的发源地,也是目的地。笼统地讲,终端也可被看作是网络的一部分,而且在有些网络中也必须这么看才有道理;但对于学习和研究互联网来说,将终端与网络区别开来(即不认为终端也是网络的节点)常常会更加方便,例如讲“将一个终端连接到网络上”这样的话就很自然了。为简洁起见,图1只画出了两个终端,但我们应该想象有许多这样的终端连接在网络上,它们通过网络实现通信。图1中那团像云状的图形是人们描绘互联网或者其他网络的一种习惯,可以理解为是一种“动态并且其完整结构很难清晰地表示出来”的网络。
  网络是多节点、多链路的,允许同一时刻不同链路上有不同的信息内容;也支持同一链路上不同时刻有属于不同终端发出的内容。我们的广播和电视系统,尽管也是传输信息的,但它们并不是上述意义下的网络,其要点是“广播”,广播从原理上讲只有一个链路,因此同一时刻只能是相同内容。网络重在多样化的信息交换——多对多的收发关系;广播则在于单一的信息传播——多对一的收发关系。网络系统成本高,而广播系统则相对经济。
  不同的频道可以看成是不同的链路。
  而且平均起来会短得多,链路的长度也是与代价直接相关的。
  再看看图1,难道不可以认为网络就是这种超级节点的一种体现吗?

  网络使得彼此通信的终端呈现出一种“逻辑上的全互联”状态。电话系统是一个网络,除了我们用于通话的电话机外,中间是一个由链路和转发节点构成的网络通信设施,我们打电话时感觉不到这些通信设施的存在。拿起电话—拨号—接通,我们感受到的是一种“点对点”的连接,即呼叫方直接与受话方的连接,而且对所有人都一样。互联网也是如此,我们通过互联网浏览一个网页时,启动浏览器-向它输入一个地址-网页出现,我们感受到的也是一种直接的连接。网络使得彼此通信的终端呈现出一种“逻辑上的全互联”状态,每两个终端之间都好像有一条直接连通的链路,物理的网络本身则看不见了。这种逻辑上全互联的终端网络的每一条链路只携带与之相关的终端发出的信息。终端没有网络节点的信息转发功能。
  那么为什么不在我们用以通信的终端之间形成真正的或者说“物理的”全互联呢?代价是一个原因。如果有n个终端需要通信,物理的全互联需要n(n-1)/2条链路。如果用一个有m个节点的网络来支持这n个终端之间的通信,则最多需要n+m(m-1)/2条链路。当mn时,它们的差别会很大。况且,从实际情况来看,也没有必要在m个网络节点之间搞全互联(通常,与每一个节点相连的链路数有一个不大的上限,例如24),从而链路数会进一步大大减少。当然,相对于终端之间的直接全互联而言,这里的m个网络节点是额外的,因此也有一定的代价。另外一个原因是不可行性。在互联网条件下,n十分大,不可能想象从每一个终端连出去n-1条物理链路。也许我们还可以想象另一个极端:网络只需要一个节点,凡是需要相互通信的终端都与之相连。这种想法不是完全没道理,至少链路数只需要n。但由于所有n条链路的另一端都是那个节点,当n比较大时,这样的节点在工程上就是不现实的了。
  利用一种规模相对很小(mn)的网络结构,支持任意数据终端之间的通信,而且具有足够的并发度,是人们迄今为止所发现的大规模、大范围计算机通信最经济有效的方式;而屏蔽该网络结构或者功能的复杂性,以尽可能简单的方式将通信服务呈现给用户,则是网络技术所不懈努力追求的目标。
消息的分组交换
  在计算机网络技术的术语中,“消息”(message)指的是从终端看有明确的管理性含义的一段信息。所谓“管理性含义”指的是符合有关应用程序处理信息的基本粒度。典型地,一个电子邮件内容是一个消息,因为电子邮件处理程序在发送和接收的时候将它看成是一个整体。计算机中的一个文件,无论大小,可以是一个消息,因为像FTP(File Transfer Protocol,一种实现远程两个终端之间文件传输的应用协议)这种应用程序是以文件为单位工作的。在QQ中向朋友发出的一段话是一个消息,因为QQ将它看成是一个整体。由此可见,第一,消息的界定依赖于应用程序;第二,消息的长度可能在很大范围变化。
  另外,不难认识到,在人们通过网络进行的一次交流活动中,例如两个朋友通过QQ来讨论一个问题,从开始到结束可能包含多次消息的发送与接收。这样的一次活动被称为是一次“会话”。一次会话可能涉及多个消息。与消息相比,会话是更高层次的具有管理性含义的概念。
  计算机网络如何最有效地将一个消息从发送端带到接收端?如何支持一个会话的全过程?
  对比电话网络,当两人需要通话时,拨号-接通,意味着在两个话机(终端)之间,通过网络的若干节点与链路,建立起了一条物理的网络通路,然后所有对话内容(即一次会话)都在这条通路上进行。在挂机(即会话结束)之前,构成这条通路的每一条链路都被这个通话所独立占用,而不会在双方思考或沉默而没有讲话时,暂时用于传输其他的话音。下一次通话时,网络同样会如此建立一条通路,所涉及的节点和链路可能与上一次不同,但通话过程中对通路的独占性是不变的。这种方式称为“电路交换”方式。
  现在我们回到计算机网络意义上的会话。首先,类似的电路交换方式是可用的,即在通信开始之前建立起一条物理通路,然后让消息一条条从上面通过。但读者容易想到,由于两人在QQ聊天时会有许多时间花在构思消息上,因此“电路交换”的方式对网络链路的利用率不高。
  一个改进的想法就是不要事先建立一个固定的网络通路,而让网络中的节点根据消息中的目的地信息,以及当前链路的使用状况,动态地转发它们。不同的消息走的路线可能不一样,但都是向着同一个目标。例如在图1中,一条消息可能从上面的通路到达目的地,另一条消息则可能从下面到达,第三条消息则可能上面走一条链路,然后到下面来,如此等等。这种方式称为“消息交换”。这里,与电路交换有本质的不同,即出现了路由的概念,它包含两个重要的方面:第一,每一个网络节点需要知道怎么动态地转发消息以使它最终能到达目的地;第二,由于需要动态确定消息的去向,每一个网络节点可能同时收到许多待转发的消息而有关的输出链路还没有空闲下来,于是消息需要暂时存放在网络节点中,待链路空闲后方可转发,这称为“存储转发”机制。

  注意,建立起一个物理的网络通路意味着其中所有的节点都将它们的相关链路准备好了,下面仅为所涉及的两个终端服务。
  在电路交换的情形,每个网络节点关于这方面的知识是在通路建立时确定的,会话过程中不需要再考虑。
  注意,在电路交换的情形,一旦整个链路建立好了,会话中节点是不需要存储消息的。
  参阅文献,Leonard Kleinrock,“Information Flow in Large Communication Nets”。
  参阅文献,Lawrence G. Roberts,“Internet Chronology”。
  因此,我们强烈建议研究网络技术的博士研究生至少读一遍Leonard Kleinrock的博士论文开题报告。

  这个想法可以更加进一步。前面我们提到,有的消息可能很大。这就会引出两个问题:第一,如果消息太大,节点根本存放不下怎么办?第二,对于很大的消息,如果传送结束时发现有了错误需要整个重传,会导致重复传输大量的曾经正确传输了的数据。于是,人们考虑将消息分成若干分组(packet),每个组的大小不得超过某个上限,终端以分组为单位向网络发送数据,网络中的节点以分组为单位进行数据转发,接收端则将陆续到来的分组装配成完整的消息。这种方式即为互联网运行的最核心观念:“分组交换”(packet switched)。
  不难理解,分组交换继承了消息交换的优点,同时缓解了上面提到的两个问题。然而,新的困难或者说疑惑也出现了:一个消息被拆成多个分组,在网络中被动态转发,有些顺利地、正确地到达了目的地;但有些则可能出错,需要重发;即使是顺利到达的分组,顺序也不一定与发送的时候相同;更复杂的是有多个终端会同时在如此发送消息,网络中的一个节点会同时接收来自不同终端的分组,因此尽管节点的存储容量能够比一个分组大许多,但如果大量分组来不及被转发而暂存在节点中,则可能没有足够的剩余空间来存储新到的分组,从而要被丢弃,等等。我们为什么相信这样一种微观上十分“混乱的”情形最终能在宏观上“井井有条”起来?
  的确,最初人们都不相信分组交换的思想能够成为现实。是Leonard Kleinrock在1961年的一项基础性工作,使美国互联网建设最初的负责人Lawrence G. Roberts相信了分组交换是能够成功的,并基于这种思想创建了互联网。几十年来,互联网的规模扩大了成千上万倍,各种技术也变化、进步了许多,但分组交换的思想一直没变,足见其重要的基础性作用。
  Leonard Kleinrock的什么工作起了这么大的作用呢?按照我们现在的话说,是他的博士论文开题报告!他在那个开题报告中研究了些什么使得Lawrence G. Roberts相信了分组交换思想呢?作为本科生教材,本书不可能详细讨论Kleinrock教授对互联网的基础性贡献。这里只是指出,采用如图2所示的网络节点基本模型,Kleinrock教授在他的报告中提出了如下问题,对于它们的研究为互联网采用分组交换奠定了理论基础。图2 分组交换网络节点的基本模型 考虑两个网络节点之间,一个分组被转发,所需要的时间服从什么样的概率分布?并特别关心该分布的平均值。

  尽管本书的读者此时不一定能理解这些问题,但我们相信其中将来在科学研究上发展的同学会有机会欣赏它们。
  在Kleinrock的报告中,他用的是“消息”这个词,但由于有大小的限制,实际含义同本书的“分组”。
  即图2中分组进入和离开节点之间的时间。
  读者可能意识到,有些时候(例如到十字路口看见红灯,但两边并没有车来)没按规则做也不一定就出事,但出事的危险总是存在的。我们称共同严格遵守协议是保障安全运行的“充分条件”。网络协议也是如此,同一个协议,如果实现得不严格,不一定就肯定运行不起来,特别是同一个厂家的系统,可能根本发现不了问题;但若是不同厂家的系统,问题就容易暴露出来。
  如何讨论两个节点之间的有效通道容量?
   在流量突然变化的情况下,能否预测网络的瞬态行为和恢复时间?
   每个节点的存储容量多大比较合适?
   在不同的网络中,分组的路由决定是如何形成的?
   在什么条件下网络会拥塞,即一个分组通过网络花的时间过长?
   如果考虑节点内部的延迟、分组优先级等因素,会有些什么结果?
  为什么这些问题很重要?如果对照前面关于分组交换思想的描述,我们多少能够感受到它们抓住了那种“混乱”场景的一些根本。
协议及其层次结构
  协议(protocol),是网络技术学习中最重要,也是内涵最丰富的概念之一。所谓协议,简单讲就是为某项合作目的所确定的行为规范,跟生活中人们相互之间签署的协议有类似之处。在网络中,或者说在由许多自主元素构成的分布式系统中,由于涉及信息的交流及对资源的竞争,用协议来规范参与者的行为显得尤其重要。一个日常生活中的简单例子是通过有交通信号灯的十字路口,“红灯停、绿灯行”就是大家要遵守的协议。每个人严格按规则做了,大家就都相安无事。计算机网络中的各种协议也是如此,它们规范了参与网络通信的节点和终端的行为,违反既定的规范,轻则可能实现不了预定的功能,重则可能造成系统混乱。
  当前,全世界上亿的计算机都在互联网上运行着,尽管它们的拥有者不同,它们加入互联网的时间不同,但任何两台计算机都可以相互通信;想一想,这是很神奇的。使这种神奇成为现实的就是上百种协议。这些协议,分别针对不同但相互关联的网络功能需求,它们的总体及其相互关系构成了所谓的“互联网体系结构”。
  人们发现,以一种层次的视角来理解这种“互联网体系结构”是非常有益的。互联网,一方面要能容纳各种各样的设备,大到巨型计算机,小到手机,可以是典型的计算机,也可以是看起来不像计算机的某种科学仪器;另一方面要面对各种各样的应用,如电子邮件、网络浏览、即时通信、远程登录等。这两个方面都是动态的、不断发展的。网络的生命力在于能否最大可能地适应它们的发展。为此,人们认为网络本身应该简单,只需满足各种应用都需要的最公共、最核心的需求,从而便于规模的扩大,效率的提高,而让其他一些功能体现在终端中或者应用程序中。
  什么是各种网络应用最公共、最核心的需求?那就是数据传输。当我们决定了采用分组交换方式后,数据传输就是指让一个分组从发送终端进入网络,通过若干次转发,最后到达接收终端。这样,作为网络的节点,它的任务非常单纯:将从一个链路收到的分组从某个正确的链路送出去。显然,节点需要在若干可能的输出链路之间做出选择,也就是人们常说的“路由”,而节点就被称为“路由器”了。路由决定的依据是分组携带的目标地址信息,以及当前网络状况的一些信息。无论互联网有多么大,发送和接收终端节点相距多么远,分组就这么被路由器转发,一条链路接着一条链路,最后到达目的地。
  但是,即便节点路由是正确的,各种问题还是可能发生。例如,数据分组在传输过程中可能出现传输差错等问题。互联网的设计者决定将对这些问题的处理都放在终端上,网络节点只管“尽力而为”地进行分组转发。

  参阅文献,Vinton G. Cerf and Robert E. Kahn,“A Protocol for Packet Network Intercommunication”。
  多个网络连接起来不还是一个网络吗?为什么非要强调多个网络?这是技术发展与管理格局相互促进和依存的一个典型例子。不同的机构或组织建设的网络,在许多技术条件上可能是很不同的,让谁改变都不容易,但又都有相互连接起来的愿望,于是就要有一种技术能在这种条件下实现这种愿望。
  初学者对于协议层次的观念常常会感到困惑。一个图上画了一层层的概念从计算机运行来说到底意味着什么?对于了解了一些程序设计概念的读者来说,可以方便地将层次理解为函数的嵌套调用。每一层提供的功能相当于一组函数,它们的实现要通过调用下一层的函数来完成。

  互联网的核心协议TCP/IP正是基于这种设计思想而提出的。TCP/IP协议最早源自Vinton G. Cerf和Robert E. Kahn在1974年发表的一篇论文。如果说Kleinrock的论文是从理论上阐述了分组交换的可行性,Cerf和Kahn的论文则是描述了分组交换的一个工程实施解决方案。特别值得一提的是,该方案论述的不只是一个网络中的分组交换问题,而是充分考虑了分组交换在不同的网络之间如何实现的问题,于是就有了“互联网”之说,即将多个网络连接起来形成的网络。这里,我们看看该论文的摘要:本文提出了一个支持在不同的分组交换网络中共享资源的协议。该协议允许不同的网络有不同的分组大小,同时允许传输出错、分组定序、流量控制、端到端错误检测,以及逻辑(在通信终端上的)进程与进程间连接的创建与撤销。考虑了一些实现的细节,对网际路由、记账、超时等问题都有所讨论。TCP/IP协议清晰地描述了互联网的体系结构,将规范节点转发行为的协议称为网际协议(Internet Protocol,IP),它不仅要在终端上运行,还要在网络节点(路由器)上运行;而将处理出错等问题的协议称为传输控制协议(Transmission Control Protocol,TCP),它只是在终端上运行。
  IP协议的功能比较单纯,或者说它是一个简单协议,但几乎就是互联网所提供的功能的全部了(注意,我们区别网络设施与终端),TCP功能由终端来实现,因此互联网又叫“IP网”。任何需要在互联网上运行的数据终端,首先要实现IP的协议功能,即要让分组能够从该设备上发给网络节点,并能从网络节点上收到分组。其次,它需要在IP之上实现TCP协议功能(或者后续章节会讲到的UDP协议),通过TCP协议修正分组在IP网络中出现的各种传输差 图3 互联网协议层次示意图错,实现数据终端之间可靠的数据传输。最后,通过TCP处理后的数据提交给不同的应用,实现与设备应用相关的功能。由此,我们可以初步体会到互联网协议层次的观念。图3是一个示意图,其中IP层也称为网络层,传输层包含TCP和UDP,网络层和传输层是互联网的核心协议,即我们常说的TCP/IP(这是一种习惯,尽管也可以是UDP/IP)。TCP/IP之上,可以是任何以TCP/IP协议为基础实现的网络应用,如电子邮件、Web应用、网络电视等。TCP/IP以下的底层我们称其为链路层和物理层,可以理解为数据在不同的链路上传输使用各种传输技术。图3用较宽的并且开放式的图形来描绘这两个层次,意味着其内涵的丰富,而IP层较窄,意指其相对比较简单。
  在介绍了互联网的基本协议结构之后,我们可以来谈论“计算机网络”与“互联网”的区别了,这是本教材名称的两个关键词。一般而言,计算机网络是一个非常一般的术语,任何将若干计算机相互联结起来的系统都可以称为是计算机网络。互联网(Internet)是一种计算机网络,或者说是以TCP/IP为核心协议的计算机网络,任何运行TCP/IP协议的数据终端连接到互联网上,都可以实现彼此之间的数据通信。当然,完全可以有不以TCP/IP为核心协议的计算机网络,历史上曾经有过,从20世纪80年代后期开始逐步被淘汰,现在成了IP的一统天下,但这不意味着今后不会出现新的网络!人们有时讲“Internet”和“internet”,它们是有区别的。“Internet”指的是我们现在感受到的这个互联网,而“internet”则是任何同样以TCP/IP为核心协议的计算机网络,但不一定和“Internet”相连。
  以上所述可以理解为支撑互联网运行最核心的几个基本概念,在此提出并不是要求读者对这些概念能够有一个清晰而透彻的理解。它们可以看成是计算机网络与互联网技术的“纲”,把握住它们有助于有效理解教材中所涉及的其他知识。也许,当我们读完了整本教材之后,再回过头来读这部分的内容,对此会有更深刻的体会和新的认识。以下我们简述本教材各章涵盖的主要内容。
  第1章,计算机网络概述。计算机网络与互联网,从憧憬、理论到实践,追溯起来也有了40多年的历史。许多计算机网络教材都有关于这一段历史的描述,互联网上也有大量这方面的详细资料,包括技术进步的历程、关键人物的事迹等。因此,我们不再赘述这方面的内容,读者可以从本教材最后提供的参考书和文献中了解这方面的内容。这一章我们以一种步步引导的方式,从最简单的两台计算机之间直接连接,到多台计算机之间通过某种网络设备进行数据转发和传递,最后再到将不同技术的网络相互连接构成一个更大规模的网络,让学生很快对计算机网络的基本组成元素和相关技术有一个初步而具体的认识。随后我们引入网络体系结构的概念,以结构化的方法将网络系统划分成功能和特点各不同的组件,并讨论各组件之间的相互合作关系。
  第2章,两个节点之间的数据传输。从这一章开始的连续五章可以看作是本教材的中心内容。所谓“数据传输技术”,讲的是用什么样的物理介质(形成的信道)将数字化信息从一台计算机(信息的发送方)携带到另一台计算机(信息的接收方),从而形成所谓的“通信”;在这个传输过程中,如何发现数据传输出现的差错(这是不可避免的),并且修正这些传输差错;如何处理发送方和接收方处理速度不一致的问题;为了充分利用资源,多个发送方和多个接收方怎样能够共享同一个信道等。
  第3章,分组交换技术。分组交换是计算机网络的核心技术之一。它要解决的基本问题是如何让大量在地域上分布的计算机系统能够以可以接受的代价相互通信;解决这个问题的基本假设是那些大量分布的计算机并不会同时要求相互通信。在这方面,不同技术(电路交换、分组交换)竞争的焦点在于代价和所能提供的服务质量之间的权衡,而对于服务质量的要求又是因服务类型而不同的。
  第4章,局域网技术。从应用上讲,单独的局域网的概念现在是越来越淡化了。在一个单位信息技术部门工作的工程师们现在被要求的常常不是“在那个楼里建一个局域网”,而是“让互联网(或者是企业网)延伸到那个楼里去”。具体工作可能差不太多,但重心不同。尽管如此,将一个楼里的计算机都连起网来,无论是否再一起连到互联网上,用到的主流技术都是一样的,即以太网技术,它就是第4章的基本内容。
  第5章,网络互联。当我们有了一个个网络(局域网、企业网,假设它们没有连到互联网)之后,如何再将它们互联起来,形成一个能够跨越网络交换信息的平台?历史上有过各种尝试,但最后证明IP技术是能最有效地实现这个目标的技术,它导致了现在无处不在的互联网或者因特网。本章结合路由器(实施IP技术的核心设备)的功能,详细介绍IP技术,通过讨论在贯彻“IP every where”过程中所遇到的各种困难(技术的、管理的)及其解决方案,读者既能感受到IP技术内涵的简洁,也能体会到它外延的丰富。
  第6章,端系统之间的数据传输协议。按照设计,IP技术解决的是将一个数据分组从一台计算机上,经过若干个路由器,送到另一台计算机上,IP既不管该数据分组归接收计算机上的哪个进程处理(注意,我们的计算机现在都是多进程的),也不管在传送的过程中是否出现了错误。这就是本章要讨论的。读者会看到,为了解决第一个问题,简单的UDP就够了;但为了彻底解决第二个问题,人们似乎不得不引入相当复杂的TCP,尽管在我们的表述中回避了不少细节。
  第7章,网络应用。在TCP/IP之上,是百花齐放的网络应用。电子邮件(E-mail),文件传送(FTP),远程登录(Telnet),网页浏览(Web),即时通信(IM),对等计算(P2P),等等,不一而足。全面介绍它们既不应该、也不可能是本教材的任务。这一章旨在从实现的角度,简要介绍几种不同特点的应用,使读者对TCP/IP如何能和各种喜闻乐见的网络应用联系起来有一个初步的认识。后续课程对于这些应用会有更详细的介绍。
  第8章,网络安全。鉴于《规范》建议有一门关于安全的后续课程,因此本教材介绍安全问题时更多的是以我们前面所学习的网络技术为背景知识,针对网络系统存在的安全隐患,学习一些基本的网络安全技术和控制机制。基于这些基本的网络安全措施,我们介绍几种目前因特网采用的安全协议和标准,这些安全协议仍然以TCP/IP为基础,将安全机制封装在不同的层次结构中,实现不同级别和目标的安全保护需求。
  最后,我们列出了一些参考书籍作为辅助性读物,同时也提供了一些与网络技术和标准相关的官方网站,读者可以通过这些资源进一步了解并扩充相关的技术知识。
  如同《规范》中所论述的,信息技术是当代计算机学科发展的一个重要方向,网络技术是该方向的一个核心内容。然而,如何根据信息技术的人才培养定位,编写出一本适合这个方向的网络技术教材,对我们是一个挑战。本教材的构思和基本内容主要来自北京大学计算机专业辅修学位的多年教学实践,并根据《规范》的要求进行了适应性调整,教材的初稿在北大计算机专业辅修学位班上试用过两个学期,终稿采纳了同学们的一些意见和建议。尽管如此,鉴于作者的学识水平以及对信息技术人才的理解所限,书中定有不少欠妥甚至谬误之处,谨盼读者不吝指正。

作者
2010年4月于北京大学

上架指导

计算机\网络

封底文字

同第1版

图书序言

近20年里,计算机学科有了很大的发展,人们普遍认为,“计算机科学”这个名字已经难以涵盖该学科的内容,因此,改称其为计算学科(Computing Discipline)。在我国本科教育中,1996年以前曾经有计算机软件专业和计算机及应用专业,之后被合并为计算机科学与技术专业。2004年以来,教育部计算机科学与技术专业教学指导分委员会根据我国计算机专业教育和计算学科的现状,为更好地满足社会对计算机专业人才的需求,发布了《高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)》(以下简称《规范》),提出在计算机科学与技术专业名称之下,构建计算机科学、计算机工程、软件工程和信息技术四大专业方向。《规范》中四大专业方向的分类,在于鼓励办学单位根据自己的情况设定不同的培养方案,以培养更具针对性和特色的计算机专业人才。
  为配合《规范》的实施,落实中央“提高高等教育质量”的精神,我们规划了“面向计算机科学与技术专业规范系列教材”。本系列教材面向全新的计算学科,针对我国高等院校逐步向新的计算机科学与技术专业课程体系过渡的趋势编写,在知识选择、内容组织和教学方法等方面满足《规范》的要求,并与国际接轨。本套教材具有以下几个特点:
  (1) 体现《规范》的基本思想,满足其课程要求。为使教材符合我国高等院校的教学实际,编委会根据《规范》的要求规划本套教材,广泛征集在国内知名高校中从事一线教学和科研工作、经验丰富的优秀教师承担编写任务。
  (2) 围绕“提高教育质量”的宗旨开发教材。为了确保“精品”,本系列教材的出版不走盲目扩大的路子,每本教材的选题都将由编委会集体论证,并由一名编委担任责任编委,最大程度地保证这套教材的编写水准和出版质量。
  (3) 教材内容的组织科学、合理,体系得当。本套教材的编写注重研究学科的新发展和新成果,能够根据不同类型人才培养需求,合理地进行内容取舍、组织和叙述,还精心设计了配套的实验体系和练习体系。
  (4) 教材风格鲜明。本套教材按4个专业方向统一规划,分批组织,陆续出版。教材的编写体现了现代教育理念,探讨先进的教学方法。
  (5) 开展教材立体化建设。根据需要配合主教材的建设适时开发实验教材、教师参考书、学生参考书、电子参考资料等教辅资源,为教学实现多方位服务。
  我们衷心希望本系列教材能够为我国高等院校计算机科学与技术等专业的教学作出贡献,欢迎广大读者广为选用。

“面向计算机科学与技术专业规范系列教材”编委会

图书目录

出版者的话
序 言
前 言
教学建议
第1章 计算机网络概述1
 1.1 数据通信链路1
  1.1.1 数据通信的基础知识1
  1.1.2 数据以分组的形式传输3
 1.2 数据传输网络5
  1.2.1 电路交换和分组交换5
  1.2.2 分组交换网络的特点7
 1.3 网络互联8
  1.3.1 网络互联设备:路由器9
  1.3.2 因特网协议:TCP/IP10
 1.4 网络应用11
  1.4.1 计算机端系统和网络11
  1.4.2 客户/服务器模式12
  1.4.3 网络应用编程接口套接字12
 1.5 计算机网络体系结构13
  1.5.1 分层和协议13
  1.5.2 因特网体系结构16
  1.5.3 报文、报文段、数据报、数据帧17
 1.6 因特网和因特网服务提供商19
  1.6.1 因特网的主干结构19
  1.6.2 接入因特网21
 1.7 计算机网络中的标准23
 1.8 小结23
 练习题24
第2章 两个节点之间的数据传输25
 2.1 数据通信基础(物理链路)25
  2.1.1 数据通信的基本模型25
  2.1.2 数据、信号和传输26
  2.1.3 数据传输的主要性能指标30
  2.1.4 信道复用技术31
 2.2 传输介质32
  2.2.1 引导型传输介质(有线传输)33
  2.2.2 非引导型介质(无线传输)34
 2.3 分组传输技术36
  2.3.1 数据链路所提供的服务36
  2.3.2 构建数据帧36
 2.4 数据链路控制协议38
  2.4.1 停等协议ARQ38
  2.4.2 连续发送协议40
  2.4.3 滑动窗口控制机制42
  2.4.4 对窗口机制的进一步讨论44
 2.5 差错检测46
  2.5.1 奇偶校验46
  2.5.2 CRC校验技术46
  2.5.3 校验和方法47
 2.6 链路访问控制实现方法48
  2.6.1 轮流访问控制协议48
  2.6.2 随机访问控制协议49
 2.7 链路协议举例50
  2.7.1 高级数据链路控制50
  2.7.2 点到点数据链路协议50
 2.8 小结51
 练习题52
第3章 分组交换技术54
 3.1 分组交换概述54
  3.1.1 分组交换的实现55
  3.1.2 分组交换设备55
 3.2 分组交换网络的传输时延和数据丢失57
  3.2.1 分组交换网络的传输时延57
  3.2.2 分组交换网络的数据丢失58
  3.2.3 分组交换中数据传输的可靠性59
 3.3 分组交换网资源分配策略60
  3.3.1 虚电路资源分配62
  3.3.2 数据报资源分配62
 3.4 虚电路和数据报63
  3.4.1 虚电路方式63
  3.4.2 数据报方式65
  3.4.3 虚电路和数据报的特点分析65
 3.5 分组交换网络提供的服务质量66
 3.6 几种交换网络技术68
  3.6.1 基于电路交换的传输网络68
  3.6.2 基于分组交换的网络71
  3.6.3 因特网互联各种网络72
 3.7 小结74
 练习题75
第4章 局域网技术76
 4.1 局域网概述77
  4.1.1 局域网发展历史77
  4.1.2 IEEE 802系列标准77
 4.2 以太网技术78
  4.2.1 介质访问控制技术79
  4.2.2 以太网寻址方式83
  4.2.3 以太网数据帧结构86
 4.3 以太网扩展技术87
  4.3.1 以太网网桥88
  4.3.2 以太网交换机91
 4.4 无线局域网95
  4.4.1 无线网络概述95
  4.4.2 无线局域网的基本工作原理97
  4.4.3 无线局域网共享信道访问控制99
  4.4.4 无线局域网帧结构103
 4.5 小结104
 练习题105
第5章 网络互联107
 5.1 网络互联概述108
  5.1.1 路由器的选路处理108
  5.1.2 网络互联体系结构109
  5.1.3 网络互联服务模型110
 5.2 因特网协议111
  5.2.1 IP数据报111
  5.2.2 IP地址及寻址115
  5.2.3 IP地址解析协议ARP120
  5.2.4 特殊的IP地址、私有地址以及IP地址分配121
  5.2.5 网络地址转换NAT122
  5.2.6 因特网控制消息协议ICMP124
 5.3 路由选路算法126
  5.3.1 链路状态选路算法127
  5.3.2 距离向量选路算法128
 5.4 因特网路由层次结构130
  5.4.1 因特网自治系统130
  5.4.2 自治系统内与自治系统间的路由选择131
 5.5 因特网路由协议133
  5.5.1 因特网自治系统内路由协议:RIP133
  5.5.2 因特网自治系统内路由协议:OSPF135
  5.5.3 因特网自治系统间路由协议:BGP137
 5.6 IP组播技术139
  5.6.1 IP组播的概念139
  5.6.2 IP组管理协议IGMP140
  5.6.3 IP组播路由选路141
 5.7 小结143
 练习题143
第6章 端系统之间的数据传输协议147
 6.1 端系统传输协议概述148
  6.1.1 网络应用的实现148
  6.1.2 传输协议的主要功能150
 6.2 用户数据报协议UDP153
  6.2.1 UDP报文格式153
  6.2.2 无连接UDP的特点153
  6.2.3 UDP的应用154
 6.3 传输控制协议TCP155
  6.3.1 TCP报文结构概述156
  6.3.2 TCP连接管理158
  6.3.3 可靠的数据传输161
  6.3.4 TCP的滑动窗口控制机制165
 6.4 TCP的拥塞控制原理167
  6.4.1 拥塞产生的原因168
  6.4.2 TCP拥塞控制169
 6.5 套接字编程介绍172
 6.6 小结176
 练习题177
第7章 网络应用179
 7.1 网络应用概述180
  7.1.1 网络应用体系结构180
  7.1.2 网络应用的服务模式180
 7.2 域名服务系统DNS181
  7.2.1 域名服务的层次结构182
  7.2.2 DNS协议186
  7.2.3 利用DNS服务实现负载分配188
 7.3 万维网189
  7.3.1 万维网的基本组成189
  7.3.2 HTTP协议191
  7.3.3 Web缓存技术(Web代理服务器)196
 7.4 多媒体网络应用198
  7.4.1 图像、音频、视频的压缩199
  7.4.2 多媒体应用概述200
  7.4.3 多媒体实时传输协议202
  7.4.4 缓存技术和分组差错恢复技术205
  7.4.5 组播技术应用207
 7.5 对等网络应用210
  7.5.1 对等网络概述210
  7.5.2 对等网络拓扑结构211
 7.6 小结216
 练习题217
第8章 网络安全220
 8.1 数据加密技术221
  8.1.1 明文、密文和密钥221
  8.1.2 数据加密标准DES222
  8.1.3 RSA加密算法223
 8.2 认证技术225
  8.2.1 身份鉴别技术226
  8.2.2 数据完整性保障230
 8.3 网络安全协议232
  8.3.1 PGP协议232
  8.3.2 安全外壳协议SSH233
  8.3.3 安全套接字层协议SSL235
  8.3.4 IP安全协议IPSec237
 8.4 防火墙技术240
  8.4.1 基于网络层的防火墙技术(包过滤)241
  8.4.2 基于应用层的防火墙技术(应用代理)244
  8.4.3 防火墙的局限性246
 8.5 小结247
 练习题247
进一步阅读材料249

教学资源推荐
作者: 林成森 史九林 周建兰 徐进鸿 徐洁磐 编著
作者: [美]怀亚特·S. 纽曼(Wyatt S. Newman) 著
作者: Katsuhiko Ogata(尾形克彦)
作者: (美)M. Morris Mano; Charles R. Kime 著
参考读物推荐
作者: [美]袁钧涛(Michael Juntao Yuan) 著
作者: 李赫 李伟 杨霞 等编著