127期东方心经必中人物:第一章 计算机网络原理概述

来源:百度文库 编辑:中财网 时间:2024/04/19 22:35:07
章  概   述
计算机网络在信息时代的作用
我们已经进入了21世纪,21世纪的一些重要特征就是数字化、网络化和信息化,它是—个以网络为核心的信息时代。
当前,世界经济正在从工业经济向知识经济(knowledge-base economy)转变。知识经济是相对于农业经济、工业经济而出现的一种正在形成中的崭新的经济形态。知识经济就是指以知识为基础的经济,并且经济的发展在很大程度上取决于对知识的发掘和积累。知识经济的诞生不仅对人们的工作、学习、交往等各个方面起着非常大的作用,而且也影响了整个社会的发展。知识经济已成为推动生产力发展的巨大动力。
知识经济中的两个重要特点就是信息化和全球化。要实现信息化和全球化,就必须依靠完善的网络。因此,网络己成为信息社会的命脉和发展知识经济的重要基础。网络对社会生活的很多方面以及对社会经济的发展已经产生了不可逆转的影响。
这里所说的网络是指电信网络(主要的业务是电话,但也有其他业务,如传真、数据等)、有线电视网络(即单向电视节目的传送网络,但现已开始逐渐向双向传输网络改造)和计算机网络。这三种网络通常简称为“三网”。“三网”在信息化过程中起着十分重要的作用,但其中发展最快的并起到核心作用的是计算机网络,而这正是本书所要讨论的内容。
进入20世纪90年代以来,以因特网(Internet)为代表的计算机网络的发展速度十分迅猛,已从最初的教育科研网络逐步发展成为商业网络,并已成为仅次于全球电话网的世界第二大网络。不少人认为现在已经是因特网的时代了,这是因为因特网正在改变着我们工作和生活的各个方面,它己经给很多国家(尤其是因特网的发源地美国)带来了巨大的好处,并加速了全球信息革命的进程。可以毫不夸大地说,因特网是自印刷术以来人类通信方面最大的变革。
现在人们的生活、工作、学习和交往都已离不开计算机网络。设想在某一天我们的计算机网络突然出故障不能工作了,那时会出现什么结果呢 我们将无法购买机票或火车票,因为售票员无法知道还有多少票可供出售;我们也无法到银行存钱或取钱,无法交纳水电费和煤气费等;股市交易都将停顿;在图书馆也无法检索需要的图书和资料;我们既不能上网查询有关的资料,也无法使用电子邮件和朋友及时交流信息。由此可看出人们的生活越是依赖于计算机网络,计算机网络的可靠性也就越重要。
因特网已成为全球性的信息基础结构的雏形,全世界所有的工业发达国家和很多的发展中国家都纷纷研究和制定本国建设信息基础结构的计划。这就使得计算机网络的发展进入了
一个新的历史阶段,并变成了几乎人人都知道而且都十分关心的热门学科。
因特网概述
1.2.1 网络的网络
起源于叛国的因特网现已发展成为世界上最大的国际性计算机互联网。这就使得20世纪90年代成为公认的因特网时代,或简称为网络时代。
可以从不同的角度来看因特网。图1-1(a)是最常用的一种表示因特网的方法。因特网用一朵云来表示,因为因特网太大了,没有人能够画出因特网的具体结构。我们看到,有许多计算机连接在因特网上。这种连接到计算机网络上的计算机通常都称为主机(host)。
图1-1 因特网
如果再进一步,我们可以表示因特网的云彩里面再画出一些互相连接在一起的各种网络,如图1-1(b)所示。这表示因特网是网络的网络(network of networks)。当我们不需要关心因特网内部的许多细节(例如,各个具体的网络的一些特性)而只是强调因特网是由许多网络互连在一起时,这样的表示方法就很清楚。因此,我们有这样的概念:
计算机网络把许多计算机连接在一起,而因特网则把许多计算机连接在一起。
还有一点也必须注意,就是网络互连并不是把计算机简单地在物理上连接起来,因为仅仅这样做并不能达到计算机之间能够相互交换信息的目的。我们还必须有许多的软件加上云才行。因此,当我们谈到网络互连时,就已经暗示了已经安装了适当的软件,因而在计算机之间可以通过网络交换信息。
1.2.2 因特网发展的三个阶段
因特网的基础结构大体上经历了三个阶段的演进。但这三个阶段在时间划分上并非截然分开而是有部分重叠的,这是因为网络的演进是逐渐的而不是突然的。
第一阶段是从单个网络ARPANET向互连网发展的过程。1969年美国国防部创建的第一个分组交换网ARPANET最初只是一个单个的分组交换网(并不是一个互连的网络)。所有要连接在ARPANET上的主机都直接与就近的结点交换机相连。但到了20世纪70年代中期,人们已认识到不可能仅使用一个单独的网络来满足所有的通信问题。于是ARPANET开始研究多种网络(如分组无线电网络)互连的技术,这就导致后来互联网的出现。这样的互联网就成为现在因特网(Internet)的雏形。1983年TCP/IP成为ARPANET上的标准协议,使得所有使用TCP/IP的计算机都能利用互联网相互通信,因而人们就把1983年作为因特网的诞生时间。1990年ARPANET正式宣布关闭,因为它的实验任务已经完成。
请读者注意以下两个意思不一样的名词internet[RFC 1208]:
以小写字母i开始的internet(互联网或互连网)是一个通用名词,它泛指由多个计算机网络互连而的网络。在这些网络之间的通信协议(即通信规则)可以是任意的。
以大写字母I开始的Internet(因特网)则是一个专用名词,它指当前全球最大的、开放的、由众多网络相互连接而成的特定计算机网络,它采用TCP/IP族作为通信的规则,且其前身是美国的ARPANET。
第二阶段的特点是建成了三级结构的因特网。从1985年起,美国国家科学基金会NSF(National Science Fondation)就围绕6个大型计算机中心建设计算机网络,即国家科学基金网(NSFNET)。它是一个三级计算机网络,分为主干网、地区网、校园网(或企业网)。这种三级计算机网络酸辣了全美国主要的大学和研究所,并且成为因特网中的主要组成部分。1991年,NSF和美国的其他政府机构开始认识到因特网必将扩大其使用范围,不应仅限于大学和研究机构。世界上的许多公司纷纷接入到因特网,使网络上的通信量急剧增大,使因特网的容量已满足不了需要。于是美国政府决定将因特网的主干网交给私人公司来经营,并开始对拉入因特网的单位收费。1992年因特网上的主机超过1百万台。1993年因特网主干网的速率提高到45Mbit/s(T3速率)。
第三阶段的特点是逐渐形成了多级ISP结构的因特网。从1993年开始,由美国政府资助的NSFNET逐渐被若干个商用因特网主干网替代,而政府机构不再负责因特网的运营。这样就出现了一个新的名词:因特网服务提供者ISP(Internet Service Provider)。ISP是一个进行商业活动的公司,因此它又常称为因特网服务提供商。ISP拥有从因特网管理机构申请到的多个IP地址(因特网上主机都必须有IP地址才能进行通信,这一概念将在第7章中详细讨论,同时拥有通信线路(大的ISP自己建设通信线路,小的ISP则向电信公司租用通信线路)以及路由器等连网设备,因此,任何机构和个人只要向ISP交纳规定的费用,就可从ISP得到所需的IP地址,并通过该ISP接入到因特网。我们通常所说的“上网”就是指“(通过某个ISP)接入到因特网”,因为ISP向上网用户提供了IP地址。IP地址的管理机构不会把一个单个的IP地址分配给单个用户(不“零售”),而是把一批IP地址有偿分配给经审查合格的ISP(只“批发”)。图1.2说明了用户上网与ISP的关系。

根据提供服务的覆盖面积大小的不同,ISP也分成为不同的等级。因此,现在的因特网并不是某个单个组织所拥有的。图1.3是具有三级结构ISP的因特网的概念示意图,这个图并不表示ISP的地理位置的关系。
在图中,最高级别的一级ISP的服务面积最大(一般都能够覆盖国家范围),并且还拥有高速主干网。二级ISP和一些大公司都是一级ISP的用户。三级ISP又称为本地ISP,它们是二级ISP的用户,且只拥有本地范围的网络。一般的校园网或企业网以及拨号上网的用户,都是三级ISP的用户。为了使不同ISP经营的网络都能够互通,在1994年开始创建了四个网络接入点NAP(Network Access Point),分别由四个电信公司经营。NAP用来交换因特网上流量。在NAP中安装有性能很好的交换设施(例如,使用ATM交换技术)。到21世纪初,美国的NAP的数量已达到十几个。NAP可以算是最高等级的接入点。它主要是向各ISP提供交换设施,使它们能够互相通信。NAP又称为对等点(peering point),表示接入到NAP的设备不存在从属关系而都是平等的。
从图1-3可看出,因特网逐渐演变成基于ISP和NAP的多级结构网络。但今日的因特网由于规模太大,已经很难对整个的网络结构给出细致的描述。但下面这种情况是经常遇到的,就是相隔较远的两个主机的通信可能需要经过多个ISP(如图l-3中的灰色粗线表示主机A要经过许多不同的ISP才能把数据传送到主机B)。因此,当主机A和另一个主机B通过因特网进行通信时,实际上也就是它们通过许多ISP进行通信。
因特网已经成为世界上规模最大和增长速率最快的计算机网络,没有人能够准确说出因特网究竟有多大。因特网的迅猛发展始于20世纪90年代。由欧洲原子核研究组织(CERN)开发的万维网www(World Wide Web)被广泛使用在因特网上,大大方便了广大非网络专业人员对网络的使用,成为因特网的这种指数级增长的主要驱动力。万维网的站点数月也急剧增长。在因特网上的数据通信量每月约增加10%。表1-1是因特网上的网络数、主机数、用户数和管理机构数的简单概括[COME06]。
由于因特网存在着技术上和功能上的不足,加上用户数量猛增,使得现有的因特网不堪重负。因此,1996年美国的一些研究机构和34所大学提出研制和建造新一代因特网的设想,并宣布在今后5年内用5亿美元的联邦资金实施“下一代因特网计划”,即“NGI计划”(Next Generation Internet Initiative)。
NGI计划要实现的一个目标是开发下一代网络结构,以比现有的冈特网高100倍的速率连接至少100个研究机构,以比现有的因特网高1000倍的速率连接10个类似的网点。其端到端的传输速率要超过100Mbit/s至10Gbit/s。另一个目标是使用更加先进的网络服务技术和开发许多带有革命性的应用,如远程医疗、远程教育、有关能源和地球系统的研究、高性能的全球通信、环境监测和预报、紧急情况处理等。NGI计划将使用超高速全光网络,能实现更快速的交换和路由选择,同时具有一些实时应用保留带宽的能力。在整个因特网的管理和保证信息的可靠性与安全性方面也会有很大的改进。
1.2.3 关于因特网的标准化工作
因特网的标准化工作对因特网的发展起到了非常重要的作用。我们知道,标准化工作的好坏对一种技术的发展有着很大的影响,缺乏国际标准将会使技术的发展处于比较混乱的状态,而盲目自由竞争的结果很可能形成多种技术体制并存且互不兼容的状态(如过去形成的彩电三大制式),给用户带来较大的不方便。但国际标准的制定又是一个非常复杂的问题,这里有很多技术问题,且存在很多非技术问题,如不同厂商之间经济利益的争夺问题等。标准制定的时机也很重要,标准制定得过早,由于技术还没有发展到成热水平,会使技术已经陈旧的标准限制了产品的技术水平,其结果是不得不再次修订标准,造成浪费:反之,若标准制定得太迟,出会使技术的发展无章可循,这会造成产品的互不兼容,因而也会影响技术的发展。因特网在制定其标准上很有特色,它的一个很大的特点是面向公众,因特网所有的技术文档都可从因特网上免费下载(见附录B),而且任何人都可以用电子邮件随时发表对某个文档的意见或建议。这种方式对因特网的迅速发展影响很大。
1992年,因特网不再归美国政府管辖,因此成立了一个国际性组织叫做因特网协会ISOC(Internet Society),以便对因特网进行全面管理以及在世界范围内促进其发展和使用。 ISOC下面有—个技术组织叫做因特网体系结构研究委员会IAB(Internet Architecture Board),负责管理因特网有关协议的开发。IAB下面又设有两个工程部。
因特网工程部IETF (Internet Engineering Task Force)
IETF是由许多工作组WG(Working Group)组成的论坛(forum),具体工作由因特网工程指导小组IESG(Internet Engineering Steering Group)管理。这些工作组划分为若干个领域(area),每个领域集中研究某一特定的短期和中期的工程间题,主要是对协议的开发和标准化。
因特网研究部IRTF(Internet Research Task Force)
IRTF是由—些研究组RG(Research Group)组成的论坛,具体工作由因特网研究指导小组IRSG(Internet Research Steering Group))管理。IPTF的任务是从事理论方面研究和开发—些需要长期考虑的问题。
所有的因特网标准都是以RFC的形式在因特网上发表。RFC(Request For Comments)的意思就是“请求评论”。但应注意,并非所有的RFC文档都是因特网标准,因为任何人都可以通过RFC发表他对因特网的某些方面的建议,而其中只有—小部分最后变成标准。RFC按收到RFC文档的先后次序从小到大编上序号(即RFC xxxx,这里的xxxx是阿拉伯数字)。一个RFC文档更新后,就使用—个新的编号,并在此文档中指出原来老编号的RFC文档已成为陈旧的。从一个普通文档上升到因特网的正式标准要经过四个阶段。
(1)因特网草案(Internet Draft),这是一种正在进行的工作文档,它不够成熟,且只有六个月的生存期。若能得到并发表为RFC文档,则可再进行后面的三个阶段。
(2)建议标准(Propose Standard)。
(3)草案标准(Draft Standard)。
(4)因特网标准(Internet Standard)。
本书的许多内容都注明其相关的RFC文档号以便进一步学习。
还有三种RFC,即历史的、实验的和提供信息的。历史的RFC或者是被后来的规约所取代,或者是从未到达必要的成熟等级因而未变成为因特网标准。实验的RFC就表示其工作属于正在实验的情况。实验的RFC不能够在任何实用的因特网服务中进行实现。提供信息的RFC包括与因特网有关的—般的、历史的或指导的信息,这种RFC通常是由非因特网的组织中的某个人(例如,设备的卖主)写出的。
1.3因特网的组成
因特网虽然在地理上覆盖了全球,但从其工作方式上看,可以把整个因特网的组成划分
为两大块,即由所有连接在因特网上的主机组成的因特网的边缘部分和由大量网络和连接这
些网络的路由器组成的因特网核心部分,图1.4给出了这两部分的示意图。这两部分的功能有很大的差别。下面分别讨论这两部分的作用和工作方式。

1.3.1因特网的组成
处在因特网边缘的部分就是连接在因特网E的所有的主机。这些主机又称为端系统(end system),“端”就是“末端”的意思。端系统在功能上可能有很大的差别,小的端系统可以是一台普通个人计算机,而大的端系统则可以是一台非常昂贵的大型计算机。端系统都使用网络核心部分所提供的服务。端系统的拥有者可以是个人,也可以足单位(如学校、企业、政府机关等),当然也可以是某个ISP(即ISP不仅仅是向端系统提供服务,它也可以拥有一些端系统)。因特网的端系统就是前面提到的主机。边缘部分的功能就是利用核心部分所提供的服务,使这样多的主机之间能够互相通信并交换或共享信息。
我们先要明确下面的概念。我们说:“主机A和主机B进行通信”,实际上是指:“运行在主机A上的某个程序和运行在主机B上的另一个程序进行通信”。由于“进程”就是“运行着的程序”,因此这也就是指:“主机A的某个进程和主机B上的另一个进程进行通信”。这种比较准确的说法通常可以简称为“计算机之间通信”。
在网络边缘的端系统中运行的程序之间的通信方式可划分为两大类:客户服务器方式和对等方式。下面分别对这两种方式进行介绍。
1.客户服务器方式
这种方式在因特网上是最常用的,也是传统的方式。我们在上网发送电子邮件或在网站上查找资料时,都是使用客户服务器方式(有时写为客户服务器方式或客户/服务器方式)。
当我们打电话时,电话机的振铃声使被叫用户知道现在有一个电话呼叫。计算机通信的对象是应用层中的应用进程,这显然不能用响铃的办法来通知所要找的应用进程。为此,就采用客户服务器方式使两个应用进程能够进行通信。
客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。客户服务器方式所描述的是进程之间服务和被服务的关系。在图1.5中,主机A运行客户程序而主机B运行服务器程序。在这种情况下,A是客户而B是服务器。客户A向服务器B发出请求服务,而服务器B向客户A提供服务。这里最主要的特征就是:
客户是服务请求方,服务器是服务提供方。
服务请求方和服务提供方都要使用网络核心部分所提供的服务。

在实际应用中,客户程序和服务器程序通常还具有以下一些主要特点。
客户程序:
(1)被用户调用后运行,在打算通信时主动向远地服务器发起通信(请求服务)。
(2)可与多个服务器进行通信。
(3)不需要特殊的硬件和很复杂的操作系统。
服务器程序:
(1)是一种专门用来提供某种服务的程序,可同时处理多个远地或本地客户的请求。
(2)当系统启动时即自动调用并一直不断地运行着,被动地等待并接受来自多个客户的通信请求。
(3)一般需要强大的硬件和高级的操作系统支持。
客户与服务器的通信关系一旦建立,通信可以是双向的,客户和服务器都可发送和接收数据。
顺便说一下,上面所说的客户和服务器本来部揩的是计算机进程(软件)。使用计算机的人是计算机的“用户(user)而不是“客户”(client)。但在许多国外文献中,经常也把运行客户程序的机器称为cliem,把运行服务器程序的机器称为server。因此,我们应当根据上下文来判断client(或server)是指软件还是硬件。在本书中,有时为了清楚起见,我们也使嗣“客户端”或“服务器端”来表示运行客户程序或服务器程序的机器。
2.对等连接方式
对等连接(peer-to—peer,简写为P2P)是指两个主机在通信时并不区分哪一个是服务请求方还是服务提供方。只要两个主机都运行了对等连接软件(P2P软件),它们就可以进行平等的、对等连接通信。这时,双方都可以下载对方已经存储在硬盘中的共享文档。因此,这种工作方式也称为P2P文件共享。在图I-6中,主机C,D,E和F都运行了P2P软件,因此,这几个主机都可进行对等通信(如C和D,E和F以及C和F)。我们可以注意到,在对等通信中,一个主机可以同时和其他几个主机通信,如图中的C和F。实际上,这种方式仍然在使用客户服务器方式,只是对等连接中的每一个主机既是客户也同时是鼹务器。例如主机C,当C请求D的服务时,C是客户,D是服务器。但如果C又同时向F提供服务,那么C又同时起着服务器的作用。
对等连接工作方式可以支持大量用户(如上百万个)同时工作。这样就可以使用户更加方便地获得所需要的计算机文档,而不需要再花费很多时间在因特网上慢慢搜索。关于对等连接工维方式可参考[KURO05)。
1.3.2因特网的核心部分
网络核心部分是因特网中最复杂的部分。网络核心部分向网络边缘中的主机提供服务,使边缘部分中的任何一个主机都能够向其他主机通信f即传送或接收各种形式的数据)。
在网络核心豁分,阿络和网络的连接要依靠路由器(router),我们在第7章将详细介绍路由器的功能。在这里,我们只需要知道,路由器是一种专用计算机(但不是主机),没有路由器,再多的网络也无法构建成因特网。路由器的具体任务是转发收到的分组。但从通信的角度看,路由器是实现分组交换(packet switching),这是网络核心部分最重要的功能。为了弄清分组交换,我们要先介绍电路交换的基本概念,在此基础之上再讨论分组交换的特点。
1.电路交换的主要特点
在电话问世后不久,人们就发现,要让所有的电话机都两两相连接是不现实的。图1—7(a)表示两部电话只需要用一对电线就能够互相连接起来。但若有5部电话要两两相连,则需要10对电线,如图1.7(b)所示。显然,若N部电话要两两相连,就需要N(N-1)/2对电线。当电话机的数量很大时,这种连接方法需要的电线数量就太大了(与电话机的数量的平方成正比)。于是,人们认识到,要使得每一部电话能够很方便地和另一部电话进行通信,就应当使用电话交换机将这些电话连接起来,如图1.7 (c)所示。每一部电话都连接到交换机上,而交换机使用交换的方法,让电话用户彼此之间可以很方便地通信。一百多年来,电话交换机虽然经过多次更新换代,但交换的方式一直都是电路交换(circuit  switching)。

当电话机的数量增多时,就要使用很多彼此连接起来的交换机来完成全网的交换任务。用这样的方法,就构成了覆盖全世界的电信网。
从通信资源的分配角度来看,“交换(switching)”就是按照某种方式动态地分配传输线路的资源。在使用电路交换打电话之前,必须先拨号建立连接。当拨号的信令通过许多交换机到达被叫用户所连接的交换机时,该交换机就向被叫用户的电话机振铃。在被叫用户摘机且摘机信令传送回到主叫用户所连接的交换机后,呼叫即完成。这时,从主叫端到被叫端就建立了一条连接(物理通路)。这条连接占用了双方通话时所需的一切通信资源,而这些资源在双方通信时不会被其他用户占用。正是因为有了这个特点,电路交换才对端到端的通信质量有了可靠的保证。此后主叫和被叫双方才能互相通电话。通话完毕挂机后,挂机信令告诉这些交换机,使交换机释放刚才使用的这条物理通路(即归还刚才占用的所有通信资源)。这种必须经过“建立连接(占用通信资源)→通话(一直占用通信资源) →释放连接(归还通信资源)”三个步骤的交换方式称为电路交换。
图1-8为电路交换的示意图。为简单起见,图中没有区分市话交换机和长途电话交换机。应当注意的是,用户线归电话用户专用,而对交换机之间拥有大量话路的中继线则是许多用户共享的,正在通话的用户只占用了其中的一个话路,而在通话的全部时间内,通话的两个用户始终占用端到端的通信资源。图中电话机A和B之间的通路共经过了四个交换机,而电话机C和D是属于同一个交换机的地理覆盖范围中的用户,因此,这两个电话机之间建立的连接就不需要再经过其他的交换机。

当使用电路交换来传送计算机数据时,其线路的传输效率往往很低。这是因为计算机数据是突发式地出现在传输线路上,因此,线路上真正用来传送数据的时间往往不到10%,甚至是1%。实际上,已被用户占用的通信线路在绝大部分时间里都是空闲的。例如,当用户阅读终端屏幕上的信息或用键盘输入和编辑一份文件时,或计算机正在进行处理而结果尚未返回时,宝贵的通信线路资源并未被利用而是白白浪费了。
2.分组交换的主要特点
分组交换则采用存储转发技术。。图1-9所示为划分分组的概念。通常,我们将欲发送的整块数据称为一个报文(message)。在发送报文之前,先将较长的报文划分成为一个个更小的等长数据段,例如,每个数据段为1024 bit。在每一个数据段前面,加上些必要的控制信息组成的首部(header)后,就构成了一个分组(packet)。分组义称为“包”,而分组的首部也可称为“包头”。分组是在因特网中传送的数据单元。分组中的“首部”是非常重要的,正是由于分组的首部包含了诸如目的地址和源地址等重要控制信息,每一个分组才能在因特网中独立地选择路由。

图1—10(a)强调因特网的核心部分是由许多网络和把它们互连起来的路由器组成,而主机处在因特网的边缘部分。在因特网核心部分的路由器之间一般都用高速链路相连接,而在网络边缘的主机接入到核心部分则通常以相对较低速率的链路相连接。
主机和路由器都是计算机,但它们的作用很不一样。主机的用途是为用户进行信息处理的,并且可以和其他主机通过网络交换信息。路由器的用途则是用来转发分组的,即进行分组交换的。路由器收到一个分组,先暂时存储下来,再检查其首部,查找转发表,按照首部中的目的地址,找到合适的端口(路由器的端口就是路由器和外部连接的接口)转换出去,把分组交给下一个路由器。这样一步~步地(有时会经过几十个不同的路由器)以存储转发的方式,把分组交付到最终的目的主机。各路由器之间必须经常交换彼此掌握的路由信息,以便创建和维持在路由器中的转发表,使转发分组时能够找出一条最好的转发路径。
当我们讨论因特网的核心部分中的路由器转发分组的过程时,往往把单个的网络简化成一条链路,而路由器成为核心部分的结点(node),如图1.10(b)所示。这种简化图看起来可以更加清晰,但不要忘记,简化图里面其实是有网络的(用链路表示)。

现在假定图1-10(b)中的主机H1向主机H5发送数据。主机H1先将分组逐个地发往与它直接相连的路由器A。此时,除链路H1-A外,其他通信链路并不被目前通信的双方所占用。需要注意的是,即使是链路H1-A,也只是当分组正在此链路上传送时才被占用。在各分组传送之间的空闲时间,链路Hl-A仍可为其他主机发送的分组使用。
路由器A把主机H1发来的分组放入缓存。假定从路由器A韵转发表中查出应把该分组转发到链路A—C,于是分组就传送到路由器C。当分组正在链路A—C传送时,该分组并不占用网络其他部分的资源。
路由器C继续按上述方式查找转发表,假定查出应转发到路由器E。当分组到达路由器E后,路由器E就最后把分组直接交给主机H5。
假定在某一个分组的传送过程中,链路A-C的通信量太大,那么,路由器A可以把分组沿另一个路由转发到路由器B,再转发到路由器E,最后把分组送到主机H5。在网络中可同时有多个主机进行通信,如主机H2也可以经过路由器B和E与主机H6通信。
这里要注意,路由器暂时存储的是一个个短分组,而不是整个的长报文。短分组是暂存在路由器的存储器(即内存)中而不是存储在磁盘中。这就保证了较高的交换速率。
在图中只画了一对主机H1和H5在进行通信。实际上,因特网可以容许非常多的主机同时进行通信,而一个主机中的多个进程(即正在运行中的多道程序)也可以各自和不同主机中的不同进程进行通信。
应当注意,分组交换在传送数据之前不必先占用~条端到端的通信资源。分组在哪段链路上传送才占用这段链路的通信资源。分组到达一个路由器后,先暂时存储下来,查找转发表,然后从另一条合适的链路转发出去。分组在传输时就这样一段段地断续占用通信资源,而且还省去了建立连接和释放连接的开销,因而数据的传输效率更高。
因特网采取了专门的措施,保证了数据的传送具有非常高的可靠性(在第8章讨论运输层协议时要着重讨论这个问题)。当网络中的某些结点或链路突然出故障时,在各路由器中运行的路由选择协议(protoc01)能够自动找到其他路径转发分组。这些将在第7章中详细讨论。
从以上所述可知,采用存储转发的分组交换,实质上是采用了在数据通信的过程中断续(或动态)分配传输带宽的策略(关于带宽的进一步讨论见后面的1.6.1节)。这对传送突发式的计算机数据非常合适,使得通信线路的利用率大大提高了。
为了提高分组交换网的可靠性,因特网的核心部分常采用网状拓扑结构,使得当发生网络拥塞或少数结点、链路出现故障时,路由器可灵活地改变转发路由而不致引起通信的中断或全网的瘫痪。此外,通信网络的主干线路往往由一些高速链路构成,这样就以较高的数据传输速率迅速地传送计算机数据。
综上所述,分组交换网的主要优点见表1.2。
分组交换也带来一些新的问题。例如,分组在各路由器存储转发时需要排队,这就会造成一定的时延。当网络通信量过大时,这种时延也可能会很大。在表1.2中提到分组交换的优点之一是“迅速”,是指和电路交换相比时,分组交换可以省去建立连接所花费的时间,而且还可以在高速链路上以较高的数据传输速率来传送数据。但分组交换网中的每一个路由器结点又因存储转发产生了时延。因此,必须尽量设法减少这种时延。此外,由于分组交换不像电路交换那样通过建立连接保证了通信时所需的各种资源,因而无法确保通信时端到端所需的带宽。
分组交换网带来的另一个问题是各分组必须携带的控制信息也造成了一定的开销。整个分组交换网还需要专门自=j管理和控制机制。
应当指出,从本质上讲,这种断续分配传输带宽的存储转发原理并非完全新的概念。自古代就有的邮政通信,就其本质来说也是属于存储转发方式。而在20世纪40年代,电报通信也采用了基于存储转发原理的报文交换(message switching)。在报文交换中心,一份份电报被接收下来,并穿成纸带。操作员以每份报文为单位,撕下纸带,根据报文的目的站地址,拿到相应的发报机转发出去。这种报文交换的时延较长,从几分钟到几小时不等。现在报文交换已经很少有人使用了。分组交换虽然也采用存储转发原理,但由于使用了计算机进行处理,这就使分组的转发非常迅速。例如ARPANET建网初期的经验表明,在正常的网络负荷下,当时横跨美国东西海岸的端到端平均时延小于0.1秒。这样,分组交换虽然采用了某些古老的交换原理,但实际上已变成了一种崭新的交换技术。
图1-11表示电路交换、报文交换和分组交换的主要区别。图中的A和D分别是源点和终点,而B和c是在A和D之间的中间结点。图中的最下方归纳了三种交换方式在数据传送阶段的主要特点。
电路交换——整个报文的比特流连续地从源点直达终点,好像在一个管道中传送。
报文交换——整个报文先传送到相邻结点,全部存储下来后查找转发表,转发到下一个结点。
分组交换——单个分组(这只是整个报文的一部分)传送到相邻结点,存储下来后查找转发表,转发到下一个结点。
从图1—11可看出,若要连续传送大量的数据,且其传送时间远大于连接建立时间,则电路交换的传输速率较快。报文交换和分组交换不需要预先分配传输带宽,在传送突发数据时可提高整个网络的信道利用率。由于一个分组的长度往往远小于整个报文的长度,因此,分组交换比报文交换的时延小,但其结点交换机必须具有更强的处理能力。
计算机网络在我国的发展
下面根据公开发表的材料,简单介绍—下计算机网络在我国的发展情况。
最早着手建设专用计算机广域网的是铁道部。铁道部在1980年即开始进行计算机联网实验。当时的几个结点是北京、济南、上海等铁路局及其所属的11个分局。现在铁道部的计算机网络正在扩建,并以建设铁路客票发售和预订系统为突破口,加快我国铁路客票管理和发售工作现代化的步伐。
1989年11月,我国第一个公用分组交换网CNPAC建成运行,在此基础上,1993年9月建成新的中国公用分组父换网,并将其改称为CHINAPAC,由国家主干网和各省(自治区、直辖市)的省内网组成。由于CHINAPAC采用X.25标准而不是因特网的体系结构,因此CHINAPAC基本上已完成了其历史任务。
在20世纪80年代后期,公安、银行、军队以及其他一些部门也相继建立了各自的专用计算机广域网。这些专用计算机广域网曾对数据信息的传送起到了重要的作用。
除了上述的广域网外,从20世纪80年代起,国内的许多单位陆续建立了大量的局域网。局域网的价格便宜,其所有权和使用权都属于本单位,因此便于开发、管理和维护。局域网的发展很快,它对各行各业的管理现代化和办公自动化已起了积极的作用。
这里应当特别提到的是,自20世纪90年代起,我国陆续建造了基于因特网技术的、可以和因特网互连的9个全国范围的公用计算机网络。这就是:
中国公用计算机互联网CHINANET;
中国金桥信息网CHINAGBN;
中国教育和科研计算机网CERNET;
中国科学技术网CSTNET;
中国联通互联网UNINET;
中国网通CNCNET;
中国国际经济贸易互联网CIETNET;
中国移动互联网CMNET;
中国长城互联网CGWNET。
上述这些基于因特网技术的计算机网络都发展得非常快,几乎每个月都有新的发展。在相关网站上可查找这些计算机网络的有关数据(如用户数、网站数、主干网带宽等)。
1.5 计算机网络的分类
1.5.1 计算机网络的不同定义
计算机网络的精确定义并未统一。
关于计算机网络的最简单的定义是[TANE96]:一些互相连接的、自治的计算机的集合。若按此定义,则早期的面向终端的网络都不能算是计算机网络,而只能称为联机系统(因为那时的许多终端不能算是自治的计算机)。随着硬件价格的下降,许多终端都具有一定的智能,因而“终端”和“自治的计算机”逐渐失去了严格的界限。因此,若用微型计算机作为终端使用,按上述定义,则早期的那种面向终端的网络也可称为计算机网络。
最简单的计算机网络就只有两台计算机和连接它们的—条链路,即两个结点和—条链路。由于没有第三台计算机,因此不存在交换的问题。这样的计算机网络当然就不能称为分组交换网。最复杂的计算机网络就是因特网。它由非常多的计算机网络通过许多路由器互连而成。因此因特网也称为“网络的网络”(network of networks)。
有时我们也可能见到“计算机通信网”这一名词。但这个名词容易使人误认为这是一种专门为了通信而设计的计算机网络。计算机网络当然应该具有通信的功能,但这种通信功能并非是计算机网络最主要的功能。因此本书不使用“计算机通信网”这一名词。
“计算机通信”与“数据通信”这两个名词也常被混用。早期的数据通信与现代的计算机通信显然是有区别的,但随着技术的进步,数据通信的含义也在发生变化,因此,可以认为计算机通信与数据通信是可混用的名词。美国的著名期刊Data Communications所刊登的文章现在也都是计算机网络领域的文章。在许多情况下,数据通信网往往指的是计算机网络中的分组交换网。
最后还要指出,计算机网络与分布式计算机系统虽然有相同之处,但二者并不等同。分布式系统的最主要特点是整个系统中的各计算机对用户都是透明的。也就是说,对用户来说,这种分布式计算机系统就好像只有一个计算机—样。用户通过输入命令就可以运行程序,但用户并不知道是哪一个计算机在为他运行程序,而是操作系统为用户选择一个最合适的计算机来运行其程序,并将运行的结果传送到合适的地方,这些都不需要用户的干预。而计算机网络则不同,用户必须先在欲运行程序的计算机进行登录,然后按照该计算机的地址,将程序通过计算机网络传送到该计算机去运行;最后,根据用户的命令将结果传送到指定的计算机。由此可见,计算机网络并不等同于分布式计算机系统,二者的区别主要是软件的不同。一般说来,分布式系统是计算机网络的一个特例。当然,也有一些分布式系统根本就不是计算机网络(例如,分布式计算机)。
1.5.2 计算机网终的几种不同分类方法
可以从不同的角度对计算机网络进行分类。
1.从网络的交换功能进行分类。
网络的设计者常从交换的功能对网络进行分类。常用的交换方法有:①电路交换;②报文交换:②分组交换;④混合交换。前三种交换方式已简单介绍过了。混合交换是指在一个数据网中同时采用电路交换和分组交换。
2.从网络的作用范围进行分类
从网络的作用范围分类,可以分为:①局域网;②广域网;③城域网。
广城网WAN(Wide Area Network)的作用范围通常为几十到几千公里。广域网有时也称为远程网(Long haul network)。
局域网LAN(Local Area Network)一般用微型计算机通过高速通信线路相连(速率通常在10 M Bit/s以上)。但在地理上则局限在较小的范围(如1km左右)。
城域网MAN(Metropolitan Area Network)的作用范围在广域网和局域网之间,例如作用范围是—个城市,其传送速率比局域网的更高,但作用距离约为5~50km。
若中央处理机之间的距离非常近(如仅1m的数量级或甚至更小些),则一般就称之为多处理机系统而不称它为计算机网络。多个处理机互连的系统按其大小的分类如表1-4所示。
应当指出,随着计算机网络技术的发展,现在局域网、城域网和广城网的界限已经变得逐渐模糊了。
3.从网络的使用范围进行分类
从网络的使用范围可以分为公用网和专用网两种。
公用网(Public network)一般是国家的邮电部门建造购网络。“公用”的意思就是所有愿意按邮电部门规定交纳费用的人都可以使用。因此,公用网也可称为公众网。
专用网(Private network)是某个部门为本单位的特殊工作的需要而建造的网络。这种网络不向本单位以外的人提供服务。例如,军队、铁路、电力等系统均有本系统的专用网。
计算机网络的主要性能指标
计算机网络的最主要的两个性能指标就是带宽(bandwidth或吞吐量throughput)和时延
(delay或迟延时间latency)。下面分别介绍这两个指标的含义。
1.6.1 带宽
“带宽”本来的意思是指某个信号具有的频带宽度,我们知道,—个特定的信号往往是由许多不向的频率成份组成的,因此,一个信号的带宽是指该信号的各种不同频率成份所占据的频率范围。例如,在通信线路上传送的电话信号的标准带宽是3.1 kHz(300Hz~3.4kHz,即话音的主要成分的频率范围)。带宽的单位是赫兹(Hz)、千赫(kHz) 、兆赫(MHz)等。
在过去很长的一段时间内,通信的主干线路部是传送模拟信号(即连续变化的信号),因此通信线路的带宽(这有时也叫做通频带,表示允许通过的信号的频带范围)用频率来度量是很自然的。线路带宽的单位是赫兹。当通信线路用来传送数字信号时,若线路的带宽越大,则所能传送的数字信号的数据率也越高。但现在由于主要的通信主干线路几乎全都数字化了,因此尽管高速数字线路的频带很宽,但实际上已很少有人使用线路的带宽(通频带),而是用所传送的数字信号的数据率来表示线路的带宽。
因此,对于数字信道,“带宽”是指在信道上(或一段链路上)能够传送的数字信号的速率,即数据率或比特率。比特(bit)是计算机中的数据的最小单元,它也是信息量的度量单位。bit来源于binary digit,意思是一个“二进制数字”,因此一个比特就是二进制数字中的一个1或0。这样,在计算机网络中,带宽的单位就是比特每秒(bit/s),而更常用的带宽单位是千比特每秒Kbit/s、兆比特每秒M Bit/s、吉比特每秒G Bit/s、太比特每秒T bit/s。现在人们常用更简单的并且是很不严格的记法来描述网织或链路的带宽,如10 M或10G,而省略了后面的bit/s,它的意思就表示数据率(即带宽)为10 M Bit/s或10 G Bit/s。
正是因为带宽代表数字信号的发送速率,因此带宽有时也称为吞吐量。在实际应用中,吞吐量常用每秒发送的比特数(或字节数、帧数)来表示。
顺便指出,在通信领域和计算机领域,对数量单位“千”、“兆”和“吉”等的英文缩写意思略有不同。在计算机中大写K表示l024,而不是1000。 在通信领域小写的k表示1000而不是1024。但请读者注意,有的书也不这样严格区分,而是用大写的K既表示1000又表示1024。同样,在计算机中,1MB或1GB也并非表示106或l09个字节,而是表示1048576或1073741824个字节(一字节byte代表8个比特,它的缩写是大写B)。
如果我们在网络中某一个点上观察数字信号流随时间的变化,那么信号在时间轴上的宽度就随着带宽的增大而变窄。例如,当信号为1和0相间的脉冲时,在带宽为1 M Bit/s链路上,每一个比特在时间轴上的宽度为1us,但当带宽为4 M Bit/s的链路上,每—个比特在时间轴上的宽度就减小到原来的四分之一,即只有0.25us:图1-13是这—概念的示意图:

图1-13 信号在时间轴上的宽度就随着带宽的增大而变窄
1.6.2 时延
时延(delay或latency)是指一个报文或分组从一个网络(或一条链路)的—端传送到另一端所需的时间。需要注意的是,时延是由以下几个不同的部分组成的。
1)传播时延
传播时延是电磁波在信道中传播所需要的时间。传播时延的计算公式是:
传播时延=倍道长度/电磁波在信道上的传播速率 (1-1)
电磁波在自由空间的传播速率是光速,即300,000km/s。电磁波在介质中的传播速率比在自由空间要略低—些,在电缆中的传播速率约为230,000km/s。在光纤中的传播速率约为200,000km/s。
例如,1000km长的光纤线路带来的传播时延大约为5ms。
(2)发送时延
发送时延是发送数据所需要的时间。发送时延的计算公式是:
发送时延=数据块长度/信道带宽 (1-2)
信道带宽就是数据在信道上的发送速率,它也常称为数据在信道上的传输速率。信道传输速率和电磁波在信道上的传播速率是两个完全不同的概念,不可弄混。
(3)排队时延
这是数据在交换结点等候发送在缓存的队列中排队所经历的时延。这种时延的大小主要取决于网络中当时的通信量。当网络的通信量很大时.还会发生队列溢出,使数据丢失,这相当于排队时延为无穷大。
这样,数据经历的总时延就是以上三种时延之和。
总时延=传播时延+发送时近+排队时延 (1-3)
需要指出的是,在总时延中,究竟是哪一种时延占主导地位,必须具体分析。现在我们暂时不考虑排队时延。假定有一个l00 MB的数据块(这里的M显然是指220,而B是字节,1字节有8个比特)在带宽为l M Bit/s的信道上的发送时延是100×1048576×8/106=838.9s,即将近要用14min才能把这样大的数据块发送完毕。然而,若将这样的数据用光纤传送到1000km远的计算机,那么每—个比特在1000km的光纤上只需用5ms就能传送到目的地。因此对于这种情况,发送时延占主导地位。如果我们将传播距离减小到1km,那么传播时延也会相应地减小到原来数值的千分之—。然而,由于传播时延在总时延小的比重是微不足道的,因此总时延的数值基本上还是原来由发送时延决定的数值。
再看一个例子。要传送的数据仅有一个字节(即在键盘上键入—个字符,也就是8bit)。在1M Bit/s的信道上的发送时延是8/106=8us。当传播时延为5ms时,总时延为5.008ms。显然,在这种情况下,传播时延决定了总时延。这时,即使再提高信道的带宽1000倍(即将数据的发送速率提高到1G Bit/s),总时延也不能减小多少。这个例子告诉我们,不能笼统地认为:“数据的发送速率越高,传送得就越快”。这是因为数据传送的总时延是由公式(1-3)等号右端的三项时延组成的,不能仅考虑发送时延一项。
图1-14画出了三种时延所产生的地方,希望读者能够更好地分清这三种时延。

图1-14三种时延所产生的地方不一样
必须强调指出,初学网络的人容易产生这样错误的概念,就是“在高速链路(或高带宽链路)上.比特传播得更快些”。这是不准确的。我们知道,汽车在质量很好的高速公路上可以明显地提高行驶速率,然而对于高速网络链路,我们提高的仅仅是数据的发送速率而不是比特在链路上的传播速率。荷载情息的电磁波在通信线路上的传播速率(这是光速的数量级)并没有改变,即比特的传播时延与链路的带宽并无关系。提高链路速率只是减小了数据的发送时延。还有一点也应当注意,就是数据的发送速率的单位是每秒发送多少个比特,而传播速率的单位是每秒传播多少公里。因此,通常所说的“光纤信道的传输速率高”是指光纤信道的发送速率高,可光纤信道的传播速率实际上还要比铜线的传播速率略低—点,因为经过测量得知光在光纤中的传播速率和电磁波在铜线(如5类线)中的传播速率分别为每秒20.5万公里和每秒23.1万公里。上述这个概念请读者务必弄清。
1.6.3 时延带宽积和往返时延
将以上讨论的网络性能的两个度量——传播时延和带宽一一相乘,就得到另一个很有用的度量:传播时延带宽积,即[(传播时延)x(带宽)]。我们可以用图1-15的示意图来表示时延带宽积。这是一个代表链路的空心管道,管道的长度是链路的传播时延,而管道的截面积是链路的带宽。因此时延带宽积就表示这个管道的体积,表示这样的链路可容纳多少个比特。例如,链路的传播时延为20ms,带宽为10M Bit/s。时延带宽积=20×10-3×10×106=2×105
bit。这就表示,若发送端连续发送数据,则在发送的第一个比特即将达到终点时,发送端就已经发送了20万个比特,而这20万个比特都正在链路上传输。因此,链路的时延带宽积又称为以比特为单位的链路长度。

图1-15链路像的空心管道
有时在发送端和接收端之间相隔有好几个网络。发送端发送出去的数据要经过多次转发才能达到接收端。这时我们仍然可以使用上面这样的从发送端到接收端的传输管道,以及使用时延带宽积这个度量。但这时管道的时延就不再仅仅是网络的传播时延,而是从发送端到接收端的所有时延的总和,包括在所有各中间结点引起的排队时延和发送时延。这时的管道只是一种抽象的概念,而管道中的比特数表示从发送端发出的但尚未达到接收端的比特。
在计算机网络中,往返时延RTT(Round-Trip Time)也是一个重要的性能指标。它表示从发送端发送数据开始,到发送端收到来自接收端的确认。总共经历的时延。对于上述例子,往返时延RTT是40ms,而往返时延和带宽的乘积是400,000bit。对于复杂的互联网,往返时延要包括各中间结点的排队时延和转发数据时的发送时延。
往返时延带宽积的意义就是当发送端连续发送数据时,在收到对方的确认之前,就已经将这样多的比特发送到链路上了。对于上述例子,如果数据的传送终点及时发现了差错,那么发送端得知这—信息时,即使立即停止发送,也已经发送了40万个比特了。
对于一条正在传送数据的链路,只有在代表链路的管道都充满比特时,链路才得到充分的利用。

1.计算机网络的发展可划分为几个阶段?每个阶段各有什么特点?
2.试简述分组交换的要点。
3. 试比较电路交换、报文交换和分组交换的主要优缺点。
4.为什么说因特网是自印刷术以来人类通信方面最大的变革
5.试讨论在广播式网络中对网络层的处理方法。讨论是否需要这一层。
6.计算机网络可从哪几个方面进行分类
7.试在下列条件下比较电路交换和分组交换。要传送的报文共x(bit),从源站到目的站共经过k段链路,每段链路的传播时延为d(s),数据率为C(bit/s)。在电路交换时电路的建立时间为s(s)。在分组文换时分组长度为P(bit),且各结点的排队等待时间可忽略4i计,问在怎样的条件下,分组交换的时延比电路交换的要小
8.在上题的分组交换网中,设报文长度和分组长度分别为x和(P+h)(bit),其中 p为分组的数据部分的长度,而h为每个分组所带的控制信息固定长度,与 P的大小无关。通信的两端共经过k段链路。链路的数据率为b(bit/s),但传播时延和结点的排队时间均可忽略个计,若打算使总的时延为最小,问分组的数据部分长度p应取为多大
9.什么是计算机网络链路的带宽 带宽的单位是什么 什么是数据的发送时延,传播时延、排队时延和往返时延(RTT)
10. 试计算以下两种情况的发送时延和传播时延:
(1)数据长度为10^7bit,数据发送速率为100Kbit/s,传输距离为1000km,信号在媒体上的传播速率为2x10^8m/s。
(2)数据长度为10^3bit,数据发送速率为1G Bit/s,传输距离和信号在媒体上的传播速率同上。