MQTT协议_MQTT协议简介

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协议中从网络架构的角度来看包括服务端和客户端,从消息传递的角度来说包括发布者,代理器(服务器)和订阅者。或者可以这样说,客户端包括了发布者和订阅者。

MQTT协议_MQTT协议简介_第1张图片

MQTT协议_MQTT协议简介_第2张图片

2.1.5 MQTT在网络中的位置

MQTT协议_MQTT协议简介_第3张图片

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,AIOT纵论,物联网,MQTT,传输层,通信,网络)