本章是全书的概要。在本章的开始,先介绍计算机网络在信息时代的作用。接着对因特网进行了概述,包括因特网发展的三个阶段及今后的发展趋势。然后讨论了因特网的组成,包括因特网的边缘部分和核心部分。在因特网核心部分讨论了计算机网络中的一个重要概念——分组交换。在讨论了计算机网络的分类及主要性能指标后,论述了整个课程都要用到的重要概念——计算机网络的体系结构。最后,简要介绍了计算机网络在我国的发展和两个重要的新兴网络技术:云计算和物联网。
本章最重要的内容如下。
(1)分组交换的概念,这是现代计算机网络的技术基础
(2)计算机网络的一些性能指标
(3)计算机网络的分层体系结构,包括协议和服务的概念。
这部分内容比较抽象。在没有了解具体的计算机网络之前, 很难 一下子就完全掌握这些很抽象的概念。但这些抽象的概念又能够指导后续的学习,因此也必须先从这些概念学起。建议读者在学习到后续章节时,经常回过头来复习一下本章中的相关基本概念。这对掌握好整个计算机网络的概念是有好处的。
1.1 计算机网络在信息时代中的作用
21世纪是以数字化、网络化、信息化为重要特征的信息时代。作为信息的最大载体和传输媒介,网络已成为这个信息时代的核心。以因特网(Internet)为代表的计算机网络自20世纪90年代以来迅猛发展,从最初的教育科研网络逐步发展成为全球性商业网络,并以远远超过人们预期的速度和力量从根本上改变着我们的生活。毫不夸张地说,因特网是人类自印刷术发明以来在通信方面的最大变革。现在因特网已成为全球性的信息服务基础设施的雏形。全世界所有发达国家和许多发展中国家都纷纷研究和制订本国建设信息基础设施的计划。这使得计算机网络的发展进入了一个新的历史阶段,变成了人尽皆知并且备受关注的热门学科。
计算机网络与传统电话网和有线电视网最大的不同在于计算机网络的终端设备是功能强大且具有智能的计算机。利用计算机网络,计算机上运行的包括电子邮件、万维网冲浪、信息搜索、即时通信、网络电话、网络电视、网络游戏、文件共享等在内的各种应用程序通过彼此间的通信为用户提供了更加丰富多彩的服务和应用。我们在讨论计算机网络时,不仅仅包括计算机网络提供的数据通信服务,还包括这些丰富多彩的网络应用。事实上,计算机网络已由一种通信基础设施发展成为一种重要的信息服务基础设施。如今的我们很难想象没有网络的日子。网络,已经像水、电、煤气这些基础设施一样,成为我们生活中不可或缺的一部分。
计算机网络为我们提供浏览信息和发布信息的平台。文本、声音、图像、视频;电子报纸、电子期刊、电子书籍;政治、经济、社会、生活、军事、体育、娱乐;浏览各类万维网网站,主动推送用户关注的内容,使用谷歌、百度等搜索引擎中搜索感兴趣的信息。计算机网络以各种各样的形式和浏览手段向我们提供着各种各样的信息。而个人网站、博客、微博、电子公告栏等各种信息发布平台让信息时代的每个人不仅是看,还可以畅所欲言,这是像报纸、广播、电视这些传统信息传媒无法实现的事情。
计算机网络为我们提供通信和交流的平台。从早期兴起的电子邮件、网络电话,到今天以QQ、MSN为代表的各种即时通信工具,在网络世界里将人们的距离拉得越来越近。即时通信工具的用户不仅可以发送各种媒体形式的消息,还可以打电话和视频聊天;不仅可以实现一对一的交流,还可以实现讨论版、视频会议等形式的多人同时交互。2011年,我国腾讯公司推出的网络社交软件“微信”已风靡整个华人世界,成为脸谱(Facebook),推特(Twitter)等世界著名社交软件强有力的竞争对手,它集成了及时消息、短信留言、文件共享、信息发布、讨论版等多种功能,为我们的零距离交流提供了无限便捷。
计算机网络为我们提供休闲和娱乐的平台。因特网不仅提供了大量音频和视频资源可供用户下载后播放,用户还可以通过网络随时在线点播各种音频和视频节目。网络电视(IPTV)现在已成为传统有线电视最大的竞争对手。除此之外,网络还为我们提供了大量精彩的令人流连忘返的互动网络游戏,成为许多人(特别是年轻人)最为喜爱的娱乐活动之一。
计算机网络为我们提供资源共享的平台。从过去通过文件传输软件共享远程文件服务器上的文件,到后来因特网上广泛流行的P2P文件共享;从最初办公室内的同事通过网络共用一台打印机,到今天所有联网计算机均可方便地共享网络中的多种计算资源、存储资源和信息资源。通过网络可共享的资源种类越来越丰富,共享方式越来越便捷。近年来,持续升温的云计算(Cloud Computing)通过网络以按需、易扩展的方式提供安全、快速、便捷的数据存储和网络计算服务,使人们能像使用自来水一样方便地使用网络中的各种资源。利用云计算可将大量的用户数据、应用软件和计算任务放置在“云”端,从而使用户终端的计算能力和存储能力得到无限放大。
计算机网络为我们提供电子商务的平台。网络技术的发展使我们能够将现实世界中的银行、商场、书店、超市、火车站售票厅、股票交易所、拍卖市场等统统搬到网上。不用你辛苦地跑出去“货比三家”,通过方便地查询比较,瞬间就能把性价比最高的商品呈现给你;不用去银行、火车站排长队,轻点鼠标就完成各类操作。应有尽有的电子商务让生活变得方便,让宅男宅女们“足不出户”的梦想成为现实。在网络时代,不会网上购物、网上购票、网上转账,将会发现生活变得越来越不便。如今不会网上打车的人们已经开始面临打车难的问题。
计算机网络为我们提供远程协作的平台。计算机网络使得千里之遥的人们可以相互配合、协同工作。应用最为广泛的远程协作包括远程教育和远程医疗。远程教育打破了传统教育的时间、空间限制,身处全球各地的学生可以相聚在网上课堂,教师和学生可以共同完成一个公式的推导或是一个实验的演示。远程医疗让珍稀的优秀医疗资源被充分利用,全球各地的心脏专家可以通过网络为一个患儿提供专家答疑、远程会诊等服务,甚至可以共同指导一次心脏移植手术。
计算机网络为我们提供网上办公的平台。通过计算机网络,政府部门的电子政务系统向公众提供了在线咨询、网上申报、审批、许可证申领、注册、年检、招商、投诉、举报等政府服务。大型公司通常拥有网上办公系统,以满足公司内部财务、税务、行政、资产等管理的需要。大学校园网上的办公系统通常包括选课、成绩单填报、网上评教评学、科研项目审批、报奖、科研经费报账、设备报修等。各种网上办公系统为我们提供了更加快捷、方便的服务。
计算机网络的用途数不胜数,并且随着技术的发展,计算机网络已从互连传统服务器、桌面计算机,到互连手机、个人数字助理等移动便携式计算设备,并逐步扩展到互连各种家用电器、环境传感器等非传统计算设备,甚至是所有可标识的“物”。以互联网为基础逐渐发展起来的物联网(Internet of Things)就是要实现“物物相连的互联网”,近几年越来越受到全球的广泛关注。物联网把感应器嵌入和装备到电网、铁路、桥梁、隧道、公路、建筑、供水系统、大坝、油气管道等各种物体中,然后将“物联网”与现有的互联网整合起来,实现人类社会与物理系统的整合。物联网的发展和成熟必将给我们的生活带来一次全新的变革。
计算机网络从根本上改变了人类的生活,在给我们带来极大便利的同时,也带来了一些不和谐的元素:肆意攻击正规网站的黑客,通过网络大肆传播的计算机病毒,利用网络窃取国家机密或实施诈骗的罪犯,以营利为唯一目的缺少社会良知的色情网站经营者,在网络上流传的形形色色的谣言,沉溺于网络游戏、流连于网吧的青少年……然而,瑕不掩瑜,计算机网络给社会带来的积极作用毫无疑问是主流。
因特网是当今世界上最大的计算机网络,也是我们接触最多的计算机网络,下面我们开始简单地介绍什么是因特网及因特网的主要构件,以便对计算机网络有一个最初步的了解。
1.2 因特网概述
1.2.1 网络的网络
起源于美国的因特网现已发展成为世界上最大的国际性计算机互联网 。
我们先给出关于网络、互联网(互连网)及因特网的一些最基本的概念。
网络(network)由若干结点(node) 和连接这些结点的链路(link)组成。网络中的结点可以是计算机、集线器、交换机或路由器等(在后续的两章我们将会介绍集线器、交换机和路由器等设备的作用)。图1-1(a)给出了一个具有5个结点和4条链路的网络。我们看到,有4台计算机通过4条链路连接到一个集线器上,构成了一个简单的网络。在很多情况下,我们可以用一朵云表示一个网络。这样做的好处是,可以不去关心网络中的细节问题,因而可以集中精力研究涉及与网络互连有关的一些问题。
网络还可以通过路由器互连起来,这样就构成了一个覆盖范围更大的网络,即互联网(或互连网),如图1-1(b)所示。因此互联网是“网络的网络(network of networks)”。
因特网(Internet)是世界上最大的互连网络(用户数以亿计,互连的网络数以百万计)。习惯上,大家把连接在因特网上的计算机都称为主机(host)。路由器是一种特殊的计算机,它是连接不同网络的专用设备,用户并不直接使用路由器处理信息。因此不能把路由器称为主机。因特网也常常用一朵云来表示,图1-2表示许多主机连接在因特网上。这种表示方法是把主机画在网络的外边,而网络内部的细节(即路由器怎样把许多网络连接起来)往往就省略了。
因此,我们可以先初步建立这样的基本概念:网络把许多计算机连接在一起,而互联网则把许多网络连接在一起。因特网是世界上最大的互联网。有时,为了避免意义上的不明确,我们把直接连接计算机的网络称为物理网络,而互联网是由物理网络集合构成的逻辑网络。
还有一点也必须注意,就是网络互连并不仅仅是把计算机简单地在物理上连接起来,因为这样做并不能达到计算机之间能够相互交换信息的目的。我们还必须在计算机上安装许多使计算机能够交换信息的软件才行。因此当我们谈到网络互连时,就隐含地表示在这些计算机上已经安装了适当的软件,因而在计算机之间可以通过网络交换信息。
本书中所谈到的网络都指的是计算机网络。因特网就是世界上最大的计算机网络。
1.2.2 因特网发展的三个阶段
因特网的基础结构大体上经历了三个阶段的演进。但这三个阶段在时间划分上是有部分重叠的,这是因为网络的演进是逐渐的而不是在某个日期突然发生了变化。
第一阶段——从单个网络ARPANET向互联网发展。1969年,美国国防部创建的第一个分组交换网ARPANET最初只是一个单个的分组交换网,所有要连接在ARPANET上的主机都直接与就近的结点交换机相连。但到了20世纪70年代中期,人们已认识到不可能仅使用一个单独的网络来满足所有的通信问题。这就导致了后来互连网的出现。这样的互连网就成为现在因特网(Internet)的雏形。1983年,TCP/IP协议成为ARPANET上的标准协议,使得所有使用TCP/IP协议的计算机都能利用互连网相互通信,因而人们就把1983年作为因特网的诞生时间。1990年ARPANET正式宣布关闭,因为它的实验任务已经完成。
请读者注意以下两个意思相差很大的名词:internet和Internet。
以小写字母i开始的internet(互联网或互连网)是一个通用名词,它泛指由多个计算机网络互连而成的网络。在这些网络之间的通信协议(即通信规则)可以是任意的。
以大写字母I开始的Internet(因特网)则是一个专用名词,它指当前全球最大的、开放的、由众多网络相互连接而成的特定计算机网络,它采用TCP/IP协议簇作为通信的规则,且其前身是美国的ARPANET。
第二阶段——逐步建成了三级结构的因特网。从1985年起,美国国家科学基金会(National Science Foundation,NSF)就围绕6个大型计算机中心建设计算机网络,即国家科学基金网NSFNET。它是一个三级计算机网络,分为主干网、地区网和校园网(或企业网)。这种三级计算机网络覆盖了全美国主要的大学和研究所,并且成为因特网中的主要组成部分。1991年,NSF和美国的其他政府机构开始认识到,因特网必将扩大其使用范围,不应仅限于大学和研究机构。世界上的许多公司纷纷接入到因特网,使网络上的通信量急剧增大,因特网的容量已满足不了需要。于是美国政府决定将因特网的主干网转交给私人公司来经营,并开始对接入因特网的单位收费。1992年因特网上的主机超过100万台。1993年因特网主干网的速率提高到45 Mbit/s(T3速率)。
第三阶段——逐渐形成了多层次ISP结构的因特网。ISP就是因特网服务提供者的英文缩写,它表示Internet Service Provider。从1993年开始,由美国政府资助的NSFNET逐渐被若干个商用的因特网主干网替代,而政府机构不再负责因特网的运营,而是让各种ISP来运营。ISP又常译为因特网服务提供商。
ISP可以从因特网管理机构申请到成块的IP地址(因特网上的主机都必须有IP地址才能进行通信,这一概念我们将在4.2节详细讨论),同时拥有通信线路(大的ISP自己建设通信线路,小的ISP则向电信公司租用通信线路),以及路由器等连网设备。任何机构和个人只要向ISP交纳规定的费用,就可从ISP得到所需的IP地址,并通过该ISP接入到因特网。我们通常所说的“上网”就是指“通过某个ISP接入到因特网”。IP地址的管理机构不会把一个单个的IP地址分配给某个单个用户(不“零售”IP地址),而是把一批IP地址有偿分配给经审查合格的ISP(只“批发”IP地址)。从以上所讲的可以看出,现在的因特网已不是某个单个组织所拥有而是全世界无数大大小小的ISP所共同拥有。图1-3说明了用户要通过ISP才能连接到因特网。
根据提供服务的覆盖面积大小及所拥有的IP地址数目的不同,ISP也分成不同的层次。图1-4是具有三层结构的因特网的概念示意图,但这种示意图并不表示各ISP的地理位置关系。
在图中,最高级别的第一层ISP(tier-1 ISP) 的服务面积最大,一般都能够覆盖国际性区域范围,并拥有高速链路和交换设备。第一层ISP通常也被称为因特网主干网(Internet backbone),并直接与其他第一层ISP相连。第二层ISP和一些大公司都是第一层ISP的用户,通常具有区域性或国家性覆盖规模,与少数第一层ISP相连接。第三层ISP又称为本地ISP,它们是第二层ISP的用户,且只拥有本地范围的网络。一般的校园网或企业网,以及住宅用户和无线移动用户等,都是第三层ISP的用户。ISP向它的用户收费,费用通常根据连接两者的带宽而定。一个ISP也可以选择与其他同层次ISP相连,当两个同层次ISP彼此直接相连时,它们被称为彼此是对等(peer)的。
从图1-4可看出,因特网逐渐演变成基于ISP的多层次结构网络。但今天的因特网由于规模太大,已经很难对整个网络的结构给出细致的描述。但下面这种情况是经常遇到的,就是相隔较远的两台主机的通信可能需要经过多个ISP(图1-4中的灰色粗线表示主机A要经过许多不同层次的ISP才能把数据传送到主机B)。因此,当主机A和另一台主机B通过因特网进行通信时,实际上也就是它们通过许多中间的ISP进行通信。
顺便指出,一旦某个用户能够接入到因特网,那么他就能够成为一个ISP。他需要做的就是购买一些如调制解调器或路由器这样的设备,让其他用户能够和他相连接。因此,图1-4所示的仅仅是个示意图,一个ISP可以很方便地在因特网拓扑上增添新的层次和分支。
因特网已经成为世界上规模最大和增长速率最快的计算机网络,没有人能够准确说出因特网究竟有多大。因特网的迅猛发展始于20世纪90年代。由欧洲原子核研究组织开发的万维网(World Wide Web,WWW)在因特网上被广泛使用,大大方便了广大非网络专业人员对网络的使用,成为因特网的这种指数级增长的主要驱动力。万维网的站点数目也急剧增长。在因特网上的数据通信量每月约增加10%。表1-1是因特网上的网络数、主机数、用户数和管理机构数的简单概括(统计到2005年)。
由于因特网存在着技术上和功能上的不足,加上用户数量猛增,使得现有的因特网不堪重负,因此1996年美国的一些研究机构和34所大学提出研制和建造新一代因特网的设想,并推出了“下一代因特网计划”,即NGI(Next Generation Internet Initiative)计划。
NGI计划要实现的主要目标如下所述。
(1)开发下一代网络结构,提供更高的连接速率,端到端的传输速率达到100 Mbit/s至10 Gbit/s。
(2)使用更加先进的网络服务技术和开发许多带有革命性的应用,如远程医疗、远程教育、有关能源和地球系统的研究、高性能的全球通信、环境监测和预报、紧急情况处理等。
(3)使用超高速全光网络,能实现更快速交换和路由选择,同时具有为一些实时(real time)应用保留带宽的能力。
(4)对整个因特网的管理和保证信息的可靠性及安全性方面进行较大的改进。
目前,中国也在积极开展下一代互联网的研究,实施中国下一代互联网(China Next Generation Internet,CNGI)示范工程,目的是建设下一代互联网示范平台,开展下一代互联网关键技术研究、关键设备和软件的开发和应用示范,同时积极参加相关国际组织,开展国际合作,在下一代互联网IP地址分配、域名根服务器设置及有关国际标准制定等方面充分发挥我国科技界和产业界的作用。
1.2.3 因特网的标准化工作
因特网的标准化工作对因特网的发展起到了非常重要的作用。我们知道,标准化工作的好坏对一种技术的发展有着很大的影响。缺乏国际标准将会使技术的发展处于比较混乱的状态,而盲目自由竞争的结果很可能形成多种技术体制并存且互不兼容的状态(如过去形成的彩电三大制式),给用户带来较大的不方便。但国际标准的制定又是一个非常复杂的问题,这里既有很多技术问题,也有很多属于非技术问题,如不同厂商之间经济利益的争夺问题等。标准制定的时机也很重要。标准制定得过早,技术还没有发展到成熟水平,技术比较陈旧的标准限制了产品的技术水平。反之,若标准制定得太迟,也会使技术的发展无章可循,造成产品的互不兼容,因而也会影响技术的发展。因特网在制定其标准上的一个很大的特点是面向公众。因特网所有的RFC技术文档都可从因特网上免费下载,而且任何人都可以随时用电子邮件发表对某个文档的意见或建议。这种方式更加促进了因特网的迅速发展。
1992年,由于因特网不再归美国政府管辖,因此成立了一个国际性组织叫作因特网协会(Internet Society,ISOC),以便对因特网进行全面管理,以及在世界范围内促进其发展和使用。ISOC下面有一个技术组织叫作因特网体系结构委员会(Internet Architecture Board,IAB),负责管理因特网有关协议的开发。IAB下面又设有两个工程部:
(1)因特网工程部(Internet Engineering Task Force,IETF)——负责研究一些短期和中期的工程问题,主要是针对协议的开发和标准化;
(2)因特网研究部(Internet Research Task Force,IRTF)——从事理论方面研究和开发一些需要长期考虑的问题。
所有的因特网标准都是以RFC文档的形式在因特网上发表。RFC(Request For Comments)的意思是“请求评论”。所有的RFC文档都可从因特网上免费下载(http://www.ietf.org/rfc.html)。但应注意,并非所有的RFC文档都是因特网标准,只有一小部分RFC文档最后才能变成因特网标准。RFC按收到时间的先后从小到大编上序号(即RFC xxxx,这里的xxxx是阿拉伯数字)。一个RFC文档更新后就使用一个新的编号,并在文档中指出原来老编号的RFC文档已成为陈旧的。
制订因特网的正式标准要经过以下的4个阶段:
(1)因特网草案(Internet Draft)——在这个阶段还不是RFC文档;
(2)建议标准(Proposed Standard)——从这个阶段开始就成为RFC文档;
(3)草案标准(Draft Standard);
(4)因特网标准(Internet Standard);
1.3 因特网的组成
因特网的拓扑结构虽然非常复杂,并且在地理上覆盖了全球,但从功能上看,可以划分为以下的两大块。
(1)边缘部分。由所有连接在因特网上的主机组成。这部分是用户直接使用的,用来运行各种网络应用,为用户直接提供电子邮件、文件传输、网络音/视频等服务。
(2)核心部分。由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和数据交换)。
图1-5给出了这两部分的示意图。下面分别讨论这两部分的作用和工作方式。
1.3.1 因特网的边缘部分
处在因特网边缘的部分就是连接在因特网上的所有主机。这些主机又称为端系统(End System),“端”就是“末端”的意思(即因特网的末端)。端系统在功能上可能有很大的差别,小的端系统可以是一台普通个人计算机甚至是很小的掌上电脑,而大的端系统则可以是一台非常昂贵的大型计算机。端系统的拥有者可以是个人,也可以是单位(如学校、企业、政府机关等),当然也可以是某个ISP(即ISP不仅向端系统提供服务,它也可以拥有一些端系统)。边缘部分利用核心部分所提供的服务,使众多主机之间能够互相通信并交换或共享信息。
先要明确下面的概念。我们说:“主机A和主机B进行通信”,实际上是指:“运行在主机A上的某个程序和运行在主机B上的另一个程序进行通信”。由于“进程”就是“运行着的程序”,因此这也就是指:“主机A的某个进程和主机B上的另一个进程进行通信”。这种比较严密的说法通常可以简称为“计算机之间通信”。
主机有时又被非正式地划分为:客户机(Client)和服务器(Server)。实际上在计算机网络的专业术语中“Client”和“Server”在不同的上下文有着不同的意思。在计算机网络软件上下文中“Client/Server”通常指的是一种网络应用程序的工作方式(翻译成客户/服务器方式,简称C/S方式)。在采用C/S方式的网络应用中,运行在一个端系统上的客户进程总是主动向运行在另一个端系统上的服务器进程发出服务请求,服务器进程可接受来自多个客户进程的请求,并进行响应以提供服务。客户进程间通常不直接进行通信。C/S方式是因特网网络应用最常使用的方式。例如,我们很多熟悉的网络应用采用的都是C/S方式:万维网、电子邮件、文件传输FTP等。人们习惯把主要用来运行客户程序的计算机也称为client(翻译为客户机或客户计算机),把主要用来运行服务器程序的计算机称为server(翻译为服务器或服务器计算机)。服务器计算机通常是高性能计算机并且24h开机,而客户计算机通常是普通计算机,它不一定总是处于开机状态。
在图1-6中,主机A运行客户程序而主机B运行服务器程序。在这种情况下,A是客户而B是服务器,客户A向服务器B发出请求服务,而服务器B向客户A提供服务。这里最主要的特征就是:客户是服务请求方,服务器是服务提供方。
C/S方式并不是网络应用程序的唯一工作方式,越来越多的网络应用开始采用对等(Peer-to-Peer, P2P)方式。在P2P方式的网络应用中,通常没有固定的服务请求者和服务提供者,分布在网络中的应用进程是对等的,被称为对等方(有时将运行对等方软件的计算机也称为对等方)。在图1-7中,主机C,D,E和F都运行了P2P软件,因此这几台主机都可进行对等通信(如C和D,E和F,以及C和F)。
P2P方式可支持大量对等用户(如上百万个)同时工作。现在很流行的BT(BitTorrent)或电驴(emule)都使用了P2P的工作方式。
当然,有些网络应用既不是纯C/S方式,也不是纯P2P方式,例如。我们熟悉的QQ。我们将在第6章讨论网络应用的更多内容。
1.3.2 因特网的核心部分
网络核心部分是因特网中最复杂的部分,因为网络中的核心部分要向网络边缘中的大量主机提供连通性,使边缘部分中的任何一台主机都能够与其他主机通信。
在网络核心部分起特殊作用的是路由器(router),它是一种专用计算机(但不是主机)。路由器是实现分组交换(packet switching)的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的功能。为了弄清分组交换,下面先介绍电路交换的基本概念。
1.电路交换的主要特点
在电话问世后不久,人们就发现,要让所有的电话机都两两相连接是不现实的。图1-8(a)表示两部电话只需要用一对电线就能够互相连接起来。但若有5部电话要两两相连,则需要10对电线,如图1-8(b)所示。当电话机的数量很大时,这种连接方法需要的电线数量就太大了(与电话机数量的平方成正比)。于是人们认识到,要使得每一部电话能够很方便地和另一部电话进行通信,就应当使用一个中间设备将这些电话连接起来,如图1-8(c)所示。这个中间设备就是电话交换机。每一部电话都连接到交换机上,交换机就好像一个有多个开关的开关器(当然,实际的工作原理是非常复杂的),可以将需要通信的任意两部电话的电话线路按需接通,从而大大减少了连接的电话线数量。
当电话机的数量增多时,就要使用很多彼此连接起来的交换机来完成全网的交换任务。用这样的方法,就构成了覆盖全世界的电信网。
电话交换机接通电话线的方式是一种称为电路交换(circuit switching)的方式。从通信资源的分配角度来看,交换(switching)就是按照某种方式动态地分配传输线路的资源。在使用电路交换打电话之前,必须先拨号请求建立连接。当被叫用户听到交换机送来的拨号音并摘机后,从主叫端到被叫端就建立了一条连接,也就是一条专用的物理通路。这条连接保证了双方通话时所需的通信资源,而这些资源在双方通信时不会被其他用户占用。此后主叫和被叫双方就能互相通电话了。通话完毕挂机后,交换机释放刚才使用的这条专用的物理通路(即把刚才占用的所有通信资源归还给电信网)。这种必须经过“建立连接(分配通信资源)→通话(一直占用通信资源)→释放连接(归还通信资源)”三个步骤的交换方式称为电路交换 。如果用户在拨号呼叫时电信网的资源已不足以支持这次的呼叫,则主叫用户会听到忙音,表示电信网不接受用户的呼叫,用户必须挂机,等待一段时间后再重新拨号。
图1-9为电路交换的示意图。为简单起见,图中没有区分市话交换机和长途电话交换机。应当注意的是,用户线归电话用户专用,而交换机之间拥有的大量话路的中继线则是许多用户共享的,正在通话的用户只占用了其中的一个话路,而在通话的全部时间内,通话的两个用户始终占用端到端的通信资源。图中电话机A和B之间的通路共经过了4个交换机,而电话机C和D是属于同一个交换机的地理覆盖范围中的用户,因此这两个电话机之间建立的连接就不需要再经过其他的交换机。这就是说,在A和B的通话过程中,它们就始终占用这条已建立的通话电路,就好像在电话机A和B之间直接用一对电话线连接起来一样。通话完毕后(挂机),A和B的连接就断开,原来曾占用的交换机之间的电路又可以为其他用户使用。
当使用电路交换来传送计算机数据时,其线路的传输效率往往很低。这是因为计算机数据是突发式地出现在传输线路上的,因此线路上真正用来传送数据的时间往往不到10%甚至1%。实际上,已被用户占用的通信线路在绝大部分时间里都是空闲的。例如,当用户阅读终端屏幕上的信息或用键盘输入和编辑一份文件时,或计算机正在进行处理而结果尚未返回时,宝贵的通信线路资源并未被利用而是白白被浪费了。
2.分组交换的主要特点
计算机网络通常采用分组交换技术。图1-10所示的是把一个数据报文划分为几个分组的概念。通常我们把要发送的整块数据称为一个报文(message)。在发送报文之前,先把较长的报文划分成为一个个更小的等长数据段,例如,每个数据段为1024 bit 。在每一个数据段前面,加上一些由必要的控制信息组成的首部(header)后,就构成了一个分组(packet)。分组又称为“包”,而分组的首部也可称为“包头”。分组是在因特网中传送的数据单元。分组中的“首部”是非常重要的,包含了诸如目的地址和源地址等重要控制信息。计算机将分组通过通信链路直接发送给分组交换机,分组交换机收到一个分组,先将分组暂时存储下来,再检查其首部,按照首部中的目的地址查找转发表,找到合适的端口(就是分组交换机和外部连接的接口)转发出去,把分组交给下一个分组交换机。这样一步一步经过多个分组交换机把分组转发到最终的目的计算机。由于每个分组交换机都是将收到的分组先存储下来再转发出去,因此该方法被称为存储转发方式。
每个分组交换机有多条链路与之相连。对于每条相连的链路,该分组交换机有一个输出缓存(也称为输出队列),它用于存储分组交换机准备发往哪条链路的分组。该输出缓存在分组交换中起着重要的作用。如果到达的分组需要从某条链路转发出去,但发现该链路正忙于传输其他分组,则分组必须在该输出缓存中等待(即排队)。特别是当一个分组到达时发现输出缓存已满时,将发生分组丢失,即到达的分组或已经排队的分组之一将被丢弃。当网络中有大量分组需要从某条链路转发时就可能出现这种分组丢失的情况,这时我们说网络发生了拥塞。
在因特网中,最重要的分组交换机就是路由器(router)。路由器具体的工作原理我们将在第4章讨论。图1-11(a)强调因特网的核心部分是由许多网络和把它们互连起来的路由器组成的,而主机处在因特网的边缘部分。在因特网核心部分的路由器之间一般都用高速链路相连接,而在网络边缘的主机接入到核心部分则通常以相对较低速率的链路相连接。
位于网络边缘的主机和位于网络核心部分的路由器都是计算机,但它们的作用很不一样。主机的用途是为用户进行信息处理的,并且可以和其他主机通过网络交换信息。路由器的用途则是用来转发分组的,即进行分组交换的。
当我们讨论因特网的核心部分中的路由器转发分组的过程时,往往把单个的物理网络简化成一条链路,而路由器成为核心部分的结点,如图1-11(b)所示。这种简化图看起来可以更加突出重点,因为在转发分组时最重要的就是要知道路由器之间是怎样连接起来的。
现在假定图1-11(b)中的主机H1向主机H5发送数据。主机H1先将分组逐个地发往与它直接相连的路由器R1。此时,除链路H1R1外,其他通信链路并不被目前通信的双方所占用。需要注意的是,即使是链路H1R1,也只是当分组正在此链路上传送时才被占用。在各分组传送之间的空闲时间,链路H1R1仍可为其他主机发送的分组使用。
路由器R1把主机H1发来的分组放入缓存。假定从路由器R1的路由表中查出应把该分组转发到链路R1R3。于是分组就传送到路由器R3。当分组正在链路R1R3上传送时,该分组并不占用网络其他部分的资源。
路由器R3继续按上述方式查找路由表,假定查出应转发到路由器R5。当分组到达R5后,R5就最后把分组直接交给主机H5。 图1-12(a)~(d)表示分组在从H1向H5传输的过程中,并非像电路交换那样,自始至终占用整个端到端的电路资源,而是逐段地占用:在哪段链路传输,就占用该链路的资源。这对整个网络资源的利用是有好处的。图1-12(e)表明分组在从主机H1传送到H5的过程中,就像接力赛跑那样,先传送到一个路由器,然后暂存一下,查找路由表,再转发到下一个路由器。这就是分组交换的“存储转发”过程。从这里可以看出,分组交换和电路交换有着很大的区别。
假定在某一个分组的传送过程中,链路R1R3的通信量太大,那么路由器R1可以把分组沿另一个路由转发到路由器R2,再转发到路由器R5,最后把分组送到主机H5。在网络中可同时有多台主机进行通信,如主机H2也可以经过路由器R2和R5与主机H6通信。
这里要注意,路由器暂时存储的是一个个短分组,而不是整个的长报文。短分组暂存在路由器的存储器(即内存)中而不是存储在磁盘中,这就保证了较高的交换速率。
在图1-11中只画了一对主机H1和H5在进行通信。实际上,因特网可以容许非常多的主机同时进行通信,而一台主机中的多个进程(即正在运行中的多道程序)也可以各自和不同主机中的不同进程进行通信。
总之,分组交换在传送数据之前不必先占用一条端到端的通信资源。分组在哪段链路上传送才占用这段链路的通信资源。分组在传输时就这样一段接着一段地断续占用通信资源,而且还省去了建立连接和释放连接的开销,因而数据的传输效率更高。
从以上所述可知,采用存储转发的分组交换,实质上是采用了在数据通信的过程中断续(或动态)分配传输带宽的策略(关于带宽的进一步讨论见后面的1.5节),这对传送突发式的计算机数据非常合适,使得通信线路的利用率大大提高了。
为了提高分组交换网的可靠性,因特网的核心部分常采用网状拓扑结构,使得当发生网络拥塞或少数结点、链路出现故障时,路由器可灵活地改变转发路由而不致引起通信的中断或全网的瘫痪。此外,通信网络的主干线路往往由一些高速链路构成,这样就可以较高的数据率迅速地传送计算机数据。
综上所述,分组交换网的主要优点见表1-2。
分组交换也带来一些新的问题。例如,路由器在转发分组时需要花费一定的时间,这就会造成时延,因此必须尽量设法减少这种时延。此外,由于分组交换不像电路交换那样通过建立连接来保证通信时所需的各种资源,因而无法确保通信时端到端所需的带宽,在通信量较大时可能造成网络拥塞。
分组交换网带来的另一个问题是,各分组必须携带的控制信息也造成了一定的开销(overhead)。整个分组交换网还需要专门的管理和控制机制。
应当指出,从本质上讲,这种断续分配传输带宽的存储转发原理并非完全新的概念。自古代就有的邮政通信,就其本质来说也是属于存储转发方式。而在20世纪40年代,电报通信也采用了基于存储转发原理的报文交换(message switching)。在报文交换中心,一份份电报被接收下来,并穿成纸带。操作员以每份报文为单位,撕下纸带,根据报文的目的站地址,拿到相应的发报机转发出去。这种报文交换的时延较长,从几分钟到几小时不等。现在电报和报文交换已经很少有人使用了。分组交换虽然也采用存储转发原理,但由于使用了计算机进行处理,这就使分组的转发非常迅速。例如,ARPANET建网初期的经验表明,在正常的网络负荷下,当时横跨美国东西海岸的端到端平均时延小于0.1s。这样,分组交换虽然采用了某些古老的交换原理,但实际上已变成了一种崭新的交换技术。
图1-13表示电路交换、报文交换和分组交换的主要区别。图中的A和D分别是源点和终点,而B和C是在A和D之间的中间结点。图中的最下方归纳了三种交换方式在数据传送阶段的主要特点。
电路交换——整个报文的比特流连续地从源点直达终点,好像一条物理的线路直接将源点和终点连接起来一样。
报文交换——整个报文先传送到相邻结点,全部存储下来后查找转发表,转发到下一个结点。
分组交换——单个分组(这只是整个报文的一部分)传送到相邻结点,存储下来后查找转发表,转发到下一个结点。注意,分组交换结点的输出接口和输入接口能够并行工作,当输出端口在发送一个分组时,其输入端口可以同时接收下一个分组。
从图1-13可看出,若要连续传送大量的数据,且其传送时间远大于连接建立时间,则电路交换的传输速率较快。报文交换和分组交换不需要预先分配传输带宽,在传送突发数据时可提高整个网络的信道利用率。由于一个分组的长度往往远小于整个报文的长度,因此分组交换比报文交换的时延小。将发送的报文划分成小的分组,除了有减少转发时延的好处外,还可以避免过长的报文长时间占用链路,同时也有利于进行差错控制(将在3.1.4小节中讨论差错控制)。
1.4 计算机网络的定义与分类
1.4.1 计算机网络的定义
计算机网络的精确定义并未统一。
关于计算机网络的最简单的定义是:一些互相连接的、自治的计算机的集合。这里“自治”的概念即独立的计算机,它有自己的硬件和软件,可以单独运行使用,而“互相连接”是指计算机之间能够进行数据通信或交换信息。
最简单的计算机网络只有两台计算机和连接它们的一条链路,即两个结点和一条链路。因为没有第三台计算机,因此不存在交换的问题。
有时我们也可能见到“计算机通信网”这一名词。但这个名词容易使人误认为这是一种专门为了通信而设计的计算机网络。计算机网络当然应具有通信的功能,但这种通信功能并非计算机网络最主要的功能。因此本书不使用“计算机通信网”这一名词。
“计算机通信”与“数据通信”这两个名词也常混用。前者强调通信的主体是计算机中运行的程序(在传统的电话通信中通信的主体是人),后者强调在计算机之间传送的是数据。
1.4.2 计算机网络的分类
可以从不同的角度对计算机网络进行分类。
1.从网络的作用范围进行分类
(1)局域网(Local Area Network,LAN)
局域网一般用微型计算机或工作站通过高速通信线路相连(速率通常在10 Mbit/s以上),但地理上则局限在较小的范围内,如一个实验室、一幢楼或一个校园内,距离一般在1 km左右。局域网通常由某个单位单独拥有、使用和维护。在局域网发展的初期,一个学校或工厂往往只拥有一个局域网。现在局域网已被非常广泛地使用,一个学校或企业大都拥有许多个互连的局域网(这样的网络常称为校园网或企业网)。本书将在3.3节至3.7节详细讨论局域网。
(2)城域网(Metropolitan Area Network,MAN)
城域网的作用范围一般是一个城市,可跨越几个街区甚至整个城市,其作用距离5 ~ 50 km。城域网通常作为城市骨干网,互连大量企业、机构和校园局域网。近几年,城域网已开始成为现代城市的信息服务基础设施,为大量用户提供接入和各种信息服务,并有趋势将传统的电信服务、有线电视服务和互联网服务融为一体。
(3)广域网(Wide Area Network,WAN)
广域网的作用范围通常为几十到几千米,可以覆盖一个国家、地区,甚至横跨几个洲,因而有时也称为远程网(long haul network)。广域网是因特网的核心部分,其任务是为核心路由器提供远距离(例如,跨越不同的国家)高速连接,互连分布在不同地区的城域网和局域网。
(4)个人区域网(Personal Area Network,PAN)
个人区域网不同于以上网络,不是用来连接普通计算机的,而是在个人工作的地方把属于个人使用的电子设备(如便携式计算机、打印机、鼠标、键盘、耳机等)用无线技术(取代传统导线)连接起来的网络,因此也常称为无线个人区域网(Wireless PAN,WPAN),其范围大约在10 m。
顺便指出,若中央处理机之间的距离非常近(如仅1 m的数量级甚至更小些),则一般就称之为多处理机系统而不称它为计算机网络。
2.从网络的使用者进行分类
(1)公用网(public network)
这是指电信公司(国有或私有)出资建造的大型网络。“公用”的意思就是所有愿意按电信公司的规定交纳费用的人都可以使用这种网络。因此公用网也可称为公众网。
(2)专用网(private network)
这是某个部门为本单位的特殊业务工作的需要而建造的网络。这种网络不向本单位以外的人提供服务。例如,军队、铁路、电力等系统均有本系统的专用网。
公用网和专用网都可以传送多种业务,若传送的是计算机数据,则分别是公用计算机网络和专用计算机网络。
1.5 计算机网络的主要性能指标
性能指标从不同的方面来度量计算机网络的性能。下面介绍最常用的6个性能指标。
1.速率
速率就是数据的传送速率,它也称为数据率(data rate)或比特率(bit rate),是计算机网络中最重要的一个性能指标。比特(bit)是计算机中数据量的单位,它来源于binary digit,意思是一个“二进制数字”。因此一个比特就是二进制数字中的一个1或0。网络技术中速率的单位是bit/s(比特每秒)(或b/s,有时也写为bps,即bit per second)。当数据率较高时,就可以用kbit/s(k 103 千)、Mbit/s(M 106 兆)、Gbit/s(G 109 吉)或Tbit/s(T 1012 太)。现在人们常用更简单的并且是很不严格的记法来描述网络的速率,如100 M以太网,而省略了单位中的bit/s,它的意思是速率为100 Mbit/s的以太网。
请读者注意数量单位“千”“兆”和“吉”等的英文缩写所代表的数值。例如,计算机中的数据量往往用字节作为度量的单位。一个字节(byte,记为大写的B)代表8个比特。“千字节”的“千”用大写K表示,它等于210,即1024,而不是103。同样,在计算机中,1 MB或1 GB也并非表示106或109个字节,而是表示220(1048576)或230(1073741824)个字节。在通信领域小写的k表示103而不是1024。但有的书也不这样严格区分,大写K有时表示1000而有时又表示1024,作者认为还是区分为好。
2.带宽
“带宽”(bandwidth)有以下两种不同的意义。
(1)带宽本来是指某个信号具有的频带宽度。信号的带宽是指该信号所包含的各种不同频率成分所占据的频率范围。例如,在传统的通信线路上传送的电话信号的标准带宽是3.1 kHz(从300 Hz到3.4 kHz,即话音的主要成分的频率范围)。这种意义的带宽的单位是赫(或千赫、兆赫、吉赫等)。而表示通信线路允许通过的信号频带范围就称为线路的带宽。
(2)在计算机网络中,带宽用来表示网络的通信线路所能传送数据的能力,因此网络带宽表示在单位时间内从网络中的某一点到另一点所能通过的“最高数据率”。本书在提到“带宽”时,主要是指这个意思。这种意义的带宽的单位是“比特每秒”,记为bit/s。在这种单位的前面也常常加上千(k)、兆(M)、吉(G)或太(T)这样的倍数。
其实,“带宽”的这两种表述之间有着密切的关系。一条通信链路的“频带宽度”越宽,其所传输数据的“最高数据率”也越高。
3.吞吐量
吞吐量(throughput)也称为吞吐率,表示在单位时间内通过某个网络(或信道、接口)的数据量。吞吐量更经常地用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络。显然,吞吐量受网络的带宽或网络的额定速率的限制。例如,对于一个100 Mbit/s的以太网,其典型的吞吐量可能也只有70 Mbit/s。请注意,有时吞吐量还可用每秒传送的字节数或帧数来表示。
4.时延
时延(delay或latency)是指数据(一个报文或分组,甚至比特)从网络(或链路)的一端传送到另一端所需要的时间。时延有时也称为延迟或迟延。
需要注意的是,网络中的时延是由以下几个不同的部分组成的。
(1)发送时延
发送时延(transmission delay)是主机或路由器将分组发送到通信线路上所需要的时间,也就是从发送分组的第一个比特算起,到该分组的最后一个比特发送到线路上所需要的时间。
对于一定的网络,发送时延并非固定不变,而是与发送的分组长度(单位是比特)成正比,与发送速率成反比。由于在分组交换中计算机在发送数据时总是以信道最高数据率发送数据,因此公式中的发送速率也可以替换成信道带宽。
(2)传播时延
传播时延(propagation delay)是电磁波在信道中需要传播一定的距离而花费的时间。
电磁波在自由空间的传播速率是光速,即3.0 105 km/s。电磁波在网络传输媒体中的传播速率比在自由空间要略低一些:在铜线电缆中的传播速率约为2.3 105 km/s,在光纤中的传播速率约为2.0 105 km/s。例如,1000 km长的光纤线路产生的传播时延大约为5 ms。
以上两种时延不要弄混。但只要理解这两种时延发生的地方就不会把它们弄混。发送时延发生在机器内部的发送器中(一般就是发生在3.3.3小节要介绍的网络适配器中),而传播时延则发生在机器外部的信道传输媒体上。
(3)处理时延
主机或路由器在收到分组时要花费一定的时间进行处理,例如,分析分组的首部、从分组中提取数据部分、进行差错检验或查找适当的路由等,这就产生了处理时延。
(4)排队时延
分组在进行网络传输时,要经过许多的路由器。但分组在进入路由器后要先在输入队列中排队等待处理。在路由器确定了转发接口后,还要在输出队列中排队等待转发。这就产生了排队时延。排队时延的长短往往取决于网络当时的通信量,随时间变化会很大。当网络的通信量很大时会发生队列溢出,使分组丢失,这相当于排队时延为无穷大。
图1-14画出了这几种时延所产生的地方,希望读者能够更好地分清这几种时延。
显然,我们都希望网络的时延越小越好,但并非网络速率高就一定时延小。在总时延中,究竟是哪一种时延占主导地位,必须具体分析。
必须强调指出,初学网络的人容易产生这样错误的概念,就是“在高速链路(或高带宽链路)上,比特应当跑得更快些”。但这是不对的。我们知道,汽车在路面质量很好的高速公路上可明显地提高行驶速率,然而对于高速网络链路,我们提高的仅仅是数据的发送速率而不是比特在链路上的传播速率。承载信息的电磁波在通信线路上的传播速率(这是光速的数量级)与数据的发送速率并无关系。提高数据的发送速率只是减小了数据的发送时延。还有一点也应当注意,就是数据的发送速率的单位是每秒发送多少个比特,是指某个点或某个接口上的发送速率。而传播速率的单位是每秒传播多少千米,是指传输线路上比特的传播速率。因此,通常所说的“光纤信道的传输速率高”是指向光纤信道发送数据的速率可以很高,而光纤信道的传播速率实际上比铜线的传播速率还略低一点。这是因为经过测量得知,光在光纤中的传播速率是每秒20.5万千米,它比电磁波在铜线(如5类线)中的传播速率(每秒23.1万千米)略低一些。上述这个概念请读者务必弄清。
5.丢包率
丢包率即分组丢失率,是指在一定的时间范围内,分组在传输过程中丢失的分组数量与总的分组数量的比。丢包率具体可分为接口丢包率、结点丢包率、链路丢包率、路径丢包率、网络丢包率等。
在计算机网络中,分组丢失主要有两种情况。一种情况是由于分组在传输过程出现了比特级差错,被结点丢弃。另一种情况就是当分组到达一台队列已满的分组交换机时,由于没有空间来存储这些分组,分组交换机就会将到达的分组或已经排队的分组丢弃。由于分组交换不像电路交换那样通过建立连接来保证通信时所需的各种资源,因而无法确保通信时端到端所需的带宽,在通信量较大时就可能造成网络拥塞,导致分组交换机的队列溢出和分组丢失。这是现代计算机网络中分组丢失最主要的原因。
因此,丢包率反映了网络的拥塞情况。一般无拥塞时路径丢包率为0,轻度拥塞时丢包率为1% ~ 4%,严重拥塞时丢包率为5% ~ 15%。具有较高丢包率的网络通常无法使网络应用正常工作。
丢包率是网络运维人员非常关心的一个网络性能指标,但对于普通用户来说往往并不关心这个指标,因为他们通常感觉不到网络丢包。大多数网络应用底层所使用的通信软件会为用户提供可靠的传输服务,它们会自动重传丢失的分组并自动调整发送速率进行网络拥塞控制(这些将在第5章进行详细讨论)。在网络拥塞,丢包率较高时,用户所感觉到的往往是网络延时变大,“网速”变慢,而不是信息的丢失。
6.利用率
利用率有信道利用率和网络利用率两种。信道利用率指出某信道有百分之几的时间是被利用的(有数据通过)。完全空闲的信道的利用率是零。网络利用率则是全网络的信道利用率的加权平均值。信道利用率并非越高越好。这是因为,根据排队论,当某信道的利用率增大时,该信道引起的时延也就迅速增加。这和高速公路的情况有些相似。当高速公路上的车流量很大时,由于在公路上的某些地方会出现堵塞,因此行车所需的时间就会增大。网络也有类似的情况。当网络的通信量很少时,网络产生的时延并不大。但在网络通信量不断增大的情况下,由于分组在网络结点(路由器或结点交换机)进行处理时需要排队等候,因此网络引起的时延就会增大。
但是也不能使信道利用率太低,这会使宝贵的通信资源被白白浪费。在3.1.5小节我们将看到一个设计得不好的协议在某些情况下会导致信道利用率很低(我们将在下一节介绍什么是协议),这时需要使用更好的协议来提高信道利用率,使通信资源得到充分利用。在5.4节我们还会看到一些机制,可以根据情况动态调整输入到网络中的通信量,使网络利用率保持在一个合理的范围内。
1.6 计算机网络体系结构
在计算机网络的基本概念中,协议与分层的体系结构是最重要的。计算机网络体系结构的抽象概念较多,在学习时要多思考。这些概念对后面的学习很有帮助。
1.6.1 网络协议
计算机网络是由多个互连的结点组成的,结点之间需要不断地交换数据与控制信息,要做到有条不紊地交换数据,每个结点都必须遵守一些事先约定好的规则。这些规则明确规定了所交换的数据的格式和时序,以及在发送或接收数据时要采取的动作等问题。这些为进行网络中的数据交换而建立的规则、标准或约定即称为网络协议(network protocol)。网络协议也可简称为协议。更进一步讲,网络协议主要由以下三要素组成。
(1)语法,即数据与控制信息的结构或格式。例如,地址字段多长以及它在整个分组中的什么位置。
(2)语义,即各个控制信息的具体含义,包括需要发出何种控制信息,完成何种动作及做出何种响应。
(3)同步(或时序),即事件实现顺序和时间的详细说明,包括数据应该在何时发送出去,以及数据应该以什么速率发送。
其实协议不是网络所独有的,在我们的日常生活中处处可见。只要涉及多个实体需要通过传递信息来协作完成一项任务的问题都需要协议,通常都包含语法、语义和时序这三要素。例如,人们在使用邮政系统进行通信时,就需要遵守一些强制的或约定俗成的规则,而这些规则就是协议。人们在书写信封时需要遵守国家要求的信封书写规范,规范对收件人和发件人的地址、姓名、邮政编码的书写都有明确的要求。而当人们在收到信件时应按照人们习惯的时间范围内及时回信。又如,在古代战场上,军队统帅用击鼓鸣金的方法来指挥作战的过程中就需要协议。显然在将士和统帅间要遵守某种共同的约定,如击鼓表示进攻,而鸣金表示撤退,并对击鼓和鸣金的节奏有明确的规定。若事先无明确约定,则肯定会产生混乱从而导致失败。
在计算机网络中,任何一个通信任务都需要由多个通信实体协作完成,因此,网络协议是计算机网络不可缺少的组成部分。实际上,只要我们想让连接在网络上的另一台计算机做点什么事情(例如,从网络上的某个主机下载文件),我们都需要有协议。
协议必须在计算机上或通信设备中用硬件或软件来实现,有时人们将实现某种协议的软件也简称为协议。我们经常会听到有人说在计算机上安装某协议,注意,这里的协议指的是协议软件,即实现该协议的软件。
1.6.2 层次模型与计算机网络体系结构
当我们在处理、设计和讨论一个复杂系统时,总是将复杂系统划分为多个小的、功能相对独立的模块或子系统。这样我们可以将注意力集中在这个大而复杂系统的某个特定部分,并有能力把握它。这就是模块化的思想。计算机网络是一个非常复杂的系统,当然需要利用模块化的思想将其划分为多个模块来处理和设计。人们发现层次式的模块划分方法特别适合网络系统,因此目前所有的网络系统都采用分层的体系结构。
在我们的日常生活中不乏层次结构的系统,例如,邮政系统就是一个分层的系统,而且它与计算机网络有很多相似之处。在讨论计算机网络的分层体系结构之前,先来看看我们所熟悉的邮政系统的分层结构。如图1-16所示,我们可以将邮政系统抽象为用户应用层、信件递送层、邮包运送层、交通运输层和交通工具层5个层次。发信人与收信人通过邮政系统交换信息,将传递的信息写在纸上并封装在信封里,信封上写上收信人和发信人的姓名与地址等信息,然后将信件投入邮箱或直接交给邮局。邮局工作人员将送往同一地区的信件装入一个邮包,并贴上负责这一地区的邮局的地址,然后交给邮政系统中专门负责运送邮包的部门。该部门要根据邮包的目的地选择运送路线、中转站和交通工具。注意,到目的邮局可能要经过多种交通工具,如经火车从北京运送到南京后再经汽车运送到南通。运送邮包的部门要将邮包作为货物交给铁路部门或汽运公司去运送,在中转站该部门还要负责在不同交通工具间中转,最后将邮包交给目的邮局。目的邮局再将邮包中的信件取出分发给收信人。
邮政系统的最上层是用户应用层,其任务是用户通过信件来传递信息,如写家书、求职或投稿等。通信的双方必须用约定语言和格式来书写信件内容。为了保密,双方还可以用约定的暗语或密文进行通信。
用户应用层的下层是信件递送层,其任务是将用户投递的信件递送到收信人。为完成该功能,必须对信封的书写格式、邮票、邮戳等进行规定。
再下层是邮包运送层,其任务是按运送路线运送邮包,包括在不同交通工具间中转。为把邮包运送到目的地,邮包运送部门需要规定邮包上的地址信息内容和格式。
再下层是交通运输层,其任务是提供通用的货物运输的功能,并不一定仅为邮政系统提供服务。不同类型的交通运输部门之间是独立的,并且有各自的寻址体系。
最下层是具体的交通工具,如火车和汽车,它们是货物运输的载体。
邮政系统是一个很复杂的系统,但通过划分层次,将整个通信任务划分为5个功能相对独立和简单的子任务。每一层任务为其上层任务提供服务,并利用其下层任务提供的服务来完成本层的功能。计算机网络的层次结构与其非常类似。
在计算机网络的术语中,我们将计算机网络的层次结构模型与各层协议的集合称为计算机网络的体系结构(architecture)。换种说法,计算机网络的体系结构就是这个计算机网络及其部件所应完成的功能的精确定义。需要强调的是,这些功能究竟是用何种硬件或软件实现的,则是一个遵循这种体系结构的实现(implementation)的问题。体系结构是抽象的,而实现则是具体的,是真正在运行的计算机硬件和软件。
按层次结构来设计计算机网络的体系结构有很多好处,如下所述。
(1)各层之间是独立的。某一层并不需要知道它的下一层是如何实现的,而仅仅需要知道该层通过层间的接口(即界面)所提供的服务。例如,邮包运送部门将邮包作为货物交给铁路部门运输时无需关心火车运行的具体细节,这是铁路部门的事。由于每一层只实现一种相对独立的功能,因而可将一个难以处理的复杂问题分解为若干个较容易处理的更小一些的问题。这样,整个问题的复杂程度就下降了。
(2)灵活性好。当任何一层发生变化时(如由于技术的变化),只要层间接口关系保持不变,则在该层以上或以下各层均不受影响。例如,火车提速了,或更改了车型,对邮包运送部门的工作没有直接影响。
(3)结构上可分割开。各层都可以采用最合适的技术来实现。
(4)易于实现和维护。这种结构使得实现和调试一个庞大而又复杂的系统变得易于处理,因为整个的系统已被分解为若干个相对独立的子系统。
(5)有利于功能复用。下层可以为多个不同的上层提供服务。例如,交通运输部门不仅可以为邮政系统提供运输邮包的服务,还可以为其他公司提供运输其他货物的服务。
(6)能促进标准化工作。因为每一层的功能及其所提供的服务都已有了精确的说明。标准化对于计算机网络来说非常重要,因为协议是通信双方共同遵守的约定。
分层时应注意使每一层的功能非常明确。若层数太少,就会使每一层的协议太复杂。但层数太多又会在描述和综合各层功能的系统工程任务时遇到较多的困难。到底计算机网络应该划分为多少层,不同人有不同的看法。
1974年,美国的IBM公司宣布了它研制的系统网络体系结构(System Network Architecture,SNA),这是世界上第一个网络体系结构。此后,许多公司纷纷提出各自的网络体系结构。这些网络体系结构的共同点是都采用层次结构模型,但层次划分和功能分配均不相同。
为了使不同体系结构的计算机网络都能互连,国际标准化组织(International Organization for Standardization,ISO)于1977年成立了专门机构研究该问题。不久,他们就提出一个试图使各种计算机在世界范围内互连成网的标准框架,即著名的开放系统互连参考模型(Open Systems Interconnection Reference Model,OSI/RM),简称为OSI。“开放”是指只要遵循OSI标准,一个系统就可以和位于世界上任何地方的、也遵循这同一标准的其他任何系统进行通信。该模型是一个7层协议的体系结构(见图1-17(a))。
在OSI模型之前,TCP/IP协议簇就已经在运行,并逐步演变成TCP/IP参考模型(见图1-17(b))。到了20世纪90年代初期,虽然整套的OSI国际标准都已经制订出来了,但这时因特网已抢先在全世界覆盖了相当大的范围,因此得到最广泛应用的不是法律上的国际标准OSI,而是非国际标准TCP/IP。这样,TCP/IP就被称为是事实上的国际标准。从这种意义上说,能够占领市场的就是标准。在过去制订标准的组织中往往以专家、学者为主。但现在许多公司都纷纷挤进各种各样的标准化组织,使得技术标准具有浓厚的商业气息。一个新标准的出现,有时不一定反映出其技术水平是最先进的,而是往往有着一定的市场背景。
OSI失败的原因可归纳为:
(1)OSI的专家们缺乏实际经验,他们在完成OSI标准时没有商业驱动力;
(2)OSI的协议实现起来过分复杂,而且运行效率很低;
(3)OSI标准的制定周期太长,因而使得按OSI标准生产的设备无法及时进入市场;
(4)OSI的层次划分也不太合理,有些功能在多个层次中重复出现。
1.6.3 具有五层协议的原理体系结构
OSI的七层协议体系结构的概念清楚,理论也较完整,但它既复杂又不实用。TCP/IP是一个四层的体系结构,它包含应用层、运输层、网际层和网络接口层。不过从实质上讲,TCP/IP只有最上面的三层,因为最下面的网络接口层并没有什么具体内容。TCP/IP体系结构虽然简单,但它现在却得到了非常广泛的应用。因此在学习计算机网络原理时往往采取折中的办法,即综合OSI和TCP/IP的优点,采用一种只有五层协议的原理体系结构(见图1-17(c)),这样既简洁又能将概念阐述清楚。
现在结合因特网的情况,自上而下地、非常简要地介绍一下各层的主要功能。实际上,只有认真学习完本书各章的协议后才能真正弄清各层的作用。
(1)应用层(application layer)
应用层是体系结构中的最高层。应用层的任务是如何通过应用进程间的交互来完成特定的网络应用。应用层协议定义的是应用进程间通信和交互的规则。这里的进程就是指正在运行的程序。对于不同的网络应用需要有不同的应用层协议。在因特网中的应用层协议很多,如支持万维网应用的HTTP协议,支持电子邮件的SMTP协议,支持文件传送的FTP协议等。我们将应用层交互的数据单元称为报文(message)。
(2)运输层(transport layer)
运输层(或翻译为传输层)的任务就是负责向两台主机中进程之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。所谓通用,是指并不针对某个特定网络应用,多种应用可以使用同一个运输层服务。由于一台主机可同时运行多个进程,因此运输层有复用和分用的功能。复用就是多个应用层进程可同时使用下面运输层的服务,分用则是运输层把收到的信息分别交付给上面应用层中的相应进程。
在因特网中,主要有两个运输层协议。
① 传输控制协议(Transmission Control Protocol,TCP)——提供面向连接的,可靠的数据传输服务,其数据传输的单位是报文段(segment)。
② 用户数据报协议(User Datagram Protocol,UDP)——提供无连接的,尽最大努力(best- effort)的数据传输服务(不保证数据传输的可靠性),其数据传输的单位是用户数据报。
(3)网络层(network layer)
网络层负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组或包进行传送。在TCP/IP体系中,由于网络层使用IP协议,因此分组也叫作IP数据报,或简称为数据报。
请注意:不要将运输层的“用户数据报”和网络层的“IP数据报”弄混。
还有一点也请注意:无论在哪一层传送的数据单元,习惯上都可笼统地用“分组”来表示。在阅读国外文献时,特别要注意packet往往是作为任何一层传送的数据单元的同义词。
网络层的一个重要任务就是选择合适的路由(route),将源主机运输层所传下来的分组,通过网络中的路由器的转发(通常要经过多个路由器的转发),最后到达目的主机。
这里要强调指出,网络层中的“网络”二字,已不是我们通常谈到的具体的网络,而是在计算机网络体系结构模型中的专用名词。
因特网是一个很大的互联网,它由大量的异构(heterogeneous)网络通过路由器(router)相互连接起来。因特网主要的网络层协议是无连接的网际协议(Internet Protocol,IP)和许多种路由选择协议,因此因特网的网络层也叫作网际层或IP层。在本书中,网络层、网际层和IP层都是同义语。
(4)数据链路层(data link layer)
数据链路层常简称为链路层。计算机网络由主机、路由器和连接它们的链路组成,从源主机发送到目的主机的分组必须在一段一段的链路上传送。数据链路层的任务就是将分组从链路的一端传送到另一端。我们将数据链路层传送的数据单元称为帧(frame)。因此数据链路层的任务就是在相邻结点之间(主机和路由器之间或两个路由器之间)的链路上传送以帧为单位的数据。
每一帧包括数据和必要的控制信息(如同步信息、差错控制等)。例如,在接收数据时,控制信息使接收端能够知道一个帧从哪个比特开始和到哪个比特结束。控制信息还可用于接收端检测所收到的帧中有无差错。如发现有差错,数据链路层应该丢弃有差错的帧,以免继续传送下去白白浪费网络资源。
(5)物理层(physical layer)
物理层是原理体系结构的最底层,完成计算机网络中最基础的任务,即在传输媒体上传送比特流,将数据链路层帧中的每个比特从一个结点通过传输媒体传送到下一个结点。物理层传送数据的单位是比特。发送方发送1(或0)时,接收方应当收到1(或0)而不是0(或1)。因此物理层要考虑用多大的电压代表“1”或“0”,以及接收方如何识别出发送方所发送的比特。物理层还要考虑所采用的传输媒体的类型,如双绞线、同轴电缆、光缆等。当然,哪几个比特代表什么意思,则不是物理层所要管的。请注意,传递信息所利用的一些物理传输媒体本身是在物理层的下面。因此也有人把物理传输媒体当作第0层。
在因特网所使用的各种协议中,最重要的和最著名的就是TCP和IP两个协议。现在人们经常提到的TCP/IP并不一定是单指TCP和IP这两个具体的协议,而往往是表示因特网所使用的整个TCP/IP协议簇(protocol suite) 。
图1-18说明的是应用进程的数据在各层之间的传递过程中所经历的变化。这里假定两台主机通过一台路由器连接起来。
假定主机1的应用进程AP1向主机2的应用进程AP2传送数据。AP1先将其数据交给本主机的第5层(应用层)。第5层加上必要的控制信息H5就变成了这一层的数据传送单元并交给下层。第4层(运输层)收到这个数据单元后,加上本层的控制信息H4构成本层的数据传送单元,再交给第3层(网络层)。依此类推。不过到了第2层(数据链路层)后,控制信息被分成两部分,分别加到本层数据单元的首部(H2)和尾部(T2),而第1层(物理层)由于是比特流的传送,所以不再加上控制信息。请注意,传送比特流时应从首部开始传送。
当这一串的比特流离开主机1经网络的物理传输媒体传送到路由器时,就从路由器的第1层依次上升到第3层。每一层都是根据控制信息进行必要的操作,然后将控制信息剥去,将该层剩下的数据单元上交给更高的一层。当分组上升到了第3层时,就根据首部中的目的地址查找路由器中的路由表,找出转发分组的接口,然后往下传送到第2层,加上新的首部和尾部后,再到最下面的第1层,然后在物理传输媒体上把每一个比特发送出去。
当这一串的比特流离开路由器到达目的站主机2时,就从主机2的第1层按照上面讲过的方式,依次上升到第5层。最后,把应用进程AP1发送的数据交给目的站的应用进程AP2。
可以用一个简单例子来比喻上述过程。有一封信从最高层向下传,每经过一层就包上一个新的信封,写上必要的地址信息。包有多个信封的信件传送到目的站后,从第1层起,每层拆开一个信封后就把信封中的信交给它的上一层。传到最高层后,取出发信人所发的信交给收信人。
虽然应用进程数据要经过如图1-18所示的复杂过程才能送到终点的应用进程,但这些复杂过程对用户来说,却都被屏蔽掉了,以致应用进程AP1觉得好像是直接把数据交给了应用进程AP2。同理,任何两个同样的层次(如在两个系统的第4层)之间,也好像如同图1-18中的水平虚线所示的那样,将数据(即数据单元加上控制信息)通过水平虚线直接传递给对方。这就是所谓的“对等层(peer layers)”之间的通信。我们以前经常提到的各层协议,实际上就是在各个对等层之间传递数据时的各项规定。
在文献中还可以见到术语“协议栈(protocol stack)”。这是因为几个层次画在一起很像一个栈(stack)的结构。
1.6.4 实体、协议和服务
当研究开放系统中的信息交换时,往往使用实体(entity)这一较为抽象的名词来表示任何可发送或接收信息的硬件或软件进程。在许多情况下,实体就是一个特定的软件模块。
协议是控制两个对等实体(或多个实体)进行通信的规则的集合。协议的语法方面的规则定义了所交换的信息的格式,而协议的语义方面的规则定义了发送者或接收者所要完成的操作,例如,在何种条件下数据必须重传或丢弃。
在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。要实现本层协议,还需要使用下面一层所提供的服务。图1-19概括了相邻两层之间的关系。
OSI参考模型把对等层次之间传送的数据单位称为该层的协议数据单元(Protocol Data Unit,PDU),这个名词现已被许多非OSI标准采用。
一定要弄清楚,协议和服务在概念上是很不一样的。
首先,协议的实现保证了能够向上一层提供服务。使用本层服务的实体只能看见服务而无法看见下面的协议。下面的协议对上面的实体是透明的。“透明”是一个很重要的术语。它表示:某一个实际存在的事物看起来却好像不存在一样。例如,运输层使用了很复杂的协议实现了可靠传输。在上面的应用层只感受到运输层所提供的这种可靠传输服务,却看不见运输层是怎样借助于复杂协议来实现的可靠传输。因此,运输层的协议对应用层来说是透明的。
其次,协议是“水平的”,即协议是控制对等实体之间通信的规则。但服务是“垂直的”,即服务是由下层向上层通过层间接口提供的。另外,并非在一个层内完成的全部功能都称为服务。只有那些能够被高一层实体“看得见”的功能才能称之为“服务”。为获取下层服务,上层实体与下层实体之间需要通过层间接口交换信息,例如,上层实体将要发送数据交给下层实体去处理,下层实体将收到分组的数据提取出来交付给上层实体。
1.6.5 TCP/IP的体系结构
图1-20给出了用这种4层协议表示方法的例子。请注意,图中的路由器在转发分组时最高只用到网络层而没有使用运输层和应用层。
图1-21是用另一种方法来表示TCP/IP协议簇,它的特点是上下两头大而中间小:应用层和网络接口层都有多种协议,而中间的IP层很小,上层的各种协议都向下汇聚到一个IP协议中。这种很像沙漏计时器形状的TCP/IP协议簇表明,TCP/IP协议可以为各式各样的应用提供服务(所谓的everything over IP),同时TCP/IP协议也允许IP协议在各式各样的网络构成的互联网上运行(所谓的IP over everything)。正因为如此,因特网才会发展到今天的这种全球规模。从图1-21不难看出,IP协议在因特网中的核心作用。
1.7 计算机网络在我国的发展
下面简单介绍一下计算机网络在我国的发展情况。
最早着手建设专用计算机广域网的是铁道部。铁道部在1980年即开始进行计算机联网实验。1989年11月我国第一个公用分组交换网CNPAC建成运行。一方面,在20世纪80年代后期,公安、银行、军队,以及其他一些部门也相继建立了各自的专用计算机广域网。这对迅速传递重要的数据信息起着重要的作用。另一方面,从20世纪80年代起,国内的许多单位相继安装了大量的局域网。局域网的价格便宜,其所有权和使用权都属于本单位,因此便于开发、管理和维护。局域网的发展很快,对各行各业的管理现代化和办公自动化起到了积极的作用。
这里应当特别提到的是,1994年4月20日,我国用64 kbit/s专线正式连入因特网。从此,我国被国际上正式承认为接入因特网的国家。同年5月,中国科学院高能物理研究所设立了我国的第一个万维网服务器。同年9月,中国公用计算机互联网CHINANET正式启动。到目前为止,我国陆续建造了基于因特网技术的并可以和因特网互连的9个全国范围的公用计算机网络,如下所述。
① 中国公用计算机互联网CHINANET。
② 中国教育和科研计算机网CERNET。
③ 中国科学技术网CSTNET。
④ 中国联通互联网UNINET。
⑤ 中国网通公用互联网CNCNET。
⑥ 中国国际经济贸易互联网CIETNET。
⑦ 中国移动互联网CMNET。
⑧ 中国长城互联网CGWNET(建设中)。
⑨ 中国卫星集团互联网CSNET(建设中)
此外,还有一个中国高速互连研究试验网 NSFnet,是由中国科学院、北京大学、清华大学等单位在北京中关村地区建造的用来研究因特网新技术的高速网络。
上述这些基于因特网技术的计算机网络发展得非常快,几乎每个月都有新的发展,请读者经常在有关网站上查找这些计算机网络的有关数据(如用户数、网站数、主干网带宽等)。
值得注意的是,在2004年2月,我国的第一个下一代互联网CNGI的主干网CERNET2试验网正式开通,并提供服务。试验网目前以2.5 Gbit/s ~ 10 Gbit/s的速率连接北京、上海和广州3个CERNET核心结点,并与国际下一代互联网相连接。这标志着中国在互联网的发展过程中,已达到逐渐与国际先进水平同步。
中国互联网络信息中心(Network Information Center of China,CNNIC)每年两次公布我国因特网的发展情况。读者可在其网站www.cnnic.com上查到最新的和过去的历史文档。CNNIC把过去半年内使用过互联网的6周岁及以上的中国居民称为网民。根据CNNIC发表的“第28次中国互联网络发展状况统计报告”,截至2011年6月底,我国共有网民4.85亿(网民是指过去半年内使用过互联网的6周岁及以上的中国居民),其中手机网民在总体网民中的比例为65.5%。但农村网民只有1.31亿,占整体网民的27%,这表明在我国,计算机网络的普及还是很不平衡的。当前网民最主要的网络应用就是搜索引擎(即在因特网上使用搜索引擎来查找所需的信息)、即时通信、网络音乐、网络新闻和博客等。此外,更多的经济活动已步入了互联网时代。网上购物、网上支付和网上银行的使用率也迅速提升。2012年,我国的国际出口带宽已达到1.182 Tbit/s(1 Tbit/s = 103 Gbit/s),这里中国电信的CHINANET占有出口总带宽的约57.4%。
1.8 两个重要的新兴网络技术
随着计算机网络技术的发展与应用,现代社会就像离不开电和自来水一样已经离不开计算机网络,而在计算机网络技术基础上发展起来的两个新兴技术领域也在开始深刻地影响着这个社会。这两个新兴技术领域就是云计算和物联网。近年来不论是产业界还是学术界都对它们给予了极大的关注。虽然详细地讨论这两个技术已超出了本书的范围,但由于它们与因特网技术有着非常密切的联系(一个是运行在计算机网络上的分布式应用,一个是计算机网络的扩展和延伸),在这里有必要对这两个概念做一点简单的介绍。 1.8.1 云计算 云计算(Cloud Computing)是2006年以来在IT(Information Technology)行业兴起的一个概念,被誉为“革命性的计算模型”,是分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network Storage Technologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。云计算是一种运行在计算机网络之上的分布式应用,通过网络以按需、易扩展的方式向用户提供安全、快速、便捷、廉价的数据存储和网络计算服务。云计算自提出以来,以超乎想象的速度在短短几年时间就风靡全世界,得到产业界和学术界的广泛关注和支持。
云计算是一种商业计算模型,它将计算任务分布在由大量计算机构成的资源池上,使各类用户能够使用各种终端根据需要获取服务提供商提供的计算能力、存储空间和各种软件服务。云计算中的“云”指的是可以自我维护和管理的虚拟计算资源集合,通常是一些大型服务器集群,包括计算服务器、存储服务器和带宽资源等。被称为“云”主要是因为它在某些方面具有现实中云的特征:云一般都较大,其规模可以动态伸缩且边界是模糊的;云在空中飘忽不定,无法确定它的具体位置,但它确实存在于某处。云计算将计算资源集中起来,并通过专门软件实现自动管理。用户可以动态申请部分资源来支持各种应用程序的运行,这些资源可能分布在多台计算机系统之上,而用户无需关心这些具体的细节。在传统模式下,企业建立一套信息系统不仅需要购买硬件等基础设施,还要购买各种系统软件和大量的应用软件,需要专门的人员进行维护。当企业的规模扩大时,还要继续升级各种软、硬件设施以满足不断增长的需求。对于企业来说,计算机等硬件和软件本身并非它们真正需要的东西,它们仅仅是完成工作的工具而已。对于个人来说,要正常使用计算机需要安装许多软件,而多数软件是收费的,对于不经常使用该软件的用户来说购买是非常不划算的。因此需要这样一种服务,它能够提供用户需要的所有软件,而用户只需要在使用时付少量“租金”即可“租用”这些软件服务。
人们在日常生活中都要用到水和电,它们都是由电厂和自来水厂集中提供的。这种统一提供公共服务的模式极大程度地节约了资源,方便了人们的生活。面对信息技术领域的困扰,人们也梦想能像使用水和电一样来使用计算机资源,这一想法直接导致了云计算技术的产生。云计算的最终目标就是将计算、服务和应用作为一种公共设施提供给公众,使人们能够像使用水、电、煤气那样使用计算机资源。
在云计算模式下,用户的终端计算机将变得很简单,甚至不需要硬盘和各种应用软件就可以满足需要。这是因为用户的计算机只需要能通过网络发送指令和接收数据,就可以使用云服务提供的计算资源、存储空间和各种应用软件了。在云计算环境下,用户的观念也将发生巨大变化,即从“购买产品”向“购买服务”转变,他们直接面对的将不再是复杂和昂贵的硬件和软件,而是最终的服务。
云计算按照服务类型大致可以分为三类:基础设施即服务(Infrastructure as a Service,IaaS)、平台即服务(Platform as a Service,PaaS)和软件即服务(Software as a Service,SaaS)。
IaaS将硬件设备等基础资源(如处理能力、存储空间、网络组件等)封装成服务通过网络提供给用户使用。在IaaS环境中,用户相当于在使用裸机和磁盘,既可以让它运行Windows,也可以让它运行Linux,因而几乎可以做任何想做的事情,但用户必须自己管理或控制这些虚拟的计算机硬件资源来构建自己的信息系统。
PaaS对资源的抽象层次更进一步,它提供用户应用程序的开发和运行环境。PaaS自身负责资源的动态扩展和容错管理。但与此同时,用户的自主权降低,必须使用特定的编程环境并遵照特定的编程模型。
SaaS的针对性更强,它将某些特定应用软件功能封装成服务。软件服务供应商以租赁的概念为用户提供服务。用户只能计费使用软件服务,而不能直接掌控底层操作系统和硬件资源。
1.8.2 物联网
物联网(Internet of Things, IoT)的概念最早是由美国麻省理工学院的Ashton教授于1998年提出的。随着网络技术的发展,物联网技术逐渐受到了全球的广泛关注。物联网是指通过二维码识读设备、射频识别(Radio Frequency IDentification,RFID)、全球定位系统(Global Position System,GPS)、激光扫描器和红外感应器等信息传感设备与技术,实时采集任何需要监控、连接和互动的物体的声、光、电、热、力学、化学、生物、位置等各种信息,按约定的协议,把任何物体与互联网相连接,进行信息交换和通信,以实现人与物和物与物的相互沟通和对话,对物体进行智能化识别、定位、跟踪、管理和控制的一种信息网络。
物联网是“物物相连的互联网”。物联网的核心和基础仍然是互联网,即它是互联网的延伸和扩展,允许任何物体之间进行信息交换和通信。物联网不仅是实现物与物之间的连接,更重要的是物与物的信息交互,以及由此衍生出来的各种应用。在物联网技术范畴中,“物”一般要满足以下条件:要有相应的信息发送器和接收器;要有一定的存储功能和计算能力;要有专门的应用程序;要遵循物联网的通信协议;在网络中有可识别的唯一标识。
物联网把新一代信息技术充分运用在各行各业之中,具体地说,就是把感应器嵌入和装备到电网、铁路、桥梁、隧道、公路、建筑、供水系统、大坝、油气管道等各种物体中,然后将“物联网”与现有的互联网整合起来,实现人类社会与物理系统的整合,在这个整合的网络当中,存在能力超级强大的中心计算机群,能够对整合的网络内的人员、机器、设备和基础设施实施实时的管理和控制,在此基础上,人类可以以更加精细和动态的方式管理生产和生活,达到“智慧”状态,提高资源利用率和生产力水平,改善人与自然间的关系。
物联网包括三种基本的应用模式:一是对象的智能识别,即通过二维码或RFID等技术来识别和区分特定的对象,并利用网络获取该特定对象的名称、生产日期、价格和用途等相关信息等;二是环境监控和对象跟踪,即利用多种类型的传感器构成的传感器网络,实现对特定对象的实时状态获取和行为监控,如使用分布在市区的化学传感器监控大气中二氧化碳的浓度及通过GPS跟踪车辆位置信息等;三是对象的智能控制,物联网可以对传感器网络获取的数据进行分析和处理,形成科学决策,然后实施有效的对象行为控制,如根据交通路口车辆的流量自动调整红绿灯的时间间隔等。
物联网将现实世界数字化和网络化,其应用范围十分广泛,遍及智能交通、环境保护、政府工作、公共安全、平安家居、智能消防、工业监测、环境监测、路灯照明管控、景观照明管控、楼宇照明管控、广场照明管控、老人护理、个人健康、花卉栽培、水系监测、食品溯源、敌情侦查和情报搜集等多个方面。国际电信联盟(International Telecommunication Union,ITU)于2005年发布了《ITU互联网报告2005:物联网》。该报告指出,无所不在的“物联网”通信时代即将来临。
本章的重要概念
- 计算机网络(可简称为网络)把许多计算机连接在一起,而互联网则把许多网络连接在一起。因特网是世界上最大的互联网。
- 以小写字母i开始的internet(互联网或互连网)是通用名词,它泛指由多个计算机网络互连而成的网络。在这些网络之间的通信协议(即通信规则)可以是任意的。
- 以大写字母I开始的Internet(因特网)是专用名词,它指当前全球最大的、开放的、由众多网络相互连接而成的特定计算机网络,它采用TCP/IP协议簇作为通信规则,且其前身是美国的ARPANET。
- 因特网现在采用存储转发的分组交换技术,以及3层ISP结构。
- 因特网按工作方式可划分为边缘部分与核心部分。主机在网络的边缘部分,其作用是进行信息处理。路由器在网络的核心部分,是一种典型的分组交换机,其作用是按存储转发方式进行分组交换。
- 分组交换采用存储转发技术,当需要发送数据时无需在源和目的之间先建立一条物理的通路,而是将要发送的报文分割为较小的数据段,将控制信息作为首部加在每个数据段前面(构成分组)一起发送给分组交换机。每一个分组的首部都含有目的地址等控制信息。分组交换网中的分组交换机根据分组首部中的控制信息,把分组转发到下一个分组交换机。用这种存储转发方式将分组转发到达最终目的地。
- 计算机通信是计算机中的进程(即运行着的程序)之间的通信。网络应用程序的工作方式主要有客户/服务器方式(C/S方式)和对等方式(P2P方式)两种。
- 客户和服务器都是指通信中所涉及的两个应用进程。客户是服务请求方,服务器是服务提供方。
- 按作用范围的不同,计算机网络分为广域网(WAN)、城域网(MAN)、局域网(LAN)和个人区域网(PAN)。
- 计算机网络最常用的性能指标是:速率、带宽、吞吐量、时延(发送时延、传播时延、处理时延、排队时延)、丢包率和信道(或网络)利用率。
- 网络协议即协议,是为进行网络中的数据交换而建立的规则。计算机网络的各层及其协议的集合,称为网络的体系结构。
- 5层协议的体系结构由应用层、运输层(或传输层)、网络层(或网际层)、数据链路层(或链路层)和物理层组成。运输层最重要的协议是TCP和UDP协议,而网络层最重要的协议是IP协议。