2.1 计算机网络体系结构概述
2.1.1 划分层次的必要性
计算机网络体系结构将网络的所有部件可完成的功能精确定义后,进行独立划分,按照信息交换层次的高低分层,每层都能完整地完成多个功能,层与层之间互相支持又相互独立。因为网络中的计算机严格按照分层的规定进行数据处理,而在同一层次上不同的计算机执行相同的协议与标准,独立完成一样的网络任务,因此用户和计算机在同一层次进行信息交换与处理时可忽略其他层次的影响独立操作,这样使得复杂的网络信息的交换和处理大大简化,便于人们掌握和使用。
之所以需要分层,是因为计算机网络是个非常复杂的系统,其复杂程度远远超过人们的想象。一般的,连接在网络上的两台计算机要互相传送文件需要在它们之间建立一条传送数据的通路。其实这还远远不够,至少还有以下的几件事情要完成:
① 为用户提供良好的、易于操作的界面,使其可方便地操作数据传输,并可得知传输过程中的差错与细节。
② 建立一条传送数据的通路,并对通路进行监控,使其断开后能够重新建立连接。要建立通路就必须要求网络中的多台计算机进行协商并且相互协作,而监控通路则需要全时段的跟踪守候。
③ 数据发送方必须弄清楚,数据接收方是否已经做好数据接收和存储的准备。
④ 因为计算机处理的是并行的数字信号,而网络中传输的是串行的光信号或电信号,这些信号需要在网络中相互转换。需要传输的文件格式不同,不能兼容,要想让文件接收方兼容识别文件,也需要格式转换。
⑤ 数据传输中会出现各种各样的差错,怎样应对差错,保证接收方计算机能够收到完整正确的数据,也是通信双方需要做的。
计算机网络需要解决的通信问题还远远不止这些。由此可见,相互通信的两个计算机系统必须高度协调工作才行,而这种“协调”相当复杂。
为了应对这种复杂的局面,早在ARPANET设计的时候就提出了分层的概念。实践表明,对复杂的网络系统进行分层,使得庞杂的网络信息交换条理明晰,并转化为若干个小的局部问题,这些局部问题易于处理。就像人类复杂的社会分工,社会中有蓝领阶层、中层干部、和高层领导等。每个阶层在工作中相互独立又相互支持,各阶层完成的工作加起来就完成了社会生产。
为了更好的说明分层的概念,将上述所提到的计算机网络通信需要解决的问题进行归类分层(图2.1)。第一层我们把它称为网络接入模块,这个模块的作用就是负责与网络接口有关的细节。因为数据在网络传输中会遇到诸如网卡、网线、集线器、交换机、路由器、调制解调器等,这些设备的接口能处理的传输信号都有不同,甚至不同公司生产的不同性能的网络设备都有很大差异,为了让数据在各种设备间获得一致性的传输,网络中就必须有信号转换和处理设备接口细节的功能。我们让网络接入模块专门处理这些事情,可见网络输入模块可以驾驭和利用最低层的网络通信硬件资源。在驾驭网络通信硬件资源的基础上,提出第二层通信服务模块,这层的功能是负责建立通信通路,保证以文件为单位传输的数据或文件传送命令可靠地在两个系统之间交换,也就是说这个模块必须有建立网络链路、差错检测、差错应对、差错更正等功能。而这些功能必须建立在有效利用网络通信硬件资源,并使数据在其中稳定传输的基础上,这正好是网络接入模块的功能。由此可见,网络接入模块和通信服务模块相互独立相互支持。它们在功能上相互独立没有关联,但是网络接入模块为通信服务模块提供有效的线路服务,通信服务模块为网络接入模块提供稳定无差错的通信保障。同理,在这两层之上,第三层可为文件传送模块。这个模块是在下边两层提供的服务的基础之上,它为用户提供了良好的操作界面,使其以文件为单位操作数据传输,并得知传输过程中的差错与细节,同时也对文件的不同格式进行转换。
图2.1 网络归类分层
从上面的事例可见,分层所带来的好处如下:
(1)层与层之间相互独立
一个复杂的问题可分成多层,每层只实现一种相对独立的功能,这样就把问题分成若干小的易于解决的局部问题,这样问题的复杂程度就大大下降了。每一层并不需要知道其他层是如何实现的,而仅仅需要知道怎样通过层间接口向相邻层提供或接收相应的服务。
(2)灵活性好
每一层的工作都是独立进行的,各个网络设备可在同一层次上相互交流,而不受其他层次的影响。由于它们的独立性非常好,只要层间接口关系保持不变,就可以对各层进行修改,其他层均不会受到影响。
(3)结构上可分割开
因为各个层次所负责的工作不同,因此可以分别采用最适合各个层次本身的技术,而不会因为技术的不同影响到整个信息处理与交换。
(4)易于实现和维护
在实现和维护的时候可以分别对各层单独进行处理,而不用担心会影响到其他的层次。把各层的问题都处理好了就等于做好了整个网络。因此非常易于用户操作、使用和维护。
(5)能促进标准化工作
由于网络体系结构对每一层的功能及其所提供的服务都已有了精确的定义,但是定义功能是不够的,两台不同的计算机之间还需要有相应的规则和标准才能够通信。这就是通常所说的网络协议。也就是这种对网络分层的功能的精确定义,使我们可以独立的针对某一层制定最适合的协议与标准,而不会出现一个协议可能会与多个层次有千丝万缕的联系。因此网络的分层大大促进了网络标准化的进程。
在现有的分层网络体系结构中,每一层都被制定了很多的协议和标准,有的网络体系结构甚至是以网络协议的名字来命名的,比如TCP/IP体系结构,其核心就是TCP/IP协议。因此网络协议是计算机网络体系中一个非常重要的内容。
2.1.2 网络协议
所谓计算机网络协议,是计算机网络中的计算机为了进行数据交换而建立的规则、标准或约定。这就好像竞技比赛中一定要制定比赛规则,这些规则对比赛过程进行约束,并形成某种标准对比赛结果等进行评判。计算机网络的协议则主要规定了所交换数据的格式以及有关同步与时序的问题。协议对计算机网络通信的数据流和通信全程进行约束,网络同样也制定了计算机网络接口等一系列硬件设备的标准。网络协议主要由以下三个要素组成:
(1)语法
规定通信双方“如何讲”,即规定数据与控制信息的结构或格式。
(2)语义
规定通信双方“讲什么”,即规定传输数据的类型以及通信双方要发出什么样的控制信息,执行的动作以及作出何种响应。
(3)时序
规定了信息交流的顺序,即事件实现顺序的详细说明。
在计算机网络上做任何的事情都需要协议,例如从某个主机上下载文件,上传文件等。但在自己的电脑上存储打印文件是不需要任何协议的。
计算机网络体系结构是抽象的、理论化的,是一种思想。这种思想包含了对网络的层次性划分,对传输的数据包结构以及整个传输处理过程等的规范。而这种思想的具体的体现者和实施者是计算机网络硬件和软件,因此计算机网络的软件和硬件都必须按照体系结构的标准进行设计和生产。在纯理论上,也常把计算机网络中所有的设备(包括计算机)都抽象成体系结构中的层次结构,并按照协议规定的规则对其进行讨论研究。早期比较成熟的网络体系结构形成于20世纪70年代,代表为IBM 公司研制的系统网络体系结构(SNA, System Network Architecture)。现今最权威的体系结构是ISO/OSI参考模型所构建的七层体系结构,而最流行的当属TCP/IP体系结构。