OSI/RM:诞生于童话故事中的计算机网络体系结构

深夜中,在一家美国酒吧坐着几个正在谈论迪斯尼电影里的7个小矮人,他们把小矮人的名字写在餐巾纸上,有人开玩笑说7对于网络分层是个好数字,这几个人就是制定OSI标准小组的成员,后来OSI真的就设计成了七层模型,不过给七层模型重新起了听上去更科学的名字,OSI模型就这样诞生了。

1984年ISO(国际标准组织)发布了ISO/IEC 7498标准,即OSI开放系统互联模型,有兴趣的朋友可以看一下,具体链接:Publicly Available Standards
OSI/RM:诞生于童话故事中的计算机网络体系结构

一 各层功能

1 应用层

应用层相当于买家和商家。

应用层好比在网购时的买家与商家,是网购平台中的终端。在OSI网络参考模型中应用层是最顶层。

2 表示层

会话层相当于是商品打包。

当客户下单后,商家需要打包商品,一般是将商品装载一个箱子里,这样除了买家和商家其他人并不知道箱子里面装的是什么,买家收到商品时拆开箱子才可以看到商品是什么,
在表示层中类似的功能就是加密、解密。
有的时候如果商品比较大,比如说买了一个自行车,商家还需要将自行车拆解成具体的零部件,这样可以压缩商品占据的空间,同时还要给买家附带上安装说明书,买家收到商品后按照安装说明书将零部件组装自行车,在表示层中类似压缩解压和编码解码。

3 会话层

会话层相当于是网购平台。

会话层相当于网购平台,商家的买家通过平台取得联系,在会话层中相当于是双方建立会话。
通过网购平台客户与买家沟通好后,买家下单,下单之后商家发货,买家收到货后确认收货,在会话层中好比对会话开始和结束的控制。

4 传输层

传输层相当于是快递公司网点。

从现在开始,快递公司开始介入业务,商家要发送的商品被揽收到商家所在城市的快递网点,最终货物会被送到买家城市快递公司网点,之所以举商家和买家在不同城市的例子,是因为传输层主要是端到端的传输,如果不在一个城市那可定先要解决两个城市之间的运输问题,快递小哥不可能骑车把货从深圳运到哈尔滨。
对于用户来讲两个城市的快递网点屏蔽了具体的运输过程,商家只要将商品交到快递站点就可以了,至于快递公司是通过怎样的方式送到客户城市所在站点的过程,商家并不关心也不知道,相对的买家也不关心这个过程,当然实际是从快递公司揽件开始就不再关心传输过程,因为是举例说明,所以暂且忽略一些实际的快递流程细节。网络的传输层也类似的对上层屏蔽了底层的具体传输细节。
快递公司装完货物要核对具体的派送单,看看有没有落下的货物,有落下的货物还要从发,客户城市快递网点收到货物后也要对货物做清点确认接收工作,在传输层中会有不仅要有错误检测功能,还要有错误补偿机制,这在传输层以下的层是没有的,比如数据链路层,当检测到错误就会直接丢弃相应的包,这也就是为什么说传输层为底层提供可靠的数据传输服务。

5 网络层

网络层相当于快递公司实际的干线运输过程。

在实际运输中,快递公司需要首先要制定较为合理的路线,商家的城市和买家的城市距离比较远的话,那中间可能还会经历很多次的中转。
网络层为不同网络间的主机通信提供网络寻址和路由转发,同时还要确定最佳的数据传输路径。

6 数据链路层

数据链路层相当于快递公司派件。

买家城市的快递员根据客户所在小区门牌号的详细地址将货物交到客户手中,如果快递小哥发现找不到这个地址,或者进去一看是个公司买家的电话又打不通,那小哥一着急就得大声喊了,XX先生是哪位?
在数据链路层做的事就是让数据通讯的双方能够找到对方,并且建立点对点的数据传输通道,如果找不到对方要进行广播寻址。

7 物理层

物理层相当于是基础设施。

要致富先修路,不管是快递小哥的派件还是跨城市间的赶路运输,这里面都缺少不了道路、铁路、航空等基础设施。
我们知道路有很多种路,板油路、水泥路还有铁路,不同的材料修建不同的路,构建物理层也同样有很多不同的传输介质和设备,不同的传输介质和设备具有不一样的电气特性及不一样的通讯协议。就好比不同的道路可以承载不同的重量和速率一样。

二 OSI参考模型中的数据流向和对等通讯

OSI/RM:诞生于童话故事中的计算机网络体系结构
发送方将数据从上层向下层传输,直到最下面的物理层,而接收方从物理层开始向上层传递,直到与发送方发起数据传输的对等层(发送方与接收方相同的层就是对等层,比如发送方的网络层与接收方的网络层)。
OSI参考模型中只有对等层才可以相互识别和通讯,因为相同的层有相同的协议,双发有“共同语言”,但对等层并不是直接通讯的,需要借助下面的层提供的服务。

三 OSI参考模型数据封装

OSI/RM:诞生于童话故事中的计算机网络体系结构
在OSI模型中习惯把每层的数据单元都称为PDU(Protocol Data Unit),PDU是每一层的数据单位,表示方式一般以L(x)PDU的格式,x代表层数。例如L2PDU代表的是第二层数据链路层的数据单元。
不同的层包括的内容和格式也不一样,每经过一层就增加一层头部,其中数据链路层要追加一个尾部FCS,起到校验帧头完整性的目的。

四 网络为什么要分层

其实最简单的道理就是开发中的模块化思想,将功能独立,职责清晰的模块抽离出来,做为独立的单元,这样可以方便维护并且达到解耦的目的, 这就是分层最本质的思想。