计算机网络基础知识(三)—— 什么是OSI七层模型?
文章目录
- 00 | 🛸发展史🛸
- 01 | 🛸OSI七层参考模型🛸
- 02 | 🛸OSI七层参考模型的信息流向🛸
OSI七层模型是Open Systems Interconnection Reference Model的缩写,是由国际标准化组织(ISO)开发的一种参考模型,旨在促进不同厂商、不同系统之间的通信和互联。该模型被设计为一种通用的网络架构模型,用于指导在分布式计算系统中通信协议的设计和实现。
00 | 🛸发展史🛸
OSI模型是1984年由国际标准组织(ISO)开发的,作为一种参考模型,而并非实际应用。该模型将计算机网络通信过程划分为7个层次,每个层次都有特定的功能,各层次之间通过协议进行通信。OSI模型的制定旨在解决计算机之间的通信问题,从而使不同计算机在数据传输方面具有通用性。
在OSI模型之前,各个厂商都有自己的通信协议,网络通信存在互不兼容和不互通的问题。而OSI模型的出现,使得所有通信环节都有了一个清晰的规范,从而实现了不同厂商、不同系统之间的互通性。不过,由于实际上在实现网络通信时,通常使用TCP/IP(传输控制协议/因特网协议)作为通信协议族,因此OSI模型并未如期望般广泛应用。
尽管OSI模型并未大规模应用于实际网络中,但它在网络通信方面仍然具有理论意义和应用价值,它为我们理解网络通信提供了系统性、层次性的思路。
01 | 🛸OSI七层参考模型🛸
当我们在互联网上进行通信时,数据需要经过多个传输节点,每个节点都可能使用不同的通信协议进行数据包交换,而为了确保不同节点之间数据的有效传输和正确解释,一种统一的、标准化的、层次化的通信模型被提出,这就是OSI七层模型(Open Systems Interconnection Reference Model,开放系统互联参考模型)。
OSI七层模型是一种抽象的模型,定义了不同层次间的数据的通信方式,将整个互联网通信过程划分为七个独立的层次,由低层至高层分别为: 物理层、 数据链路层、 网络层、 传输层、 会话层、 表示层、 应用层 \color{red}{物理层}、\color{orange}{数据链路层}、\color{yellow}{网络层}、\color{green}{传输层}、\color{blue}{会话层}、\color{cyan}{表示层}、\color{purple}{应用层} 物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
每个层次都有独立的功能和任务,通过这种分层方式,避免了各个层次之间功能相互依赖、相互影响的问题,同时也方便了不同协议的选用和替换。
-
通信子网 && 资源子网
计算机网络按照数据通信和数据处理的功能可以分为两层:内层通信子网、外层资源子网
-
内层通信子网:(上图中虚线内的)的节点计算机和和高速通信线路组成了独立的数据系统,承担全网的数据传输、交换、加工和变换等通信处理工作,即将一台计算机的输出信息传送到另一台计算机
-
外层资源子网:(上图虚线外的)所有网络设备以及各种软件资源等,负责全网的数据处理和向网络用户提供网络资源以及网络服务
-
-
OSI七层参考模型的特性
-
它是一种将异构系统互连的分层结构;
-
提供了控制互连系统交互规则的标准框架;
-
定义了一种抽象结构,而非具体实现的描述;
-
不同系统上相同层的实体称为同等层实体;
-
同等层实体之间的通信由该层的协议管理;
-
相邻层间的接口定义了原语操作和低层向高层提供服务;
-
所提供的公共服务是面向连接和无连接的数据服务;
-
直接的数据传输仅在最低层实现;
-
每层完成所定义的功能,修改本层的功能并不影响其他层;
-
-
各层功能
OSI七层参考模型中的13层主要负责通信功能,一般称为**通信子网层**;上3层(57)属于资源子网层的功能范畴,称为资源子网层;第四层的传输层起着承上启下的作用,下面对OSI七层模型的每一个层级进行简要介绍:
-
物理层( P h y s i c a l L a y e r ) \color{red}{物理层(Physical Layer)} 物理层(PhysicalLayer)
物理层是OSI七层模型的底层,主要负责物理设备的数据传输,它将比特流转化为具体的电信号或光信号进行物理传输,处理的单元是比特(0或1),特点是传输速度快,但不能纠错。 -
数据链路层( D a t a L i n k L a y e r ) \color{orange}{数据链路层(Data Link Layer)} 数据链路层(DataLinkLayer)
数据链路层建立在物理层之上,主要负责点对点通信的数据传输,它将物理层传输的数据流转化为帧(Frame)进行传输,处理的信息单位为帧(Frame),提供流量控制、差错检测、纠错等功能。 -
网络层( N e t w o r k L a y e r ) \color{yellow}{网络层(Network Layer)} 网络层(NetworkLayer)
网络层主要负责数据包的传输和路由选择,它接收来自数据链路层的帧,然后将这些帧组装成包(Packet),并加上目的地址和源地址以及各种控制信息,为数据包提供了传输路径的选择、拥塞控制、数据包分割和重组等功能。 -
传输层( T r a n s p o r t L a y e r ) \color{green}{传输层(Transport Layer)} 传输层(TransportLayer)
传输层主要负责面向连接的数据传输,是OSI七层模型中最核心的一层,它在网络层之上提供透明的数据传输服务,面向连接的传输方式能够提高数据传输的可靠性,并且支持可靠的错误恢复处理、数据重传机制、流量控制等。 -
会话层( S e s s i o n L a y e r ) \color{blue}{会话层(Session Layer)} 会话层(SessionLayer)
会话层主要负责建立、管理和结束会话,通过在数据交换时分配相关标识来确保正确的通信,同步发送端和接收端的数据传输,在表示层之上,可对传输的数据进行加密或解密。 -
表示层( P r e s e n t a t i o n L a y e r ) \color{cyan}{表示层(Presentation Layer)} 表示层(PresentationLayer)
表示层主要负责数据格式的转换和处理,使不同计算机之间的数据格式能够兼容,与应用层进行数据格式交互,如UBF、ASN1、ASCII、BCD等格式的转换,还负责数据加密、解密、压缩、解压缩等功能。 -
应用层( A p p l i c a t i o n L a y e r ) \color{purple}{应用层(Application Layer)} 应用层(ApplicationLayer)
应用层是OSI七层模型的最高层,也是最靠近用户的一层,主要负责面向用户的通信服务,提供用户接口、用户数据、应用程序之间的交换等功能,在应用层之上,通常会有一些面向特定领域的协议,如HTTP、FTP、SMTP等。
总的来说,OSI七层模型将互联网通信过程分为七个独立的层次,每个层次都有不同的功能和任务,通过分层的方式方便了不同协议的选用和替换,同时避免了各个层之间功能相互依赖和相互影响的问题,提高了网络通信的可靠性和稳定性。
02 | 🛸OSI七层参考模型的信息流向🛸
如上图,A系统用户向B系统用户传送数据的信息流向如下:
-
A数据先进入应用层,该层给数据加上一个强制信息(AH数据头),数据送往下一层表示层;
-
表示层对进入的数据按照协议进行必要的变换后也加上了强制信息(PH数据头),数据送往下一层会话层;
-
会话层对进入的数据也加上强制信息(SH数据头),数据送往下一层传输层;
-
传输层对进入的数据按照协议进行对长报文的分段后加上强制信息(TH数据头),数据送往下一层网络层;
-
网络层将信息变成报文分组,并加上组号NH,将数据传送到下一层的数据链路层;
-
数据链路层将进入的信息加上强制信息(DH数据头和DT数据尾),形成数据帧,传送到下一层的物理层;
-
物理层将接收到的数据按位发送到B的物理层中;
-
B接收到消息后,按照A发送消息的信息反流向进行数据解析,最后获取原始信息给到B系统用户
从上的步骤可以看出,实际上只有在物理层的时候才开始实际的传输,其余各层都是对数据进行封装的虚假传输。
相关文章:

计算机网络基础知识(三)—— 什么是OSI七层模型?
文章目录 00 | 🛸发展史🛸01 | 🛸OSI七层参考模型🛸02 | 🛸OSI七层参考模型的信息流向🛸 OSI七层模型是Open Systems Interconnection Reference Model的缩写,是由国际标准化组织(IS…...
Python(符号计算常微分方程)谐振子牛顿运动方程
牛顿运动方程 牛顿运动方程可以写成以下形式 F d p d t m d v d t m d 2 r d t 2 \mathbf{F}\frac{d \mathbf{p}}{d t}m \frac{d \mathbf{v}}{d t}m \frac{d^2 \mathbf{r}}{d t^2} Fdtdpmdtdvmdt2d2r 恒力问题 具有恒定力的问题意味着恒定的加速度。 典型的例子是…...

OpenCL编程指南-1.2OpenCL基本概念
OpenCL概念基础 面向异构平台的应用都必须完成以下步骤: 1)发现构成异构系统的组件。 2)探查这些组件的特征,使软件能够适应不同硬件单元的特定特性。 3)创建将在平台上运行的指令块(内核)。 4)…...

使用 ChatGPT 辅助学习——为自己找一个老师
我们每个人都有许多标签,例如高中生、成绩中等、文科,根据这些标签我和其他拥有相同标签的人分配了相同的教程、班级和老师,这可以带来效率上的提升,因为同一份教程、老师就可以服务几十上百人,而无须为每个人定制&…...
MySQL基础(二十一)用户与权限管理
1. 用户管理 1.1 登录MySQL服务器 启动MySQL服务后,可以通过mysql命令来登录MySQL服务器,命令如下: mysql –h hostname|hostIP –P port –u username –p DatabaseName –e "SQL语句"-h参数后面接主机名或者主机IP,…...

程序员的下一个风口
面对近一年的裁员潮,以及 GPT 出现带来的 AI 颠覆潮流,各种话题出现:「前端已死」、「后端已死」、「Copy/Paste 程序员将被 AI 取代」。程序员行业是否还有发展空间? 这一两年的就业机会是因为经济衰落周期内造成的,不…...

Android 自定义View 之 简易输入框
简易输入框 前言正文① 构造方法② XML样式③ 测量④ 绘制1. 绘制方框2. 绘制文字 ⑤ 输入1. 键盘布局2. 键盘接口3. 键盘弹窗4. 显示键盘5. 相关API 四、使用自定义View五、源码 前言 在日常工作开发中,我们时长会遇到各种各样的需求,不部分需求是可以通…...

SpringMVC的基础知识
创建SpringMVC项目 SpringMVC项目其实和SpingBoot项目差不多,就多引入了一个SpringWeb项目而已拉 可以看这篇博客,创建的就是一个SpringMVC项目--创建项目の博客 SpringMVC是啥 Spring是啥相信大家都了解 啥是MVC呢?MVC是Model View Controller的缩写 我们分开看这三个词Model…...

OpenPCDet系列 | 4.2 DataAugmentor点云数据增强模块解析
文章目录 DataAugmentor模块解析1. gt_sampling2. random_world_flip3. random_world_rotation4. random_world_scaling5. limit_period DataAugmentor模块解析 在pointpillars算法中,具体的数据增强方法配置是在yaml中的DATA_CONFIG.DATA_AUGMENTOR进行配置&#…...

精准测试之过程与实践 | 京东云技术团队
作者:京东工业 宛煜昕 一、怎样的技术 •百度百科: 精准测试是一套计算机测试辅助分析系统。 精准测试的核心组件包含的软件测试示波器、用例和代码的双向追溯、智能回归测试用例选取、覆盖率分析、缺陷定位、测试用例聚类分析、测试用例自动生成系统…...
类ChatGPT逐行代码解读(1/2):从零实现Transformer、ChatGLM-6B
前言 最近一直在做类ChatGPT项目的部署 微调,关注比较多的是两个:一个LLaMA,一个ChatGLM,会发现有不少模型是基于这两个模型去做微调的,说到微调,那具体怎么微调呢,因此又详细了解了一下微调代…...

车道线检测
前言 目前,车道线检测技术已经相当成熟,主要应用在自动驾驶、智能交通等领域。下面列举一些当下最流行的车道线检测方法: 基于图像处理的车道线检测方法。该方法是通过图像处理技术从摄像头传回的图像中提取车道线信息的一种方法,…...

云渲染靠谱吗,使用云渲染会不会被盗作品?
云渲染靠谱吗、安全吗?如果使用 云渲染会不会被盗作品......Renderbus瑞云渲染作为一个正经的云渲染平台,也时不时会收到这类疑问,首先,瑞云渲染是肯定靠谱的,各位可以放心使用。另外小编也将在本篇教你如何辨别云渲染平台是否安全…...

什么是FPGA?关于FPGA基础知识 一起来了解FPGA lattice 深力科 MachXO3系列 LCMXO3LF-9400C-5BG256C
什么是FPGA?关于FPGA基础知识 一起来了解FPGA lattice 深力科 MachXO3系列 LCMXO3LF-9400C-5BG256C FPGA基础知识:FPGA是英文Field-Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器…...

有什么好用的云渲染?
在CG制作流程中,离线渲染一直是必要且耗时的环节。你的场景越复杂,渲染出现问题的可能性就越大,尤其是当你独自工作,没有人给你建议的时候,灯光、模型、场景任何一个环节渲染时出现问题都可能让你焦头烂额,…...

什么是医学影像PACS系统?PACS系统功能有哪些?作用有哪些?对接哪些设备?业务流程是什么?
一、什么是医学影像PACS系统 PACS:为Picture Archive and CommunicationSystem的缩写,是图象归档和通讯系统。PACS系统应用在医院影像科室的系统,主要的任务就是把日常产生的各种医学影像(包括核磁,CT,超声…...
分布式缓存:什么是它以及为什么需要它?
前言 随着网络的快速发展,分布式应用变得越来越普遍。这种类型的应用程序需要访问多个组件和服务,而这些组件可能分散在不同的物理位置上。在这种情况下,由于网络通信的高延迟和低带宽,性能问题变得尤为明显。为解决这一问题&…...

MySQL基础(二十二)逻辑架构
1.逻辑架构剖析 1.1 第1层:连接层 系统(客户端)访问MySQL服务器前,做的第一件事就是建立TCP连接。 经过三次握手建立连接成功后,MySQL服务器对TCP传输过来的账号密码做身份认证、权限获取。 用户名或密码不对&#…...
《Kubernetes证书篇:使用TLS bootstrapping简化kubelet证书制作》
一、背景 Master apiserver启用TLS认证后,Node节点kubelet和kube-proxy要与kube-apiserver进行通信,必须使用CA签发的有效证书才可以,当Node节点很多时,这种客户端证书颁发需要大量工作,同样也会增加集群扩展复杂度。 …...

vue+elementui+nodejs机票航空飞机航班查询与推荐
语言 node.js 框架:Express 前端:Vue.js 数据库:mysql 数据库工具:Navicat 开发软件:VScode )本系统主要是为旅客提供更为便利的机票预定方式,同时提高民航的预定机票的工作效率。通过网络平台实现信息化和网络化&am…...

网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...
uniapp中使用aixos 报错
问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...

如何更改默认 Crontab 编辑器 ?
在 Linux 领域中,crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用,用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益,允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...
CSS | transition 和 transform的用处和区别
省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...

stm32wle5 lpuart DMA数据不接收
配置波特率9600时,需要使用外部低速晶振...