码迷,mamicode.com
首页 > 其他好文 > 详细

OSI七层模式概述

时间:2017-07-11 01:03:11      阅读:255      评论:0      收藏:0      [点我收藏+]

标签:品牌   udp   简单的   connect   center   asc   物理层   模型   电脑   

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七层模式概述

标签:品牌   udp   简单的   connect   center   asc   物理层   模型   电脑   

原文地址:http://www.cnblogs.com/Oushangrong/p/7148206.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!