OSI模型详解

news2025/2/28 16:56:29

今天,我们详解OSI(Open System Inter-connection Reference Model)模型,来看看工业物联网的网络互联和数据互通。

OSI模型

1984年,国际标准化组织(International Organization for Standardization,ISO)发布了著名的ISO/IEC 7498标准,它定义了网络互联的7层框架,即开放式系统互联参考模型。OSI参考模型将整个网络分为7层,从底层往上分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层

  1. 现场总线涉及OSI参考模型的第1层(物理层)、第2层(数据链路层)及第7层(应用层) ;
  2. 工业以太网涉及OSI参考模型的第1、2、7层;对于非实时数据,它也支持TCP/IP通道,此时涉及第3层(网络层)和第4层(传输层);

想理解网络层次,可以看“詹姆斯·F·库罗斯”与“基思·W·罗斯”合著的《计算机网络:自顶向下方法》。

在这里插入图片描述

1、物理层

物理层是OSI参考模型的底层,主要作用是利用物理传输介质为数据链路层提供物理连接,以便传输比特流,它规定了网络连接的一些电气特性,负责传送0和1信号,物理介质可以是双绞铜线、同轴电缆、多模光纤、无线信道如Wi-Fi、蜂窝等。

2、数据链路层(MAC协议)

数据链路层负责传输电路的0和1信号,由于单纯的数字0和1缺乏实际含义,因此要定义解读方式:多少个0和1为一组,每个信号代表什么含义。这就是链路层的作用,它在物理层之上,将比特组合成字节,进而拼接成帧,确定0和1的分组方式,一个报文帧由若干首部字段和数据字段构成

成帧功能之外,链路层的作用还包括链路接入、差错检测和纠正、可靠交付。链路接入规定介质访问控制机制,例如采用总线拓扑时,确保同一时刻只能有一个节点向总线发送数据,避免发生冲突。

以太网802.3、无线局域网802.11都属于数据链路层协议,其链路接入机制为大家所熟知的介质访问控制(Media Access Control,MAC)协议。以太网规定接入网络的所有设备须具有“网卡”接口,网卡的身份信息由MAC地址标识,全球唯一,MAC地址长度为6个字节,例如C1:63:9C:1D:6A:D1。

差错检测和纠正指链路层基于硬件电路对传输数据进行校验,信号衰减和电磁噪声干扰导致数据帧中某个值为1的比特在接收方被错误地识别为0,而链路层具有发现错误的能力,必要时还能够纠正错误。可靠交付指链路层通过确认和重传机制保证数据无差错地移动,可靠交付服务通常应用于高差错率的链路,例如无线链路,而对于低比特差错率的链路如有线连接,可靠交付被认为是非必要的,为了减少开销,有些链路层将不提供可靠交付服务。

3、网络层(IP协议)

网络层和传输层以TCP/IP为例进行说明。在以太网构建的网络中,不同的计算机直接通过MAC地址相互识别并交换数据,这在一个小局域网内完全没有问题。假如世界上所有计算机都基于MAC地址识别和交换数据,此时就变得非常困难了,因为MAC地址没有分组的概念,通过MAC地址无法知道计算机是否属于同一个子网络。所有的计算机如果连接在一起,彼此之间要相互通信,不可能采用点对点的方式进行,需要引入网络拓扑,例如树形拓扑。相距较远的两台计算机之间通信时,须在整个网络拓扑中为它们规划一条路径,在树形拓扑中则涉及一级一级向上追溯,最后规划出最优路径。

网络层代表协议——IP引进了一套新的地址体系,使得计算机及网络设备能够快速区分计算机是否属于同一个子网。例如192.168.43.193和192.168.43.22属于同一个子网,192.168.43.193和192.168.22.17则不在同一个子网(如果子网掩码为255.255.255.0),通过IP地址很好识别。网络设备将根据IP地址快速规划出路径,同一个子网内的对话只需基于MAC地址转发,使用交换机网络设备。不在同一个子网的计算机,须通过路由器网络设备将数据转发出去,路由器具备跨网段的数据转发能力。网络层基于逻辑地址寻址,实现网络路径规划,而数据链路层基于硬件地址寻址。

4、传输层(端口通信,TCP、UDP协议)

传输层定义传输数据的协议端口号以及流控和差错校验。有了MAC地址和IP地址,互联网上的任意两台主机之间就能够建立通信了。接下来的问题是,同一台主机上多个应用程序(不同进程)都需要网络访问时,该如何区分数据包是发送给了哪个应用程序呢?传输层建立了端口到端口之间的通信,它通过端口号区分不同的应用程序,例如访问地址http://10.207.228.51:9093,其中9093表示端口号。作为比对,网络层则是建立主机到主机的通信。TCP和UDP是应用最广泛的传输层协议,TCP基于握手连接,发出的数据包要求收方回复确认,UDP则类似于广播,无须建立连接,也无须收方应答,UDP效率高,TCP则更可靠。传输层协议发送数据包时会添加校验信息,接收方使用校验信息检查该报文是否出现差错。

5、会话层 & 表示层

会话层和表示层中的“会话”是两个应用程序进程之间的逻辑连接,两个应用程序之间基于此逻辑连接在一定的时间内交换数据,会话层用于建立、管理和终止会话表示层用于处理交换信息的表示方式,包括数据格式交换、加密与解密、压缩。会话层的功能可能在传输层就实现了,例如TCP可以管理连接。由于表示层可以合并到应用层中,由应用层负责数据的解析,因此对会话层和表示层的讨论并不多。

6、应用层

应用层收到传输层的数据,接下来要进行解析。由于网络数据来源五花八门,须事先约定好格式,因此应用层规定了应用程序的数据格式。举个例子,TCP为各种应用层传输数据,比如HTTP、SMTP、FTP等,它们都有各自的一套协议规则,分别定义了网页、电子邮件、文件传输时的数据格式,这些均属于应用层范畴,应用层是OSI参考模型的最高一层,直接面向用户。

数据传输步骤

接下来通过以太网加TCP/IP,将数据在网络各层的流动串联起来。如下图,主机A打算发一段文本消息给主机B,此文本为网络传输的有效数据载荷。

在这里插入图片描述

  1. 应用层将这段文本按一定格式打包好,往下传递给传输层;
  2. 传输层在应用层报文的基础上加上它的头部字段,其中包括主机A的端口号(源端口号)和主机B的端口号(目标端口号),往下传递给网络层;
  3. 网络层在传输层报文的基础上添加它的头部字段,包括主机A的IP地址(源IP地址)和主机B的IP地址(目标IP地址),往下传递给数据链路层;
  4. 数据链路层在网络层报文的基础上添加主机A的MAC地址和主机B的MAC地址;
  5. 报文帧最后通过物理层发送出去。

通过数据链路层完成最后封装的报文帧格式如图:
在这里插入图片描述

交换机和路由器的区别

假如主机A和主机B不在同一个子网内,主机A通过交换机连接它所在的局域网,交换机工作在OSI参考模型的第二层——基于MAC地址转发消息,它在数据链路层将报文帧的以太网帧头部分解析出来,获得目标机的MAC地址。由于交换机发现目标机和主机A不在同一个子网内,因此交换机将此报文帧重新封好并转发到它的一个输出端口,所有跨网段的报文帧都将转发到这个输出端口,这个输出端口与路由器相连,路由器工作在OSI参考模型的第三层——基于IP地址转发消息,它在网络层将报文帧的IP头部解析出来,获得目标机的IP地址,路由器通过IP地址判断此报文帧应通过某个端口转发给主机B,报文到达主机B时,主机B的接收过程是从物理层开始,通过一层层解析,最后在应用层收到主机A发送的文本消息。

网络为什么要分层

网络为什么要分层呢?分层的目的在于利用层次结构把开放系统的信息交换问题分解到一系列可以控制的软硬件模块中,把大问题分割成多个小问题,每一层可根据需要独立修改或者进行功能扩充,易于实现标准化。如果某一层发生了变化,只要其接口不变,就不会对其他层造成影响,这有利于不同制造厂家的设备互连。

最终用户只关心应用层,其他层如何实现对用户而言并不重要。由于各层之间相互独立,因此高层无须知道底层功能的具体实现,定义好接口,高层即可复用底层提供的服务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/347101.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C控制语句(continue,break)

一.continue 3种循环都可以使用continue语句。执行到该语句时&#xff0c;会跳过本次迭代的剩余部分&#xff0c;并开始下一轮迭代 for(count0;count<10;count) { ch getchar(); If(ch \n) continue; putchar(ch&#xff09;&#xff1b; } 这条代码当中当ch等于\…

MySQL CAST()函数用法

一、语法 expr&#xff1a;源数据&#xff0c;如字符串’China’。type&#xff1a;目标数据类型&#xff0c;例如CHAR。 cast(expr AS type)二、命令说明 将任何类型的值转换为具有指定类型的值。 CAST()函数通常用于返回具有指定类型的值&#xff0c;以便在WHERE&#xff…

Vue3+mitt.js配置logger

前言 Vue项目中的组件通信方式&#xff0c;绝大多数的情况是可以被Vuex等方案代替的&#xff0c;但有一些特殊情况却非常适合使用EventBus&#xff0c;举个简单的例子&#xff1a;有A、B两个组件&#xff0c;用户在A上进行操作后&#xff0c;需要B执行某些逻辑。 由于Vue3中删…

TiDB在转转公司的发展历程

1 前言 2 运维痛点 3 解决痛点 3.1 元数据管理 3.2 机器资源管理 3.3 全面升级 3.4 告警改造 4 实现自动化 4.1 需求工单化 4.2 操作平台化 4.3 其他辅助功能 5 写在最后 1 前言 转转是PingCAP最早的一批用户之一&#xff0c;见证了TiDB的发展&#xff0c;自身也沉淀…

计讯物联高精度定位GNSS接收机TN521在水库大坝变形监测的应用解析

由于水库大坝在地质环境恶劣和气候条件复杂的条件下&#xff0c;水库坝体的稳定性会受到严重考验。为了保证水库大坝的安全运营&#xff0c;GNSS作为一种实现远程自动化测量的高精度的变形监测技术&#xff0c;具有高精度、高速度、全天候、连续实时、自动化等优势&#xff0c;…

WMS系统推荐,如何选到适合企业的仓库管理系统

市场上有很多WMS系统&#xff0c;但是现在很多仓库管理系统都在使用WMS系统。那么在选择WMS系统时应该考虑什么呢&#xff1f;明确业务发展特征&#xff0c;准确表达能力目标许多物流企业在选择物流管理系统时&#xff0c;往往会被物流管理系统的整体系统所迷惑&#xff0c;在功…

MySql的sql语句执行过程详述

目录 前言&#xff1a; sql语句的执行过程&#xff1a; server层&#xff1a; 存储引擎&#xff1a; 连接器&#xff1a; 查询缓存&#xff1a; 分析器&#xff1a; 优化器&#xff1a; 执行器&#xff1a; 前言&#xff1a; 很多人都在使用mysql数据库&#xff0c;但…

【软件测试】测试人的bug一生,资深测试的专业角度......

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 对于测试人员来说&a…

【Linux】进程的描述组织与进程状态

文章目录&#x1f3aa; 进程的描述组织&#x1f680;1.什么是进程&#x1f680;2.进程的形成&#x1f680;3.进程标识符 *⭐3.1 PS命令查看PID⭐3.2 /proc目录查看进程属性&#x1f680;4.父子进程⭐4.1 系统调用获取PID⭐4.2 fork创建子进程⭐4.3 fork双返回值问题⭐4.4 写时拷…

Netty源码解读-EventLoop(二)

一、简介 NioEventLoop的重要组成&#xff1a;Selector、线程、任务队列&#xff0c;他既会处理io事件&#xff0c;也会处理普通任务和定时任务. 1.下面是Selector&#xff0c;注意有两个哦后面会讲 2.下面的爷爷类提供的Thread变量&#xff0c;其实下面发excutor用的就是这个…

vue2中defineProperty和vue3中proxy区别

区别一&#xff1a;defineProperty 是对属性劫持&#xff0c;proxy 是对代理对象 下面我们针对一个对象使用不同的方式进行监听&#xff0c;看写法上有什么不同。 // 原始对象 const data {name: Jane,age: 21 }defineProperty defineProperty 只能劫持对象的某一个属性&…

TCP核心机制详解(三)

目录 前言&#xff1a; 滑动窗口 滑动窗口处理丢包问题 流量控制 拥塞控制 延时应答 捎带应答 面向字节流 异常情况 小结&#xff1a; 前言&#xff1a; 前两篇文章讲述了&#xff0c;TCP十种核心机制的前三种。这篇文章详细介绍其他的一些核心机制&#xff0c;让我们…

大气温室气体浓度不断增加,导致气候变暖加剧,随之会引发一系列气象、生态和环境灾害怎样解决?

大气温室气体浓度不断增加&#xff0c;导致气候变暖加剧&#xff0c;随之会引发一系列气象、生态和环境灾害。如何降低温室气体浓度和应对气候变化已成为全球关注的焦点。海洋是地球上最大的“碳库”,“蓝碳”即海洋活动以及海洋生物&#xff08;特别是红树林、盐沼和海草&…

企企通持续助力全球管道预制先行者「迈科管道」,二期项目逐步启动

近日&#xff0c;国内管道预制龙头企业「济南迈科管道科技有限公司」签约企企通采购供应链系统二期项目。此次签约&#xff0c;将针对迈科管道的采购业务特点和需求&#xff0c;结合企企通采购与供应链管理系统优势和丰富的实战经验&#xff0c;在一期项目基础上&#xff0c;持…

山东科技大学校历 代码分析 获得以前学期学年的老版校历

校历-山东科技大学网络安全与信息化办公室http://tech.sdust.edu.cn/wlfw/xl.htm JavaScript var studyStart new Date(2021, 8-1, 30);//8-1 -1没有意义&#xff0c;30代表30号&#xff0c;2021年8月30号开始这个学期 var commonWeeks 19;//这个学期有多少周 var s…

Mysql使用规范(纯技术和实战建议)

1、事务隔级别: &#xff08;强制&#xff09;&#xff1a;Repeatable-Read&#xff08;重复读&#xff09;&#xff0c;且不能在会话操作时临时开启隔离级别。 注&#xff1a; Repeatable-Read&#xff08;重复读&#xff09;隔离级别解决不了幻读。 可用 show variables l…

Linux学习之环境变量

目录环境变量基本概念查看环境变量的方法常见的环境变量PATH&#xff1a;指定命令的搜索路径。PATH测试HOME&#xff1a;指定用户的主工作目录SHELL&#xff1a;当前Shell和环境变量有关的命令环境变量的组织方式通过代码来获得环境变量通过函数来获得环境变量环境变量具有全局…

集成AI智能安防平台EasyCVR时,调取录像接口报跨域错误的解决方法

EasyCVR视频融合平台基于云边端架构&#xff0c;可支持海量视频汇聚管理&#xff0c;能提供视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、智能分析等视频服务。平台兼容性强&#xff0c;支持多协议、多类型设备接入&#xff0c;包括&#xff1a;国标G…

Datawahle组队学习——妙趣横生大数据 Day1

妙趣横生大数据 Day1[妙趣横生大数据 Juicy Big Data](https://datawhalechina.github.io/juicy-bigdata/#/?id妙趣横生大数据-juicy-big-data)一、大数据概述大数据——第三次信息化浪潮大数据概念大数据应用大数据关键技术二、Hadoop背景介绍特性项目架构实验1. 准备工作2. …