例说七层OSI参考模型

2020-06-30 14:34:06 浏览数 (1)

OSI并不是一个协议,也不是一项技术,是一个参考模型。OSI(Open SystemInterconnect),即开放式系统互联。 一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互连模型。它把我们使用的网络架构划分成了7个层次。

图 8‑1 OSI参考模型

所以对于OSI参考模型只需要理解即可,不需要进行很深的研究。至于为什么选择这个模型进行网络互连,下面举一个简单例子:

假设甲公司经理要寄一份文件给乙公司的经理。

A. 甲公司经理老板喊他秘书过来,说把这一份文件寄给乙公司的经理;

B. 秘书拿到文件后,首先进行打包;

C. 最后选取了“EMS快递”,并且查到了乙公司的地址,填好快递单,交给了快递员了;

D. 快递则是把近期收到的快递装成了一个集装箱;

E. 快递公司找到了某卡车司机,说:“把这箱子运到乙公司所在的城市去。”;

F. 这封快递被送到了乙公司的经理秘书那去;

G. 秘书拆开快递,把文件递给了乙公司经理。

纵观整个过程,我们发现,1. 老总在把快递交给秘书时,他并不关心秘书是怎么打包的,也不关心秘书找了什么法子寄出去的,他只期待对方老总能收到即可;2. 秘书则既不关心“EMS快递”是如何具体用什么运输方式运到乙公司所在的城市的,又不关心这份文件的内容,只期待这封快递能够被送达对方的公司地址;3. “EMS快递”则只关心装着快递的集装箱能够被司机运往乙公司所在的城市,却不关心司机究竟走了什么路线,开了什么牌子的货车,也不关心这封快递信封里装了什么东西;4. 司机只关心怎么把集装箱运到目的地,而不会关心集装箱里面装的是什么;5. 乙公司的经理秘书则只关心既不关心“EMS快递”是如何具体用什么运输方式运到乙公司所在的城市的,又不关心这份文件的内容,只期待这封快递能够被送达乙公司经理手里;6. 乙公司经理在从秘书那拿到快递时,他并不关心秘书是怎么拿到快递的,他只关心快递内文件的内容。

OSI 7 层模型则与之类似,都是下层为上层提供传输服务,不关心上层传输的内容,而上层也不关心下层传输的手段,只期望能将信息最终发到通信对端的相应层次上。

再举个例子:

以日常从淘宝购物后,货物从厂家到顾客的运输过程为例来说明。货物运输过程分为以下几个步骤:

A.顾客打电话通知厂家已经在淘宝下订单,购买家具;

B.厂家联系打包工人,将家具拆卸装箱,并且附上安装图纸;

C.打包后联系快递公司,快递员A负责将每个箱子写上寄件人姓名,收货人姓名以及地址联系方式,将箱子交给物流公司,将箱子装车;

D.货运员A负责将货物通过汽车运输到火车站;

E.通过铁路运输,将装有家具的箱子运送到顾客所在的城市;

F.货运员B负责将箱子运输到快递公司,快递员B将箱子送到顾客家中;

G.组装工人将收到的箱子拆箱,按图纸进行组装,最后顾客收到了完整的家具。

再补充一句,虽然设计上是下层和上层是服务和被服务的关系,互相不关心实现细节,实际上出于这样或那样的原因,多少还会有一些相关性,并不完全独立,但是层次结构还是明确的。

最后以经典的邮件发送为例说一下每一层具体的作用:

A.首先来到的是应用层。这一层确定了你的邮件是以什么方式发送出去,是SMTP还是IMAP?在发送邮件的同时,你还是浏览网页查阅资料,你在点击每一个链接的时候,应用层确定了是用HTTP还是HTTPS。或者说,用户通过应用程序向应用层提出了一系列应用请求,比如发送邮件、访问网页等。

②表示层收到了发送邮件的请求,这时它会将需要传输的数据进行编码和转换,形成一种大家都认识的表现形式。我们都知道,不同的操作系统对于文字、语音、图片、视频的编解码方式都是不同的,假如你用的是一台Windows 10操作系统的电脑,而你的同事用的是Mac OS操作系统,虽然操作系统的编码处理方式不同,但在数据传输过程中如果没有一个统一的数据格式的定义,恐怕对方收到数据后恢复出来的内容和你发出的大相径庭,甚至根本就是不可理解的。

③通过表示层的处理,数据已经准备好了,接下来就到了会话层出马的时候了。你的主机会帮你与邮件服务器建立会话,主机会问服务器:“你好,我是主机,你是邮件服务器吗?我需要和你建立连接。”,服务器会答复说:“你好,我是邮件服务器,连接已经建立。”,这时,发送邮件的会话就算是建立好了,当完成邮件数据传输后,表示层又会断开连接,即终止会话。刚才说过,在发送邮件的同时,你还是浏览网页,你点开了很多个页面,每打开的一个页面都是你和对方建立的一个会话。同时你还在和同事QQ聊天,每个聊天窗口背后其实也是一个会话。会话层就是帮你和对方建立连接的一个过程。就像打电话,你要先和对方接通电话,然后才能开始通话。

④建立连接后就可以开始进行数据传输了。传输层接收来自应用程序的各种数据:文字、语音、图片、视频,然后将这些数据合并到一个数据流中,再将数据进行分段并编号,最后发送出去。在数据传输的过程中可能会出现各种异常,比如数据包丢失、数据损坏等等,传输层就承担了保证数据传输正确的功能,如流量控制、数据重发等。简单的说,传输层就是表示层准备好数据、会话层建立连接后,正式开始数据传输的第一步。

⑤到了这个时候,数据就要走出家门出去闯荡了。临出门前,你告诉它:“去找邮件服务器吧,它在深圳,门牌号是XX路YY号”。网络层可不知道这个门牌号的位置,但是它知道怎么去深圳,就像你从北京寄快递到深圳,快递公司只知道怎么去深圳最快,但你要寄到的这个地址恐怕就只有当地的快递员才知道了。网络层就是快递公司,下面要讲的数据链路层就是快递员。网络层了解每个网络的编址、会跟踪设备在网络中的位置、可以准确计算出最佳的数据传输路径。网络层可以计算出从你所在的北京到深圳有哪些路线,哪条路线此时此刻是最快的。

⑥数据终于到了深圳,到了快递员——数据链路层手里,与网络层类似,数据链路层对网络虽然不熟,但是却对本地网络中的每台设备了如指掌。它可以通过硬件地址找到每一台设备。数据链路层从数据这里得知要去XX路YY号,轻而易举地就将数据送了过去。

⑦最后说下物理层,这一层就相对简单了,就是信号转换和物理传输,将数据转换成光信号、电信号,然后通过光缆、铜缆传输。

物理层:

作用:承载比特流的传输

特点:看得见,摸得着。比如集线器(hub),中继器,网线,光纤,光猫等

物理层就是我们的传输介质,我们说每一层为上层提供服务,所以我们物理连接如果有错误的话,那么数据链路层也不能用,数据链路层不能用网络层就也不能用,以此类推。

数据链路层:

作用:控制数据帧在物理链路上传输

设备:网桥,交换机,网卡等都是数据链路层设备

协议:PPP,HDLC,Ethernet,FDDI(令牌网)

数据在经过数据链路层的时候会封装上帧头和帧尾,这时候我们把这个数据叫做数据帧,这个帧头帧尾里包含了源设备的mac地址和目的主机的mac地址,我们的二层就是依靠mac地址转发数据的。

Mac地址:网络设备的身份证,全球唯一 。

网络层

作用:为数据在节点之间传输创建逻辑链路,并分组转发数据

协议:ip,ipx,icmp

设备:路由器,防火墙

数据在到达网络层的时候叫做数据包,就是说我们同网段的终端进行互访的时候交换机会查mac地址表互访,但是不同网段进行互访的时候,因为数据链路层的协议看不懂ip地址,所以将数据交给我们的三层协议去进行处理。

传输层

作用:建立连接,处理数据包错误,数据包次序

协议:tcp,udp

两个应用程序建立连接之后,传输层为他们处理数据在发送的时候产生的数据包错误,数据包次序,进行重传。数据包在传输层处理的时候叫做数据段。

0 人点赞