MQTT是一个物联网传输协议,它被设计用于轻量级的发布/订阅式消息传输,旨在为低带宽和不稳定的网络环境中的物联网设备提供可靠的网络服务。MQTT是专门针对物联网开发的轻量级传输协议。MQTT协议针对低带宽网络,低计算能力的设备,做了特殊的优化,使得其能适应各种物联网应用场景。目前MQTT拥有各种平台和设备上的客户端,已经形成了初步的生态系统。在12月18日举行的OIOT开放物联网大会上,IBM的徐刚带来了《IBM MQTT:国际标准化物联网推荐协议》的主题分享,本文根据其演讲内容整理而成。
MQTT的发展历史
在物联网中,开源和开放标准是基本的要素。MQTT的发展历史大致如下:
- 1999年,IBM和合作伙伴共同发明了MQTT协议。
- 2004年,MQTT.org开放了论坛,供大家广泛参与。
- 2011年,IBM建立了Eclipse开源项目Paho,并贡献了代码。Eclipse Paho是MQTT的Java实现版本。
- 2013年,OASIS MQTT技术规范委员会成立。
- 2014年,MQTT正式成为推荐的物联网传输协议标准。
物联网接入的挑战
物联网中的数据传输会面临很多问题,比如在网络不稳定的情况下,如果保证数据的传输没有问题,如何保证数据不被重复发送,连接断开后如何进行重连。总体来说,物联网的接入会面临以下几个方面的挑战:
- 设备、传感器。物联网接入对终端采集和控制设备要求高,且终端的改造以及网络费用成本也比较高。另外,其对终端的能耗要求也比较高。
- 网络。现有的网络传输贷款参差不齐,传输网络不稳定。
- 服务器。高并发情况下,多客户端的接入能力以及消息处理能力。
MQTT的优势
MQTT的设计思想是开源、可靠、轻巧、简单,MQTT的传输格式非常精小,最小的数据包只有2个比特,且无应用消息头。MQTT可以保证消息的可靠性,它包括三种不同的服务质量(最多只传一次、最少被传一次、一次且只传一次),如果客户端意外掉线,可以使用“遗愿”发布一条消息,同时支持持久订阅。MQTT在物联网以及移动应用中的优势有:
- 可靠传输。MQTT可以保证消息可靠安全的传输,并可以与企业应用简易集成。
消息推送。支持消息实时通知、丰富的推送内容、灵活的Pub-Sub以及消息存储和过滤。
低带宽、低耗能、低成本。占用移动应用程序带宽小,并且带宽利用率高,耗电量较少。