OSI 七层模型
Posted: 11.06.2019
介绍
学过计网的应该都知道 OSI(Open System Interconnect) 七层模型。
这玩意儿的学名叫:开放系统互连参考模型。
学名听不懂没关系,你就可以把他当做是一个体系(一系列规则),用于计算机或通信系统间互联。
就比如说我打算写一篇退婚流爽文,而退婚流爽文是有一个体系的,这个体系规定了“开局男主贼弱,但不是因为天赋,而是因为一些客观原因”,“开局便有大家族的女的来退婚,这女的必然不是女主”,“男主被退婚后努力奋斗,导致之前退婚的女的来舔”……等等。这个体系,就相当于是 OSI 七层模型。
但这玩意儿只是一个抽象的模型,而不是具体的规定。也就是说,你可以按照这个模型来分层,但是你不分也没事。(不过大家都是这么做的哦)
还是拿刚才的爽文举例。男主一开始讲道理应该被退婚,但你完全可以写“男主在被退婚后强上那个女的,把她日得喵喵叫,然后不退婚了”。这么写就脱离了退婚流的体系,但完全可以。具体怎么写,写什么取决于你。
那我们为什么要用 OSI 七层模型?因为七层模型里的每一层都是独立的。
这样的话,如果出现了一个问题,我们能够快速地定位到究竟是哪一层的问题,并且让负责那一层的人去处理。
并且在七层模型中,层与层之间是对等通信的。也就是说应用层和应用层通信,表示层和表示层通信等等。

分类
我们一般把上三层和下四层区分开来。
上三层又被叫做:资源子网。表示层和会话层从未被独立实现过,而是和应用层一起实现的。
而下三层又被叫做:通信子网。
两者由第四层(传输层)进行区分,但传输层也可以被归于通信子网。
作为一个开发者,需要掌握上三层。
作为一个网络工程师,需要掌握下四层。
一张牛逼的图
在给大家详细讲每一层之前,希望大家能先看一眼这张图。
这张图把七层模型中,每一层涉及到的协议都列了出来,对于理解七层模型至关重要。
我们可以简单地认为,七层模型里的每一层都是由协议组成的。

接下来,我尽量用最简单的语言,将七层模型讲一遍。
应用层
七层模型里的第七层,也是最高层,直接面向用户。
注意了,这里的 应用 指的并不是具体的应用,比如 Chrome,Safari 之类的,而是指的协议。
也就是说,Chrome、Safari 之类的程序,会直接运用应用层的协议,比如说 HTTP/HTTPS 等等。
目的:直接向用户提供服务。
功能:文件传输、文件管理、电子邮件处理...
协议:HTTP,HTTPS,FTP,POP3,SMTP...
表示层
这层关心的只有一个东西:数据的具体表示形式。
不同的系统(例如Linux、Mac、Windows)采用不同的数据表示形式。
当一个系统想要发送数据给另一个系统,接受的那个系统可能看不懂信息。
举个例子,我对你说“来了老弟”,而你看不懂,于是给我回“弟、何してるの?”
这种情况下就没法交流嘛。而表示层就是要确保,不同的系统可以正常交流。
具体的例子就比如说 MP3 格式的音乐文件。你能在 mac 上听,能在华为手机上听,哪里都能听。这是为什么?这就是因为这些系统都能“读懂” MP3 格式的文件,知道要去怎么展示这个格式的文件。而这,就是表示层的功劳。
目的:确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。
功能:编码、数据格式转换、压缩/解压、加密/解密...
协议:XDP,IPX...
会话层
顾名思义,会话层关心的,就只有一个东西:会话。
什么是 会话?不同机器上的应用之间,如果想要交流,那就得建立会话。
具体定义的话,会话 就是:不同实体的表示层间的连接。
目的:建立、管理、终止表示层实体之间的会话
功能:建立、管理、终止表示层实体之间的会话
协议:SSL,TLS,DAP,LDAP...
传输层
显而易见,传输层的任务就是端到端的数据传输。
就是在传输层,我们定义了传输协议和端口号。
目的:为上层协议提供端到端的可靠、透明的数据传输服务
功能:数据分段 + 数据传输 + 到达目的地后重组...
协议:TCP,UDP...
网络层
简单来说就一句话:控制子网的运行。
在网络层,我们会用到一个物理设备:路由器。
路由器的功能是什么?简单来说就是:通过路由选择算法,为报文或分组通过通信子网选择最适当的路径。
那么,这自然也就是网络层主要的功能。IP 地址就是在这里分配的。
目的:控制子网的运行
功能:逻辑编址、分组传输、路由选择
协议:IPv4、IPv6、ESP...
数据链路层
依旧是简化,其实数据链路层的工作就4个字:物理寻址。
通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。
MAC 地址就是在这一层进行分配的。
目的:物理寻址,将原始比特流转变为逻辑传输线路
功能:物理寻址,将原始比特流转变为逻辑传输线路
协议:XTP、PPTP...
物理层
简化下来,物理层的功能就一句话:通过物理介质传输比特流。
别的就不需要记了,反正在面试里也不会说,说了面试官估计也不懂。
目的:通过物理介质传输比特流
功能:通过物理介质传输比特流
协议:无
参考资料
OSI Model - Application Layer, Presentation Layer and Session Layer
表示层( presentation layer)和会话层(session layer)为什么会被弃用?