物联网协议

LoRa、NB-IoT、Zigbee、蓝牙主要解决的是物体互联以及接入网路的问题,从网络协议分层来看,基本都属于数据链路层协议。对于物联网的数据交换、主要依靠应用层协议来解决。

发布—订阅机制

很多物联网应用层协议都是基于发布-订阅(Publish-Subscribe)机制,这种机制非常适合物联网系统应用。MQTT协议、STOM协议、AMQP协议以及DDS协议都属于这种发布-订阅机制。
每个传感器节点,采集的数据需要上传到网络,相当于一个消息的发布,这个消息需要基于某个主题,比如传感器的类型。所有关心这个主题的节点,都可以通过订阅这个主题的消息,实时获取最新的数据。
这里写图片描述

MQTT协议

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)最早是IBM开发的一个即时通讯协议,MQTT协议是为大量计算能力有限且工作在低带宽、不可靠网络的远程传感器和控制设备通讯而设计的一种协议。
MQTT协议的优势是可以支持所有平台,它几乎可以把所有的联网物品和互联网连接起来。

主要的几项特性:

  • 使用发布/订阅消息模式,提供一对多的消息发布和应用程序之间的解耦;

  • 消息传输不需要知道负载内容;

  • 使用 TCP/IP 提供网络连接;

  • 三种消息发布的服务质量:

QoS 0:“最多一次”,消息发布完全依赖底层 TCP/IP
网络。分发的消息可能丢失或重复。例如,这个等级可用于环境传感器数据,单次的数据丢失没关系,因为不久后还会有第二次发送。 QoS
1:“至少一次”,确保消息可以到达,但消息可能会重复。 QoS
2:“只有一次”,确保消息只到达一次。例如,这个等级可用在一个计费系统中,这里如果消息重复或丢失会导致不正确的收费。

扫描二维码关注公众号,回复: 926740 查看本文章
  • 小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量;
  • 列表内容使用 Last Will 和 Testament 特性通知有关各方客户端异常中断的机制;

在MQTT协议中,一个MQTT数据包由:固定头(Fixedheader)、可变头(Variable header)、 消息体(payload)三部分构成。MQTT的传输格式非常精小,最小的数据包只有2个bit,且无应用消息头。

下图是MQTT为可靠传递消息的三种消息发布服务质量
这里写图片描述

发布/订阅模型允许MQTT客户端以一对一、一对多和多对一方式进行通讯。
下图是MQTT的发布/订阅消息模式
MQTT的发布/订阅消息模式

物联网协议对比

这里写图片描述

协议应用的侧重方向

MQTT、 DDS、 AMQP、XMPP、 JMS、 REST、 CoAP这几种协议都已被广泛应用,并且每种协议都有至少10种以上的代码实现,都宣称支持实时的发布/订阅的物联网协议,但是在具体物联网系统架构设计时,需考虑实际场景的通信需求,选择合适的协议。
以智能家居为例,说明下这些协议侧重应用方向。智能家居中智能灯光控制,可以使用XMPP协议控制灯的开关;智能家居的电力供给,发电厂的发动机组的监控可以使用DDS协议;当电力输送到千家万户时,电力线的巡查和维护,可以使用MQTT协议;家里的所有电器的电量消耗,可以使用AMQP协议,传输到云端或家庭网关中进行分析;最后用户想把自家的能耗查询服务公布到互联网上,那么可以使用REST/HTTP来开放API服务。

物联网协议的选择

  • 发布/订阅服务更适合物联网环境下通信
    DDS、MQTT、AMQP和JMS都是基于发布/订阅模式,发布/订阅框架具有服务自发现、动态扩展、事件过滤的特点,它解决了物联网系统在应用层的数据源快速获取、物的加入和退出、兴趣订阅、降低带宽流量等问题,实现物的联接在空间上松耦合(双方无需知道通信地址)、时间上松耦合和同步松耦合。
  • 列表内容服务质量(QoS)是物联网通信中的重要考虑因素
    在服务策略的帮助下,DDS能够有效地控制和管理网络带宽、内存空间等资源的使用,同时也能控制数据的可靠性、实时性和数据的生存时间,通过灵活使用这些服务质量策略,DDS不仅能在窄带的无线环境上,也能在宽带的有线通信环境上开发出满足实时性需求的数据分发系统。

猜你喜欢

转载自blog.csdn.net/weixin_39554266/article/details/80181527