大家好,欢迎来到IT知识分享网。
戳我有惊喜!!!
MQTT,全名为( Message Queuing Telemetry Transport ),是一种年代并不算久远的通讯协议,起初就是为了网络条件受限的环境而研发出来,所以本身就具备着低带宽低开销的特性,而且代码量也小,而且本身MQTT是建立在TCP协议之上,并且对信息传输的可靠性进行了更深度的保护。
所以,在嵌入式领域,MQTT已经占据着无法替代的分量了,因为大多数的嵌入式设备,都需要这样的协议进行数据交互,嵌入式设备的可用资源并不多,并且外挂的各种入网的手段,也比不得寻常的手机个人电脑,属于是低网速的通信手段,并且对于消耗流量的4G/NB-IOT类设备,大量的流量消耗也是吃不消。
MQTT深层特性
下面应该说说MQTT深层的特性了。
1、一对多信息发布
首先,他是基于订阅与发布的一种协议,所以他可以一对多得进行消息发布,这样的功能应用场景非常多,局限性广播能够让服务器灵活控制想要控制的那个设备,并且服务器可以提供多个可以订阅的主题,这是极为关键的。
因为对于服务器而言,接收数据并处理是核心任务,但是当设备的增多、设备功能行的增多,服务器处理逻辑将会几何倍数增长,同样是接收的数据,也许是完全不同类设备上传的完全不一样的信息,所以当可以提供多个订阅主题与发布主题时,这种逻辑上的差异性就能被区分开,给开发者带来了很大的便利。
2、不同底层协议
MQTT的第二个特性其实就是他基于了TCP/IP而生,注定它是靠上层的一个协议,现在接触的其实大多都是基于TCP协议而开发的,但它其实是有基于UDP版本的,名为MQTT-SN,但大家都知道,TCP面向连接,而UDP不面向连接,所以基于不同的底层协议类型,MQTT展现的特性肯定也是不同的。
对于常用的MQTT(基于TCP)协议,他有一个很重要的保证消息可靠性的特性:QoS。
QoS分为三个等级:
QoS 0其实相当于MQTT没有做额外信息保护,因为本身是基于TCP协议的,所以其消息可靠性完全依赖于TCP协议。而QoS 1,则是代表至少承诺会有一次发送给接收者,这是在MQTT层进行的信息保护,而不只是依靠TCP协议层。最后QoS 2,则是保证消息仅仅传送到目的地一次。
因为对于QoS 1,可能会因为消息没有反馈而多次发送,而接收方也可能收到多次消息,为此,QoS 2传输的消息带有唯一的ID,带有唯一消息 ID 的消息会存储两次,首先来自发送者,然后是接收者QoS 级别 2 在网络中具有最高的开销,因为在发送方和接收方之间需要两个流。
目前MQTT应用其实已经十分广泛,无论是嵌入式农业、工业、基建设备领域,都有它的身影,但其本身是一种协议。
其实身为物联网中的数据传输一环,和数据的传输手段有着同样举足轻重的作用,无论是4G还是NB-IOT还是Wi-Fi等等,数据传输归数据传输,协议却是上层的灵魂,不同的协议有着不同的应用场景,也承担着不同的作用。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/52333.html