OSI模型以及各层的作用
开放式系统互联参考模型,简称OSI模型,将进程间的通信抽象出了层的概率,定义了网络互连的七层架构,其实,不论是OSI参考模型还是TCP/IP模型,分层的本质是通过分离关注点而让问题简单化。
物理层:参考模型中的最底层,物理层的主要功能是利用传输介质(网线、无线电波)为数据链路层提供物理联接,负责数据流的物理传输工作。物理层传输的基本单位是比特流,即0和1数据链路层:将比特组合成字节,再将字节组合成帧,基于mac进行物理地址寻址网络层:把从传输层接收到的数据报文封装成包再向下传送到数据链路层,并通过路由选择算法为数据包选择最适当的路径传输层:实现两个用户进程间端到端的可靠通信,在数据传输的过程中可能会出现各种异常,比如数据包丢失、数据损坏等等,传输层就承担了保证数据传输正确的功能,如流量控制、数据重发等,主要协议有TCP、UDP会话层:建立、维护、管理会话连接表示层:对数据进行编解码、解压缩、加解密应用层:面向用户的一层,也可视为为用户提供常用的应用程序,例如电子邮件,上网浏览等网络服务都是应用层程序。
OSI模型的传输过程
从发送端来看数据的封装过程自顶向下,每层都会在原始数据前添加一串属于自己的协议头,数据经过以上从上向下的七层框架的加工,一串0、1组成的二进制流诞生了,根据物理层是光纤、电缆、还是空气,二进制流转化为光信号、电信号、电磁波信号在物理介质(物理层)里传输,经过若干个中继交换机(链路层)的交换、经过若干个中继路由器(网络层)的转发,最终到达数据的终点后开始进行数据的解封装,每层剥离了相应的协议头后向上传递,最终到达应用层。
举个发送邮件的例子
应用层:首先需要选择邮件应用比如163邮箱,或者qq邮箱,outlook等邮件应用表示层:邮件编辑好后,点击发送,这时候它会将需要传输的数据进行编码,加密,压缩等操作会话层:数据准备好后,邮件马上就需要进行发送,这里实际上就是建立了一个邮件发送者何接收者之间的会话,它是一个概念性质的,比如发送后如果执行撤销可以中断会话传输层:传输层会对五层数据包进行进一步的封装,为该数据包添加一个TCP/UDP头部,其中含有源端口号和目的端口号,源端口号就是邮件应用的端口号网络层:拿到传输层的数据包后,网络层会对该数据包添加一个IP包头,其中包含了目的地网络地址,用