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

OSI模型详解

今天,我们详解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发送的文本消息。

网络为什么要分层

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

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

相关文章:

OSI模型详解

今天,我们详解OSI(Open System Inter-connection Reference Model)模型,来看看工业物联网的网络互联和数据互通。 OSI模型 1984年,国际标准化组织(International Organization for Standardization&#…...

Share Creators完成500万美元融资,以工具化手段帮助企业从数字资产管理中解放

近日,总部位于旧金山湾区的初创公司Share Creators宣布完成了新一轮500万美元的融资,投资方为五源资本和福昕PDF。本轮融资主要用于扩大客户基础,并加速在美国、欧洲和亚洲的业务发展。近几年,企业内容及数字资产管理全球市场正在…...

几个Base64编码工具,也有蹊跷

起因 需求:对一段内容进行base64加密,然后通过url的get请求进行发送到后台,由于加密的内容比较少,base64串也不是很长,我认为此方案可行。 于是找了三个base64编码的在线工具,分别是: 平台1&…...

Python|每日一练|排序|递归|字符串|数组|动态规划|单选记录:以特殊格式处理连续增加的数字|正则表达式匹配|地下城游戏

1、以特殊格式处理连续增加的数字(排序) 贡献者:EricLao 给出一串数字, 程序要把数字按照这样的格式输出,把连续增加的数字用 [x-y] 的形式表示,只显示这一组顺序数字的首位两个数字,不连续增…...

Spring Cloud微服务网关Gateway组件

目录 网关简介 什么是Spring Cloud Gateway Spring Cloud Gateway 功能特征 核心概念 工作原理 Spring Cloud Gateway快速开始 环境搭建 集成Nacos 路由断言工厂(Route Predicate Factories)配置 自定义路由断言工厂 过滤器工厂( …...

cluster nodes(集群节点)

CLUSTER NODES 复制 自3.0.0起可用。 时间复杂度: O(N)其中N是 Cluster 节点的总数 Redis 集群中的每个节点都有其当前集群配置的视图,由已知节点的集合给出,我们与这些节点的连接状态,它们的标志&…...

【Android学习】下载jar慢和gradle慢的情况

目录 问题出现的原因 解决方法 解决Gradle下载问题:手动安装 解决jar包下载慢问题:更改下载源 问题出现的原因 国内访问谷歌被墙导致访问速度慢或者干脆无法下载 解决方法 解决Gradle下载问题:手动安装 访问官网Gradle | Release Candi…...

下一个排列-力扣31-java

一、题目描述整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列。例如,arr [1,2,3] ,以下这些都可以视作 arr 的排列:[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1] 。整数数组的 下一个排列 是指其整数的下一个字典序更大的排列。更正式地&…...

前端面试题

1.HTTP request报文结构是怎样的 1.首行是Request-Line包括:请求方法,请求URI,协议版本,CRLF(换行符) 2.首行之后是若干行请求头,包括general-header,request-header或者entity-hea…...

jsp游戏门户网站系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 jsp 游戏门户网站系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql,使…...

Git与IDEA强强联合(HTTPS协议连接)

最近在写项目的时候,在台式机和笔记本之间频繁切换,竟然还是用qq传压缩包,我自己都感觉无语,有git这样强大的版本管理工具,我竟然没想起来。然后也没有相关的博文就想来更新一篇。 那么如何使idea和git强强联合呢&…...

leetcode 第二题:两数相加-C语言实现

题目地址 备注&#xff1a; 不要忘记最后一个进位的可能。可以使用typedef&#xff0c;来简化struct的书写 代码实现&#xff1a; #include<stdio.h> #include<stdlib.h>struct listNode {int val;struct listNode* next; };// 使用typedef typedef struct lis…...

【人工智能】PTP网络时钟服务器在智能驾驶里的重要性

【人工智能】PTP网络时钟服务器在智能驾驶里的重要性 【人工智能】PTP网络时钟服务器在智能驾驶里的重要性 一辆宣称具备L4/L5自动驾驶功能的车辆&#xff0c;如果多个激光雷达之间的时间同步不够精确&#xff1f;如果传感器感知数据通过以太网传输到智驾域控制器的延迟不可控…...

【蓝桥杯集训3】二分专题(3 / 5)

目录 二分模板 1460. 我在哪&#xff1f; - 二分答案 哈希表 1221. 四平方和 - 哈希表 / 二分 1、哈希表 2、二分 自定义排序 1227. 分巧克力 - 113. 特殊排序 - 二分模板 l r >> 1 —— 先 r mid 后 l mid1 —— 寻找左边界 —— 找大于某个数的最小值lr…...

在成都的哪个培训机构学习Java好呢?

自从小课06年进入成都这个IT培训市场以来&#xff0c;短短十几年&#xff0c;招过很多学员&#xff0c;也见证过很多机构的起起落落。心中有万分的感慨&#xff0c;总结下来有这几点分享给大家&#xff0c;在选择培训机构时能看清本质&#xff0c;找到适合自己靠谱的机构学Java…...

传输层重要协议之UDP协议和TCP协议详解

更多关于UDP协议和TCP协议请移步官网&#xff1a;https://www.rfc-editor.org/standards#ISUDP标准协议文档-RFC 768TCP标准协议文档-RFC 793UDP协议详解UDP协议的特点&#xff1a;无连接、不可靠传输、面向数据报和全双工。UDP协议报文结构&#xff1a;关于端口号&#xff1a;…...

BNB Greenfield 成存储赛道“新贵”,BNB 生态的野心与破局

“从BNB Beacon Chain&#xff0c;到BNB Chain&#xff0c;再到BNB Greenfield &#xff0c;三位一体的 BNB 生态格局正式形成。 ”在今年的2月1日&#xff0c;币安发布了分布式存储链BNB Greenfield&#xff0c;根据白皮书信息&#xff0c;它的特别之处在于其不仅具备基于SP&a…...

【SQL开发实战技巧】系列(十六):时间类型操作(上):日、月、年、时、分、秒之差及时间间隔计算

系列文章目录 【SQL开发实战技巧】系列&#xff08;一&#xff09;:关于SQL不得不说的那些事 【SQL开发实战技巧】系列&#xff08;二&#xff09;&#xff1a;简单单表查询 【SQL开发实战技巧】系列&#xff08;三&#xff09;&#xff1a;SQL排序的那些事 【SQL开发实战技巧…...

JavaScript知识点总结

JavaScript 一、介绍: 1.JavaScript是一种专门在浏览器编译并执行的编程语言 2.JavaScript处理用户与浏览器之间请求问题 3.JavaScript采用【弱类型编程语言风格】对【面向对象思想】来进行实现的编程语言 二、弱类型编程语言风格 VS 强类型编程语言风格 …...

adb命令记录

一、获取系统版本 adb shell getprop ro.build.version.release 二、手机文件拉取到电脑 adb命令 &#xff1a; adb pull source_path dest_path 示例&#xff1a; adb pull /sdcard/Movies/app_layout.txt ./ 从手机拉取app_layout.txt文件到当前路径。 三、电脑文件推送…...

9.Docker Swarm

Docker Swarm 基本概念 Swarm是使用SwarmKit构建的 Docker 引擎内置&#xff08;原生&#xff09;的集群管理和编排工具。Docker Swarm是 Docker 官方三剑客项目之一&#xff0c;提供 Docker 容器集群服务&#xff0c;是 Docker 官方对容器云生态进行支持的核心方案。 使用它…...

基于tensorflow keras DNN神经网络训练预测豆瓣中文影评差评好评 附完整代码 +数据

首先看视频:https://www.bilibili.com/video/BV1r84y1p7q3/?spm_id_from=333.999.0.0 附完整的代码数据 完整的代码项目: 主要代码: # 导入包 import csv import jieba import tensorflow as tf from tensorflow...

商城系统必备营销工具(五)——积分商城

做商城&#xff0c;流量必不可少&#xff0c;日活跃度也很重要。现在各大APP、网站、小程序和微商城&#xff0c;基本都在为了巩固流量做积分商城&#xff0c;虽然已经随处可见&#xff0c;但很多企业商家却并没有将积分商城运作起来&#xff0c;积分商城也没有人浏览兑换商品。…...

SpringBoot08:Shiro

什么是Shiro&#xff1f; 一个Java的安全&#xff08;权限&#xff09;框架&#xff0c;可以完成认证、授权、加密、会话管理、Web集成、缓存等 下载地址&#xff1a;Apache Shiro | Simple. Java. Security. 快速启动 先在官网找到入门案例&#xff1a;shiro/samples/quick…...

进击中的 Zebec 生态,Web2 与 Web3 世界的连接器

虽然从意识形态上看&#xff0c;Web2世界与Web3世界存在着不同的逻辑&#xff0c;但我们同样看到&#xff0c;随着加密资产领域的发展&#xff0c;其正在作为优质投资品&#xff0c;被以Paypal、高盛等主流机构重视与接受。当然&#xff0c;除了作为投资者品外&#xff0c;近年…...

SpringCloud保姆级搭建教程五---Redis

首先&#xff0c;这个和微服务没有直接的关系&#xff0c;只是在代码开发当中要使用的一个工具而已&#xff0c;为了提高这个系统的性能&#xff0c;加快查询效率等方面而使用它1、首先&#xff0c;要先安装redis到电脑上&#xff0c;这里依然是在windows上演示&#xff0c;之后…...

存储类别、链接与内存管理(一)

1、一些必要的基础概念 &#xff08;1&#xff09;对象 从硬件的角度&#xff0c;被存储的每个值都被占用了一定的物理内存&#xff0c;C语言把这样的一块内存称为对象对象可以存储一个或多个值一个对象可能并未存储实际的值&#xff0c;也可能存储一个或多个值&#xff0c;但…...

JS设计模式

文章目录1 什么是设计模式&#xff1f;2 发布-订阅模式2.1 DOM事件2.2 基于Broadcast Channel实现跨页面通信2.3 基于localStorage实现跨页面通信2.4 使用 Vue 的 EventBus 进行跨组件通信2.4 使用 React 的 EventEmitter 进行跨组件通信3 装饰器模式3.1 React 高阶组件 HOC3.2…...

四、常用样式讲解二

文章目录一、常用样式讲解二1.1 元素隐藏1.2 二级菜单1.3 相对定位和绝对定位1.4 定位的特殊情况1.5 表格1.6 表格的css属性1.7 表格中新增的标签一、常用样式讲解二 1.1 元素隐藏 如何让一个元素隐藏 1、不定义颜色 占用空间 2、display: none 不占用空间 3、visibility: hi…...

KDHX-8700无线高压核相相序表

一、产品简介 KDHX-8700无线高压核相相序表&#xff08;以下简称“仪器”&#xff09;用于测定三相线相序、检测环网或双电源电力网闭环点断路器两侧电源是否同相。在闭环两电源之前一定要进行核相操作&#xff0c;否则可能发生短路。仪器适用于380V&#xff5e;35kV交流输电线…...