OSI模型和TCP/IP协议栈

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OSI模型和TCP/IP协议栈相关的知识,希望对你有一定的参考价值。

        OSI(Open System Interconnect )开放系统互连参考模型是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型,为开放式互连信息系统提供了一种功能结构的框架。这里所说的开放系统,实质上指的是遵循OSI参考模型和相关协议能够实现互连的具有各种应用目的的计算机系统。它从低到高分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。而TCP/IP协议栈和OSI模型有着对应关系,那么先看一下OSI参考模型。OSI参考模型如下图所示。

技术分享


一、OSI七层概述

◆物理层(physical):

      物理层是参考模型的最低层,也是第一层。主要功能是利用传输介质为数据链路层提供物理连接,实现比特流(二进制数)的透明传输,实现相邻计算机节点之间传送比特流时,尽可能屏蔽掉具体传输介质和物理设备的差异。使其上层的数据链路层不必考虑网络的具体传输介质是什么。

      比特流的透明传输是指实际电路传送后没有发生变化,因此,对于传送比特流来说,由于这个电路并没有对其产生什么影响,因此比特流就“看不见”这个电路。

     “透明”表示某一个实际存在的事物看起来好像不存在一样。  

◆数据链路层(data link):

      数据链路层是OSI模型的第二层,负责建立和管理节点间的链路。数据在该层封装成帧,传送到上一层;同样,也将来自上层的数据帧,解封为比特流形式的数据转发到物理层,该层用MAC地址作为访问媒介(不支持ip地址)。

      在计算机网络中由于各种干扰的存在,物理链路是不可靠的。因此,数据链路层会在物理层提供的比特流的基础上,通过差错控制、流量控制方法,使有差错的物理线路变为无差错的数据链路,即提供可靠的通过物理介质传输数据的方法。

◆网络层(network):

      网络层是OSI模型的第三层,该层通过路由选择算法,为报文或分组选择最适当的路径。该层控制数据链路层与传输层之间的信息转发、建立、维持和终止网络的连接。具体地说,数据链路层的数据在这一层被转换为数据包,然后通过路径选择、逻辑寻址(寻找IP地址)等,将信息从一个网络设备传送到另一个网络设备。

◆传输层(transport):

    传输层(Transport Layer)是OSI模型的第4层,处于中间层。OSI下3层的主要任务是数据通信,上3层的任务是数据处理。因此传输层是通信子网和资源子网的接口和桥梁,起到承上启下的作用。

    传输层提供会话层和网络层之间的传输服务,从会话层获得数据,然后将数据传递到网络层,并确保数据能正确无误地传送到网络层。因此,传输层负责提供两节点之间数据的可靠传送。主要使用TCP协议。

    传输层向高层屏蔽下层数据通信的细节,即向用户透明地传送报文。

◆会话层(session):

     会话层是OSI模型的第五层,主要任务就是组织和协调两个会话进程之间的通信,并对数据交换进行管理。当建立会话时,用户提供他们想要连接的远程地址,而这些地址与MAC地址或逻辑地址(IP)不同,它们是为用户专门设计的,更便于用户记忆。域名(DN)就是一种网络上使用的远程地址,比如:www.qq.com就是一个域名。

会话层的具体功能如下:

1)会话管理:允许用户在两个实体设备之间建立、维持和终止会话,并支持它们之间的数据交换。例如提供单方向会话或双向同时会话,并管理会话中的发送顺序,以及会话所占用时间的长短等。

2)会话流量控制:提供会话流量控制和交叉会话功能。

3)寻址:使用远程地址建立会话连接。

4)出错控制:从逻辑上讲会话层主要负责数据交换的建立、保持和终止,但实际的工作却是接收来自传输层的数据,并负责纠正错误。会话控制和远程过程调用均属于这一层的功能。

◆表示层(presention):

      表示层是OSI模型的第六层,其主要功能是把应用层提供的信息变换为能够共同理解的形式,提供字符代码、数据格式、控制信息格式、加密等的统一表示。

      因为不同的计算机体系结构使用的数据表示法不同。例如,IBM主机使用EBCDIC编码,而大部分PC机使用的是ASCII码。在这种情况下,便需要表示层来转换格式,提供一种公共语言,以便于异种机通信。通过前面的介绍,我们可以看出,会话层以下5层完成了可靠的、无差错的数据传送。但是数据传送只是手段而不是目的,最终是要实现对数据的使用。由于各种系统对数据的定义并不完全相同,比如键盘上的某些键的含义在许多系统中都有差异,那么在利用其它系统的数据时就需要转换,表示层和应用层就可以解决这个问题。

      此外,为了减少数据的传输量,这一层还负责数据的压缩与恢复。

      该层可以实现数据的加密和解密,提高安全性。

应用层(application):

      提供用户身份验证

      应用层是OSI参考模型的最高层。其功能是实现应用进程之间的信息交换,负责协调各个应用程序间的工作。同时,还具有一系列业务处理所需要的服务功能,还能提供用户身份验证。

      应用层为用户提供的服务和协议有:文件服务、目录服务、文件传输服务(FTP)、远程登录服务(Telnet)、电子邮件服务(E-mail)、打印服务、安全服务、网络管理服务、数据库服务等。上述的各种网络服务由该层的不同应用协议和程序完成,不同的网络操作系统之间在功能、界面、实现技术、对硬件的支持、安全可靠性以及具有的各种应用程序接口等各个方面的差异是很大的。

另外说明: 1)下层为上层提供服务

       2)上三层主要是为用户提供服务,下三层为传输提供服务

       3)从本质上来说,下三层组成的通信子网为网络中的主机提供点到点服务,而传输层提供端到端服务。点到点通信即两个直接相连的设备之间的通信,端到端通信即在数据传输过程中,发送端与接收端仿佛有一条直接链路,而不管中间经过多少设备。


二、数据封装、数据解封

1)数据封装

技术分享

   发送方对数据封装时从上到下,上面六层每一层都对数据加上自己的报文头,直到数据传输到物理层

2)数据解封

技术分享

   接收方解封时从下到上,一层一层去掉报文头,最后得到原始数据。


三、各层的数据单元类型

   PDU(Protocol Data Unit)协议数据单元,是指对等层次之间传递的数据单位

技术分享

各层PDU如下:

   物理层:比特;位(bit)

   数据链路层:数据帧(frame)

   网络层:数据包(packet)

   传输层:数据段(网段)(segment)

   上三层:消息(message)

四、TCP/IP协议栈(四层模型)

技术分享

TCP/IP四层模型的功能同样对应于OSI模型:

    应用层:具有OSI上三层功能(应用层,表示层,会话层)

    传输层:功能与OSI的传输层对应

    网络层(Internet层):功能与OSI的网络层对应

    网络接口层(网络访问层):具有OSI下两层功能(数据链路层,物理层)

   以上就是OSI参考模型以及TCP/IP协议栈模型的大致内容。如果有其他不同意见或疑问,欢迎留言。技术分享

     现在传输层应用最广泛的就是TCP协议,如果想要了解TCP协议的工作原理、特性等详情,请转到博主另外的博客文章。

   链接:http://blog.51cto.com/user_index.php?action=addblog_new&did=370763

以上是关于OSI模型和TCP/IP协议栈的主要内容,如果未能解决你的问题,请参考以下文章

OSI模型和TCP/IP协议栈

TCP/IP协议栈及OSI参考模型详解

OSI七层协议模型和TCP/IP四层模型比较

网络基础之OSI模型及TCP/IP协议栈

杂谈——TCP/IP 协议栈详解

TCP/IP协议栈模型分析