国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

MQTT協(xié)議在物聯(lián)網(wǎng)中的應(yīng)用研究

2018-01-22 01:48:40龔永罡付俊英汪昕宇王蘊(yùn)琪
電腦與電信 2017年11期
關(guān)鍵詞:報(bào)頭油煙機(jī)消息

龔永罡 付俊英 汪昕宇 王蘊(yùn)琪 高 爽

(北京工商大學(xué)計(jì)算機(jī)與信息工程學(xué)院,北京 100048)

1 引言

通信對(duì)于物聯(lián)網(wǎng)來說是非常常見和至關(guān)重要的,不管是移動(dòng)通信技術(shù)還是近距離無線傳輸技術(shù),都會(huì)對(duì)物聯(lián)網(wǎng)的發(fā)展產(chǎn)生影響。而在通信中,通信協(xié)議是指雙方實(shí)體完成通信或服務(wù)必須遵循的規(guī)則和約定,顯得尤為重要。在物聯(lián)網(wǎng)的三層體系結(jié)構(gòu)中,感知層和應(yīng)用層需要通過網(wǎng)絡(luò)層進(jìn)行通信,目前TCP/IP已經(jīng)成為互聯(lián)網(wǎng)的事實(shí)標(biāo)準(zhǔn),物聯(lián)網(wǎng)通信協(xié)議主要是運(yùn)行在互聯(lián)網(wǎng)TCP/IP協(xié)議之上的設(shè)備通訊協(xié)議,負(fù)責(zé)設(shè)備通過互聯(lián)網(wǎng)進(jìn)行通信和數(shù)據(jù)交換。由于HTTP協(xié)議開發(fā)成本低,開放性高;在構(gòu)建物聯(lián)網(wǎng)系統(tǒng)時(shí),很多廠商都基于HTTP協(xié)議進(jìn)行開發(fā)。但在資源緊缺型的嵌入式系統(tǒng)中或網(wǎng)絡(luò)帶寬非常昂貴的環(huán)境中,HTTP協(xié)議并不適用。MQTT協(xié)議具有低功耗、開放、簡單、輕量級(jí)以及易于實(shí)現(xiàn)的特點(diǎn),使其即便是在資源有限的環(huán)境中也能易于使用,廣泛應(yīng)用于遙感、智能家居、能源監(jiān)測和醫(yī)療應(yīng)用等領(lǐng)域,是物聯(lián)網(wǎng)的重要組成部分。

本文討論并通過實(shí)驗(yàn)對(duì)比了HTTP協(xié)議和MQTT協(xié)議在智能家居領(lǐng)域的應(yīng)用,測試結(jié)果表明MQTT在降低功耗和推送功能開發(fā)上優(yōu)勢明顯。

2 物聯(lián)網(wǎng)通信協(xié)議概述

目前在物聯(lián)網(wǎng)領(lǐng)域中,可以采用的消息傳輸方案主要有以下幾種:HTTP協(xié)議、Ajax輪詢、Websocket、MQTT和Co-AP協(xié)議,以下對(duì)HTTP和MQTT做一下介紹。

2.1 HTTP協(xié)議

HTTP協(xié)議的特點(diǎn)是簡捷、快速,適用于分布式超媒體信息系統(tǒng),是一個(gè)基于請求和響應(yīng)模式的應(yīng)用層協(xié)議。它承載于TCP協(xié)議之上,通過客戶端建立TCP連接,向服務(wù)器指定端口(默認(rèn)端口80)發(fā)出HTTP請求,服務(wù)器接收到請求后返回一個(gè)響應(yīng)消息。HTTP協(xié)議包含傳輸信息和命令,適用于內(nèi)聯(lián)網(wǎng)/因特網(wǎng)應(yīng)用系統(tǒng)之間的通信來促成各種應(yīng)用資源超媒體訪問集成,也可用于Web訪問。目前流行的AJAX、WebSocket和CoAP協(xié)議,本質(zhì)上都是在HTTP基礎(chǔ)封裝的,沒有改變HTTP基礎(chǔ)的特點(diǎn)。由于HTTP協(xié)議開放程度高,開發(fā)成本低,所以在構(gòu)建物聯(lián)網(wǎng)系統(tǒng)時(shí),很多廠商都是基于HTTP協(xié)議進(jìn)行開發(fā)的。

2.2MQTT協(xié)議

2.2.1 MQTT協(xié)議分析

由Arcom(現(xiàn)在的Eurotech)和IBM公司開發(fā)的MQTT(Message Queuing Telemetry Transport,消息隊(duì)列遙測傳輸)協(xié)議是一種輕量級(jí)基于發(fā)布/訂閱模式的消息傳輸協(xié)議。MQTT協(xié)議在計(jì)算方面受到了限制,適用于不可靠的網(wǎng)絡(luò)設(shè)備和低帶寬所設(shè)計(jì)的協(xié)議。它的特點(diǎn)是小型傳輸、功耗小、網(wǎng)絡(luò)流量低,并有效分配與傳輸最小數(shù)據(jù)包;MQTT協(xié)議可用于移動(dòng)系統(tǒng)應(yīng)用,是物聯(lián)網(wǎng)重要的通信協(xié)議之一。

2.2.2 MQTT協(xié)議的數(shù)據(jù)表示

MQTT消息體主要分為三部分:有效載荷,固定報(bào)頭和可變報(bào)頭。每個(gè)命令消息都必須包括固定報(bào)頭部分,固定報(bào)頭為2個(gè)字節(jié),其格式如表1所示。

表1MQTT固定報(bào)頭格式表

其中Message Type為消息類型,大約有14種;Qos level為服務(wù)質(zhì)量,有3種等級(jí),分別為Qos0、Qos1、Qos2,等級(jí)越高,產(chǎn)生的系統(tǒng)開銷就會(huì)越多,因此對(duì)通信效率產(chǎn)生的影響也就越大;Remaining Length是指除固定報(bào)頭之外的消息長度,包括有效載荷部分和可變頭部,最大可擴(kuò)展為4 bytes,最大長度可以為256M。

2.2.3 MQTT的控制數(shù)據(jù)包的格式

MQTT協(xié)議簡單,傳輸量小,成本少,可最小化協(xié)議交換,大大降低網(wǎng)絡(luò)流量,且固定報(bào)頭只有2 bytes。它采用的消息模式為發(fā)布/訂閱及一對(duì)多的消息發(fā)布模式,解除了對(duì)負(fù)載內(nèi)容屏蔽及應(yīng)用程序耦合的消息傳輸?;赥CP上的應(yīng)用層協(xié)議MQTT,支持基于TLS/SSL加密通道的傳輸。且MQTT在進(jìn)行connect時(shí)支持認(rèn)證。此外,MQTT還有3種不同的消息發(fā)布服務(wù)質(zhì)量,分別為:

“至多一次”:消息發(fā)布完全依賴底層TCP/IP網(wǎng)絡(luò),會(huì)出現(xiàn)消息丟失或重復(fù)的現(xiàn)象。

“至少一次”:確保消息抵達(dá),但可能會(huì)發(fā)生消息重復(fù)的現(xiàn)象。

“只有一次”:確保消息抵達(dá)一次,可以用在計(jì)費(fèi)系統(tǒng)中,可能會(huì)發(fā)生消息重復(fù)或因?yàn)閬G失數(shù)據(jù)而導(dǎo)致產(chǎn)生不正確結(jié)果的現(xiàn)象。

功耗、流量及傳輸這幾個(gè)特性對(duì)于移動(dòng)終端應(yīng)用是必需要涉及到的地方。對(duì)于MQTT協(xié)議而言,在滿足即時(shí)消息的基本需求情況下,同時(shí)在功耗、流量、傳輸上的問題也得到了解決。首先MQTT的固定長度只有2 bytes,其流量消耗十分小。其次,因?yàn)镸QTT協(xié)議本身很簡單,再加上頭部簡小,因此解析成本低,功耗也就比較小。另外MQTT非常容易擴(kuò)展,便于用戶的再次開發(fā)。以上內(nèi)容可以總結(jié)出,MQTT協(xié)議更適用于移動(dòng)終端,因此本文采取了基于MQTT協(xié)議的解決方案。

圖1MQTT運(yùn)行框架

3MQTT協(xié)議在智能家居中的應(yīng)用

本文以智能廚房油煙機(jī)控制系統(tǒng)與應(yīng)用端進(jìn)行通信為例進(jìn)行應(yīng)用分析。

3.1MQTT通信協(xié)議

MQTT的信息發(fā)布是基于話題的。只需要在發(fā)布的時(shí)候指定某個(gè)話題,并不需要配置相關(guān)的話題。

MQTT協(xié)議定義了發(fā)布服務(wù)器和客戶端兩個(gè)對(duì)象,如圖1所示。作為整個(gè)通信系統(tǒng)網(wǎng)絡(luò)核心的發(fā)布服務(wù)器,可以連接多個(gè)客戶端。而框架中信息的產(chǎn)生者和接收者則為客戶端。

(1)服務(wù)器接受的信息是客戶端通過subscribe發(fā)布的;

(2)發(fā)布服務(wù)器上的某個(gè)話題信息是某個(gè)客戶端通過publish發(fā)布的;

(3)發(fā)布服務(wù)器再將這個(gè)信息轉(zhuǎn)發(fā)到對(duì)這個(gè)話題感興趣的客戶端。

圖2 系統(tǒng)總體通信

3.2 智能廚房油煙機(jī)控制系統(tǒng)及應(yīng)用端與MQTT之間的通信

智能廚房油煙機(jī)系統(tǒng)包括了四個(gè)部分:基于Open WRT系統(tǒng)的無線路由器,手機(jī)控制端,基于樹莓派的網(wǎng)關(guān)和智能油煙機(jī)設(shè)備。如圖2所示為系統(tǒng)的總體通信圖。

從圖2可知,(1)手機(jī)通信模塊提供了與系統(tǒng)服務(wù)端交互的功能,采用TLS-PSK安全協(xié)議保證數(shù)據(jù)傳輸?shù)陌踩?。?)MQTT發(fā)布服務(wù)端:整個(gè)系統(tǒng)的MQTT通信發(fā)布服務(wù)端為Mosquitto,Mosquitto管理和轉(zhuǎn)發(fā)所有的MQTT報(bào)文,同時(shí)負(fù)責(zé)TLS-PSK框架配置和管理,還提供用基本的訪問權(quán)限控制和用戶認(rèn)證功能。(3)MQTT客戶端模塊:手機(jī)控制端和網(wǎng)關(guān)與Open WRT系統(tǒng)上的信息處理模塊的通信功能是由MQTT客戶端模塊提供的。MQTT客戶端模塊從網(wǎng)關(guān)接收設(shè)備狀態(tài)信息,并將信息推送到手機(jī)控制終端。另外,手機(jī)控制端發(fā)布的控制命令也是由它負(fù)責(zé)接收的,且在命令被處理完成后再推送給網(wǎng)關(guān)。

4 HTTP和MQTT協(xié)議通信效率對(duì)比測試

我們搭建了實(shí)驗(yàn)環(huán)境,對(duì)HTTP和MQTT協(xié)議在物聯(lián)網(wǎng)應(yīng)用中的通信效率進(jìn)行了對(duì)比測試,在智能廚房油煙機(jī)中,進(jìn)行測試時(shí)分別采用MQTT協(xié)議的實(shí)現(xiàn)與HTTP協(xié)議的實(shí)現(xiàn),抓取數(shù)據(jù)包和分析數(shù)據(jù)包時(shí)采用sniffer。MQTT協(xié)議和HTTP協(xié)議的響應(yīng)時(shí)間、吞吐量、消耗流量如表2所示。

MQTT測試環(huán)境:1個(gè)智能油煙機(jī)客戶端,阿里IOT云服務(wù)器(提供MQTT服務(wù)),wifi網(wǎng)絡(luò)環(huán)境。

HTTP測試環(huán)境:1個(gè)智能油煙機(jī)客戶端,Ayla IOT云服務(wù)器(提供REST服務(wù)),wifi網(wǎng)絡(luò)環(huán)境。

測試采樣10000條,獲取的通信響應(yīng)和吞吐量指標(biāo)響應(yīng)如表2所示:

表2 測試結(jié)果

10000次采樣測試結(jié)果表明,在平均響應(yīng)時(shí)間上MQTT為4ms,而HTTP為13ms,在吞吐量指標(biāo)上,單位時(shí)間MQTT比HTTP要大,因此,可以得出結(jié)論,同樣的環(huán)境中,MQTT在通信效率上有明顯的優(yōu)勢。

5HTTP和MQTT消息推送方案分析

隨著移動(dòng)互聯(lián)網(wǎng)和智能終端的普及,在物聯(lián)網(wǎng)應(yīng)用中,對(duì)在手機(jī)類移動(dòng)終端設(shè)備上獲取信息提出了更高的要求,主要體現(xiàn)在時(shí)限性和移動(dòng)性兩個(gè)方面。時(shí)限性要求把信息在規(guī)定的時(shí)間內(nèi)發(fā)送到移動(dòng)終端設(shè)備;移動(dòng)性要求在信息傳輸時(shí)保持低功耗,低速率。不管是IOS還是Android,如果采用“拉取”的推送方式,在程序中信息的更新通知需要持續(xù)的檢查,獲取消息時(shí)需給服務(wù)器發(fā)送拉取請求[1],更新的信息無法直接通過服務(wù)器被主動(dòng)發(fā)送給用戶,這就增加了交互的次數(shù)和負(fù)擔(dān),同時(shí)也增加了移動(dòng)端的資源開銷,而推送方式縮短反應(yīng)時(shí)間,提高效率,第一時(shí)間把更新信息推送給移動(dòng)端[2,3]。目前在Android和IOS平臺(tái)上都有自己的推送系統(tǒng),但在網(wǎng)絡(luò)中,操作系統(tǒng)和開發(fā)方面會(huì)受到各方面的限制,同一款應(yīng)用在這個(gè)功能上需要采用不同的技術(shù)方案,有很大的局限性。比如Android推送無法直接使用Google的云消息服務(wù)器,只能采用國內(nèi)的代理推送服務(wù)器,而iphoneAPNS只適用于IOS,不能跨平臺(tái)推送,使用MQTT可以避免上述問題,節(jié)省了開發(fā)人員寶貴的開發(fā)時(shí)間。

通過對(duì)目前Android平臺(tái)上最主流的幾種消息推送方案的分析和對(duì)比,可以清楚地了解到MATT協(xié)議是最快速,也最省流量的(固定頭長度僅為2個(gè)字節(jié)),在IOS和Android平臺(tái)上進(jìn)行推送功能開發(fā)具有一致性,且極易擴(kuò)展,適合二次開發(fā)。所以本文推薦使用MQTT協(xié)議的方案進(jìn)行實(shí)現(xiàn)。

6 結(jié)語

本文詳細(xì)剖析了用于物聯(lián)網(wǎng)通信的HTTP協(xié)議和MQTT協(xié)議,并從功耗和消息推送功能開發(fā)效率兩方面進(jìn)行了比對(duì),實(shí)踐證明基于TCP/IP之上的HTTP協(xié)議不適合資源緊缺型的嵌入式系統(tǒng)或網(wǎng)絡(luò)帶寬非常昂貴的環(huán)境,另外HTTP協(xié)議開發(fā)消息推送功能非常繁瑣,而MQTT協(xié)議具有低功耗、開放、簡單、輕量級(jí)以及易于實(shí)現(xiàn)的特點(diǎn),在資源受限的環(huán)境中也能得到很好的使用,更適合用于物聯(lián)網(wǎng)領(lǐng)域的通信,在降低功耗和推送功能開發(fā)上具有非常明顯的優(yōu)勢。

[1]劉軍霞,熊選東,付建丹.基于發(fā)布/訂閱的推模式服務(wù)調(diào)用[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2012(12):196-199.

[2]李小智.基于消息中間件的服務(wù)器推送技術(shù)的應(yīng)用研究[D].長沙:湖南大學(xué),2010.

[3]梅蕊.跨服務(wù)器消息發(fā)布與推送機(jī)制的研究[D].武漢:華中科技大學(xué),2011.

[4]崔健,段振剛,齊志男,等.基于物聯(lián)網(wǎng)云平臺(tái)的壁掛爐遠(yuǎn)程控制系統(tǒng)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2015,24(9):56-60.

[5]徐汶東.基于無線通信的智能油煙機(jī)控制系統(tǒng)設(shè)計(jì)[J].ICSSS,2015:421-425.

[6]任亨.基于MQT T協(xié)議的消息推送服務(wù)器[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2014,23(3):77–82.

猜你喜歡
報(bào)頭油煙機(jī)消息
數(shù)據(jù)參考
智能油煙機(jī)控制裝置研究與開發(fā)
一張圖看5G消息
打破傳統(tǒng)的廚房油煙機(jī)
五金科技(2019年5期)2019-12-19 08:09:56
城市黨報(bào)報(bào)頭:政治與藝術(shù)的平衡
淡妝濃抹總相宜
——對(duì)中國晚報(bào)報(bào)頭變化的研究與欣賞
大眾文藝(2015年12期)2015-07-13 07:31:22
消息
消息
消息
IP語音報(bào)頭壓縮設(shè)計(jì)與實(shí)現(xiàn)
無線電工程(2014年1期)2014-06-14 01:37:28
随州市| 虎林市| 湘潭市| 昆明市| 普兰县| 噶尔县| 江油市| 永安市| 延长县| 额济纳旗| 泾源县| 绥宁县| 耿马| 芜湖市| 安仁县| 成安县| 罗源县| 安溪县| 铜陵市| 沛县| 绍兴县| 荣成市| 泰顺县| 迁安市| 堆龙德庆县| 福海县| 县级市| 荔浦县| 肇东市| 和政县| 石家庄市| 四川省| 瓦房店市| 道真| 即墨市| 北京市| 长泰县| 龙山县| 建始县| 桓台县| 射阳县|