ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

IOT设备中常见的协议简单论述

2022-05-07 16:04:06  阅读:229  来源: 互联网

标签:协议 常见 JMS IOT CoAP MQTT 消息 论述 设备


因为iot的学习需要了解常见的一些协议,所以通过网上师傅们的博客集合,通过此篇方便自己以后的复习和各位师傅的方便

 

UPNP协议:

UPnP 是通用即插即用(Universal Plug and Play)服务的缩写,它是发现网络上各种设备提供的服务并于之交互的一种标准,现在越来越多的智能服务设备和家用网络的发展,为了使不同的智能设备之间进行网络互联互通,因此UPnP目前是家庭网络设备必须支持的特性之一,并且使用UPnP协议并不需要设备驱动程序,任何设备一旦连接上网络,所有在网络上的设备马上就能知道新加入的设备信息,以及新设备支持的服务和行为,这些设备之间能互相通信,也能直接使用和控制支持UPnP协议的设备,不需要人工设置。

UPnP 使用各种不同的协议来实现其功能:

    • SSDP: 简单服务发现协议,用于发现本地网络上的UPnP设备和在网络上单播他们可用的UPnP服务。
    • SCPD: 服务控制点定义,用于定义UPnP设备提供的服务需要的Action。
    • SOAP: 简单对象访问协议,用于实际的调用操作。
    • GENA: 通用事件通知架构,用于定义控制点向UPnP设备发送订阅消息和接受信息。

jms协议:

JMS(Java Message Service),即消息服务,这是JAVA平台中著 名的消息队列协议

Java消息服务(Java Message Service)应用程序接口,是一种Java平台上面向消息中间件(MOM)的API,用于在两个应用程序之间或分布式系统中发送消息,以进行异步通信。Java Message Services是独立于特定平台的API,大多数MOM供应商都支持JMS。

JMS是一个独立于供应商的API,用于访问消息接收和发送系统消息,这种API类似于JDBC(Java Database Connectivity)。JDBC是一个API,它可以用于访问很多不同的关系型数据库,而JMS提供了与供应商独立的访问方法,用于访问消息接收服务。很多供应商支持JMS,包括IBM的MQ Series、BEA的Weblogic JMS service和Sonic MQ。JMS能够通过消息接收服务(有时也称为消息中介程序或路由器)从一个JMS客户端向另一个JMS客户端发送消息。在JMS中,消息是一个类型对象,它包括两个部分:Header和消息体。Header由路由信息和关于消息的元数据组成。讯息体携带应用程式资料或载入资料。按照负载的类型,可以将消息分成几种类型,它们分别是:简单文本(Text Message),可序列化对象(Object Message),属性集合(Map Message),字节流(Bytes Message),初始值流(Stream Message),还有消息,没有有效负载(Message)。

xmpp协议:

XMPP(Extensible Messaging and Presence Protocol)可以扩展通信和展示协议,它的前身是Jabber,这是由开放源码组织生成的网络即时通信协议。XMPP是目前由IETF国际标准组织进行的标准化工作。

适用性:即时通讯应用,也可用于网络管理、内容供稿、协作工具、文件共享、游戏、远端系统监控等。

其特征如下:

(1)客户端/服务器通讯方式;

(2)分布式网络;

(3)简化客户端,大部分工作都在服务器端完成;

(4)标准通用标记语言的子集XML数据格式。

此外,XMPP是基于XML的协议,由于XMPP的开放性和易用性,被广泛地应用于因特网上。与HTTP相比,XMPP在通信业务流程方面更适合物联网系统,开发者无需花费太多精力来解决通信设备时的业务通信过程,因此开发成本相对较低。但HTTP协议的安全性和计算资源消耗这两个硬伤尚未在本质上解决。

amqp协议(互操作性):

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

适用范围:最早应用于金融系统之间的交易消息传递,在物联网应用中, 主要适用于移动手持设备与后台数据中心的通信和分析

amqp和jms的差别:

  JMS是早期消息中间件进行标准化的一个尝试,它仅仅是在API级进行了规范,离创建互操作能力还差很远。与JMS不同,AMQP是一个Wire级的协议,它描述了在网络上传输的数据的格式,以字节为流。因此任何遵守此数据格式的工具,其创建和解释消息,都能与其他兼容工具进行互操作。

AMQP消息机制:
消息确认
消费者在处理消息的时候偶尔会失败或者有时会直接崩溃掉。而且网络原因也有可能引起各种问题。
这就给我们出了个难题,AMQP代理在什么时候删除消息才是正确的。

AMQP的两种消息确认模式:

自动确认模式:当消息中间件将消息发送给消费者后立即删除。(使用AMQP方法:basic.deliver 或 basic.get-ok)
显式确认模式:待消费者发送一个确认回执(acknowledgement)后再删除消息。(使用AMQP方法:basic.ack)
如果一个消费者在尚未发送确认回执的情况下挂掉了,那 AMQP 代理会将消息重新投递给另一个消费者。如果当时没有可用的消费者了,消息代理会死等下一个注册到此队列的消费者,然后再次尝试投递。

DDS协议(高可靠性、实时):

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

适用范围:分布式高可靠性、实时传输设备数据通信。目前DDS已经广泛 应用于国防、民航、工业控制等领域

它的特点是:以数据为中心 使用无代理的发布/订阅信息模式,点对点,点对多,多对多 提供多达21种QoS服务质量策略

DDS很好的支持涉笔之间的数据分发和设备控制,设备和云端 的数据传输,同时DDS的数据分发的实施效率非常高,能做到 秒级内同时分发百万条消息到众多设备。DDS在服务质量上提 供非常多的保障途径,这也是它适用于国防军事、工业控制这 些高可靠性、可安全性应用领域的原因。但这些应用都工作在 优先网络下,在无线网络,特别是资源受限的情况下,没有见 到过实施案例

REST/HTTP(松耦合服务调用):

 REST/HTTP的主要目的是简化互联网中的系统架构,REST中文称为表征状态转换,是基于HTTP协议开发的一种通信风格,它可以快速实现客户端和服务器之间交互的松耦合,降低了客户端和服务器之间的交互延迟。它比较适合在物联网的应用层面,通过REST开放物联网中资源,实现服务被其他应用所调用。

适用范围:REST/HTTP为了简化互联网中的系统架构,适合在物联网的应 用层面,通过REST开放物联网中资源,实现服务被其他应用 所调用

特点是:

   1. REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是RESTful。

       2.客户端和服务器之间的交互在请求之间是无状态的。

       3. 在服务器端,应用程序状态和功能可以分为各种资源,它向客户端公开。资源的例子有:应用程序对象、数据库记录、算法等等。每个资源都使用URI(Universal Resource Identifier)得到一个惟一的地址。所有资源都共享统一的界面,以便在客户端和服务器之间传输状态。

       4.使用的是标准的 HTTP 方法,比如 GET、PUT、POST和DELETE。

coap协议:

CoAP约束应⽤协议(Constrained Application Protocol)是⼀种专⽤于受限设备的Internet应⽤协议,如RFC 7252所定义,它使那些
被称为“节点”的受约束设备能够使⽤类似的协议与更⼴泛的Internet进⾏通信。CoAP被设计⽤于同⼀受限⽹络(例如,低功耗、有损⽹
络)上的设备之间、设备和因特⽹上的⼀般节点之间以及由因特⽹连接的不同受限⽹络上的设备之间使⽤。CoAP也被⽤于其他机制,如移
动通信⽹络上的SMS。
简⾔之,CoAP是受约束设备的专⽤Internet应⽤程序协议。

适用范围 :COAP是简化了HTTP协议的RESTful API,COAP是6LowPAN 协议栈中的应用层协议,它适用于在资源受限的通信的IP网络
它的特点是:

1. 基于消息模型,定义了4个消息类型,以消息为数据通信载体,通过交换⽹络消息来实现设备间数据通信
2. 基于请求/响应模型 ,对CoAP
Server云端设备资源操作都是通过请求与响应机制来完成,类似HTTP,设备端可通过4个请求⽅法(GET, PUT, POST,
DELETE)对服务器端资源进⾏操作。 请求与响应的数据包都是放在CoAP消息⾥⾯进⾏传输的
3. 基于消息的双向通信(M2M),CoAP Client与CoAP
server双⽅都可以独⽴向对⽅发送请求.双⽅可当client或者server⾓⾊
轻量最⼩长度仅为4B
⽀持可靠传输 ,数据重传,块传输。 确保数据可靠到达。
⽀持IP多播 , 即可以同时向多个设备发送请求(⽐如CoAP client搜索CoAP Server)
低功耗 ,⾮长连接通信
⽀持受限设备
⽀持观察模式
⽀持异步通信

协议内容:CoAP是⼀个完整的⼆进制应⽤层协议,消息格式紧凑,默认运⾏在UDP上。
2. CoAP和MQTT
MQTT协议使⽤发布/订阅模型,CoAP协议使⽤请求/响应模型;
MQTT是长连接,CoAP协议是⽆连接;
MQTT通过中间代理传递消息的多对多协议,CoAP协议是Server和Client之间消息传递的单对单协议;
MQTT不⽀持带有类型或者其它帮助Clients理解的标签消息,CoAP内置内容协商和发现⽀持,允许设备彼此窥测以找到交换数据的⽅
式。
五详解CoAP协议
1. 数据包格式
(2位的版本编号⼀般区固定值0b01;2位的报⽂类型;4位的标签长度指⽰;8位的准则;16位的报⽂序号;32位标签;32位的选项;8位的分
隔符;24位的负载)
2. 消息模型
COAP协议通信是通过在UDP上传输消息类完成。UDP⽐作公路话,消息就是公路上汽车。
COAP定义了4种类型消息,来实现设备端与云端之间双向通信
需要确认消息 CON
不需要确认消息 NON (适⽤于消息会重复频繁的发送,丢掉消息不对业务产⽣影响)
确认应答消息 ACK
复位消息 RST
基于4种消息类型,可以实现2种传输质量。即可靠消息传输 与 不可靠消息传输。
怎么是可靠消息传输?
主要是通过确认及重传机制来实现的,客户端发送消息后,需要等待服务器收

MQTT协议(低带宽):

MQTT(Message Queuing Tekemetry Transport),消息队 列遥测传输,有IBM开发的即时通讯协议,相比来说比较合适 物联网场景的通讯协议。MQTT协议采用发布/订阅模式,所有 的物联网终端都通过TCP连接到云端,云端通过主题的方式管 理各个设备关注的通讯内容,负责将设备与设备之间消息的转 发

适用范围:在低带宽、不可靠的网络下提供基于云平台的远程设备的数据 传输和监控

 MQTT协议特点

MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。

MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。

其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。

MQTT协议当前版本为,2014年发布的MQTT v3.1.1。除标准版外,还有一个简化版MQTT-SN,该协议主要针对嵌入式设备,这些设备一般工作于TCP/IP网络,如:ZigBee。

MQTT 与 HTTP 一样,MQTT 运行在传输控制协议/互联网协议 (TCP/IP) 堆栈之上。

MQTT协议一般适用于设备数据采集到端(Device->server, Device->Gateway),集中星型网络架构,不适用设备与设备 之间通信,设备控制能力弱,另外实时性较差,一般都在秒级

 

这个博客是对一些协议的简单的理解,素材和图片来源网上一些师傅的文章,因为太多就不一一复制,如果想学习每个协议的更深层次的理解,还是推荐去搜索他们的文章

标签:协议,常见,JMS,IOT,CoAP,MQTT,消息,论述,设备
来源: https://www.cnblogs.com/zhuangzhouQAQ/p/16242837.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有