mqtt--協(xié)議ppt課件_第1頁
mqtt--協(xié)議ppt課件_第2頁
mqtt--協(xié)議ppt課件_第3頁
mqtt--協(xié)議ppt課件_第4頁
mqtt--協(xié)議ppt課件_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、MQTT協(xié)議梯影-技術(shù)部:李棟(MessageQueuingTelemetryTransport,消息隊(duì)列遙測傳輸協(xié)議)大綱1、什么是、什么是mqtt協(xié)議協(xié)議7、主題3、mqtt特性4、MQTT協(xié)議原理協(xié)議原理5、MQTT協(xié)議數(shù)據(jù)包結(jié)構(gòu)6、發(fā)布/訂閱模式2、物聯(lián)網(wǎng)協(xié)議有哪些8、服務(wù)質(zhì)量9、遺囑消息MQTT代理什么是MQTT協(xié)議MQTT是一種基于發(fā)布/訂閱(publish/subscribe)模式的“輕量級”通訊協(xié)議,該協(xié)議構(gòu)建于TCP/IP協(xié)議上,由IBM在1999年發(fā)布。MQTT最大優(yōu)點(diǎn)在于,可以以極少的代碼和有限的帶寬,為連接遠(yuǎn)程設(shè)備提供實(shí)時可靠的消息服務(wù)。作為一種低開銷、低帶寬占用的即時

2、通訊協(xié)議,使其在物聯(lián)網(wǎng)、小型設(shè)備、移動應(yīng)用等方面有較廣泛的應(yīng)用。MQTT是一個基于客戶端-服務(wù)器的消息發(fā)布/訂閱傳輸協(xié)議。MQTT協(xié)議是輕量、簡單、開放和易于實(shí)現(xiàn)的,這些特點(diǎn)使它適用范圍非常廣泛。在很多情況下,包括受限的環(huán)境中,如:機(jī)器與機(jī)器(M2M)通信和物聯(lián)網(wǎng)(IoT)。其在,通過衛(wèi)星鏈路通信傳感器、偶爾撥號的醫(yī)療設(shè)備、智能家居、及一些小型化設(shè)備中已廣泛使用。2014年發(fā)布的MQTTv3.1.1是當(dāng)前MQTT協(xié)議的最新版本。除標(biāo)準(zhǔn)版外,還有一個簡化版MQTT-SN,該協(xié)議主要針對嵌入式設(shè)備。3;大綱2、物聯(lián)網(wǎng)協(xié)議有哪些7、主題3、mqtt特性4、MQTT協(xié)議原理協(xié)議原理5、MQTT協(xié)議數(shù)據(jù)

3、包結(jié)構(gòu)6、發(fā)布/訂閱模式1、什么是、什么是mqtt協(xié)議協(xié)議8、服務(wù)質(zhì)量9、遺囑消息MQTT代理4;四大協(xié)議的基本介紹ProtocolCoAPXMPPRESTfulHTTPMQTTTransportUDPTCPTCPTCPMessagingRequest/ResponsePublish/Subscribe Request/ResponseRequest/ResponsePublish/Subscribe Request/Response2G, 3G, 4G Suitability (1000s nodes)ExcellentExcellentExcellentExcellentLLN Suita

4、bility (1000s nodes)ExcellentFairFairFairCompute Resources10Ks RAM/Flash10Ks RAM/Flash10Ks RAM/Flash10Ks RAM/FlashSuccess StoriedUtility Field Area NetworksRemote management of consumer white goodsSmart Energy Profile 2 (premise energy management/home services)ExtendingenterprisemessagingintoIoTappl

5、ications5;大綱3、mqtt特性特性7、主題2、物聯(lián)網(wǎng)協(xié)議有哪些、物聯(lián)網(wǎng)協(xié)議有哪些4、MQTT協(xié)議原理協(xié)議原理5、MQTT協(xié)議數(shù)據(jù)包結(jié)構(gòu)6、發(fā)布/訂閱模式1、什么是、什么是mqtt協(xié)議協(xié)議8、服務(wù)質(zhì)量9、遺囑消息MQTT代理6;MQTT協(xié)議工作在低帶寬、不可靠的網(wǎng)絡(luò)的遠(yuǎn)程傳感器和控制設(shè)備通訊而設(shè)計的協(xié)議,它具有以下主要的幾項(xiàng)特性:(1)使用發(fā)布/訂閱消息模式,提供一對多的消息發(fā)布,解除應(yīng)用程序耦合。這一點(diǎn)很類似于XMPP,但是MQTT的信息冗余遠(yuǎn)小于XMPP,,因?yàn)閄MPP使用XML格式文本來傳遞數(shù)據(jù)。(2)對負(fù)載內(nèi)容屏蔽的消息傳輸。(3)使用TCP/IP提供網(wǎng)絡(luò)連接。主流的MQTT是

6、基于TCP連接進(jìn)行數(shù)據(jù)推送的,但是同樣有基于UDP的版本,叫做MQTT-SN。這兩種版本由于基于不同的連接方式,優(yōu)缺點(diǎn)自然也就各有不同了。7;MQTT特性:(4)有三種消息發(fā)布服務(wù)質(zhì)量:“至多一次”,消息發(fā)布完全依賴底層TCP/IP網(wǎng)絡(luò)。會發(fā)生消息丟失或重復(fù)。這一級別可用于如下情況,環(huán)境傳感器數(shù)據(jù),丟失一次讀記錄無所謂,因?yàn)椴痪煤筮€會有第二次發(fā)送。這一種方式主要普通APP的推送,倘若你的智能設(shè)備在消息推送時未聯(lián)網(wǎng),推送過去沒收到,再次聯(lián)網(wǎng)也就收不到了?!爸辽僖淮巍保_保消息到達(dá),但消息重復(fù)可能會發(fā)生。“只有一次”,確保消息到達(dá)一次。在一些要求比較嚴(yán)格的計費(fèi)系統(tǒng)中,可以使用此級別。在計費(fèi)系統(tǒng)中,

7、消息重復(fù)或丟失會導(dǎo)致不正確的結(jié)果。這種最高質(zhì)量的消息發(fā)布服務(wù)還可以用于即時通訊類的APP的推送,確保用戶收到且只會收到一次。8;MQTT特性:(5)小型傳輸,開銷很?。ü潭ㄩL度的頭部是2字節(jié)),協(xié)議交換最小化,以降低網(wǎng)絡(luò)流量。這就是為什么在介紹里說它非常適合“在物聯(lián)網(wǎng)領(lǐng)域,傳感器與服務(wù)器的通信,信息的收集”,要知道嵌入式設(shè)備的運(yùn)算能力和帶寬都相對薄弱,使用這種協(xié)議來傳遞消息再適合不過了。(6)使用Last Will和Testament特性通知有關(guān)各方客戶端異常中斷的機(jī)制。LastWill:即遺言機(jī)制,用于通知同一主題下的其他設(shè)備發(fā)送遺言的設(shè)備已經(jīng)斷開了連接。Testament:遺囑機(jī)制,功能類

8、似于LastWill。9;大綱4、MQTT協(xié)議原理協(xié)議原理7、主題2、物聯(lián)網(wǎng)協(xié)議有哪些、物聯(lián)網(wǎng)協(xié)議有哪些3、mqtt特性特性5、MQTT協(xié)議數(shù)據(jù)包結(jié)構(gòu)6、發(fā)布/訂閱模式1、什么是、什么是mqtt協(xié)議協(xié)議8、服務(wù)質(zhì)量9、遺囑消息MQTT代理10;MQTT協(xié)議原理協(xié)議原理11;MQTT協(xié)議原理協(xié)議原理-協(xié)議實(shí)現(xiàn)方式協(xié)議實(shí)現(xiàn)方式實(shí)現(xiàn)MQTT協(xié)議需要客戶端和服務(wù)器端通訊完成,在通訊過程中,MQTT協(xié)議中有三種身份:發(fā)布者(Publish)、代理(Broker)(服務(wù)器)、訂閱者(Subscribe)。其中,消息的發(fā)布者和訂閱者都是客戶端,消息代理是服務(wù)器,消息發(fā)布者可以同時是訂閱者。MQTT傳輸?shù)南?/p>

9、分為:主題(Topic)和負(fù)載(payload)兩部分:(1)Topic,可以理解為消息的類型,訂閱者訂閱(Subscribe)后,就會收到該主題的消息內(nèi)容(payload);(2)payload,可以理解為消息的內(nèi)容,是指訂閱者具體要使用的內(nèi)容。12;MQTT協(xié)議原理協(xié)議原理-網(wǎng)絡(luò)傳輸與應(yīng)用消息MQTT會構(gòu)建底層網(wǎng)絡(luò)傳輸:它將建立客戶端到服務(wù)器的連接,提供兩者之間的一個有序的、無損的、基于字節(jié)流的雙向傳輸。當(dāng)應(yīng)用數(shù)據(jù)通過MQTT網(wǎng)絡(luò)發(fā)送時,MQTT會把與之相關(guān)的服務(wù)質(zhì)量(QoS)和主題名(Topic)相關(guān)連。13;MQTT協(xié)議原理協(xié)議原理-客戶端一個使用MQTT協(xié)議的應(yīng)用程序或者設(shè)備,它總是

10、建立到服務(wù)器的網(wǎng)絡(luò)連接??蛻舳丝梢裕海?)發(fā)布其他客戶端可能會訂閱的信息;(2)訂閱其它客戶端發(fā)布的消息;(3)退訂或刪除應(yīng)用程序的消息;(4)斷開與服務(wù)器連接。14;MQTT協(xié)議原理協(xié)議原理-服務(wù)器MQTT服務(wù)器以稱為“消息代理”(Broker),可以是一個應(yīng)用程序或一臺設(shè)備。它是位于消息發(fā)布者和訂閱者之間,它可以:(1)接受來自客戶的網(wǎng)絡(luò)連接;(2)接受客戶發(fā)布的應(yīng)用信息;(3)處理來自客戶端的訂閱和退訂請求;(4)向訂閱的客戶轉(zhuǎn)發(fā)應(yīng)用程序消息。15;MQTT協(xié)議原理協(xié)議原理-訂閱、主題、會話訂閱、主題、會話MQTT協(xié)議中定義了一些方法(也被稱為動作),來于表示對確定資源所進(jìn)行操作。這個資

11、源可以代表預(yù)先存在的數(shù)據(jù)或動態(tài)生成數(shù)據(jù),這取決于服務(wù)器的實(shí)現(xiàn)。通常來說,資源指服務(wù)器上的文件或輸出。主要方法有:(1)Connect。等待與服務(wù)器建立連接。(2)Disconnect。等待MQTT客戶端完成所做的工作,并與服務(wù)器斷開TCP/IP會話。(3)Subscribe。等待完成訂閱。(4)UnSubscribe。等待服務(wù)器取消客戶端的一個或多個topics訂閱。(5)Publish。MQTT客戶端發(fā)送消息請求,發(fā)送完成后返回應(yīng)用程序線程。16;大綱5、MQTT協(xié)議數(shù)據(jù)包7、主題2、物聯(lián)網(wǎng)協(xié)議有哪些、物聯(lián)網(wǎng)協(xié)議有哪些3、mqtt特性特性4、MQTT協(xié)議原理協(xié)議原理6、發(fā)布/訂閱模式1、什么

12、是、什么是mqtt協(xié)議協(xié)議8、服務(wù)質(zhì)量9、遺囑消息MQTT代理17;MQTT協(xié)議數(shù)據(jù)包結(jié)構(gòu)在MQTT協(xié)議中,一個MQTT數(shù)據(jù)包由:固定頭(Fixedheader)、可變頭(Variableheader)、消息體(payload)三部分構(gòu)成。MQTT數(shù)據(jù)包結(jié)構(gòu)如下:18;固定頭(Fixedheader)第一個字節(jié):包括消息類型和標(biāo)識(DUP,QoSlevel,RETAIN)字段第二個字節(jié):(至少一個字節(jié))包括剩余的信息字段所有的數(shù)據(jù)排序規(guī)則是順序值越大越優(yōu)先。1個16bit的字母出現(xiàn)在最重要的字節(jié),后面是最不重要的字節(jié)。19; 可變報頭 Variable header報文標(biāo)識符20;消息體MQT

13、T控制報文在報文的最后部分包含一個有效載荷。對于PUBLISH來說有效載荷就是應(yīng)用消息。以下是支持有效負(fù)載的協(xié)議。21;大綱6、發(fā)布/訂閱模式7、主題2、物聯(lián)網(wǎng)協(xié)議有哪些、物聯(lián)網(wǎng)協(xié)議有哪些3、mqtt特性特性4、MQTT協(xié)議原理協(xié)議原理5、MQTT協(xié)議數(shù)據(jù)包1、什么是、什么是mqtt協(xié)議協(xié)議8、服務(wù)質(zhì)量9、遺囑消息MQTT代理22;發(fā)布與訂閱模式打個比方,你打電話給朋友,一直要等到朋友接電話了才能夠開始交流,是一個典型的同步請求/回答的場景;而給一個好友郵件列表發(fā)電子郵件就不一樣,你發(fā)好電子郵件該干嘛干嘛,好友們到有空了去查看郵件就是了,是一個典型的異步發(fā)布/訂閱的場景。熟悉編程的同學(xué)一定非常

14、熟悉這種設(shè)計模式了,因?yàn)樗鼛砹诉@些好處:發(fā)布者與訂閱者不用了解彼此,只要認(rèn)識同一個消息代理即可。發(fā)布者和訂閱者不需要交互,發(fā)布者無需等待訂閱者確認(rèn)而導(dǎo)致鎖定。發(fā)布者和訂閱者不需要同時在線,可以自由選擇時間來消費(fèi)消息。23;大綱7、主題6、發(fā)布/訂閱模式2、物聯(lián)網(wǎng)協(xié)議有哪些、物聯(lián)網(wǎng)協(xié)議有哪些3、mqtt特性特性4、MQTT協(xié)議原理協(xié)議原理5、MQTT協(xié)議數(shù)據(jù)包1、什么是、什么是mqtt協(xié)議協(xié)議8、服務(wù)質(zhì)量9、遺囑消息MQTT代理24;主題 與訂閱機(jī)制MQTT是通過主題對消息進(jìn)行分類的,本質(zhì)上就是一個UTF-8的字符串,不過可以通過反斜杠表示多個層級關(guān)系。主題并不需要創(chuàng)建,直接使用就是了。主題還

15、可以通過通配符進(jìn)行過濾。其中,層級數(shù)量沒有限制不能包含任何的下文中提到的特殊符號(/、+、#),必須至少包含一個字符 /A”和“A”是不同的。 “A”和“A/”是不同的層級分隔符 /只能匹配本級不能匹配上級。例如,“sport/+”不匹配“sport多層通配符 #單層通配符 +一個Subsribe請求可訂閱多個Topic(節(jié)省帶寬,多訂閱盡量用一次請求)。25;大綱8、服務(wù)質(zhì)量7、主題2、物聯(lián)網(wǎng)協(xié)議有哪些、物聯(lián)網(wǎng)協(xié)議有哪些3、mqtt特性特性4、MQTT協(xié)議原理協(xié)議原理5、MQTT協(xié)議數(shù)據(jù)包1、什么是、什么是mqtt協(xié)議協(xié)議6、發(fā)布/訂閱模式9、遺囑消息MQTT代理26;QoS0級別0:盡力而

16、為。消息發(fā)送者會想盡辦法發(fā)送消息,但是遇到意外并不會重試。27;QoS1級別1:至少一次。消息接收者如果沒有知會或者知會本身丟失,消息發(fā)送者會再次發(fā)送以保證消息接收者至少會收到一次,當(dāng)然可能造成重復(fù)消息。28;QoS2級別2:恰好一次。保證這種語義肯待會減少并發(fā)或者增加延時,不過丟失或者重復(fù)消息是不可接受的時候,級別2是最合適的。29;大綱9、遺囑消息7、主題2、物聯(lián)網(wǎng)協(xié)議有哪些、物聯(lián)網(wǎng)協(xié)議有哪些3、mqtt特性特性4、MQTT協(xié)議原理協(xié)議原理5、MQTT協(xié)議數(shù)據(jù)包1、什么是、什么是mqtt協(xié)議協(xié)議6、發(fā)布/訂閱模式8、服務(wù)質(zhì)量MQTT代理30;遺囑消息MQTT本身就是為信號不穩(wěn)定的網(wǎng)絡(luò)設(shè)計的

17、,所以難免一些客戶端會無故的和Broker斷開連接。當(dāng)客戶端連接到Broker時,可以指定LWT,Broker會定期檢測客戶端是否有異常。當(dāng)客戶端異常掉線時,Broker就往連接時指定的topic里推送當(dāng)時指定的LWT消息。當(dāng)客戶端斷開連接時,發(fā)送給相關(guān)的訂閱者的遺囑消息。以下情況下會發(fā)送WillMessage:服務(wù)端發(fā)生了I/O錯誤或者網(wǎng)絡(luò)失??;客戶端在定義的心跳時期失聯(lián);客戶端在發(fā)送下線包之前關(guān)閉網(wǎng)絡(luò)連接;服務(wù)端在收到下線包之前關(guān)閉網(wǎng)絡(luò)連接。31;使用場景在客戶端A進(jìn)行連接時候,遺囑消息設(shè)定為”offline“,客戶端B訂閱這個遺囑主題。當(dāng)A異常斷開時,客戶端B會收到這個”offline“的遺囑消息,從而知道客戶端A離線了。32;高級使用場景這里介紹一下如何將Retained消息與Will消息結(jié)合起來進(jìn)行使用??蛻舳薃遺囑消息設(shè)定為”offline“,該遺囑主題與一個普通發(fā)送狀態(tài)的主題設(shè)定成同一個A/status;當(dāng)客戶端A連接時,向主題A/status發(fā)送“online”的Retained消息,其它客戶端訂閱主題A/status的時候,獲取Retained消息為“online”

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論