文章目录

  • 1、七层、五层、四层模型划分
  • 2、记忆口诀
  • 3、各层的协议
  • 4、OSI 七层模型的通俗理解
    • 4.1、需求1:
    • 4.2、 需求2:
    • 4.3、需求3:
    • 4.4、 需求4:
    • 4.5、需求5:
    • 4.6、 需求6:
    • 4.7、需求7:
  • 5、Socket:
  • 6、网络七层模型和相应的协议图(转载)

1、七层、五层、四层模型划分

互联网的本质就是一系列的网络协议,这个协议就叫OSI协议(一系列协议),按照功能不同,分工不同,人为的分层七层。实际上这个七层是不存在的。没有这七层的概念,只是人为的划分而已。区分出来的目的只是让你明白哪一层是干什么用的。

每一层都运行不同的协议。协议是干什么的,协议就是标准。

实际上还有人把它划成五层、四层。

七层划分为:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。

五层划分为:应用层、传输层、网络层、数据链路层、物理层。

四层划分为:应用层、传输层、网络层、网络接口层。

2、记忆口诀

物联网,传输应用(五层)物联网传输,会话表示应用(七层)
物联网传话,表示应用(七层)

3、各层的协议

4、OSI 七层模型的通俗理解

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

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

4.1、需求1:

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

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

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

4.2、 需求2:

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

于是,发明了 数据链路层

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

4.3、需求3:

比如,把数据传输从A到F,不是直接从A到F,而从A开始,中间要经过B,C,D、E,可能有好多节点如K、J、Z、Y。怎么选择最佳路径,这就是路由要做的事。

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

4.4、 需求4:

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

那么,我还须要保证传输大量文件时的准确性。于是,我要对发出去的 数据进行封装 ,类似 快递打包,一组完整数据打一个包裹,一个包裹对应一个地址。

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

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

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

TCP协议是会绑定IP和端口的协议。

4.5、需求5:

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

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

4.6、 需求6:

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

4.7、需求7:

最上层是 应用层, 我们开发的各种应用,

  • 浏览器:通过定义 http 超文本传输协议;
  • FTP服务:FTP 文件传输协议;
  • 邮箱:SMTP,简单邮件传输协议;
  • POP3:邮局协议第3版;
  • telnet:TCP/IP终端仿真协议;
  • Finger:用户信息协议;
  • IMAP4:因特网信息访问协议第4版。
  • lpr unix :远程打印协议。

5、Socket:

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

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

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

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

6、网络七层模型和相应的协议图(转载)


上面图片转载: https://blog.csdn.net/u011441473/article/details/105125097

网络七层模型和对应协议的通俗理解相关推荐

  1. OSI网络七层模型和各层协议总结

    OSI网络七层模型: 7应用层: 规定通信协议:为用户的应用程序和各种网络服务之间提供相应的接口 (协议) 常见网络服务:www.Email.FTP, 6表示层: 把己方要发送的数据信息,翻译成对方表 ...

  2. Lesson 002 —— 网络七层模型

    Lesson 002 -- 网络七层模型 互联网的本质就是一系列网络协议.OSI(open system interconnect 开放系统互联)七层协议 或 tcp/ip 五层 或 tcp/ip 四 ...

  3. 网络七层模型与物联网三层模型

    前言 学安全,基础知识还是得要学习学习的吧. 网络七层模型 OSI参考模型全称是开放系统互连参考模型(Open System Interconnection Reference Model).这一参考 ...

  4. linux网络全局 之 含网络七层模型

    原文链接:https://blog.csdn.net/qq_28090573/article/details/89351234 一.网络七层模型 1.OSI的来源 OSI(Open System In ...

  5. 初识网络基础《网络七层模型详解》

    坚持原创输出,点击蓝字关注我吧 图片来自网络 目录 一.初识网络基础 二.网络七层模型详解 1.物理层 2.数据链路层 3.网络层 4.传输层 5.会话层 6.表示层 7.应用层 三.总结 一.初识网 ...

  6. 转: 深入浅出-网络七层模型

    转自 深入浅出-网络七层模型 - sunsky303 - 博客园引言 今天回顾一下--网络七层模型&&网络数据包 网络基本概念 OSI模型 OSI 模型(Open System Int ...

  7. 深入浅出-网络七层模型以及libcurl的使用博客地址

    深入浅出-网络七层模型 引言今天回顾一下--网络七层模型&&网络数据包网络基本概念OSI模型OSI 模型(Open System Interconnection model)是一个由国 ...

  8. 网络七层模型-理解及总结

    网络七层模型-理解及总结 引言 初识网络七层模型基本概念 引言 本文主要对网络七层模型做一个总结,便于后期查询与理解,如有不正确的地方请指正. 初识网络七层模型基本概念 OSI模型 OSI 模型(Op ...

  9. 网络七层模型都是哪七层,HTTP协议是在哪一层,Tcp协议在哪一层

    网络OSI七层模型: 物理层.数据链路层.网络层.传输层.会话层.表示层.应用层 其中,HTTP协议处于应用层,TCP协议处于传输层

最新文章

  1. 封装汉语自然语言处理中的常用方法(附代码:生成中文词云)
  2. SSM整合(基础框架)代码
  3. virtual server2005下创建citrix集群的一点记录
  4. Sci-Hub和 Alexandra 的基本信息
  5. 多线程join方法解析
  6. 1. Windows Powershell初接触
  7. 班级管理servlet项目开发详细讲解,其中涉及js、jq、ajax、等多项技术合计,本项目来源自网络,如有雷同,请私聊博主
  8. 基频和倍频的概念_小知识:关于倍频程
  9. Rockchip_双屏显示旋转方向调试文档
  10. Flutter 之页面状态保持
  11. 已经过去2周了,你感觉怎么样?
  12. 目标检测YOLO实战应用案例100讲-自动驾驶场景下的三维目标检测技术研究
  13. 拉普拉斯变换与闭环系统稳定探讨
  14. 解决浏览器访问GitHub响应时间长,速度慢的问题
  15. 苹果支付在哪里设置_微信刷脸支付怎么开通,在哪里设置?
  16. OMAP3530资料
  17. 看漫画学Python 第八章代码
  18. 区块链3+1:2018区块链媒体趣味花名册
  19. Python 框架 之 Django MVT 下的 V 的 视图简单介绍和使用
  20. 安卓毕设项目总结(二)校园订餐app

热门文章

  1. 计算机科学 泰勒级数,一阶常微分方程泰勒级数解法的计算机实现.pdf
  2. Linux内核在中国大发展的黄金十年-写于中国Linux存储、内存管理和文件系统峰会十周年之际...
  3. C++笔记005:用面向过程和面向对象方法求解圆形面积
  4. win10 win11 系统安装指南
  5. EBS开发_创建AP付款
  6. SaaSBase:什么是企域数科?
  7. Fast and Provably Good Seedings for k-Means阅读笔记
  8. Windows柯尼卡打印机驱动安装
  9. 时间格式中,hh小写的是12小时制,大写(HH)是24小时制的。
  10. P3354 [IOI2005]Riv 河流