OSI七层模型是Open Systems Interconnection Reference Model的缩写,是由国际标准化组织(ISO)开发的一种参考模型,旨在促进不同厂商、不同系统之间的通信和互联。该模型被设计为一种通用的网络架构模型,用于指导在分布式计算系统中通信协议的设计和实现。
00 | 🛸发展史🛸
OSI模型是1984年由国际标准组织(ISO)开发的,作为一种参考模型,而并非实际应用。该模型将计算机网络通信过程划分为7个层次,每个层次都有特定的功能,各层次之间通过协议进行通信。OSI模型的制定旨在解决计算机之间的通信问题,从而使不同计算机在数据传输方面具有通用性。
在OSI模型之前,各个厂商都有自己的通信协议,网络通信存在互不兼容和不互通的问题。而OSI模型的出现,使得所有通信环节都有了一个清晰的规范,从而实现了不同厂商、不同系统之间的互通性。不过,由于实际上在实现网络通信时,通常使用TCP/IP(传输控制协议/因特网协议)作为通信协议族,因此OSI模型并未如期望般广泛应用。
尽管OSI模型并未大规模应用于实际网络中,但它在网络通信方面仍然具有理论意义和应用价值,它为我们理解网络通信提供了系统性、层次性的思路。
01 | 🛸OSI七层参考模型🛸
当我们在互联网上进行通信时,数据需要经过多个传输节点,每个节点都可能使用不同的通信协议进行数据包交换,而为了确保不同节点之间数据的有效传输和正确解释,一种统一的、标准化的、层次化的通信模型被提出,这就是OSI七层模型(Open Systems Interconnection Reference Model,开放系统互联参考模型)。
OSI七层模型是一种抽象的模型,定义了不同层次间的数据的通信方式,将整个互联网通信过程划分为七个独立的层次,由低层至高层分别为:
物理层、
数据链路层、
网络层、
传输层、
会话层、
表示层、
应用层
\color{red}{物理层}、\color{orange}{数据链路层}、\color{yellow}{网络层}、\color{green}{传输层}、\color{blue}{会话层}、\color{cyan}{表示层}、\color{purple}{应用层}
物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
每个层次都有独立的功能和任务,通过这种分层方式,避免了各个层次之间功能相互依赖、相互影响的问题,同时也方便了不同协议的选用和替换。
-
通信子网 && 资源子网
计算机网络按照数据通信和数据处理的功能可以分为两层:内层通信子网、外层资源子网
-
内层通信子网:(上图中虚线内的)的节点计算机和和高速通信线路组成了独立的数据系统,承担全网的数据传输、交换、加工和变换等通信处理工作,即将一台计算机的输出信息传送到另一台计算机
-
外层资源子网:(上图虚线外的)所有网络设备以及各种软件资源等,负责全网的数据处理和向网络用户提供网络资源以及网络服务
-
-
OSI七层参考模型的特性
-
它是一种将异构系统互连的分层结构;
-
提供了控制互连系统交互规则的标准框架;
-
定义了一种抽象结构,而非具体实现的描述;
-
不同系统上相同层的实体称为同等层实体;
-
同等层实体之间的通信由该层的协议管理;
-
相邻层间的接口定义了原语操作和低层向高层提供服务;
-
所提供的公共服务是面向连接和无连接的数据服务;
-
直接的数据传输仅在最低层实现;
-
每层完成所定义的功能,修改本层的功能并不影响其他层;
-
-
各层功能
OSI七层参考模型中的13层主要负责通信功能,一般称为**通信子网层**;上3层(57)属于资源子网层的功能范畴,称为资源子网层;第四层的传输层起着承上启下的作用,下面对OSI七层模型的每一个层级进行简要介绍:
-
物理层( P h y s i c a l L a y e r ) \color{red}{物理层(Physical Layer)} 物理层(PhysicalLayer)
物理层是OSI七层模型的底层,主要负责物理设备的数据传输,它将比特流转化为具体的电信号或光信号进行物理传输,处理的单元是比特(0或1),特点是传输速度快,但不能纠错。 -
数据链路层( D a t a L i n k L a y e r ) \color{orange}{数据链路层(Data Link Layer)} 数据链路层(DataLinkLayer)
数据链路层建立在物理层之上,主要负责点对点通信的数据传输,它将物理层传输的数据流转化为帧(Frame)进行传输,处理的信息单位为帧(Frame),提供流量控制、差错检测、纠错等功能。 -
网络层( N e t w o r k L a y e r ) \color{yellow}{网络层(Network Layer)} 网络层(NetworkLayer)
网络层主要负责数据包的传输和路由选择,它接收来自数据链路层的帧,然后将这些帧组装成包(Packet),并加上目的地址和源地址以及各种控制信息,为数据包提供了传输路径的选择、拥塞控制、数据包分割和重组等功能。 -
传输层( T r a n s p o r t L a y e r ) \color{green}{传输层(Transport Layer)} 传输层(TransportLayer)
传输层主要负责面向连接的数据传输,是OSI七层模型中最核心的一层,它在网络层之上提供透明的数据传输服务,面向连接的传输方式能够提高数据传输的可靠性,并且支持可靠的错误恢复处理、数据重传机制、流量控制等。 -
会话层( S e s s i o n L a y e r ) \color{blue}{会话层(Session Layer)} 会话层(SessionLayer)
会话层主要负责建立、管理和结束会话,通过在数据交换时分配相关标识来确保正确的通信,同步发送端和接收端的数据传输,在表示层之上,可对传输的数据进行加密或解密。 -
表示层( P r e s e n t a t i o n L a y e r ) \color{cyan}{表示层(Presentation Layer)} 表示层(PresentationLayer)
表示层主要负责数据格式的转换和处理,使不同计算机之间的数据格式能够兼容,与应用层进行数据格式交互,如UBF、ASN1、ASCII、BCD等格式的转换,还负责数据加密、解密、压缩、解压缩等功能。 -
应用层( A p p l i c a t i o n L a y e r ) \color{purple}{应用层(Application Layer)} 应用层(ApplicationLayer)
应用层是OSI七层模型的最高层,也是最靠近用户的一层,主要负责面向用户的通信服务,提供用户接口、用户数据、应用程序之间的交换等功能,在应用层之上,通常会有一些面向特定领域的协议,如HTTP、FTP、SMTP等。
总的来说,OSI七层模型将互联网通信过程分为七个独立的层次,每个层次都有不同的功能和任务,通过分层的方式方便了不同协议的选用和替换,同时避免了各个层之间功能相互依赖和相互影响的问题,提高了网络通信的可靠性和稳定性。
02 | 🛸OSI七层参考模型的信息流向🛸
如上图,A系统用户向B系统用户传送数据的信息流向如下:
-
A数据先进入应用层,该层给数据加上一个强制信息(AH数据头),数据送往下一层表示层;
-
表示层对进入的数据按照协议进行必要的变换后也加上了强制信息(PH数据头),数据送往下一层会话层;
-
会话层对进入的数据也加上强制信息(SH数据头),数据送往下一层传输层;
-
传输层对进入的数据按照协议进行对长报文的分段后加上强制信息(TH数据头),数据送往下一层网络层;
-
网络层将信息变成报文分组,并加上组号NH,将数据传送到下一层的数据链路层;
-
数据链路层将进入的信息加上强制信息(DH数据头和DT数据尾),形成数据帧,传送到下一层的物理层;
-
物理层将接收到的数据按位发送到B的物理层中;
-
B接收到消息后,按照A发送消息的信息反流向进行数据解析,最后获取原始信息给到B系统用户
从上的步骤可以看出,实际上只有在物理层的时候才开始实际的传输,其余各层都是对数据进行封装的虚假传输。