计算机通信网是计算机技术与通信技术相结合的产物,是将分布在不同地理位置的计算机、终端以及外设等通过通信线路互相连接起来的集合。计算机通信网是数据通信网的一种重要类型,目前己成为现代通信网的基础。
一个计算机通信网包括有多个连接节点,节点之间要不断地交换数据和各种控制信息。为了使通信网有条不紊地工作,每个节点都必须遵守一些事先约定好的规则。这些规则就是计算机通信协议,协议就是通信双方关于通信如何进行达成的一致。
组织计算机通信协议的最好方式是层次结构模型。将计算机通信网的层次结构模型和分层协议的集合定义为计算机通信网的体系结构。网络体系结构的核心是接囗和协议。接口就是计算机通信网中不同功能层之间的通信规约,它是数据流穿越功能层界面的约定。
OSI参考模型
1977年,国际标准化组织(ISO)在分析和研究了已有网络体系结构后,同时考虑到联网的方便和灵活,提出了一种不基于特定机型、特定网络操作系统和特定公司产品的网络体系结构,这就是开放系统互连参考模型(OSI-RM)。它将整个网络的通信功能划分为7个层次,如图所示。
OSI模型及数据传输变化过程数据在OSI环境中传输是要发生变化的。在图中,发送端的应用进程PA将用户数据先送到第7层,该层对数据加工处理,并附加上若干比特的报头AH,称为协议控制信息,构成第6层的数据单元送到第6层。当第6层收到这一数据单元后,再附加上本层的报头PH,构成第5层的数据单元送到第5层。重复这一过程直到第2层,它除了加上报头外,还要加上报尾,然后通过物理层进入传输介质。到达接收端后,从第1层开始逐层向上传递,每层都根据控制信息进行相应的操作,将控制信息剥去,把剩余的数据单元交其上一层处理,最后把应用进程PA发送的数据交给目的应用进程PB。数据的上述传递过程类似于挂号信件在邮政系统的传递过程。在发送方,每层都可以将上层来的数据拆成几个数据单元,以适应下层对数据单元长度的要求。通常,第4层传输的数据长度没有限制,但在第3层常常有限制。因此,第3层必须把第4层来的数据分成较小的单元(分组),在每个分组前面加上第3层的报头。在接收方,这些数据单元向上传递时,必须由同等层协议按顺序重新组成原数据单元,以满足各层数据单元长度的要求。各同等层之间交换的数据单元的名称,一般高四层使用的数据单元为报文,网络层使用的数据单元为报文分组,数据链路层使用的数据单元为帧,物理层使用的数据单位为比特。
数据单元在传送过程中加控制信息有两个作用:
① 在数据的传送过程中,一旦出现差错,可以及时发现,加以纠正,保证数据传输的正确性;
② 高层数据不含低层协议控制信息,可使相邻层之间保持相对独立,这样,低层处理方法的变化不影响高层功能的执行。
显然,上述处理过程是复杂的,但对用户来说,这些微观处理过程是感觉不到的,就像是应用进程PA“直接”把数据传送到了应用进程PB。这就是OSI模型在网络进程通信中的本质作用。同理,任何两个对等层之间也好像是将本层的协议数据单元直接送到了对方,这就是对等层之间的通信。前面提到的各层协议就是在各对等层之间传送数据的各项规定。
下面简述各层的功能:
1. 物理层
物理层是OSI模型的最底层,即第1层。其主要功能是利用物理传输介质为数据链路层提供物理连接,透明地传输比特流。该层为物理连接提供机械、电气、功能、规程等特性。这里连接主要是指数据终端设备(DTE)和数据通信设备(DCE)之间的连接,如图所示。
DTE和DCE之间的链接DTE一般为计算机、数据终端等,具有数据发送、接收和处理的功能。而DCE则为调制解调器(Modem)、信号变换器等,具有信号变换和编码的功能,并负责建立、维护和释放物理连接。
在物理层通信过程中,DCE一方面要将DTE传送的数据逐位发往传输介质,同时也将从传输介质接收到的比特流顺序地传送给DTE。DTE和DCE之间需要高度协调地工作,因而就需要制定DTE与DCE接口标准,这就是物理接口标准。
由以上讨论可以看出,OSI-RM中的物理层并不是物理设备,也不是物理传输介质,而是有关物理设备通过物理传输介质进行互连的描述和规定。物理层可以屏蔽物理设备和物理传输介质的差异,使高层协议感受不到这些差异的存在。
2. 数据链路层
数据链路层是OSI模型的第2层,它介于物理层与网络层之间,用于在相邻节点间建立数据链路,传送以帧为单位的数据,使其能够有效、可靠地进行数据交换。该层通过差错控制、流量控制等,将不可靠的物理传输信道变成无差错的可靠的数据链路。将数据组成适合正确传输的帧形式的数据单元,对网络层屏蔽物理层的特性和差异,使高层协议不必考虑物理传输介质的可靠性问题,而把物理信道变成无差错的理想信道。在物理层提供服务的基础上,再加上本层所具有的功能,向网络层提供必要的服务。
在计算机通信网中由于存在噪声和干扰,使得物理线路的数据传输可能产生差错。设置数据链路层的目的就是要把传输介质的不可靠因素屏蔽起来,通过数据链路层协议的作用,在不可靠的物理线路上进行可靠的数据传输。
数据链路层采用了两种数据传输控制规程:面向字符型传输控制规程和面向比特型传输控制规程。面向字符型传输控制规程只适用于半双工通信,且目前应用较少。而面向比特型传输控制规程能适应全双工通信,应用广泛。高级数据链路控制规程(HDLC)是一种面向比特型传输控制规程,是ISO制定的国际标准。
3. 网络层
网络层也称为通信子网层,是OSI参考模型的第3层,其下层是数据链路层,其上层是传输层。数据链路层解决了相邻节点之间的数据帧的通信问题。如何通过有多个中间节点的通信子网进行通信,这是网络层所要解决的问题。因而,网络层则要决定数据在通信子网中传送的路径,控制通信子网中的数据流量并防止拥塞等,提供建立、维护和终止网络连接的手段。建立节点到目的节点之间的连接。网络层是通信子网的最高层,它最能体现网络的概念,因而称为网络层。
网络层在数据链路层提供服务的基础上向传输层提供服务,使传输层不必关心网络内部的中转细节、路由选择以及多个子网互连的详细情况。
4. 传输层
传输层是OSI模型的第4层,其功能是为源主机到目的主机提供可靠的、有效的数据传输。这种传输与当前网络或使用的网络无关,也就是说,传输层本身是独立于物理网络的。下面以互联网为例来说明传输层的作用。互联网是由多个不同的物理网组成的,数据可以从一个网络的主机传送到另一个网络的主机。数据在传送过程中,可能被封装在不同类型和长度的包中。网络层或数据链路层可能将包分成更小的段,以满足不同网络的要求。而在另一个网络的对等层中又可能会将若干小段组成一个大的包,甚至还可能将不相关的数据组织在一起构成一个帧。但是,不管数据在传输过程进行多少次变换,到达目的地后必须保持原来的形式。
设置传输层的目的是为网内的通信实体建立端——端差错控制、顺序控制、流量控制、管理多路复用等,向用户提供可靠的端——端服务,透明地传送报文。其上层协议不必了解实际的网络,就可以将数据安全可靠地传送到目的地。OSI模型中低3层提供的是通信子网的功能,它们提供的主要是面向通信的服务。而OSI模型的高3层提供的则是面向通信管理和数据处理的服务。这样,作为OSI模型第四层的传输层,便成了连接通信服务和通信管理及数据处理服务的桥梁,担当高3层协议与低3层协议所提供服务之间的联络工作。它对高层屏蔽了下层数据通信的细节,是计算机体系结构中最关键的一层。
5. 会话层
会话层处于OSI模型的第5层。会话层利用传输层提供的传送服务,通过执行会话层协议,为表示层实体提供会话服务。会话层建立、维护和同步进行通信的高层之间的对话,为传输层提供一个用户接口,它是用户直接交互工作的第一层。
会话层的服务主要是:协调应用进程之间的连接建立和中断:为数据交互提供同步点;协调通信双方谁在何时发送数据;确保数据交换在会话关闭(优雅关闭)之前完成等。
6. 表示层
表示层位于OSI-RM的第6层。OSI-RM的低5层的功能是将数据从源端传送到目的端,表示层则要保证所传输的数据意义不变。由于各种计算机都有自己的数据表示形式,因此不同的计算机之间通信,需要经过数据转换,才能彼此理解对方数据的含义。表示层的任务就是把源端机器的数据编码成适合于传输的比特序列,传送到目的端后再进行译码,在保持数据含义不变的条件下,转换成用户所理解的形式。
表示层主要用于处理在两个通信系统中交换信息的表示方法,包括数据格式的变换、数据加密和解密、数据压缩和恢复等。
7. 应用层
应用层是OSI-RM的最高层,是直接面向用户的一层,是计算机通信网与最终用户的界面,它为应用进程访问OSI环境提供手段,同时为用户的应用进程访问OSI环境提供服务。该层提供许多低层不能提供的功能,这就使得应用层变得复杂。应用层涉及的协议很多,每个用户可以自行决定运行什么程序和使用什么协议。所以,OSI模型中没有定义标准。
从功能的划分看,OSI-RM的下面6层协议解决了所需要的通信和表示问题。而应用层则提供完成特定服务功能所需要的各种协议,例如,文件传送、存取和管理协议FTAM,虚拟终端协议VT、电子邮件协议SMTP等。
知识拓展:关于帧、数据包、报文的理解
网络层传输的包(packet,又称分组),在数据链路层中传输的是“帧”(frame)。数据包到达数据链路层后加上数据链路层的协议头和协议尾就构成了一个数据帧。在每个帧的前部加上一个帧头部(作为帧的起始标志,帧边界),在帧的尾部加上一个帧尾部(作为帧的结束标志,帧边界),把网络层的数据包作为帧的数据部分,就构成了一个完成帧 。
一般来说,数据链路层发送的数据包称为frame,地址是链路层的地址,如mac地址。网络层发出的数据包称为packet,地址是网络层的地址,如IP地址。传输层发出的数据包称为segment/datagram,地址是传输层的地址,如TCP端口号。
总结,当数据在数据链路层传输的时候叫做“帧”,当一个帧被接受并提交到第二次处理:剥开帧头帧尾,获得数据包(对于第二层来说,它只认识帧头和帧尾,其他包括包头等都是帧承载的普通数据);然后这个包被提交到第三层:它能识别包头,得到被包在里面的信息(信息包含第四层TCP数据报头,对于第三层来说报头也是它承载的普通数据),第三层结束后把去掉报头的数据给第四层,这些数据就是报文。
(参考:https://blog.csdn.net/damishidai15/article/details/88746367)
yo,peace!
网友评论