OSI 七层模型和TCP/IP五层模型

这里写图片描述

两主机通信的过程,从发送者(以下简称A)到接收者(以下简称B),属于从7层(应用层)->1层(物理层)封装,然后传输到远端,再从1层(物理层)->7层(应用层)解封装的过程。
1、 当A打开了QQ这个软件,相当就到达应用层了;因为软件会根据你的操作调动机器底层的硬件工作了。
2、 当A往QQ这个软件的聊天窗口里面输入信息,发出后,QQ会将这个信息保存在本地聊天记录文件MSGEX.db(一般就保存在QQ目录下以你的QQ号码为文件夹里)。以某种格式编码/保存某种信息,这可以理解为表示层了。
3、 当A打开与B的聊天窗口,输入信息,按下“输入”按钮,用户的操作就完结了,剩下都是机器自己的操作了。实际传输之前QQ会先建立A与B的会话连接,才真正开始传输信息/数据(你可以理解借传输文件理解:你发送文件给对方,要等待对方按下接收,才算建立了会话,然后才开始传输。)这算会话层了。
4、 会话建立后,会将A发的信息斩件,如A发送“你吃了饭没有”?传输层将这句话斩成“你”“吃”“了”“饭”“没”“有”6个数据段,标记好使用的端口号,然后准备发出去。
5、 接上一层,信息还未发出去,这时候在网络层做路由选路,可以理解为,从A家出去,可以分别经“联通”“电信”“移动”3个网络中的一个再到B家。网络层根据路由协议负责选路(根据链路质量、带宽、开销等方法论)。假设最后选了2条,可能就A->联通->B发送“你”“吃”“了”3个数据段,A->电信->B发送“饭”“没”“有”3个数据段。选路后,这一层要标记IP包头,包头主要内容是源IP地址,目的IP地址,使用什么协议。其中源、目的IP相当于你寄信的时候的收发的地址与邮政编码,标记出发送者与接收者。而协议相当于这封信到底用什么语言书写。(只有保证2端使用同种语言,才能确保通信起来,否则你用英文写信给大妈,大妈怎么看得懂呢?)
6、 然后再到数据链路层,数据链路层主要是负责同一个子网内的通信的。例如A、B连接在同一台二层交换机,就属于同一个子网,那么数据帧的通信室是不需要通过网络层的(即三层交换机或者路由器),直接在这台二层交换机就过去了。这一层打的是MAC地址的帧头,对于上述通信过程来说,就是为数据帧打上A的机器的MAC与A的网关的MAC。这一层的工作就完成了。
7、 最后一层了,经过上述斩件、打完各层标签后的6个数据帧,物理层将他们翻译文6段0、1表示的比特流,然后通过光纤、铜缆进行传输。8、 当比特流传输到了远端,接着B的机器按照上述的1~7的步骤反方向运行一次即可(即有物理层到应用层)。就是一层层读取标签,传输给标签标记着的相应对象,然后摘除标签,再读取上一层标签,直到最后B的应用程序能够读到A往应用程序输入的数据为止。

这里写图片描述
以TCP/IP协议五层模型的计算机网络率先出现,硬件接口实现“物理层”、“数据链路层”,操作系统内核里的TCP/IP协议栈实现“网络层”、“传输层”,所有依赖于TCP/IP协议栈的应用程序实现广泛意义上的“应用层”,这个广泛意义的“应用层”既实现了会话ID、心跳keepalive,又实现了诸如文字、图片、音频、视频、文件的不同表示。后来才有以TCP/IP为现实素材的OSI七层参考模型,希望将“会话层”、“表示层”从广泛意义上的应用层里独立出来,但这两层在实际应用中很难保持统一性,应用通常会选择不同的加解密方式,不同的语义和时序,谈不上复用的东西作为协议的一部分自然是没有意义的,所以这两层的功能交给应用开发者作为应用层的一部分功能开发是比较合适的。
这里写图片描述
在每一层都工作着不同的设备,常用的交换机就工作在数据链路层的,一般的路由器是工作在网络层的。
这里写图片描述
每一层实现的协议也各不同,即每一层的服务也不同。

(安全层)
作为一个提供安全加密服务层,很多人都使用过,只是一直没有人想去划分层次结构,它的名字叫SSL/TLS,有了它的加入,我们可以将TCP/IP五层结构看成六层:
应用层
安全层(TLS)
传输层(TCP/UDP)
网络层(IP)
数据链路层(ppp)
物理层
有了安全层提供的服务,位于应用层的HTTP/SMTP/FTP,都可以在其名字后加一个S(Security),比如HTTPS,其实这个世界压根不存在HTTPS协议,只有HTTP协议,加上S的后缀只是告诉大家HTTP使用的是六层结构,有了SSL/TLS的安全保护。

本文参考了多篇网络相关文章,结合自己理解阐述。

猜你喜欢

转载自blog.csdn.net/louisjh/article/details/79010518