您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件开发专栏 > 网络/安全 > 正文

3分钟让你练就网络七层模型的“乾坤大挪移”

发表于:2019-04-11 作者:老王谈运维 来源:今日头条

我们知道两台计算机直接的联系是依靠网络来完成的,但是网络的信息传递又是依靠七层模型(即 物理层、数据链路层、网络层、传输层、会话层、表示层、应用层),我们称之为----- OSI参考模型。但什么又是OSI模型呢?

OSI模型


OSI模型是解决一台机器上的一个应用软件与另一个机器上的应用软件所进行的信息交互。因为计算机与计算机进行联系,他们都是硬件设备,所以想要建立联系,就必须有软件的支持。因此,七层模型是通信基础。所以,下面我们先来介绍第一个 OSI模型。

对于以上的疑问,我们就来一一对答。首先,OSI 是什么?英文名称(Open System Interconnect)开放式系统互联模型。它就是用来表示计算机通信原理的形象化表示。

3分钟让你练就网络七层模型的“乾坤大挪移”

OSI 模型示意图

是不是觉得很难记,接下里教大家一个简单的方法记忆下来各层是干嘛的。由下向上来介绍:

1. 物理层:

网络的通信是需要硬件的吧,硬件大多和物理有关,所以记作为 物理层。在这里这个硬件设备的作用就是将网络上传递过来的信息转换成数字信号,即二进制数字,0与1的数据流,在这里我们叫做比特流。所以物理层的传输单位是 比特流(byte)。比方说:我将信息从计算机A要传递到计算机B,首先物理层网络传递过来的信息转化为比特流。

2. 数据链路层

现在通过物理设备,这里叫做电线可以发送比特流了,我现在还希望用无线广播的形式来传输比特流。并且我还要保证我传输的比特流正确与否,要具有纠错要校验的功能。所以,数据链路层就诞生了,它具有纠错和校验以及确保数据的可靠传输作用。

3. 传输层(在这里和网络层进行调换)

现在我可以做到了准确的将比特流发送到另一台计算机上了,但是当我在发送音乐和电影等大量数据流的时候,就会发现网络会经常中断。因此,我就要对这些数据流进行封装,以确保准确性。如图送外卖一样,将一份份外卖包装起来。一个个送达,贴上标签,提高准确性。当送一份两份外卖,我不做标签还能记得要送到哪里,但当我要送几十份甚至是上百份外卖的时候,我就得在外卖上贴上标签。因此,先发明了传输层,怎么进行传输,传输层的作用就是要对数据进行封装,贴上标签和地址。

在传输层我们要重点认识到 TCP,UDP两个重要概念:

(1)TCP 传输控制协议

特点:

  • TCP 是面向连接的。(如图视频通话一般,先连接,确保接通后,然后挂断,TCP连接才结束)
  • TCP 是可靠性连接。 即自己发出去的数据,一定保证误差值,无丢包等现象出现
  • TCP 的连接只能是一对一的服务,比如我们两个打电话,只能同时我们两个人手机通话在一起。
  • TCP 支持双向通信,即你可以给我发信息,我也可以给你发信息。

(2) UDP 用户数据协议

特点:

  • UDP 多用于一对多,比如像广播一样传达给很多人。也支持一对一,多对一,多对多通信。
  • UDP 不需要连接
  • UDP 不会发生阻塞的现象,比如多人会议视频
  • UDP 是面向报文的

4. 网络层

上面我们说了传输层将数据流进行了封装打包,但是现在又有一个问题了,有很多台计算机啊,怎么才能准确的发到我想要发到信息的那台计算机呢?这个时候就得需要路由器来完成了,所以网络层诞生了。因为,在现实中很多网络选址都是由路由器来完成的。在网络层里,我们应用了IP协议这一知识点,对于IP协议有哪些理解呢?

IP协议,也叫做IP数据报,简称数据报。所谓的IP层就是负责将低一层次的数据包发送到更高一级别的数据包;通俗的理解就是将以太网的设备驱动程序发送到TCP/UDP层去,反而言之他也可以将高一层的协议内容发送到低一层的。IP协议中包含的IP地址里面有发送信息的计算机的地址(源地址)和接收此条信息的计算机地址(目的地址)。IP协议的作用就是,计算机A要从计算机B发送信息,可以通过H,G,K,或者K,J,H等等多路径,而哪一条是最佳路径呢,这就是网络层的事,即发明了IP包,IP地址的概念。

5. 会话层

现在我们可以做到了可以将数据包,打包封装好,准确的发送到计算机上。但是这里面是有一个缺点的,就是我每次都要用TCP去打包,然后利用IP协议去找合适的路线发送过去?但是这些都是手动完成的,少量的数据量人工还能处理,但遇到大批量的数据量,你就得实现自动打包来处理了。这里要是有一个可以自动打包,寻址来发送数据流的是不是就更好了呢。对此,会话层就应用而生了。由此,我们可以看出来,会话层的作用实现自动打包,发包(指IP包),然后自动寻址的功能。

6. 表示层

现在我已经能够将数据包打包封装准确的发送到我想要发送过去的那台计算机了,并且此过程可以实现了自动完成,不需要手动完成。但是现在又有一个问题出现了,如果我要从Mac上发送信息给Windows用户,怎么办呢?由于是两个系统,很多语法,指令都不一样,无法兼容啊。为此,我们就让表示层来产生了,表示层就是让我们解决各个系统之间可以流畅发送信息的过程。是应用程序和网络的翻译官,比方你在手机APP上查询你的银行卡账户时,当你输入你的账号和密码时是要被加密的,而银行系统那一端在接受你的请求时,需要将编码解密,然后返回结果给你。表示层起到的是加密和解密的作用

7. 应用层

应用层就是用来封装各种协议的,可以提供用户更好地使用它。

OSI七层模型协议概述,主要阐述以下五种,会话层和表示层经常被归类到应用层里面

3分钟让你练就网络七层模型的“乾坤大挪移”


阐述一下七层模型的工作原理:

例如下图的计算机A,想要发信息给计算机B。计算机A中的应用程序先将需要发送的信息发送到应用层,应用层提供网络接口,信息进入Inten网络中,然后传送到表示层,表示负责将信息加密和解密。及转化成计算机可以识别的统一语言,然后表示层又将信息传送到第五层(会话层),会话层的作用就是将传递来的信息,进行自动打包封装,将数据流自己寻找地址。将数据流同步和更新同步起来。

接下来,信息又被发送到第四层(传输层),传输层的作用就是将这些传递来的信息一个个封装起来,贴上标签,贴上地址,然后传递到第三层网络,封装成一个整体IP包,IP包里含有源站点和目的地址。然后网络层再将信息转发到第二层(数据链路层),数据链路层的作用确保将信息转化为帧为单位,确保顺序发送和差错检测和校验,然后数据链路层又将信息发送到第一层(物理层),物理层则通过中继器,通信设备将数据流传送给计算机B,计算机B的物理层接收到信息,从物理层依次由下往上传递到应用层,然后信息传递到计算机B。

两台计算机之间的信息流交换有啥特点呢?

3分钟让你练就网络七层模型的“乾坤大挪移”

  •  
  • 两个不同的计算机,都有相同的层次结构
  • 每层对应的结构都是通过各自的协议进行通信
  • 由图中可以看出,左边而言上层使用下层的服务,然后下层为上层提供服务。
  • 不同系统之间都有相同的功能,创造一个更好地互连环境

谈到这里,对于网络七层模型,你是不是都记住了呢?当所有的公司,组织,个人都遵从了OSI这样的规范,这样我们的网络就可以互联了,形成了互联网。我们就可以相互间的进行交流了。