计算机网络(第2版)
上QQ阅读APP看书,第一时间看更新

1.7.2 分层和协议

所谓分层设计方法,就是按照信息的流动过程将网络的整体功能分解为多个功能层,不同主机或者网络结点上的同等功能层之间采用相同的协议,同一主机上的相邻功能层之间通过“接口”进行信息传递。

为了减小计算机网络设计的复杂性,人们往往按照功能将计算机网络划分为多个不同的功能层。网络中同等层之间的通信规则就是该层使用的协议,如有关第N层的通信规则的集合,就是第N层的协议;而同一计算机的不同功能层之间的通信规则称为接口,在第N层和第N+1层之间的接口称为N/(N+1)层接口。总之,协议是不同机器同等层之间的通信约定,而接口是同一机器相邻层之间的通信约定。网络层间关系如图1-20所示。

图1-20 网络层间关系示意图

有了分层的概念和思想后,需要解决的问题是如何分层。分层太多将会提高整个网络设计的复杂性;分层太少,则每一层将会包含太多的功能,这样每一层的设计将会比较复杂,而且由于各层包含的功能太多,从而造成层内的修改和变换比较频繁。为了更好地设计网络模型,在进行模型设计之前必须确定分层的原则。

分层的原则如下:

1)各层之间是独立的。某一层并不需要知道它的下一层是如何实现的,而仅仅需要知道该层通过层间的接口(即界面)所提供的服务。由于每一层只实现一种相对独立的功能,因而可将一个难以处理的复杂问题分解为若干个较容易处理的小一些的问题。这样,整个问题的复杂程度就下降了。

2)灵活性好。当任何一层发生变化时(例如由于技术的变化),只要层间接口关系保持不变,则在这层以上或以下各层均不受影响。此外,对某一层提供的服务还可进行修改。当某层提供的服务不再需要时,甚至可以将这层取消。

3)结构上可分割开。各层都可以采用最合适的技术来实现。

4)易于实现和维护。这种结构使得实现和调试一个庞大而又复杂的系统变得易于处理,因为整个系统已被分解为若干个相对独立的子系统。

5)能促进标准化工作。因为每一层的功能及其所提供的服务都已有了准确的说明。分层时应注意使每一层的功能明确。若层数太少,就会使每一层的协议太复杂。但层数太多又会在描述和综合各层功能的系统工程任务时遇到较多的困难。

在计算机网络中要做到有条不紊地交换数据,就必须遵守一些事先约定好的规则。这些规则明确规定了所交换的数据的格式以及有关的同步问题。这里所说的同步不是狭义的(即同频或同频同相),而是广义的,即在一定的条件下应当发生什么事件(如发送一个应答信息),因而同步含有时序的意思。这些为进行网络中的数据交换而建立的规则、标准或约定称为网络协议(Network Protocol)。网络协议也可简称为协议。更进一步讲,网络协议主要由以下三个要素组成。

1)语法:确定协议元素的格式,即规定数据与控制信息的结构或格式。

2)语义:确定协议元素的类型,即规定通信双方要发出何种控制信息、完成何种动作以及做出何种响应。

3)同步:即事件实现顺序的详细说明。

由此可见,网络协议是计算机网络不可缺少的组成部分。实际上,只要想让连接在网络上的另一台计算机做点什么事情(例如,从网络上的某个主机下载文件),都需要有协议。但是当人们经常在自己的PC上进行文件存盘操作时,就不需要任何网络协议,除非这个用来存储文件的磁盘是网络上的某个文件服务器的磁盘。