OSI七层模式概述

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OSI七层模式概述相关的知识,希望对你有一定的参考价值。

OSI模式概述

一台电脑由哪几部分组成?

    一般电脑是由CPU、主板、硬盘、显卡、显示器、外设这几个部分组成的。如下图所示:

技术分享

    问题:我们知道,组成这几个部分的零件都是由不同品牌的厂商生产的。那么不同厂商的配件为什么能够相互搭配呢?为什么不是一间厂商完整生产一台电脑呢?

  • 兼容性\\标准性

不同厂商的配件之所以能够相互搭配,就是因为各个厂商约定的一个协议,使得生产出来的模块提供了一个统一的接口,使其能兼容其他厂商的配件。

  • 分工合作

即便一个生产电脑的厂商也不会是完全使用自己的配件的。而是混搭其他厂商的配件。之所以这么做,是因为各个厂商都有自己的技术优势,而我们集大成者反而比自己闭门造车要强。

 

    类似于电脑组装:网络通信也需要这种分工合作、以及标准。不然不同厂商生产的电脑之间怎么进行通信呢?手机和电脑间又如何通信呢?

 

 

OSI七层模型

    OSI(Open System Interconnect)开放系统互联。是国际标准化组织ISO提出的一个定义链接异种计算机的标准主体结构。OSI采用了分层的机构化技术,共分七层,物理层、数据链路层、网络层、传输层、会话层、应用层

技术分享

    网络之所以要分层,也是跟组装电脑一个道理的。

  • 分层分工
  • 标准化\\兼容性
  • 便于问题分析

例如我们可以在命令行中ping某一个ip。如果ping通了这说明网络是通的,可以快速定位问题所在位置。

 

  1. 物理层    

功能:提供物理规范,如线缆标准,接口标准

  1. 数据链路层

功能:提供了二层寻址、二层数据转发功能。

设备:网桥、交换机

协议:PPP、Ethernet、ARP、RARP..

数据链路层在不同的厂商有不同的实现,主要应用于没有路由器的情况下。多台电脑相互通信的情况,这种网络称为局域网。同一局域网中,MAC地址不能相同

技术分享

    

 

问题:不同协议间肯定是不能进行通信的。那么我们该如何使两个局域网之间进行通信呢?

解决方案:增加一层"网络层"。

  1. 网络层

功能:提供了三层寻址,三层数据转发功能

设备:路由器

协议:IP协议

路由器主要是根据IP地址来进行不同PC间的通信的。虽然路由器工作再网络层,但它实际上是兼有数据链路层物理层的。所以在同一路由器下,IP地址、MAC地址不能相同,否则会发生冲突。当然路由器也存在一个IP地址,用于跟别的路由器进行通信,这样就可以屏蔽不同局域网协议间不能通信的问题了。

 

技术分享

 

     问题:仅仅通过路由器简单的发送数据可不行,如果因为网络的问题,导致数据丢失,数据传输不可控。这样就使得网络通信不可靠。

     解决方案:在网络层基础上,增加"传输层"

  1. 传输层

功能:担当了可靠的端对端链接。

协议:TCP、UDP

    提供了可靠或不可靠传输,能够纠正或失败重传,传输层通过端口号区分上层服务,并通过滑动窗口技术实现可靠传输、流量控制、拥塞控制等。传输层负责的是计算机之间的链接

    技术分享

问题:尽管传输层提供了可靠的链接,那么当有一个发送方对多个接收方时,我们如何确定数据传输给哪一个接收方呢?又如何与其建立链接、保持链接、删除链接呢?

     解决方案:增加一层"会话层"

  1. 会话层

    功能:担当会话管理。

在两台电脑间,两个不同的应用程序间的:建立会话区别于其他应用程序间的会话(如QQ的信息不会发送到浏览器中,使用端口号进行区分),保持会话删除会话的过程。

 

技术分享

 

     问题:我们两台电脑间的通信,不仅仅是文字的交互。而是有多种数据格式的。那么会话层提供不了这个功能。

     解决方案:增加一层"表示层"

  1. 表示层

功能:担当数据的显示

    使用何种编码方式。比如要传输的数据使用ASCII编码,视频还是二进制文件,是否要加密和压缩。发送端和接收端程序必须使用相同的编码方式,才能正确显示,否则就产生乱码。

问题:在现代软件开发中,如果我们编码还要根据不同编码方式进行代码实现,那么就不断进行重复劳动了。我们可以将表示层再进行包装吗?

解决方案:增加一层"应用层"。

  1. 应用层

功能:提供用户接口

软件:QQ/微信、浏览器等各种能上网的应用程序

协议:HTTP、HTTPS、OICQ、Telnet、SSH等

    提供用户接口,特指能够发起网络通信的应用程序。实际上,会话层,表示层、应用层也可以统称为应用层。这些都是软件工程师需要关系的细节。

 

OSI的工作过程

  • 数据封装:本质上是将用户数据加入寻址信息的过程
  • 数据解封装:本质上是封装数据包去掉寻址信息的过程。

例如:我们在使用QQ和朋友进行聊天时,我们只需要发送我们想要发送的文本信息即可(如:Hello)。那么电脑怎么就知道将Hello发送到对方的设备上呢?

技术分享就是通过OSI七层模型一层一层的将数据传输下去,在每一层中加上必要的信息,最终通过物理层发送到对方的物理层中,再一层一层将数据上传上去,去掉不必要的信息。最终将文本信息显示到对方的QQ上去。

 

 

 

 

 

 

 

 

 

 

 

 

下图来自:维基百科

 

技术分享

 

 

    

以上是关于OSI七层模式概述的主要内容,如果未能解决你的问题,请参考以下文章

属于OSI参考模型第七层的协议有那些?

OSI七层模式简单通俗理解

图解七层网络模型

第一篇 多多关照『计算机网络和OSI七层』

osi七层

iso的osi七层模型是哪七层?