第2章 互联体系与协议
本章导读
把网络通信的复杂过程抽象成一种层次结构模式来进行研究,无疑对网络实现开放式的互联大有裨益。用这种分层结构模式去学习,也便于更好的理解与掌握。本章从计算机网络体系与协议着手,系统认识计算机网络体系、OSI七层参考模型、TCP四层参考模型。
内容要点
开放系统参考模型的创建是为了帮助互联设备生产厂家根据协议来构建可互操作的网络和软件,以便让不同生产厂家的网络能够互相协同工作。它作为一种概念上的蓝图,描述通信是怎么进行的,解决实现有效通信所需的过程,并将这些过程划分为逻辑上的组即分层。
在网络发展的初期,许多研究机构、计算机厂商都在大力发展计算机网络。这种自行发展的网络,在体系结构上差异很大,以至于它们之间互不相容,难以相互连接,构成更大的网络系统。为此,许多标准化机构积极开展网络体系结构标准化方面的研究工作,力求使各种异构网络、异型机能互联到一起。其中最为著名的就是国际标准化组织(ISO)提出的开放系统互连参考模型OSI/RM,该参考模型采用了分层的方法。所谓分层是一种构造技术,允许开放系统网络用分层次的方式进行逻辑组合。整个通信子系统划分为若干层,每层执行一种明确定义的功能,并由较低层执行附加的功能,为较高层提供服务。
事实上,实现计算机网络通信是很复杂的。两台计算机进行通信,必须使它们采用相同的信息交换约定。在计算机网络中用于规定信息的格式,以及发送/接收信息的规则与约定,称为网络协议或通信协议。为了减小网络协议设计和调试过程的复杂性,网络设计者并不是简单地设计一个单一、巨大的协议来为所有形式的通信规定完整的细节,而是采用将通信问题划分成许多个小问题,然后为每个小问题设计一个单独的协议。使用这种方法使得每个协议的设计、分析、编码和测试都变得非常容易。
用来约定通信过程的网络协议同样很复杂,为了减少协议设计和实现的复杂程度,引入了网络功能分层结构以及不同的各层协议。具体的做法是将网络协议按照层次设计方法进行设计,即将协议按功能分成若干层,每层完成一定功能,并对其上层提供支持,每一层都建立在它的下层基础之上,该层功能的实现以其下层提供的服务为基础。整个层次结构中各个层次相互独立,每一层的实现细节对其上层是完全屏蔽的,即每一层可以通过层间接口调用其下层的服务,而不需要了解下层服务是怎样实现的,如图2-1所示。
图2-1 网络分层
2.1 计算机网络体系结构
计算机网络体系结构的出现,大大加快了计算机网络的发展,网络按层或级的方式来组织,不同的网络,层的名字、数量、内容和功能都不尽相同,但是每一层的目的都是向它的上一层提供服务。
2.1.1 计算机网络体系
随着计算机网络技术的不断发展,计算机网络的规模越来越大,各种应用不断增加,网络也因此变得越来越复杂。面对日益复杂化的网络系统,必须采用结构化的方法来描述网络系统的组织、结构和功能,才能够很好地研究、设计和实现网络系统。而各种计算机系统、网络设备和计算机网络的相互连接已成为人们迫切需要解决的实际问题。过去各个厂商各自为政,难以实现网络互联的不规范标准变得越来越难以立足于市场,开放系统的互连参考模型就是在这种背景下产生、发展并逐步完善起来的。
国际标准化组织(ISO)、各国的一些研究机构或大公司都十分重视研究计算机网络的体系结构。比较著名的网络体系结构有ISO提出的开放系统互联体系结构(OSI)、美国国防部提出的TCP/IP、IBM公司提出的系统网络体系结构(SNA)、DEC提出的数字网络体系结构(DNA)、CCITT提出的X.25协议等。
2.1.2 开放式系统互联(OSI)参考模型
OSI的建立是由ISO于1977年首次指定的。这个参考模型使得网络中各种设备之间能在共同的通信规则和协议的基础上进行通信和传输数据,对实际设计工作和理论分析有着指导意义,得到了广泛的认可,最终确定成为标准的参考模型。
该体系结构标准定义了网络互联的七层框架,即OSI开放系统互联参考模型。这里的“开放”是指只要遵循OSI标准,一个系统就可以和世界上其他任何也遵循这一标准的系统进行通信和互联。OSI参考模型定义了开放系统的层次结构、层次之间的相互关系及各层所包括的可能服务。它是作为一个框架来协调和组织各层协议的制定,也是对网络内部结构最精炼的概括与描述。
OSI参考模型的目的是规范不同系统的互联标准,提供不同厂商间的接口标准。OSI将整个通信功能划分为7个层次,每层都有自己的功能集,层与层之间相互独立又相互依赖,上层依赖下层,下层为上层提供服务。从下而上为:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层,如图2-2所示。
图2-2 OSI参考模型
物理层
物理层处于OSI参考模型的底层,定义了实际的机械规范、最大距离、物理接头形式、电子数据比特流、传输数据的速率等。
物理层的任务是透明地传送比特流,即确定如何使用物理传输介质,实现两个结点间的物理连接。所谓透明,是指某一个实际存在的事物看起来就好像不存在一样。该层在结点之间的通信线路上建立、维护或断开物理连接,其传输的数据是位流信号。由于计算机网络中有许多物理设备和各种传输介质,因此物理层对上层的真正作用是要尽可能地屏蔽各种媒体和设备的具体特性,使得数据链路层感觉不到差异的存在。
它的基本功能是利用物理传输介质为数据链路层提供物理连接,以便透明地传送比特流,保证网络一方可以正确接收另一方发送的信号。在传输时将称为“帧”的报文分解成比特“位”,然后再将接收到的“位”重新组织成“帧”,提供跨物理网络的可靠数据传送,重点保证信息是否被发送,而不去保证寻址、是否被接收、处理流量控制及检错和差错控制。
数据链路层
数据链路层可以粗略地理解为数据通道,数据链路层在物理层提供比特流传输服务的基础上,在通信的实体之间建立数据链路连接,传送以帧为单位的数据,采用差错控制、流量控制方法,使有差错的物理线路变成无差错的数据链路。它是为网络层提供数据传送服务的,这种服务要依靠本层具备的链路管理、帧的装配与分解、帧的同步、流量控制与顺序控制、差错控制、寻址等功能来予以实现。
数据链路层的任务是接收来自物理层的位流形式的数据,并加工(或称为封装)成帧,传送到上一层。同样,也将来自上层的数据帧,拆装为位流形式的数据转发到物理层,并且负责处理接收端发回的确认帧的信息,以便提供可靠的数据传输。
它的基本功能是在物理层的基础上,在两个相邻结点之间的线路上无差错地传送以帧为单位的数据,每一帧包括数据和必要的控制信息。也就是说,数据链路层可以把一条有可能出错的实际链路,转变成为让网络层向下看好像一条不出差错的链路。
网络层
网络层是OSI模型的第三层,这是OSI参考模型中最复杂的一层。数据链路层只能解决相邻结点间的数据传输问题,不能解决两个主机之间的数据传输问题,因为两个主机之间的通信通常要包括许多段链路,涉及到链路选择、流量控制等问题。网络层是通信子网与用户资源子网之间的接口,也是高低层协议之间的界面层。
网络层的任务是为分组交换网上的不同主机提供通信,它通过路由选择算法,为报文或分组通过通信子网选择最适当的传输路径,以实现网络的互联功能。控制数据链路层与传输层之间的信息转发,建立、维持和终止网络的连接。
网络层的功能是实现路由选择、拥塞控制与网络互联等。
传输层
传输层位于高层和底层中间,起承上启下的作用,接收会话层的数据,将其分成较小的信息单位进行端到端通信。它的下面三层面向数据通信,上面三层面向数据处理。主要任务是向用户提供可靠的端到端服务,透明地传送报文,负责数据传输的最高一层。它向高层屏蔽了下层数据通信的细节,是计算机通信体系结构中最关键、最复杂的一层。
传输层的任务是向用户提供可靠的端到端的服务,处理数据包的传输差错、数据包的次序、处理传输连接管理等传输方面的问题,以保证报文的正确传输。
会话层
所谓会话,是指在两个会话用户之间为交换信息而按照某种规则建立的一次暂时联系。会话可以使一个远程终端登录到远地的计算机,进行文件传输或进行其他的应用。会话层与下面四层不同,下面四层涉及到提供可靠的端到端的通信,而会话层与提供面向用户的服务有关。主要任务是组织两个会话进程之间的通信,并管理数据的交换。
表示层
表示层为应用层服务,处理的是通信双方之间的数据表示问题。网络中,对通信双方的计算机来说,一般有其自己的数据内部表示方法。为使通信双方能互相理解所传送信息的含义,表示层就需要把发送方具有的内部格式编码为适于传输的位流,接收方再将其解码为所需要的表示形式。主要功能就是处理在两个通信系统中交换信息的表示方式。它包括数据格式变换、数据加密与解密、数据压缩与恢复等功能。
应用层
应用层处于OSI参考模型的最高层,下面六层主要解决支持网络服务功能所需要的通信和表示问题,应用层则提供完成特定网络功能服务所需要的各种应用协议,它直接面向用户,是计算机网络与最终用户的界面。应用层确定进程之间通信的性质,以满足用户的需要。应用层不仅要提供应用进程所需要的信息交换和远程操作,而且还要作为应用进程的用户代理,来完成一些为进行信息交换所必需的功能。
在网络的实际应用过程中,OSI被当作一个理想的模型。一般的网络系统只会涉及到其中的几层,很少有系统能够同时具有所有的七层,并完全遵循它的规定。