

继IBM公司提出第一个网络体系结构,很多大大小小的公司都提出了自己的网络体系结构,但是这些网络体系结构只有使用该公司的产品才能使用这些网络体系结构,所以这样对于实现网络上的互联互通是很困难的。
所以,为了解决这个问题,OSI参考模型诞生了!


(记;忆:物联网叔会使用)

应用层:



比如说,连上网络才能使用的程序,QQ、微信就是,而记事本就不是。

表示层:


不同的主机的编码和表示方式都可能不太一样,所以为了使不同的主机都能实现数据或信息的交换,就需要表示层来实现这样一个功能。
比如说,你不懂外语,想要和外国人交流就需要翻译官帮你们翻译,而表示层就充当着翻译官这样的职位。
再比如说,数据链路上传输的是比特流的形式,最后传输到主机上如果想要呈现一个图片的格式,这个时候就需要用到表示层来实现格式变换。

比如说,微信聊天中告知微信支付密码,那这样一句话放在链路上传输的时候就需要先在发送端进行加密再传输,而接收端就会进行解密。

比如说,进行视频聊天,而聊天视频的图像数据非常大,发送端会先把图像进行数据压缩,然后再放到链路上传输,最后到接收端再进行数据恢复。

会话层:




会话层建立一个连接,然后数据才能传输过去,进而表示在接收端设备的屏幕上面。
比如说,在浏览器打开两个网页(两个会话),说明电脑跟两个网页建立了同步,这就是建立会话;但是现在还没有进行数据的传输,假如其中一个网页打开的是电影,我想点快进,那么电影的画面就会往前播放,但是不会影响另外一个网页的变化,说明会话之间是彼此独立、互不影响的,这就是管理会话;而关闭网页就是终止会话。

比如说,需要发送一个很长的数据,在数据流的几个部分分别切开插入一个校验点,万一网络出现问题了、通信失效了,会话就会突然被关闭,就可以恢复到校验点继续通信。

传输层:


端到端的通信:
不同主机内两个进程之间的通信,每一个进程都会用一个编号(端口号)来标识它。

可靠传输:
比如说,发送一个大文件,大文件传输的时候会分成一个个的报文段或数据报,而接收端每收到一个报文段或数据报都会返回一个确认表示收到了,可以进行下一个报文段或数据报的发送了,而发送端收到了这样一个确认信息才能往下发送,如果发送端没收到确认信息,会再次发送一次报文段或数据报,直到收到的接收端的确认为止,才能发送下一个报文段或数据报。
不可靠传输:
不需要建立连接,也不用管数据会不会丢失、收没收到确认机制什么的,直接发送报文段或数据报即可,一般适用于小数据的传输。

比如说,传输过程中报文段丢失了,或者传输顺序错了之类的,这是传输层就起到了纠正错误的功能。

(端对端)
比如说,发送端给接收端发送很多文件,而接收端的接收能力是有限的,一次性全部接收不太可能,而这时就需要减缓发送端的发送速度,这是对发送端和接收端速度的协调。(限制发送端的速度)


比如说,使用微信和QQ都需要发送消息,假设微信进程的端口号是1,QQ进程的端口号是2,那么这两个进程发送消息都使用到了传输层,这就是复用;而接收端接收消息就可以通过进程的端口号从传输层来识别这是哪个进程的消息,这就是分用。

网络层:



数据报与分组就像父与子的关系,数据报过长的时候就可以把数据报切割成一个个小的分组再放到链路上传递,这样就会使传输的过程中更加灵活,损失也会更小。

选择最合适的路由


与传输层流量控制一样。(限制发送端的速度)

通信两结点之间约定一些特定的规则,比如奇偶校验码,接收方就会根据这些规则来检查分组是否出错,能纠错就纠错,不能纠错就会直接丢弃,这样就能确保传输层的数据无误。


与流量控制有些不同,拥塞控制是控制整体(包括主机和中间系统)速度。

数据链路层:




数据报组装成帧之后就会形成一个比较长的比特流序列,对于这样一个比较长的比特流序列就需要定义一下哪里是帧的开始,哪里是帧的结束,只有这样定义好了,才能在接收端收到一个帧的时候提取出帧(数据)的部分,进而上交给网络层,实现下一步的解封装。

对于这两种错误,数据链路层都会有相应的检错和纠错的方法,如果发现有差错,数据链路层可能就会简单地丢弃出错的帧,以免在网络传输下浪费资源,如果需要纠错,就可以使用一些可靠传输协议来纠错。

(点对点)
与传输层、网络层流量控制一样。(限制发送端的速度)


比如说,在广播式网络中,数据链路层就需要处理这种控制问题了,控制一下哪台主机可以占用信道,因为在广播式网络中,同一时间只能有一个人在发送信息,其他主机都是处于监听的状态,所以数据链路层就可以控制对共享信道的使用。

物理层:





物理层不需要对数据做太多事情,只需要把比特流转成电信号的形式,然后放到链路上传输就行了,不需要改动数据。

比如说,确认连接电缆的插头应该有多少引脚、没条引脚都应该如何连接……

单工:
数据只在一个方向上传输,不能实现双方通信。
例如:电视、广播。
半双工:
允许数据在两个方向上传输,但是同一时间数据只能在一个方向上传输,其实际上是切换的单工。
例如:对讲机。
双工:
允许数据在两个方向上同时传输。
例如:手机通话、QQ、微信


比如说,发送端发送一个1,接收端就能准确无误地接收一个1。

规定一下什么电压表示1,什么电压表示0。

本文探讨了OSI参考模型如何解决网络体系结构封闭导致的互联问题,涉及应用层的QQ、微信示例,表示层的编码转换和加密功能,会话层的会话管理和错误恢复,传输层的端到端通信与可靠性,网络层的数据报与路由选择,以及数据链路层的帧传输和错误处理。
1105

被折叠的 条评论
为什么被折叠?



