当前位置: 首页 > news >正文

【计算机网络笔记】OSI参考模型基本概念

系列文章目录

什么是计算机网络?
什么是网络协议?
计算机网络的结构
数据交换之电路交换
数据交换之报文交换和分组交换
分组交换 vs 电路交换
计算机网络性能(1)——速率、带宽、延迟
计算机网络性能(2)——时延带宽积、丢包率、吞吐量/率
计算机网络体系结构概念


  • 系列文章目录
  • OSI参考模型
  • OSI参考模型解释的通信过程
  • 为什么需要数据封装?


OSI参考模型

开放系统互连 (OSI)参考模型是由国际标准化组织 (ISO) 于 1984年提出的分层网络体系结构模型。目的是支持异构网络系统的互联互通。

OSI参考模型是网络系统互连的国际标准(但也仅仅是一个标准)。虽然从市场上来说,这个模型并不是一个流行的产品,但是它是我们理解网络通信的最佳学习工具或者理论模型。OSI参考模型不仅是计算机网络中一个重要的模型,在通信领域中也经常使用这个模型讨论问题。

在OSI参考模型中,网络按照功能分为七层,每层完成特定的网络功能。所有层次共同协作,完成整个网络的通信。

在这里插入图片描述


OSI参考模型解释的通信过程

通过一个例子来说明。两个主机通过中间系统(比如路由器)进行互连通信。

源主机和目的主机都要实现7层的功能,中间系统要完成3层的功能。所有对等层次之间都会遵循相关的协议进行数据交换,也就是说对等层次协议规定了这一层如何构造和交换数据。这里协议都是虚线,说明这是逻辑上的通信。最终通信总得在物理链路上传输。所以最下面是物理介质。

在这里插入图片描述

A主机要给B主机发送数据,数据先到达应用层进行处理,应用层按照它所在的层的协议处理完数据后再发给表示层进行处理,以此类推一直向下,最终是物理层。然后数据传到了中间系统,中间系统从物理层接收数据,接收以后要还原到数据链路层,再还原到网络层,每一层协议所处理的数据单元或数据包,在OSI参考模型中通常叫PDU(协议数据单元)。在网络层确定了数据接下来要传给哪个主机后,再将数据往下最后交给物理层,然后数据在物理介质上进行传输到了目的地以后,一层一层还原,最终还原到应用层。注意在这个过程中,在对等的层上只能识别对等层打包的数据。

在这里插入图片描述

  • 图中实线描述的是数据真正的流动方向。叫做实通信或者物理通信。虚线是对等层之间,它们以为数据是直接交换的。比如你写信给你的朋友,从你俩的角度看,好像是你把这个信直接给了你的朋友,但事实上,信是通过邮政系统里复杂的处理过程后才到达对方手中。

  • 相邻层之间通过接口交换数据

通过这个图我们能够发现,中间系统是没有实现上面四层功能的。这四个层次就是端到端的层,下面三层是非端到端层。

在这里插入图片描述

数据在每一层传输的过程中,每一层协议有可能会给数据加上一些比如控制信息这样的信息头,构成这个协议的数据包,叫做PDU(协议数据单元)。物理层就不会加东西了,而是将数据转化为比特流,这个比特流在物理介质上进行传播。传到目的主机后,再一层一层的将对等层添加的协议头部信息去掉。

在这里插入图片描述

那为什么每一层要对数据进行再封装呢?


为什么需要数据封装?

为了添加控制信息。数据封装最终构造的是协议数据单元 (PDU)。增加的信息多数以头部(链路层是加头加尾)。

控制信息主要包括:

  • 地址(Address): 标识发送端/接收端。标识谁发的数据,要发给谁。
  • 差错检测编码(Error-detecting code): 用于差错检测 或纠正。
  • 协议控制(Protocol control): 实现协议功能的附加信 息,如: 优先级(priority)、服务质量(QoS)、 和安全控制等。

当然,差错控制信息和协议控制信息并不是每个协议都要加的。

下一篇文章逐一地来介绍OSI参考模型每一层主要完成哪些功能。

http://www.lryc.cn/news/199114.html

相关文章:

  • ConnectTimeout和ReadTimeout所代表的意义
  • 使用Python计算平面多边形间最短距离,数据需要从excel表格中导入
  • 华为数通方向HCIP-DataCom H12-831题库(多选题:1-20)
  • CCC数字钥匙设计【NFC】--通过NFC进行车主配对Phase3
  • 开源OA协同办公系统,集成Flowable流程引擎 可拖拽创建个性表单
  • 为什么嵌入通常优于TF-IDF:探索NLP的力量
  • oracle-AWR报告生成方法
  • 笙默考试管理系统-MyExamTest----codemirror(37)
  • 【Unity3D编辑器拓展】Unity3D的IMGUI、GUI、GUILayout、EditorGUI、EditorGUILayout、OnGUI【全面总结】
  • 11. 机器学习 - 评价指标2
  • Nginx的代理和负载均衡
  • Oracle发布支持Vscode的Java插件
  • 互联网Java工程师面试题·Java 总结篇·第九弹
  • SpringCloud学习笔记-gateway网关自定义全局过滤器
  • 数字图像处理实验记录四(图像的空间域增强-平滑处理)
  • 怎么使用LightPicture开源搭建图片管理系统并远程访问?【搭建私人图床】
  • pytorch_神经网络构建4
  • 外骨骼机器人和人形机器人概览
  • Java面试题:链表-反转链表
  • el-upload实现上传文件夹
  • 京东数据平台(京东数据分析)2023年9月京东冰箱行业品牌销售排行榜!
  • 【Excel】WPS单元格快速转换表格字母大小写
  • 【java】【重构一】分模块开发设计实战
  • Cocos Creator3.8 项目实战(十)使用 protobuf详细教程
  • 第七章:最新版零基础学习 PYTHON 教程—Python 列表(第八节 -在 Python 中获取列表作为用户的输入)
  • Simple RPC - 02 通用高性能序列化和反序列化设计与实现
  • 简单秒表设计仿真verilog跑表,源码/视频
  • 【发布】Photoshop ICO 文件格式插件 3.0
  • 负载均衡、代理和动静分离的战略
  • Gitlab用户角色权限Guest、Reporter、Developer、Master、Owner