OSI七层模型

image.png

OSI模型全称为开放式通信系统互连参考模型,是国际标准化(ISO)提出的一个视图使各种计算机在世界范围内互连为网络的标准框架。OSI将计算机网络体系结构划分为七层,每一层实现各自的功能和协议,并完成与相邻层的接口通信。OSI的服务定义详细说明了各层所提供的服务。某一层的服务就是该层及其下各层的一种能力,它通过接口提供给更高的一层。

应用层

应用层位于OSI参考模型的第七层,其作用是通过应用程序间的交互来完成特定的网络应用。该层协议定义了应用进程之间的交互规则,通过不同的应用层协议为不同的网络应用提供服务。例如域名系统DNS,支持万维网应用的HTTP协议,电子邮件系统采用SMTP协议等。在应用层交互的数据单位我们称之为报文。

表示层

表示层的作用是使通信的应用程序能够解释交换数据的含义,其位于OSI参考模型的第六层,向上为应用层提供服务,向下接受来自会话层的服务。该层提供的服务只要包括数据压缩,数据加密以及数据描述。这使得应用程序不必担心在各台计算机中表示和存储的内部格式差异。

会话层

会话层就是负责建立、管理和终止表示层实体之间的通信会话。该层提供了数据交换的定界和同步功能,包括了建立检查点和恢复方案的方法。

传输层

传输层的主要任务是为了两台主机进程之间的通信提供服务。应用程序利用该服务传送应用层报文,该服务并不针对某一特定的应用,多种应用可以使用同一传输层服务。由于一台主机可同时运行多个线程,因此传输层有复用和分用的功能。所谓复用就是指多个应用层进程可同时使用下面的传输层的服务,分用和复用相反,是传输层把收到的信息分别交付上面应用层中的相应进程。

网络层

两台计算机之间传送数据时其通信链路往往不止一条,所传输的信息甚至可能经过很多通信子网。网络层的主要任务就是选择合适的网间路由和交换节点,确保数据按时成功传送。在发送数据时,网络层把传输层产生的报文或用户数据报封装成分组和包向下传输到数据链路层。在网络层使用的协议是无连接的网际协议(Internet Protocol)和许多路由协议,因此我们通常把该层简单地称为 IP 层。

数据链路层

数据链路层通常也叫做链路层,在物理层和网络层之间。两台主机之间的数据传输,总是在一段一段的链路上传送的,这就需要使用专门的链路层协议。在两个相邻节点之间传送数据时,数据链路层将网络层交下来的 IP 数据报组装成帧,在两个相邻节点间的链路上传送帧。每一帧包括数据和必要的控制信息。通过控制信息我们可以知道一个帧的起止比特位置,此外,也能使接收端检测出所收到的帧有无差错,如果发现差错,数据链路层能够简单的丢弃掉这个帧,以避免继续占用网络资源。

物理层

作为 OSI 参考模型中最低的一层,物理层的作用是实现计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。使其上面的数据链路层不必考虑网络的具体传输介质是什么。该层的主要任务是确定与传输媒体的接口的一些特性(机械特性、电气特性、功能特性,过程特性)。

TCP/IP四层模型

OSI七层模型在提出时的出发点是基于标准化的考虑,而没有考虑到具体的时长需求,使得该模型结构复杂,部分功能冗余,因而完全实现OSI参考模型的系统不多。而TCP/IP参考模型直接面向时长需求,实现起来比较容易,因此在一经提出便得到广泛的应用。基于TCP/IP的参考模型将协议分成四个层次,如上图所示,分别为:网络互连层网际互联层传输层应用层

应用层

TCP/IP模型将OSI参考模型中的会话层、表示层和应用层的功能合并到一个应用层实现,通过不同的应用层协议为不同的应用提供服务。例如:FTP、Telnet、DNS、SMTP等。

传输层

该层对应于OSI参考模型的传输层,为上层实体提供源端到对端主机的通信功能。传输层定义了两个主要协议:传输控制协议(TCP Transmission Control Protocol)用户数据报协议(UDP User Data Protocol) 。其中面向连接的TCP协议保证的数据传输可靠性,面向无连接的UDP协议能够实现数据包简单、快速的传输。

网际互联层

网际互联层对应OSI参考模型的网络层,主要负责相同或不同网络中计算机之间的通信。在网际互联层,IP协议提供的是一个不可靠、无连接的数据报传递服务。该协议实现两个基本功能:寻址和分段。根据数据报头中的目的地址将数据传送到目的地址,在这个过程中IP负责选择传送路线。除了 IP 协议外,该层另外两个主要协议是互联网组管理协议(IGMP)和互联网控制报文协议(ICMP)。

网络接入层

网络接入层的功能对应于 OSI 参考模型中的物理层和数据链路层,它负责监视数据在主机和网络之间的交换。事实上,TCP/IP 并未真正描述这一层的实现,而由参与互连的各网络使用自己的物理层和数据链路层协议,然后与 TCP/IP 的网络接入层进行连接,因此具体的实现方法将随着网络类型的不同而有所差异。

TCP/IP五层参考模型

五层体系的协议结构是综合了 OSI 和 TCP/IP 优点的一种协议,包括:

  • 应用层
  • 传输层
  • 网络层
  • 数据链路层
  • 物理层。

其中应用层对应 OSI 的上三层,下四层和 OSI 相同。五层协议的体系结构只是为介绍网络原理而设计的,实际应用还是 TCP/IP 四层体系结构。

OSI模型与TCP/IP的异同比较

相同点

  • OSI参考模型与TCP/IP参考模型都采用了层次结构
  • 都能够提供面向连接和无连接两种通信服务机制

面向无连接:

  • 面向无连接是通信技术之一。是指通信双方不需要事先建立一条通信线路,而是把每个带有目的地址的包(报文分组)送到线路上,由系统自主选定路线进行传输。邮政系统是一个无连接的模式,天罗地网式的选择路线,天女散花式的传播形式;IP、UDP协议就是一种无连接协议。

面向连接:

  • Connection-oriented 面向连接:一种网络协议,依赖发送方和接收器之间的显示通信和阻塞以管理双方的数据传输.网络系统需要在两台计算机之间发送数据之前先建立连接的一种特性。面向连接网络类似于电话系统,在开始通信前必须先进行一次呼叫和应答。TCP协议就是一种面向连接服务的协议,电话系统是一个面向连接的模式。

不同点

  • OSI采用的七层模型;TCP/IP是四层结构
  • TCP/IP参考模型没有对网络接口层进行细分,只是一些概念性的描述;OSI参考模型对服务和协议做了明确的区分。
  • OSI先有模型,后有协议规范,适合于描述各种网络;TCP/IP是先有协议集然后建立模型,不适用于非TCP/IP网络。
  • TCP/IP一开始就提出面向连接和无连接,而OSI一开始只强调面向连接服务,直到很晚才开始制定无连接的服务标准。
  • OSI参考模型虽然被看好,但将网络划分为七层,实现起来较困难;相反,TCP/IP参考模型虽然很多不尽人意的地方,但作为一种简化的分层结构还是比较成功的。

OSI和TCP/IP协议之间的对应关系

image-20210608153545012

为什么TCP/IP去除了表示层和会话层

OSI参考模式在提出时,他们的理想是非常好的,但实际上,由于会话层、表示层、应用层都是在应用程序内部实现的,最终产出的是一个应用数据包,而应用程序之间是几乎无法实现代码的抽象共享的,这也就造成 OSI 设想中的应用程序维度的分层是无法实现的,例如,我们几乎不会认为数据的压缩、加密算法算是一种协议,而会话的概念则更为抽象,难以用协议来进行描述,所以在后来的 TCP/IP 协议框架的设计中,便将表示层和会话层与应用层整合在一起,让整个过程更为清晰明了。

数据如何在各层之间传输——数据的封装过程

在发送主机端,一个应用层报文被传送到运输层。在最简单的情况下,运输层收取到报文并附上附加信息,该首部将被接收端的运输层使用。应用层报文和运输层首部信息一道构成了运输层报文段。附加的信息可能包括:允许接收端运输层向上向适当的应用程序交付报文的信息以及差错检测位信息。该信息让接收端能够判断报文中的比特是否在途中已被改变。运输层则向网络层传递该报文段,网络层增加了如源和目的端系统地址等网络层首部信息,生成了网络层数据报。该数据报接下来被传递给链路层,在数据链路层数据包添加发送端 MAC 地址和接收端 MAC 地址后被封装成数据帧,在物理层数据帧被封装成比特流,之后通过传输介质传送到对端。