- 问: 请你介绍一下OSI七层网络模型
- 物理层
- 解决什么问题?
- 功能原理
- 问题
- 数据链路层
- 解决什么问题
- 功能原理
- 网络层
- 解决的问题
- 功能原理
- 传输层
- 解决什么问题
- 功能原理
- 会话层
- 解决什么问题
- 功能原理:
- 表示层
- 解决什么问题
- 应用层
- 解决什么问题
- 如何展示?
问: 请你介绍一下OSI七层网络模型
物理,链路,网络,传输,会话,表示,应用
问题: 他们都有什么用,解决了什么问题?
物理层
解决什么问题?
- 数据传输的问题.
功能原理
-
网络传输的硬件基础,数据传输的媒介
-
传输 bit 数据
-
形象的理解: 网线(当然不止)
问题
只负责传输数据,不管传给谁.(信号的广播)
例子
就像一个广播器,你发送什么,他就广播给路线上面的所有人
数据链路层
解决什么问题
数据谁接收的问题.
上面的物理层只负责发送数据,不管数据谁接收,如何判断数据发送给谁的?
很简单,每个数据上面写个名字就知道是发送给谁的了
功能原理
- 信息的选择性接收,每一个机器都有一个唯一的网卡(mac 地址独一无二),
- 将 bit数据封装为帧,每一帧都加上接收方的 mac 地址,
- 接受数据的时候只接受我的 mac 地址的数据,其他数据不管.
例子
将字写到一个信封里面,每一封信都写上名字(mac 地址),每个人都只收自己的信,别人的信不管.
网络层
解决的问题
-
信息发送到哪里的问题
-
是遍布全世界的一张巨型大网,数据从一端发送到另外一端要经历无数的交叉节点(路由器),如果全部使用广播的形式传输数据效率太低了,而且还会有无数次的数据重复
-
那要高效的将数据发送到对应位置,我们的信封上面应该写上邮政编码(收信地址)
功能原理
- 提供 IP 地址
- 将数据帧封装成包,每个包写上 IP 地址(邮政编码),路由器拿到包解析 IP 地址,对比自己本地的 ip 地址转发表,将包发送到下一个路由器.
例子
- 简单理解就是邮件的发送过程,邮件写上名字只知道谁的邮件,全世界这么多人要一个个找吗?
- 所以邮政编码相当于 IP,路由器相当于邮件中转站;
- 当邮件到达一个中转站,会根据他的邮政编码将邮件发送到下一个中转站而不是通过广播的方式传输.
到这里网络的基本雏形就有了,信号可以从一台设备发送到另一台设备
传输层
解决什么问题
- 进程间的网络通信.
- 上面只实现了设备之间的通信,就类似一个对讲机,功能比较单一.
- 那么如果我想要与多台机器同时通信呢,如何区分他们谁是谁?(比如同时使用 QQ 与微信,如何区分哪些是 QQ 消息,哪些是微信消息?)
功能原理
- 增加了端口
- 将包封装为报文,每个报文都添加端口号,每个端口只能被一个进程使用,当报文达到设备(电脑),(操作系统)解析端口并交个对应的进程
举个例子
- 你接收了很多的邮件,他们代表不同的功能(有中奖的,有工作的,有催你还花呗的),
- 这时,你有一个秘书(操作系统)帮你将邮件放入对应的处理工序(进程)里面
- 这时你可以同时接受各个地方发来的各种邮件,而这些邮件不会 乱成一团
而且根据不同的场景还提供了更加丰富的协议 tcp 与 udp
传输层的多进程支持为后面丰富的应用层功能提供基础
会话层
解决什么问题
- 传输层进一步包装,
- 控制连接开启,关闭,维护的控制中心
功能原理:
- 控制连接与断开(代表:ssh)
类似于一个控制器,开关
表示层
解决什么问题
- 数据传输的加密(加密通信:https)与多数据格式的解析(比如图片,音频,视频,收到的都是二进制形式的,如何转换成原始的数据)
- 主要解决安全问题与丰富的文件格式的支持
应用层
解决什么问题
- 展示发送方发送的数据最原始的样子(页面)
如何展示?
- 发送方与接收方必须是相同的网络传输协议,采用相同一套的数据排版方式,
- 这样拿到数据之后才知道每个数据怎么使用,放到那个位置,而不是接受一堆二进制数据.