CCNA认证指南(640-802)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.2 网络体系结构

1969年12月,DARPA的计算机分组交换网ARPANET投入运行。ARPANET的成功,标志着计算机网络的发展进入了一个新纪元。ARPANET的成功运行使计算机网络的概念发生了根本性的变化。早期的面向终端的计算机网络是以单个主机为中心的星型网,各终端通过传输介质共享主机的硬件和软件资源。但分组交换网则以通信子网为中心,主机和终端都处在网络的边缘。主机和终端构成了用户资源子网,用户不仅共享通信子网的资源,而且还可共享用户资源子网的丰富的硬件和软件资源。这种以资源子网为中心的计算机网络通常被称为第二代计算机网络。

在第二代计算机网络中,多台计算机通过通信子网构成一个有机的整体,既分散又统一,从而使整个系统性能大大提高;原来单一主机的负载可以分散到全网的各个计算机上,使得网络系统的响应速度加快;而且在这种系统中,单机故障也不会导致整个网络系统的全面瘫痪。在网络中,相互通信的计算机必须高度协调工作,而这种“协调”是相当复杂的。为了降低网络设计的复杂性,早在当初设计ARPANET时就有专家提出了层次模型。分层设计方法可以将庞大而复杂的问题转化为若干较小且易于处理的子问题。

有了网络体系结构,使得一个公司所生产的各种机器和网络设备可以非常容易地被连接起来。但由于各个公司的网络体系结构是各不相同的,所以不同公司之间的网络不能互连互通。针对上述情况,国际标准化组织(International Standard Organization,ISO)于1977年设立专门的机构研究解决上述问题,并于不久后提出了一个使各种计算机能够互连的标准框架——开放式系统互连参考模型(Open System Interconnection/Reference Model, OSI/RM),简称OSI。OSI模型是一个开放体系结构,它规定将网络分为7层,并规定每层的功能。OSI参考模型的出现,意味着计算机网络发展到第三代。在OSI参考模型推出后,网络的发展道路一直走标准化道路,而网络标准化的最大体现就是 Internet 的飞速发展。现在Internet已成为世界上最大的国际性计算机互联网。Internet遵循TCP/IP参考模型,由于TCP/IP仍然使用分层模型,因此Internet仍属于第三代计算机网络。如今,计算机网络从体系结构到实用技术已逐步走向系统化、科学化和工程化。

要想让两台计算机进行通信,必须使它们采用相同的信息交换规则。我们把在计算机网络中用于规定信息的格式,以及如何发送和接收信息的一套规则称为网络协议(Network Protocol)或通信协议(Communication Protocol)。为了减少网络协议设计的复杂性,网络设计者并不是设计一个单一、巨大的协议来为所有形式的通信规定完整的细节,而是采用把通信问题划分为许多个小问题,然后为每个小问题设计一个单独的协议的方法。这样做使得每个协议的设计、分析、编码和测试都比较容易,正如我们编程一样,通过编写“过程”和“函数”以方便调用,来把一个复杂的程序模块化、简单化、独立化。分层模型是一种用于开发网络协议的设计方法。本质上,分层模型描述了把通信问题分为几个小问题(称为层次)的方法,每个小问题对应于一层。

为了减少网络设计的复杂性,绝大多数网络采用分层设计方法。所谓分层设计方法,就是按照信息的流动过程将网络的整体功能分解为一个个的功能层,不同机器上的同等功能层之间采用相同的协议,同一机器上的相邻功能层之间通过接口进行信息传递。

为了便于理解接口和协议的概念,下面以邮政通信系统为例进行说明。人们平常写信时,都有个约定,这就是信件的格式和内容。首先,写信时必须采用双方都懂的语言文字和文体,开头是对方称谓,最后是落款等。这样,对方收到信后,才可以看懂信中的内容,知道是谁写的,什么时候写的等。信写好之后,必须将信封装并交由邮局寄发,这样寄信人和邮局之间也要有约定,这就是规定信封写法并贴邮票。在中国寄信必须先写收信人地址、姓名,然后再写寄信人的地址和姓名。邮局收到信后,首先进行信件的分拣和分类,然后交付有关运输部门进行运输,如航空信交民航、平信交铁路运输或公路运输等。这时,邮局和运输部门也有约定,如到站地点、时间、包裹形式等。信件运送到目的地后进行相反的过程,最终将信件送到收信人手中,收信人依照约定的格式才能读懂信件。如图2-2-1所示,在整个过程中,主要涉及了3个子系统,即用户子系统、邮政子系统和运输子系统。

从上例可以看出,各种约定都是为了达到将信件从一个源点送到某一个目的点这个目标而设计的,这就是说,它们是因信息的流动而产生的。可以将这些约定分为同等机构间的约定,如用户之间的约定、邮政局之间的约定和运输部门之间的约定,以及不同机构间的约定,如用户与邮政局之间的约定、邮政局与运输部门之间的约定。

图2-2-1 邮政系统分层模型

虽然两个用户、两个邮政局、两个运输部门分处甲、乙两地,但它们都分别对应同等机构,同属一个子系统,譬如两地的邮政局同属于邮政子系统;而同处一地的不同机构则不在一个子系统内,譬如邮政局和运输部门,它们之间的关系是服务与被服务的关系。很显然,这两种约定是不同的,前者(两个邮政局)为部门内部的约定,而后者(邮政局和运输部门)是不同部门之间的约定。在计算机网络环境中,两台计算机中两个进程之间进行通信的过程与邮政通信的过程十分相似。

为了减少计算机网络设计的复杂性,人们往往按功能将计算机网络划分为多个不同的功能层。网络中同等层之间的通信规则就是该层使用的协议,如有关第N层的通信规则的集合,就是第 N 层的协议。而同一计算机的不同功能层之间的通信规则称为接口(Interface),在第N层和第(N+1)层之间的接口称为N/(N+1)层接口。总的来说,协议是不同机器同等层之间的通信约定,而接口是同一机器相邻层之间的通信约定。不同的网络,分层数量、各层的名称和功能以及协议都各不相同。然而,在所有的网络中,每一层的目的都是向它的上一层提供一定的服务。

协议层次化不同于程序设计中模块化的概念。在程序设计中,各模块可以相互独立,任意拼装或者并行,而层次则一定有上下之分,它是依数据流的流动而产生的。组成不同计算机同等层的实体称为对等进程。对等进程不一定非是相同的程序,但其功能必须完全一致,且采用相同的协议。

分层设计方法将整个网络通信功能划分为垂直的层次集合后,在通信过程中下层将向上层隐蔽下层的实现细节。但层次的划分应首先确定层次的集合及每层应完成的任务。划分时应按逻辑功能组合,并具有足够的层次,以使每层小到易于处理。同时层次也不能太多,以免产生难以负担的处理开销。

计算机网络体系结构是网络中分层模型以及各层功能的精确定义。对网络体系结构的描述必须包括足够的信息,使实现者可以为每一功能层进行硬件设计或编写程序,并使之符合相关协议。但我们要注意的是,网络协议实现的细节不属于网络体系结构的内容,因为它们隐含在机器内部,对外部来说是不可见的。