购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.3 网络体系架构与协议

计算机网络的体系架构采用了层次结构来描述复杂的计算机网络,把复杂的网络互联问题划分为若干个较小的、单一的问题,并在不同层次上予以解决。如何把不同厂家的软硬件系统、不同的通信网络及各种外部辅助设备连接起来构成网络系统,实现高速可靠的信息共享,是计算机网络发展面临的主要难题。为了解决这个问题,人们必须为网络系统定义一个让不同计算机、不同的通信系统和不同的应用能够互联和互操作的开放式网络体系架构。互联意味着不同的计算机能够通过通信子网互相连接起来进行数据通信;互操作意味着不同的用户能够在联网的计算机上,用相同的命令和相同的操作使用其他计算机中的资源与信息,如同使用本地的计算机中的资源和信息。因此,计算机网络的体系架构应该为不同的计算机之间的互联和互操作提供相应的规范及标准。

1.3.1 网络体系架构的概念

网络体系架构是指整个网络系统的逻辑组成和功能分配,它定义和描述了一组用于计算机及其通信设施之间互联的标准和规范的集合。研究网络体系架构的目的在于定义计算机网络各个组成部分的功能,以便在统一原则的指导下进行网络的设计、使用和发展。

1.层次结构的概念

对网络进行层次划分就是将计算机网络这个庞大的、复杂的系统划分成若干较小的、简单的系统。通常把一组相近的功能放在一起,形成网络的一个结构层次。

计算机网络层次结构包含两方面的含义,即结构的层次性和层次的结构性。结构层次的划分依据层内功能内聚、层间耦合松散的原则,也就是说,在网络中,功能相似或紧密相关的模块应放置在同一层;层与层之间应保持松散的耦合,使在层与层之间的信息流动量减到最小。

层次结构将计算机网络划分成有明确定义的层次,并规定了相同层次的进程通信协议集和相邻层次之间的接口及服务。通常将网络的层次结构、相同层次的进程通信协议集和相邻层的接口及服务统称为网络体系架构。

2.层次结构的主要内容

在划分层次结构时,首先需要考虑以下问题。

(1)分层及每层功能:网络应该具有哪些层次?每一层的功能是什么?

(2)服务与层间接口:各层之间的关系是怎样的?它们如何进行交互?

(3)协议:通信双方的数据传输需要遵循哪些规则?

因此,层次结构方法主要包括3个内容:分层及每层功能、服务与层间接口以及各层协议。

3.层次结构划分原则

在划分层次结构时,需要遵循以下原则。

(1)以网络功能作为划分层次的基础,每层的功能必须明确,层与层之间相互独立。当某一层的具体实现方法更新时,只要保持上下层的接口不变,便不会对邻层产生影响。

(2)层间接口必须清晰,跨越接口的信息量应尽可能少。

(3)层数应适中,若层数太少,则会导致每一层的协议太复杂;若层数太多,则体系架构过于复杂,使描述和实现各层功能变得困难。

(4)第 n 层的实体在实现自身定义的功能时,只能使用第 n -1层提供的服务。第 n 层在向第 n +1层提供服务时,此服务不仅要包含第 n 层本身的功能,还要包含下层服务提供的功能。

(5)层与层之间仅在相邻层间有接口,每一层所提供服务的具体实现细节对上一层完全屏蔽。

4.划分层次结构的优越性

我们知道,计算机网络是一个复杂的综合性技术系统。因此,引入协议分层是必需的,采用层次结构有很多方面的优势,主要表现在以下几个方面。

(1)把网络系统分成复杂性较低的单元,结构清晰,灵活性好,易于实现和维护。如果把网络系统作为一个整体处理,那么任何方面的改进必然都要对整体进行修改,这与网络的迅速发展是极不协调的。若采用分层体系架构,由于整个系统已被分解成了若干个易于处理的部分,那么这样一个庞大而复杂的系统的实现与维护也就变得容易控制了。当任何一层发生变化时,只要层间接口保持不变,层内实现方法可任意改变,其他各层就不会受到影响。另外,当某层提供的服务不再被其他层需要时,可以直接将该层取消。

(2)层与层之间定义了具有兼容性的标准接口,使设计人员能够专心设计和开发所关心的功能模块。

(3)每一层具有很强的独立性。上层不需要知道下层是采用何种技术实现的,而只需要知道下层通过接口能提供哪些服务,也不需要了解下层的具体内容,类似于“暗箱操作”的方法。每一层都有一个清晰、明确的任务,实现相对独立的功能,因而可以将复杂的系统问题分解为一层一层的小问题。当属于每一层的小问题都解决了,整个系统的问题也就接近于完全解决了。

(4)一个区域网络的变化不会影响到另外一个区域的网络,因此每个区域的网络可单独升级或改造。

(5)有利于促进标准化。这主要是因为每一层的协议已经对该层的功能与所提供的服务做了明确的说明。

(6)降低关联性,每一层协议的增减或更新都不影响其他层协议的运行,实现了各层协议的独立性。

1.3.2 网络体系的分层结构

网络体系都是按层的方式来组织的,每一层都能完成一组特定的、有明确含义的功能,每一层的目的都是向上一层提供一定的服务,而上一层不需要知道下一层是如何实现服务的。

每一对相邻层次之间都有一个接口(Interface),接口定义了下层向上层提供的命令和服务,相邻两个层次都是通过接口来交换数据的。当网络设计者在决定一个网络应包括多少层、每一层应当做什么的时候,其中一个非常重要的考虑因素就是要在相邻层次之间定义清晰的接口。为达到这些目的,又要求每一层都能够完成一组特定的、有明确含义的功能。下层通过接口向上层提供服务,因此只要接口条件不变、下层功能不变,下层功能的具体实现方法与技术的变化就不会影响整个系统的工作。

层次结构一般以垂直分层模型来表示,如图1.5所示,相应特点如下。

(1)除了在物理介质上进行的是实通信之外,其余各对等实体间进行的都是虚通信。

(2)对等层的虚通信必须遵循该层的协议。

(3) n 层的虚通信是通过 n 层与 n −1层间接口处 n −1层提供的服务及 n −1层的通信(通常也是虚通信)来实现的。

图1.5 网络体系的层次结构模型

n 层既是 n −1层的用户,又是 n +1层的服务提供者。 n +1层虽然只直接使用了 n 层提供的服务,但是它实际上通过 n 层间接地使用了 n −1层及以下所有各层的服务,如图1.6所示。

图1.6 网络体系架构中的协议、层、服务与接口

1.3.3 网络协议的概念

在网络通信中,所谓协议,就是指诸如计算机、交换机、路由器等网络设备为了实现通信或数据交换而必须遵从的、事先定义好的一系列规则、标准或约定。网络协议包含超文本传输协议(Hypertext Transfer Protocol,HTTP)、文件传送协议(File Transfer Protocol,FTP)、传输控制协议(Transmission Control Protocol,TCP)、第4版互联网协议(Internet Protocol version 4,IPv4)、电气电子工程师学会(Institute of Electrical and Electronics Engineers,IEEE)802.3(以太网协议)等协议。网络协议对计算机网络是不可缺少的,一个功能完备的计算机网络必须具备一套复杂的协议集为通信双方的通信过程做出约定。

联网的计算机以及网络设备之间要进行数据与控制信息的成功传递就必须共同遵守网络协议,网络协议包含了3个方面的内容:语义、语法和时序。

语义:规定通信的双方准备“讲什么”,即需要发出何种控制信息、完成何种动作以及做出何种应答。

语法:规定了通信双方“如何讲”,即确定数据与控制信息的结构、格式、数据编码等。

时序:又可称为“同步”,规定了双方“何时进行通信”,即事件实现顺序的详细说明。

下面我们以打电话为例来说明“语法”“语义”“时序”。假设甲要打电话给乙,首先甲拨通乙的电话,乙的电话振铃,乙拿起电话,然后甲、乙开始通话,通话完毕后,双方挂断电话。在此过程中,双方都遵守了打电话的协议。其中,甲拨通乙的电话后,乙的电话振铃,振铃是一个信号,表示有电话打进,乙选择接电话讲话,这一系列动作包括了控制信号、响应动作、讲话内容等,就是“语义”;电话号码就是“语法”;“时序”的概念更好理解,甲拨打了电话,乙的电话才会响,乙听到铃声后才会考虑要不要接电话,这一系列时间的顺序十分明确,不可能没人拨电话时乙的电话会响,也不可能在电话铃声没响的情况下,乙拿起电话却从话筒里传出甲的声音。

1.3.4 网络层次结构中的相关概念

网络层次结构中包含实体、接口、服务等相关概念。

1.实体

在网络层次结构中,每一层中的活动元素通常称为实体(Entity),每一层都由一些实体组成,它们抽象地表示了通信时的软件元素(如进程或子程序)或硬件元素(如智能I/O芯片)。实体既可以是软件实体(如一个进程),又可以是硬件实体(如智能I/O芯片)。不同通信节点上的同一层实体称为对等实体(Peer Entity),实体是通信时能发送和接收信息的软硬件设施。

2.接口

接口是指相邻两层之间交互的界面,每一对相邻层次之间都有一个接口,接口定义了下层向上层提供的命令和服务,相邻两个层次都是通过接口来交换数据的。

如果网络中每一层都有明确的功能,相邻层之间有清晰的接口,就能减少在相邻层之间传递的信息量,在修改本层的功能时也不会影响到其他各层。也就是说,只要能向上层提供完全相同的服务集,改变下层功能的实现方式就不会影响上层。

3.服务

服务(Service)是指某一层及其以下各层通过接口提供给其相邻上层的一种能力。服务位于层次接口的位置,表示下层为上层提供哪些操作功能,至于这些功能是如何实现的,则不是服务考虑的范畴。

在计算机网络的层次结构中,层与层之间具有服务与被服务的单向依赖关系,下层向上层提供服务,而上层则调用下层的服务。因此,我们可称任意相邻层的下层为服务提供者(Service Provider),上层为服务的调用者(Service User)或使用者。

n +1层实体向 n 层实体请求服务时,服务的调用者与服务提供者之间通过服务访问点进行交互,在进行交互时所要交换的一些必要信息被称为服务原语。在计算机中,原语指一种特殊的广义指令(即不能中断的指令)。相邻层的下层对上层提供服务时,二者交互采用广义指令。当 n 层向 n +1层提供服务时,根据是否需建立连接可将服务分为两类:面向连接的服务(Connection-oriented Service)和无连接服务(Connectionless Service)。

(1)面向连接的服务。先建立连接,再进行数据交换。因此面向连接的服务具有建立连接、数据传输和释放连接这3个阶段,如打电话。这种服务的最大好处就是能够保证数据高速、可靠和顺序传输。

(2)无连接服务。两个实体之间的通信不需要先建立好连接,因此是一种不可靠的服务。这种服务常被描述为“尽最大努力交付”(Best Effort Delivery)或“尽力而为”,它不需要两个通信的实体同时是活跃的。例如,发电报时,发送方并不能马上确认对方是否已收到。因此,无连接服务不需要维护连接的额外开销,但是可靠性较低,也不能保证数据的顺序传输。

4.层间通信

实际上每一层必须依靠相邻层提供的服务来与另一台主机的对应层通信,这包含了以下两方面的通信。

(1)相邻层之间通信。相邻层之间通信发生在相邻的上下层之间,通过服务来实现。上层使用下层提供的服务。

(2)对等层之间通信。对等层是指不同开放系统中的相同层次,对等层之间通信发生在不同开放系统的相同层次之间,通过协议来实现。对等层实体之间是虚通信,依靠下层向上层提供服务来完成,而实际的通信是在最底层完成的。

显然,通过相邻层之间的通信,可以实现对等层之间的通信。相邻层之间的通信是手段,对等层之间的通信是目的。

需要注意的是,服务与协议存在以下区别。

(1)协议是“水平的”,是对等实体间的通信规则。

(2)服务是“垂直的”,是下层向上层通过接口提供的。

5.服务访问点

服务访问点(Service Access Point,SAP)是相邻两层实体之间通过接口调用服务或提供服务的联系点。

6.协议数据单元

协议数据单元(Protocol Data Unit,PDU)是对等实体之间通过协议传送的数据单元。

7.接口数据单元

接口数据单元(Interface Data Unit,IDU)是相邻层次之间通过接口传送的数据单元,接口数据单元又称为服务数据单元(Service Data Unit,SDU)。 5hY7lfTwZkB+wS+iloIlvGgZo2upasrnzgNx2UFnUef4FMQ6DHsvJniaZFxFkXPQ

点击中间区域
呼出菜单
上一章
目录
下一章
×