MQTT,全名为( Message Queuing Telemetry Transport ),是一种年代并不算久远的通讯协议,起初就是为了网络条件受限的环境而研发出来,所以本身就具备着低带宽低开销的特性,而且代码量也小,而且本身MQTT是建立在TCP协议之上,并且对信息传输的可靠性进行了更深度的保护。
所以,在嵌入式领域,MQTT通信协议已经占据着无法替代的分量了,因为大多数的嵌入式设备,都需要这样的协议进行数据交互,嵌入式设备的可用资源并不多,并且外挂的各种入网的手段,也比不得寻常的手机个人电脑,属于是低网速的通信手段,并且对于消耗流量的4G/NB-IOT类设备,大量的流量消耗也是吃不消。
下面应该说说MQTT协议深层的特性了。
1、一对多信息发布
首先,他是基于订阅与发布的一种协议,所以他可以一对多地进行消息发布,这样的功能应用场景非常多,局限性广播能够让服务器灵活控制想要控制的那个设备,并且服务器可以提供多个可以订阅的主题,这是极为关键的。
因为对于服务器而言,接收数据并处理是核心任务,但是当设备的增多、设备功能行的增多,服务器处理逻辑将会几何倍数增长,同样是接收的数据,也许是完全不同类设备上传的完全不一样的信息,所以当可以提供多个订阅主题与发布主题时,这种逻辑上的差异性就能被区分开,给开发者带来了很大的便利。
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模块还是WiFi模块、lora模块、蓝牙模块、zigbee模块等,数据传输归数据传输,协议却是上层的灵魂,不同的协议有着不同的应用场景,也承担着不同的作用。
太阳集团tcy8722人每一天都致力于更好的助力物联化、智能化、自动化的发展,提升资源利用率,更多产品更多资料,感兴趣的小伙伴可以登录我们的官网行了解,还有客服小姐姐在线答疑哦!
7 X 24 销售服务热线
4000-330-990深圳办事处柯经理:18218726658 杭州办事处戴经理:17512568697
常州办事处崔经理:15906110783 南京办事处葛经理:17626012283
业务邮箱:support@cdhanzaichips.com
全国销售投诉电话:19934352316
地址:四川省成都市高新西区西区大道199号B5栋(前台座机:028-61543675)
©© 成都太阳集团tcy8722电子科技有限公司【版权所有】 蜀ICP备27697263号-3