OSI七层网络参考模型

1. OSI参考模型初步了解

OSI,英文为Open System Interconnect,意为开放式系统互连,国际化标准组织(ISO)指定了OSI模型,这个模型把网络通信的工作定义成7个框架,分别是物理层,数据链路层,网络层,传输层,会话层,表示层,应用层,即OSI开放式系统互连参考模型。

这个参考模型的目的就是解决网络通讯,比如说华为电脑要与苹果电脑进行通讯,但这两台电脑来自不同公司,就像只会中文的人不能与只会英文的人交流,但是如果大家都统一使用OSI网络模型来沟通情况就不一样了

OSI参考模型也采用了分层结构的思想,即把一个网络系统分成若干层,每一层都去实现不同的工作,每一层的功能都以协议描述,该协议定义了每一层与相对于需要通信的网络系统的等层的规则和约定,这实现了当网络出现问题的时候可以从一个宏观的整体去分析和解决问题。每一层向相邻上层提供一套确定的服务,并且使用与之相邻的下层所提供的服务。从概念上来讲,每一层都与一个远方对等层通信,但实际上该层所产生的协议信息单元是借助于相邻下层所提供的服务传送的。因此,对等层之间的通信称为虚拟通信。

OSI七层网络参考模型与数据流通过程-LMLPHP

2. OSI参考模型理解

我们先用上面所说的华为电脑和苹果电脑进行通信的例子,先用最通俗的语言来解释OSI七层参考模型每一层的各施其职。假设现在苹果电脑自己用应用软件搭建了一个网站,华为电脑想要访问这个网站就需要软件应用了,比方说用浏览器访问网站,两个应用具体需要如何进行交互就是应用层的事情了,应用层的功能不是为了应用什么应用程序,而是为了如何沟通,常见的应用层协议就是HTTP了。应用层就是最接近用户的那一层,沟通的时候不是直接与另一应用层进行沟通,实际物理上的连通是需要物理层的。

  • 物理层:我们要发送出去的数据就是无数的0和1,这就是我们所说的“比特”,物理层就是将这些比特传输出去,传输媒介有电、光或者其他形式的电磁波来表示和传输信号。数据从网络接口出去之后会经过很多的网络拓扑并不是一条线直接传输过去的,因此需要中继器和集线器这样的设备,但数据去到哪一台设备是需要定向的,这时候就需要高级一点的层——数据链路层。
  • 数据链路层:在数据链路层这里,基本传输单位是“帧”,在传输过程中可能出现0变成1,1变成0,所以会进行差错检测,当发现数据错误时候可以重传数据帧。另外设备的传输能力和接收能力也是一个问题,所以会进行一定的流量控制。在这一层中,上层数据加上源和目的方的物理地址(MAC)地址封装为数据帧,MAC地址就是用来标识网卡的物理地址(全球唯一),为了可以通过MAC地址对不同设备进行数据的传输,就出现了交换机,发送端发送数据的时候,交换机就知道了发送端的MAC地址,如果交换机知道了接收端的MAC地址就可以传输过去了。
  • 网络层:但是仅仅靠网卡来进行通讯效率是不高的,比如说两个设备用的同一个厂商的网卡且MAC地址只相差一个字母,而它们相隔十万八千里,物理地址此时就很难做出快速定位。因此需要IP地址来进行寻址和路由选择。IP这样的逻辑地址就是实现点到点的过程了。网络层就是以路由器为最高节点俯瞰网络的关键层,它负责将上层数据加上源和目的方的逻辑(IP)地址封装成数据包,实现数据从源端到目的端的传输。网络层进行逻辑地址寻址,实现不同网络之间的路径选择。
  • 传输层:虽然有MAC和IP地址可以抵达对方的主机,但是对方的主机可能运行着无数个软件进程,这时就需要传输层了。传输层是计算机通信体系结构中关键一层,传输层定义了传输数据的协议端口号,以及流控和差错检测。将上层应用数据分片并加上端口号封装成数据段,或通过对报文头中的端口识别。传输层实现了网络中不同主机上的用户进程之间的数据通信,为用户提供了进程到进程的服务。传输层起到了承上启下的作用,承接上层软件应用,下启网络数据传输。
  • 会话层:会话层就比较容易理解,它就是用来维持你的登录状态让你不需要每一次都输入密码,当然网站也会管理和控制你的登录状态,会话层在这里的作用就是负责维护两个节点之间的传输联接,确保点到点传输不中断,以及管理数据交换等功能。
  • 表示层:表示层也很容易理解,就是将接收到的数据转化为二进制的计算机语言、数据加密和解密、数据压缩和解压等,它提供了数据的安全传输。
  • 应用层:应用层就是最接近用户的一层了,是人机交互的窗口。

通过以上这些应该就对ISO模型有所了解了吧,下面来总结一下:

OSI七层网络参考模型与数据流通过程-LMLPHP

3. 数据流通的过程

了解了各层的作用现在就可以把全部关联起来:

  • 传输层将报文连同端口号封装成段:
    OSI七层网络参考模型与数据流通过程-LMLPHP

  • 段来到网络层,加上IP地址,封装成包,这里的包是含有目标IP地址的:OSI七层网络参考模型与数据流通过程-LMLPHP

  • 但因为目标IP地址不是同一个网络下的,要发送到其他的网络就要经过默认网关;这里就有一个问题,客户机主机最初并不知道默认网关的MAC地址,没有办法封装成帧,这个时候就可以通过ARP协议进行广播找到网关IP对应的MAC地址,把包封装成帧,源MAC地址填写自己的,目标MAC地址填广播地址的:OSI七层网络参考模型与数据流通过程-LMLPHP

  • 默认网关解封帧之后发现了MAC地址,再解封包发现了IP地址,就会把客户端MAC和IP关联为一台主机,接着默认网关将自己的IP和MAC地址打包为帧,再返回客户机,这样客户机就知道网关的IP地址了:OSI七层网络参考模型与数据流通过程-LMLPHP

  • 接着客户机就可以发送数据,客户机通过比特流发送到默认网关,默认网关解封发现这些数据是发送给自己的,同时也发现目标IP地址是在另一个网络中的就会进行路由转发最终到达目的网络,如果目标网关知道目标IP地址和MAC地址是哪一台主机的,就可以封装成帧直接发送数据,如果不知道的话,也是可以通过ARP协议喊一下就可以了

以上就是数据流通的基本内容了,接下来看一下每一层对应的协议:

本篇文章参考了B站博主“技术蛋老师”的视频OSI七层网络参考模型,该视频中有更加丰富的动画解释。

09-21 07:23