这个模型学了好多次,总是记不住。今天又看了一遍,发现用历史推演的角度去看问题会更有逻辑,更好记。本文不一定严谨,可能有错漏,主要是抛砖引玉,帮助记性不好的人。总体来说,OSI模型是从底层往上层发展出来的。

这个模型推出的最开始,是是因为美国人有两台机器之间进行通信的需求。

需求1:

科学家要解决的第一个问题是,两个硬件之间怎么通信。具体就是一台发些比特流,然后另一台能收到。

于是,科学家发明了物理层:

主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特。

需求2:

现在通过电线我能发数据流了,但是,我还希望通过无线电波,通过其它介质来传输。然后我还要保证传输过去的比特流是正确的,要有纠错功能。

于是,发明了数据链路层:

定义了如何让格式化数据以进行传输,以及如何让控制对物理介质的访问。这一层通常还提供错误检测和纠正,以确保数据的可靠传输。

需求3:

现在我能发正确的发比特流数据到另一台计算机了,但是当我发大量数据时候,可能需要好长时间,例如一个视频格式的,网络会中断好多次(事实上,即使有了物理层和数据链路层,网络还是经常中断,只是中断的时间是毫秒级别的)。

那么,我还须要保证传输大量文件时的准确性。于是,我要对发出去的数据进行封装。就像发快递一样,一个个地发。

于是,先发明了传输层(传输层在OSI模型中,是在网络层上面)

例如TCP,是用于发大量数据的,我发了1万个包出去,另一台电脑就要告诉我是否接受到了1万个包,如果缺了3个包,就告诉我是第1001,234,8888个包丢了,那我再发一次。这样,就能保证对方把这个视频完整接收了。

例如UDP,是用于发送少量数据的。我发20个包出去,一般不会丢包,所以,我不管你收到多少个。在多人互动游戏,也经常用UDP协议,因为一般都是简单的信息,而且有广播的需求。如果用TCP,效率就很低,因为它会不停地告诉主机我收到了20个包,或者我收到了18个包,再发我两个!如果同时有1万台计算机都这样做,那么用TCP反而会降低效率,还不如用UDP,主机发出去就算了,丢几个包你就卡一下,算了,下次再发包你再更新。

TCP协议是会绑定IP和端口的协议,下面会介绍IP协议。

需求4:

传输层只是解决了打包的问题。但是如果我有多台计算机,怎么找到我要发的那台?或者,A要给F发信息,中间要经过B,C,D,E,但是中间还有好多节点如K.J.Z.Y。我怎么选择最佳路径?这就是路由要做的事。

于是,发明了网络层。即路由器,交换机那些具有寻址功能的设备所实现的功能。这一层定义的是IP地址,通过IP地址寻址。所以产生了IP协议。

需求5:

现在我们已经保证给正确的计算机,发送正确的封装过后的信息了。但是用户级别的体验好不好?难道我每次都要调用TCP去打包,然后调用IP协议去找路由,自己去发?当然不行,所以我们要建立一个自动收发包,自动寻址的功能。

于是,发明了会话层。会话层的作用就是建立和管理应用程序之间的通信。

需求6:

现在我能保证应用程序自动收发包和寻址了。但是我要用Linux给window发包,两个系统语法不一致,就像安装包一样,exe是不能在linux下用的,shell在window下也是不能直接运行的。于是需要表示层(presentation),帮我们解决不同系统之间的通信语法问题。

需求7:

OK,现在所有必要条件都准备好了,我们可以写个android程序,web程序去实现需求把。

补充:

Socket:

这不是一个协议,而是一个通信模型。其实它最初是伯克利加州分校软件研究所,简称BSD发明的,主要用来一台电脑的两个进程间通信,然后把它用到了两台电脑的进程间通信。所以,可以把它简单理解为进程间通信,不是什么高级的东西。主要做的事情不就是:

A发包:发请求包给某个已经绑定的端口(所以我们经常会访问这样的地址182.13.15.16:1235,1235就是端口);收到B的允许;然后正式发送;发送完了,告诉B要断开链接;收到断开允许,马上断开,然后发送已经断开信息给B。

B收包:绑定端口和IP;然后在这个端口监听;接收到A的请求,发允许给A,并做好接收准备,主要就是清理缓存等待接收新数据;然后正式接收;接受到断开请求,允许断开;确认断开后,继续监听其它请求。

可见,Socket其实就是I/O操作。Socket并不仅限于网络通信。在网络通信中,它涵盖了网络层、传输层、会话层、表示层、应用层——其实这都不需要记,因为Socket通信时候用到了IP和端口,仅这两个就表明了它用到了网络层和传输层;而且它无视多台电脑通信的系统差别,所以它涉及了表示层;一般Socket都是基于一个应用程序的,所以会涉及到会话层和应用层。

OSI七层模式简单通俗理解相关推荐

  1. OSI七层模型简单介绍

    OSI七层模型 简单介绍 七层模型,亦称OSI(Open System Interconnection).参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,一般称为OS ...

  2. 计算机网络发展与OSI七层模式详解

    计算机网络的发展 计算机网络最早产生于20世纪50年代初,随着计算机技术和通信技术的不断发展,计算机网络经历了从简单到复杂,从单机到多机的发展过程,计算机网络的演变过程到底是怎样的,往下看. 发展时间 ...

  3. OSI七层模型简单理解

    转载: https://blog.csdn.net/yangpl_tale/article/details/49444699 网络中的七层协议为:应用层.表示层.会话层.传输层.网络层.数据链路层.物 ...

  4. OSI七层模型 简单易解(超详细)

    首先了解一下各个分层 三点综合,网络分层像"快递".网络分两个系统,端系统和中间系统,端系统相当于快递里的卖家和买家,中间系统是帮着端系统去调解,快递发件的快递公司,发件的是网络平 ...

  5. OSI七层参考模型详解

    原址 https://blog.csdn.net/qq_16093323/article/details/79582554 话不多说先上图! OSI七层模型基础知识及各层常见应用 目录 二. OSI基 ...

  6. OSI七层模型基础知识及各层常见应用

    OSI七层模型基础知识及各层常见应用 目录 二. OSI基础知识 三. OSI的七层结构 四. OSI分层的优点 五. OSI模型与TCP/IP模型的比较 六.OSI七层模式简单通俗理解 模型把网络通 ...

  7. 【网络编程】一、如何记住OSI七层协议模型,看完还记不住的来打我。

    学过计算机网络这门课的童鞋,一定都知道OSI七层协议模型. 那么现在闭上眼,能按顺序说出来的童鞋麻烦右上角点个赞,让博主看看有多少? 哇,0个赞,不是吧. 没关系,下面跟着博主的思路,看完本篇之后,我 ...

  8. OSI七层协议模型简单理解

    OSI是一个开放性的通信系统互连参考模型(Open System Interconnection) 各部分功能 物理层:物理层是OSI的第一层,是整个开放系统的基础.物理层为设备之间的数据通信提供传输 ...

  9. 20190502(OSI七层模型理解/Websocket理解/)

    1.OSI七层模型了解 物理层:网卡,网线,集线器,中继器,调制解调器 数据链路层:网桥,交换机,HUB 网络层:路由器 网关工作在第四层传输层及其以上 物理层 在OSI参考模型中,物理层(Physi ...

  10. 理解OSI七层模型(了解OSI七层模型,数据如何传输,封装,解封装)

    文章目录 理解OSI七层模型 什么是OSI七层模型 理解OSI七层模型 举例子 七层协议,分析过程: 数据传输过程 封装数据 解封装数据 数据是如何封装和解封装 理解OSI七层模型 第一层:物理层. ...

最新文章

  1. PAT甲级真题 1018 A+B in Hogwarts--python解法
  2. jquery ajax 省 城市 二级菜单 源码,利用了jquery的ajax实现二级联互动菜单
  3. 微服务架构及分布式事务解决方案
  4. [转载]Guice 1.0 用户指南
  5. codevs 3981 动态最大子段和(线段树)
  6. nedata实时监控服务器运行情况
  7. 如何用最傻的办法查看tensorflow-yolov3模型测试VOC数据集时预测值(图框)与真实值(图框)的对比效果?
  8. boost::filesystem模块实现Windows MAX_PATH的测试程序
  9. php获取昨日时间段内,PHP 获取 特定时间范围 类
  10. html判断坐标,js判断鼠标位置是否在某个div中的方法
  11. vision transformer(viT)教学视频【通俗易懂】
  12. 【转】100项PPT制作技术
  13. 欢迎使用CSDN-markdown编辑器萨达所大所大所大所
  14. 103000大写加零吗_金额大写前面要加零的有哪些
  15. IAR Systems
  16. 华为防火墙配置策略路由实现多个ISP出接口的智能选路
  17. 可视化-three.js 城市 波浪特效 城市 扫光 掠过效果
  18. 子类不能继承或覆盖父类的private方法
  19. 4.6 51单片机-EEPROM存储芯片(AT24C02)
  20. 【推荐算法 学习与复现】-- 逻辑回归算法族 -- LR

热门文章

  1. 【自考】数据结构导论
  2. 第十四章:【UCHome二次开发】uchome通用方法
  3. android手机恢复出厂设置,手机强制恢复出厂设置方法
  4. MyEclipse 注册码
  5. 细说.NET中的多线程 (六 使用MemoryBarrier,Volatile进行同步)
  6. Python学习笔记(4)-文件读取报错
  7. 《大型网站技术架构》读书笔记
  8. 如何卸载快压病毒流氓软件--不停自动下载安装App
  9. 信号处理simulink仿真-DSP系统工具箱
  10. 重庆江北鲁能旁边孩子学计算机,家长们注意!重庆多个区县中小学划片公布!这些学校民转公...