OSI模型和网络协议简介

news2024/11/27 0:36:18

文章目录

    • 一、OSI七层模型
      • 1.1什么是OSI七层模型?
      • 1.2这个网络模型究竟是干什么呢?
    • 二、TCP/IP协议
    • 三、常见协议
    • 四、物联网通信协议以及MQTT
      • 4.1 物联网七大通信协议
      • 4.2 MQTT特性

一、OSI七层模型

1.1什么是OSI七层模型?

我们需要了解互联网的本质是一系列的网络协议,这个协议就叫做OSI协议(开放系统互联(Open System Interconnection)),它是由ISO(国际标准化组织)定义的。

那么对于OSI,人们按照功能不同,分工不同,人为的将OSI的分为七层。实际上这七层是并不存在的,也就是说没有这些概念,而我们今天提到的七层概念,只是人为的划分而已。目的只是为了让大家更好地理解这些都是用来做什么的。

请添加图片描述

1.2这个网络模型究竟是干什么呢?

简而言之就是进行数据封装的,同时是一个标准,所有人参照这个标准来设计

我们平常使用的程序(或者说软件)一般都是通过应用层来访问网络的,程序产生的数据会一层一层地往下传输,直到最后的网络接口层,就通过网线发送到互联网上去了。数据每往下走一层,就会被这一层的协议增加一层包装,等到发送到互联网上时,已经比原始数据多了四层包装。整个数据封装的过程就像俄罗斯套娃。

当另一台计算机接收到数据包时,会从网络接口层再一层一层往上传输,每传输一层就拆开一层包装,直到最后的应用层,就得到了最原始的数据,这才是程序要使用的数据。

给数据加包装的过程,实际上就是在数据的头部增加一个标志(一个数据块),表示数据经过了这一层,我已经处理过了。给数据拆包装的过程正好相反,就是去掉数据头部的标志,让它逐渐现出原形。

  • 数据封装过程
    请添加图片描述

封装(L7-L1向下封装)
上层数据 应用层

翻译、压缩 表示层

建立会话 会话层

定义传输工规则(TCP):上层数据封装协议 传输层

封装IP头部(PC1-IP、PC2-IP) 网络层

封装MAC头部(PC1-M、PC2-M) 数据链路层

二进制数据、物理传输 物理

  • 数据解封装过程

请添加图片描述

二、TCP/IP协议

目前实际使用的网络模型是 TCP/IP 模型,它对 OSI 模型进行了简化,只包含了四层,从上到下分别是应用层、传输层、网络层和链路层(网络接口层),每一层都包含了若干协议。

TCP/IP 模型包含了 TCP、IP、UDP、Telnet、FTP、SMTP 、HTTP、Telnet等上百个互为关联的协议,其中 TCP 和 IP 是最常用的两种底层协议,所以把它们统称为“TCP/IP 协议族”。

三、常见协议

常见的有以下几种协议

(1)HTTP协议(超文本传输协议)属于TCP/IP协议家族中的一员。HTTP协议属于应用层。

(2)HTTPS协议(安全超文本传输协议)

(3)TCP协议(传输控制协议) 主要用于网间传输的协议,分割处理报文并把结果包传到IP层,并接收处理IP曾传到的数据包

(4)IP协议(网络互连协议)

(5)FTP协议(文件传输协议)

(6)SMTP协议(简单邮件传输协议)

(7)Telnet协议 Telnet是TCP/IP中的一种应用协议,可以为终端仿真提供支持。

还有其他,大家可以遇到时自行查找。

四、物联网通信协议以及MQTT

4.1 物联网七大通信协议

物联网七大通信协议是:REST/HTTP(松耦合服务调用)、CoAP协议、JMS、XMPP协议(即时通信)、AMQP协议(互操作性)、DDS协议(高可靠性、实时)、MQTT协议(低带宽)。

1、REST即表述性状态传递,是基于HTTP协议开发的一种通信风格。主要为了简化互联网中的系统架构,快速实现客户端和服务器之间交互的松耦合,降低了客户端和服务器之间的交互延迟。

2、CoAP (Constrained Application Protocol),受限应用协议,应用于无线传感网中协议。它适用于在资源受限的通信的IP网络。

3、JMS (Java Message Service),即消息服务,这是JAVA平台中著名的消息队列协议。Java消息服务应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。

4、XMPP(Extensible Messaging and Presence Protocol)可扩展通讯和表示协议,一个开源形式组织产生的网络即时通信协议。

5、AMQP(Advanced Message Queuing Protocol),先进消息队列协议,用于业务系统例如PLM,ERP,MES等进行数据交换。

6、DDS(Data Distribution Service for Real-Time Systems),面向实时系统的数据分布服务。

7、MQTT (Message Queuing Telemetry Transport ),消息队列遥测传输,由IBM开发的即时通讯协议,相比来说比较适合物联网场景的通讯协议。

目前,MQTT 已逐渐成为 IoT 领域最热门的协议,也是国内外各大物联网平台最主流的传输协议,阿里云 IoT 物联网平台很多设备都是通过
MQTT 接入。

4.2 MQTT特性

MQTT协议是为大量计算能力有限,且工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议,它具有以下主要的几项特性:

  • 使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合;
  • 对负载内容屏蔽的消息传输;
  • 使用 TCP/IP 提供网络连接;
  • 有三种消息发布服务质量:
  • 小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量;
  • 使用 Last Will 和 Testament 特性通知有关各方客户端异常中断的机制。

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

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

相关文章

unity实现2D小游戏FlappyBird-2D

unity实现2D小游戏FlappyBird-2D 一、游戏介绍(unity工程文件资源包链接) https://download.csdn.net/download/weixin_48388330/87483337 实现预加载动画,UI界面展示,空格键或鼠标左键可控制Bird的高度,从而通过障…

关于医疗场所电源配置及变配电系统设计与应用分析

摘要:针对不同医疗场所,结合医疗负荷分级,从维持供电时间和恢复供电时间的角度分析相应的电源配置和配电措施,以构建适合医疗场所的可靠供配电系统。 关键词:医疗场所;电源配置;安全电源&#…

vue+echarts:圆形柱状图设置角度和最大值

第020个点击查看专栏目录本示例是显示圆形的柱状图,angleAxis设置一个max, angleAxis上startAngle:90 , 将0点设置为最顶点。 文章目录示例效果示例源代码(共100行)相关资料参考专栏介绍示例效果 示例源代码…

【免费教程】地下水模拟及环评之水文地质基础与建模流程、数据要求专题

地下水地下水(ground water),是指赋存于地面以下岩石空隙中的水,狭义上是指地下水面以下饱和含水层中的水。在国家标准《水文地质术语》(GB/T 14157-93)中,地下水是指埋藏在地表以下各种形式的重…

HTTP协议知识体系核心重点梳理

HTTP协议知识体系核心重点梳理TCP/IP协议1.四层模型2.通信过程3.tcp三次握手和四次挥手4.tcp安全传输4. 一次HTTP通信流程HTTP协议HTTP/1.1CookieHttp报文格式内容编码分块传输编码HTTP状态码重定向状态码常用的通用首部cache-controlExpiresConnectionTransfer-Encoding常用的…

Sprng依赖注入(二):setter注入是如何工作的?

文章示例环境配置信息jdk版本:1.8开发工具:Intellij iDEA 2020.1springboot:2.3.9.RELEASE前言在Spring依赖注入(一):字段注入的方式是如何工作的?中主要分享了Spring bean依赖注入方式中的字段注入方式及其工作过程&a…

数据结构与算法之最长公共子序列动态规划

目录:一.题目及其示例二.动态规划的基本思想三.思路动态规划五部曲1.确定dp数组(dp table)以及下标的含义2.确定递推公式3.dp数组如何初始化4.确定遍历顺序5.举例推导dp数组一.题目及其示例给定两个字符串 text1 和 text2,返回这两…

Docker----------day5---安装redis集群

1.哈希取余分区 2亿条记录就是2亿个k,v,我们单机不行必须要分布式多机,假设有3台机器构成一个集群,用户每次读写操作都是根据公式: hash(key) % N个机器台数,计算出哈希值,用来决定数据映射到哪一个节点上。…

华为机试题:HJ81 字符串字符匹配(python)

文章目录(1)题目描述(2)Python3实现(3)知识点详解1、input():获取控制台(任意形式)的输入。输出均为字符串类型。1.1、input() 与 list(input()) 的区别、及其相互转换方…

VO,BO,PO,DO,DTO,AO的区别

DTO(Data Transfer Object)数据传输对象 这个传输通常指的前后端之间的传输 1.在前端的时候: 存在形式通常是js里面的对象(也可以简单理解成json),也就是通过ajax请求的那个数据体 2.在后端的时候&…

深入浅出C++ ——map类深度剖析

文章目录一、map类介绍二、map的使用三、multimap一、map类介绍 map是 C STL 中提供的容器,map是数学上的映射,其具有唯一性,即每个pair(key,value)只出现一次,而 multimap 则是可重复映射,两者的内部实现是一棵红黑树…

[Datawhale][CS224W]图机器学习(五)

这里写目录标题一、Deepwalk1.1 预备知识1.2 Deepwalk介绍1.3 Embedding1.4 word2Vec 词向量,词嵌入1.5 random Walk随机游走1.6 DeepWalk 核心代码Random WalkWord2vecDeepWalk应用1.7 DeepWalk优缺点二、Node2Vec2.1 图嵌入2.2 Node2Vec优化目标顶点序列采样策略2…

固态继电器控制电路

固态继电器控制电路 固态继电器(SSR)的种类和型号很多,因此其输入控制方法和控制电路也相应众多。固态继电器(SSR)的共同特点在于驱动电流或驱动电压小,即只需输入一个小信号即可控制SSR的开关。 如果需要…

瞎更新,container_cpu_usage_seconds_total{job=“cadvisor“} 怎么没有啦

一、 基本介绍 1.1 概论 1.1.1 故事背景 今天在同步其他团队的 grafana 监控大盘时,Prometheus 服务报告说不能找到名为 container_cpu_usage_seconds_total{job“cadvisor”} 的指标,一般来说可能有几个原因。 可能是 Prometheus 服务没开启prometh…

leaflet 实现极地标线地图,加载tileLayer.wms数据(088)

第088个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中实现极地标线地图,加载tileLayer.wms数据。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果. 文章目录 示例效果配置方式示例源代码(共93行)安装插件专栏目标相关API参考:示例效果…

什么是API?(详细解说)

编程资料时经常会看到API这个名词,网上各种高大上的解释估计放倒了一批初学者。初学者看到下面这一段话可能就有点头痛了。 API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开…

超详细的阿里java岗社招知识点整理,常考知识点全在这里了

常考知识点 1、java的基本数据类型与包装类; 2、final修饰变量类方法; 3、String为什么是不可变的,以及new String(“abc”)创建了几个对象; 4、String、StringBuffer、以及StringBuilder的区别; 5、static修饰变…

金融BI分析的价值

众所周知,金融行业从信息化时代起,就是对IT依赖程度非常高的,也是最严苛的。进入到数字化时代,金融机构越来越注重技术创新,BI工具也越来越受到重视。利用BI工具,金融机构可以更快、更准确地获得有关市场信…

2023年1月用户体验GX评测:商业银行抢抓新春营销旺季,多措并举持续提升用户体验

易观:2023年1月正值中国传统春节营销旺季,各家银行充分发挥手机银行的优势,积极探索新春营销新模式,为客户提供极富特色的“开门红”线上营销活动,提升用户参与积极性,在用户体验上积极探索,增强…

真香!Linux 原来是这么管理内存的

Linux 内存管理模型非常直接明了,因为 Linux 的这种机制使其具有可移植性并且能够在内存管理单元相差不大的机器下实现 Linux,下面我们就来认识一下 Linux 内存管理是如何实现的。 一,基本概念 每个 Linux 进程都会有地址空间,这…