物聯(lián)網(wǎng)傳輸協(xié)議MQTT
MQTT是一個物聯(lián)網(wǎng)傳輸協(xié)議,它被設計用于輕量級的發(fā)布/訂閱式消息傳輸,旨在為低帶寬和不穩(wěn)定的網(wǎng)絡環(huán)境中的物聯(lián)網(wǎng)設備提供可靠的網(wǎng)絡服務。MQTT是專門針對物聯(lián)網(wǎng)開發(fā)的輕量級傳輸協(xié)議。MQTT協(xié)議針對低帶寬網(wǎng)絡,低計算能力的設備,做了特殊的優(yōu)化,使得其能適應各種物聯(lián)網(wǎng)應用場景。目前MQTT擁有各種平臺和設備上的客戶端,已經(jīng)形成了初步的生態(tài)系統(tǒng)。在12月18日舉行的OIOT開放物聯(lián)網(wǎng)大會上,IBM的徐剛帶來了《IBM MQTT:國際標準化物聯(lián)網(wǎng)推薦協(xié)議》的主題分享,本文根據(jù)其演講內容整理而成。
MQTT的發(fā)展歷史
在物聯(lián)網(wǎng)中,開源和開放標準是基本的要素。MQTT的發(fā)展歷史大致如下:
1999年,IBM和合作伙伴共同發(fā)明了MQTT協(xié)議。
2004年,MQTT.org開放了論壇,供大家廣泛參與。
2011年,IBM建立了Eclipse開源項目Paho,并貢獻了代碼。Eclipse Paho是MQTT的Java實現(xiàn)版本。
2013年,OASIS MQTT技術規(guī)范委員會成立。
2014年,MQTT正式成為推薦的物聯(lián)網(wǎng)傳輸協(xié)議標準。
物聯(lián)網(wǎng)接入的挑戰(zhàn)
物聯(lián)網(wǎng)中的數(shù)據(jù)傳輸會面臨很多問題,比如在網(wǎng)絡不穩(wěn)定的情況下,如果保證數(shù)據(jù)的傳輸沒有問題,如何保證數(shù)據(jù)不被重復發(fā)送,連接斷開后如何進行重連??傮w來說,物聯(lián)網(wǎng)的接入會面臨以下幾個方面的挑戰(zhàn):
設備、傳感器。物聯(lián)網(wǎng)接入對終端采集和控制設備要求高,且終端的改造以及網(wǎng)絡費用成本也比較高。另外,其對終端的能耗要求也比較高。
網(wǎng)絡?,F(xiàn)有的網(wǎng)絡傳輸貸款參差不齊,傳輸網(wǎng)絡不穩(wěn)定。
服務器。高并發(fā)情況下,多客戶端的接入能力以及消息處理能力。
MQTT的優(yōu)勢
MQTT的設計思想是開源、可靠、輕巧、簡單,MQTT的傳輸格式非常精小,最小的數(shù)據(jù)包只有2個比特,且無應用消息頭。MQTT可以保證消息的可靠性,它包括三種不同的服務質量(最多只傳一次、最少被傳一次、一次且只傳一次),如果客戶端意外掉線,可以使用“遺愿”發(fā)布一條消息,同時支持持久訂閱。MQTT在物聯(lián)網(wǎng)以及移動應用中的優(yōu)勢有:
可靠傳輸。MQTT可以保證消息可靠安全的傳輸,并可以與企業(yè)應用簡易集成。
消息推送。支持消息實時通知、豐富的推送內容、靈活的Pub-Sub以及消息存儲和過濾。
低帶寬、低耗能、低成本。占用移動應用程序帶寬小,并且帶寬利用率高,耗電量較少。