MQTT是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和制动器(比如通过Twitter让房屋联网)的通信协议;是一个客户端服务端架构的发布/订阅模式的消息传输协议,协议运行在TCP/IP上,属于应用层协议。由于低开销、低带宽的特点有着广泛的应用场景。
协议将信息的发布者和订阅者分开来,因此可以在不可靠的网络环境中,为远程连接的设备提供可靠的消息服务。
TCP
协议位于传输层,MQTT
协议位于应用层,MQTT
协议构建于TCP/IP
协议上,也就是说只要支持TCP/IP
协议栈的地方,都可以使用MQTT
协议。
MQTT特性
1.使用发布/订阅消息模式,解除应用程序耦合。
2.二进制形式编码,小型化传输,降低网络开销
3.三种消息发布服务质量: 至多一次、至少一次、只有一次
4.采用心跳机制,通过间断性的发送报文
MQTT协议为什么在物联网(IOT)中如此受偏爱?而不是其它协议,比如我们更为熟悉的 HTTP协议呢?
首先HTTP协议它是一种同步协议,客户端请求后需要等待服务器的响应。而在物联网(IOT)环境中,设备会很受制于环境的影响,比如带宽低、网络延迟高、网络通信不稳定等,显然异步消息协议更为适合IOT应用程序。
HTTP是单向的,如果要获取消息客户端必须发起连接,而在物联网(IOT)应用程序中,设备或传感器往往都是客户端,这意味着它们无法被动地接收来自网络的命令。
通常需要将一条命令或者消息,发送到网络上的所有设备上。HTTP要实现这样的功能不但很困难,而且成本极高。