写给女朋友看的OSI七层模型
前言
某天,女朋友在刷着微信公众号,突然问了我一个问题:什么是OSI七层模型?对这样突如其来的专业问题,我当场就愣住。毕竟,想要给女朋解释网络专业名词方面的事,有点困难,但是想想,其实我们日常生活中都与网络息息相关,特别身处当下的大数据时代”,各种关于互联网的知识都渐渐进入人们的生活中。因此,身为web工程师,我也应当给女朋友科普一下。于是,我说你等等哈,我喝了口水,缓缓地说起:从前...
正文
从互联网的本质说起
互联网的本质就是一系列的网络协议,而人们把这些协议归类划分后得出一个模型,它就叫OSI七层模型。在当今互联网发达的世界里,小到我们使用手机微信发消息,大到最近的中国“天问一号”火星车发送,都与这一套模型有关。
在互联网世界里,数据就是这个世界的“公民”,那么OSI七层模型就是这个世界的“法律大全目录”。在这份目录里,划分着各种大大小小的“法律法规”,它指导着“公民”的日常生活。
所以,你暂时可以理解 OSI七层模型是:
它是互联网世界里的“法律准则”
它是人为划分的
现在,我从一个日常生活例子以及个人的理解,说说OSI七层模型的作用吧。
第七层 应用层
在你的手机里存在有着各种APP,如:“微信” 、“钉钉” 、“学习强国” ,它们有的可以聊天、有的可以听音乐等等...满足了你的各种需求。假如你想看在手机上看芒果台综艺节目《乘风破浪的姐姐》,你首先要有一个芒果台视频播放器,这里我们称为能够播放视频格式的“视频播放应用”。
在应用层里,顾名思义关注的是“应用”。我们该用什么样的工具、方式来获取想要的信息,看视频,就要用视频播放器应用,想要聊天,我们就要用聊天工具应用,这就是在应用层里提供了我们想要的应用工具。
第六层 表示层
现在,通过应用层,你选择了“芒果台视频播放器”去获得你想要看的视频节目。其中,播放器会对接收到的视频信息如图像、声音进行分辨率控制、音质调节等,比如播放器提示你要选择用哪种画质来观看视频(当然选择画质小一点就可以节约手机流量),比如不同的播放器支持这不同格式的视频数据信号。
播放器是在表示层里考虑数据如何“表示”给你看的,在表示层,它关注的是如何把信息根据实际的应用去优化,如信息的加密、压缩、格式匹配等等都在这一层实现。
第五层 会话层
通过会话层,手机能够让你流畅地观看视频。“会话”一词来源于我日常打电话的通话,类似地,你与视频之间的“会话”一直保持流畅播放的画面。手机在会话层里还能管理播放器与视频信号之间是否断开、播放器任务什么时候运行等。因此这一层关注的是应用的:“建立连接,保持通话,关闭连接”。
说到这里,以上的3个层,其实都是在讨论你和播放器应用(APP)之间的关系,即你想使用什么样的应用、应用是如何把最终的信息展示给你、你是如何管理应用的。关注的是“你”与“应用”之间的关系,所以,也有人把上述这三层统一归类为“应用层”。
相对的,下面要说的4层则是关注设备与设备之间的关系,即你家的手机和芒果电视台家的服务器之间的关系。
第四层 传输层
传输层关注的是设备之间的数据是如何“传输”的问题。
假如你想要播放第5集的节目,点击了下播放器上的第5集按钮,手机开始要向服务器去获取具体视频数据了。
此刻,你手机就跟遥远的服务器之间产生了这么一个对话:
手机:当我说准备好了,你就可以给我画面数据了!
服务器:好的,没问题!
手机:我想要手机流畅播放一点。
服务器:那我每秒钟传60张画面数据过来。
手机:好啊,但万一1秒内我收到不是60张呢?怎么确保画面流畅。
服务器:那么就这样这样这样...
最终,手机和服务器双方协议达成一致,握手,然后双方就开始按照这个约定好的协议来传输数据了。
第三层 网络层
好了,手机和服务器双方商量好了怎么传输数据了,那么下一步该发出数据了吧。但是,实际上数据该怎么传达找到千里之外的服务器呢?这就靠“地址”,就是平时我们常听过的电脑IP地址,它的写法是这样的:‘192.168.186.123’ ,有点类似门牌号一样:‘什么路.什么街.多少号’ 。手机先要把对方的地址填好,数据就不怕迷路了。至于具体手机是怎么知道目标地的IP地址的,这也是在网络层里的所实现的。
道路千万条,安全第一条,互联网世界的道路上错综复杂就是一个巨大的“网络”,为了高效地通讯,我们不仅仅知道地址,还要找到一条最优的路径。
所以,在网络层关注的,是如何在这个“网络世界”里,如何能够正确、高效地找到信息的目的地。
第二层 数据链路层
现在,数据现在是一层一层地传递下来的:用户的应用数据(应用层、表示层、会话层),数据的沟通方法(传输层),数据地址信息(网络层)。
地址填好了,我们的视频信号该出发了吧!别急,还有一个数据链路层。这个时候,手机还需要对信息进行“链路”,所谓“链路”的意思,就像寄快递前的打包,该用多少个信封来装比较方便、该多大的箱子来装比较合理安全、不损坏货物。为了做到高效传输数据、又不能轻易丢失,互联网协议真是煞费苦...反过来的,当对方收到数据后,也还要对数据进行拆包。
所以,在数据链路层,关注的是针对不同的数据大小、传输方式,做出不同的“包裹”和“拆包裹”。把数据“包裹”后,才开始发出数据,来到下的物理层。
第一层 物理层
物理层,就是人们现在存在的物理世界了,数据终于从我们的手机“出发了”。
数据最后从手机的4G信号、从wifi、从我们的网线“水晶头”,数据包裹就通过在这样的道路“寄”出去了。“物理”一词表示现实传播的信号介质:网线的电信号,光纤的光信号,4G网络的电磁波信号,数据在这些物理介质上传输,同时我们也带有了现实世界可测量的值:比如电压值、电流值这些现实中可量度出来的物理量。
通过物理介质,数据才最后到了目的地——千里迢迢的芒果台服务器。服务器收到数据后,开始反过来逆向由第一层物理层到第七层应用对数据进行处理,拿到用户真实的需求数据。然后又把数据从第七层到第一层一路下来,把数据传送回来到我们的手机上了。
以上,就是OSI七层模型的一个流程啦!
概念模型
实际上,这个七层模型是不存在的,它只是人为的划分的概念模型而已。正如文章一开始说过,互联网的本质就是一系列的网络协议,人们把众多协议区分出来的目的只是让你明白,在某个网络模型下的有哪一层,这一个层里有的协议是干什么用的。
既然是人为划分,那么有七层(OSI七层模型),也有5层的分法(TCP/IP 五层概念模型),和 4层的分法(TCP/IP 四层概念模型),其实这些都是针对不同的网络模型,对互联网的协议进行分类和整合后的解释。
后话
女朋友:哇,原来里面还有这么一套理论在!听了之后我好像确实对这个OSI七层模型有了整体的认识,确实一定程度上帮助我理解了平时手机里那些APP这么神奇的应用!原来我每天都在使用它呢!不说了,《乘风破浪的姐姐》要开播了我要去看了!而旁边作为工具人的我所有所思,还好,虽然具体的概念说的不够全面,但作为对非专业人的简单科普还是可以的嘛。