概述
MQTT简介
2.1.1 概述
MQTT(MessageQueuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议。MQTT是面向M2M和物联网的连接协议,采用轻量级发布和订阅消息传输机制。
它的设计思想是轻巧、开放、简单、规范,因此易于实现。这些特点使得它对很多场景来说都是很好的选择,包括受限的环境如机器与机器的通信(M2M)以及物联网环境(IoT),这些场景要求很小的代码封装或者网络带宽非常昂贵。
MQTT提供的服务可使应用建立和维持会话,并能使会话获得同步,选择需要的运输服务质量参数(QOS),传送有限的透明用户数据。
2.1.2 MQTT的设计原则
l 精简,不添加可有可无的功能。
l 发布/订阅(Pub/Sub)模式,提供了一对多的消息分发和应用之间的解耦。
l 允许用户动态创建主题,零运维成本。
l 很小的传输消耗和协议数据交换,最大限度减少网络流量。
l 把低带宽、高延迟、不稳定的网络等因素考虑在内。
l 支持连续的会话控制,异常连接断开发生时,能通知到相关各方。
l 理解客户端计算能力可能很低。
l 提供三种服务质量管理。
l 透明的内容负载。假设数据不可知,不强求传输数据的类型与格式,保持灵活性。
2.1.3 发布/订阅模式
与请求/回答这种同步模式不同,发布/定义模式解耦了发布消息的客户(发布者)与订阅消息的客户(订阅者)之间的关系,这意味着发布者和订阅者之间并不需要直接建立联系。
该模式带来了这些好处:
l 发布者与订阅者不比了解彼此,只要认识同一个消息代理即可。
l 发布者和订阅者不需要交互,发布者无需等待订阅者确认而导致锁定。
l 发布者和订阅者不需要同时在线,可以自由选择时间来消费消息
2.1.4 MQTT中的角色
MQTT协议中从网络架构的角度来看包括服务端和客户端,从消息传递的角度来说包括发布者,代理器(服务器)和订阅者。或者可以这样说,客户端包括了发布者和订阅者。
2.1.5 MQTT在网络中的位置
MQTT是基于底层传输协议基础设施(wifi,bt,ble等)之上的传输层的协议,如果从网络7层协议的角度来看,MQTT应该是传输层的协议。
需要注意的是MQTT是基于TCP/IP协议的。而NB-IoT是基于UDP的,所以NB-IoT只能使用CoAP协议来支撑。
2.1.6 网络连接支持
MQTT协议要求基础传输层能够提供有序的、可靠的、双向传输(从客户端到服务端和从服务端到客户端)的字节流。
MQTT 3.1使用的传输层协议是定义的TCP/IP协议。下面的协议也支持:
l TLS协议
l WebSocket协议
TCP端口8883和1883已在IANA注册,分别用于MQTT的TLS和非TLS通信。
无连接的网络传输协议如UDP是不支持的,因为他们可能会丢失数据包或对数据包重排序。
版权所有,转载请注明出处:http://www.junsion.icoc.bz/ by 小丑
最后
以上就是大胆冰棍为你收集整理的MQTT协议_MQTT协议简介的全部内容,希望文章能够帮你解决MQTT协议_MQTT协议简介所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复