![mqtt--協(xié)議ppt課件_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/2/af407298-5035-4548-9289-06b5dd298614/af407298-5035-4548-9289-06b5dd2986141.gif)
![mqtt--協(xié)議ppt課件_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/2/af407298-5035-4548-9289-06b5dd298614/af407298-5035-4548-9289-06b5dd2986142.gif)
![mqtt--協(xié)議ppt課件_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/2/af407298-5035-4548-9289-06b5dd298614/af407298-5035-4548-9289-06b5dd2986143.gif)
![mqtt--協(xié)議ppt課件_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/2/af407298-5035-4548-9289-06b5dd298614/af407298-5035-4548-9289-06b5dd2986144.gif)
![mqtt--協(xié)議ppt課件_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/2/af407298-5035-4548-9289-06b5dd298614/af407298-5035-4548-9289-06b5dd2986145.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、MQTT協(xié)議梯影-技術部:李棟(MessageQueuingTelemetryTransport,消息隊列遙測傳輸協(xié)議)大綱1、什么是、什么是mqtt協(xié)議協(xié)議7、主題3、mqtt特性4、MQTT協(xié)議原理協(xié)議原理5、MQTT協(xié)議數(shù)據(jù)包結(jié)構6、發(fā)布/訂閱模式2、物聯(lián)網(wǎng)協(xié)議有哪些8、服務質(zhì)量9、遺囑消息MQTT代理什么是MQTT協(xié)議MQTT是一種基于發(fā)布/訂閱(publish/subscribe)模式的“輕量級”通訊協(xié)議,該協(xié)議構建于TCP/IP協(xié)議上,由IBM在1999年發(fā)布。MQTT最大優(yōu)點在于,可以以極少的代碼和有限的帶寬,為連接遠程設備提供實時可靠的消息服務。作為一種低開銷、低帶寬占用的即時
2、通訊協(xié)議,使其在物聯(lián)網(wǎng)、小型設備、移動應用等方面有較廣泛的應用。MQTT是一個基于客戶端-服務器的消息發(fā)布/訂閱傳輸協(xié)議。MQTT協(xié)議是輕量、簡單、開放和易于實現(xiàn)的,這些特點使它適用范圍非常廣泛。在很多情況下,包括受限的環(huán)境中,如:機器與機器(M2M)通信和物聯(lián)網(wǎng)(IoT)。其在,通過衛(wèi)星鏈路通信傳感器、偶爾撥號的醫(yī)療設備、智能家居、及一些小型化設備中已廣泛使用。2014年發(fā)布的MQTTv3.1.1是當前MQTT協(xié)議的最新版本。除標準版外,還有一個簡化版MQTT-SN,該協(xié)議主要針對嵌入式設備。3;大綱2、物聯(lián)網(wǎng)協(xié)議有哪些7、主題3、mqtt特性4、MQTT協(xié)議原理協(xié)議原理5、MQTT協(xié)議數(shù)據(jù)
3、包結(jié)構6、發(fā)布/訂閱模式1、什么是、什么是mqtt協(xié)議協(xié)議8、服務質(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é)構6、發(fā)布/訂閱模式1、什么是、什么是mqtt協(xié)議協(xié)議8、服務質(zhì)量9、遺囑消息MQTT代理6;MQTT協(xié)議工作在低帶寬、不可靠的網(wǎng)絡的遠程傳感器和控制設備通訊而設計的協(xié)議,它具有以下主要的幾項特性:(1)使用發(fā)布/訂閱消息模式,提供一對多的消息發(fā)布,解除應用程序耦合。這一點很類似于XMPP,但是MQTT的信息冗余遠小于XMPP,,因為XMPP使用XML格式文本來傳遞數(shù)據(jù)。(2)對負載內(nèi)容屏蔽的消息傳輸。(3)使用TCP/IP提供網(wǎng)絡連接。主流的MQTT是
6、基于TCP連接進行數(shù)據(jù)推送的,但是同樣有基于UDP的版本,叫做MQTT-SN。這兩種版本由于基于不同的連接方式,優(yōu)缺點自然也就各有不同了。7;MQTT特性:(4)有三種消息發(fā)布服務質(zhì)量:“至多一次”,消息發(fā)布完全依賴底層TCP/IP網(wǎng)絡。會發(fā)生消息丟失或重復。這一級別可用于如下情況,環(huán)境傳感器數(shù)據(jù),丟失一次讀記錄無所謂,因為不久后還會有第二次發(fā)送。這一種方式主要普通APP的推送,倘若你的智能設備在消息推送時未聯(lián)網(wǎng),推送過去沒收到,再次聯(lián)網(wǎng)也就收不到了?!爸辽僖淮巍?,確保消息到達,但消息重復可能會發(fā)生?!爸挥幸淮巍?,確保消息到達一次。在一些要求比較嚴格的計費系統(tǒng)中,可以使用此級別。在計費系統(tǒng)中,
7、消息重復或丟失會導致不正確的結(jié)果。這種最高質(zhì)量的消息發(fā)布服務還可以用于即時通訊類的APP的推送,確保用戶收到且只會收到一次。8;MQTT特性:(5)小型傳輸,開銷很?。ü潭ㄩL度的頭部是2字節(jié)),協(xié)議交換最小化,以降低網(wǎng)絡流量。這就是為什么在介紹里說它非常適合“在物聯(lián)網(wǎng)領域,傳感器與服務器的通信,信息的收集”,要知道嵌入式設備的運算能力和帶寬都相對薄弱,使用這種協(xié)議來傳遞消息再適合不過了。(6)使用Last Will和Testament特性通知有關各方客戶端異常中斷的機制。LastWill:即遺言機制,用于通知同一主題下的其他設備發(fā)送遺言的設備已經(jīng)斷開了連接。Testament:遺囑機制,功能類
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é)構6、發(fā)布/訂閱模式1、什么是、什么是mqtt協(xié)議協(xié)議8、服務質(zhì)量9、遺囑消息MQTT代理10;MQTT協(xié)議原理協(xié)議原理11;MQTT協(xié)議原理協(xié)議原理-協(xié)議實現(xiàn)方式協(xié)議實現(xiàn)方式實現(xiàn)MQTT協(xié)議需要客戶端和服務器端通訊完成,在通訊過程中,MQTT協(xié)議中有三種身份:發(fā)布者(Publish)、代理(Broker)(服務器)、訂閱者(Subscribe)。其中,消息的發(fā)布者和訂閱者都是客戶端,消息代理是服務器,消息發(fā)布者可以同時是訂閱者。MQTT傳輸?shù)南?/p>
9、分為:主題(Topic)和負載(payload)兩部分:(1)Topic,可以理解為消息的類型,訂閱者訂閱(Subscribe)后,就會收到該主題的消息內(nèi)容(payload);(2)payload,可以理解為消息的內(nèi)容,是指訂閱者具體要使用的內(nèi)容。12;MQTT協(xié)議原理協(xié)議原理-網(wǎng)絡傳輸與應用消息MQTT會構建底層網(wǎng)絡傳輸:它將建立客戶端到服務器的連接,提供兩者之間的一個有序的、無損的、基于字節(jié)流的雙向傳輸。當應用數(shù)據(jù)通過MQTT網(wǎng)絡發(fā)送時,MQTT會把與之相關的服務質(zhì)量(QoS)和主題名(Topic)相關連。13;MQTT協(xié)議原理協(xié)議原理-客戶端一個使用MQTT協(xié)議的應用程序或者設備,它總是
10、建立到服務器的網(wǎng)絡連接。客戶端可以:(1)發(fā)布其他客戶端可能會訂閱的信息;(2)訂閱其它客戶端發(fā)布的消息;(3)退訂或刪除應用程序的消息;(4)斷開與服務器連接。14;MQTT協(xié)議原理協(xié)議原理-服務器MQTT服務器以稱為“消息代理”(Broker),可以是一個應用程序或一臺設備。它是位于消息發(fā)布者和訂閱者之間,它可以:(1)接受來自客戶的網(wǎng)絡連接;(2)接受客戶發(fā)布的應用信息;(3)處理來自客戶端的訂閱和退訂請求;(4)向訂閱的客戶轉(zhuǎn)發(fā)應用程序消息。15;MQTT協(xié)議原理協(xié)議原理-訂閱、主題、會話訂閱、主題、會話MQTT協(xié)議中定義了一些方法(也被稱為動作),來于表示對確定資源所進行操作。這個資
11、源可以代表預先存在的數(shù)據(jù)或動態(tài)生成數(shù)據(jù),這取決于服務器的實現(xiàn)。通常來說,資源指服務器上的文件或輸出。主要方法有:(1)Connect。等待與服務器建立連接。(2)Disconnect。等待MQTT客戶端完成所做的工作,并與服務器斷開TCP/IP會話。(3)Subscribe。等待完成訂閱。(4)UnSubscribe。等待服務器取消客戶端的一個或多個topics訂閱。(5)Publish。MQTT客戶端發(fā)送消息請求,發(fā)送完成后返回應用程序線程。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、服務質(zhì)量9、遺囑消息MQTT代理17;MQTT協(xié)議數(shù)據(jù)包結(jié)構在MQTT協(xié)議中,一個MQTT數(shù)據(jù)包由:固定頭(Fixedheader)、可變頭(Variableheader)、消息體(payload)三部分構成。MQTT數(shù)據(jù)包結(jié)構如下:18;固定頭(Fixedheader)第一個字節(jié):包括消息類型和標識(DUP,QoSlevel,RETAIN)字段第二個字節(jié):(至少一個字節(jié))包括剩余的信息字段所有的數(shù)據(jù)排序規(guī)則是順序值越大越優(yōu)先。1個16bit的字母出現(xiàn)在最重要的字節(jié),后面是最不重要的字節(jié)。19; 可變報頭 Variable header報文標識符20;消息體MQT
13、T控制報文在報文的最后部分包含一個有效載荷。對于PUBLISH來說有效載荷就是應用消息。以下是支持有效負載的協(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、服務質(zhì)量9、遺囑消息MQTT代理22;發(fā)布與訂閱模式打個比方,你打電話給朋友,一直要等到朋友接電話了才能夠開始交流,是一個典型的同步請求/回答的場景;而給一個好友郵件列表發(fā)電子郵件就不一樣,你發(fā)好電子郵件該干嘛干嘛,好友們到有空了去查看郵件就是了,是一個典型的異步發(fā)布/訂閱的場景。熟悉編程的同學一定非常
14、熟悉這種設計模式了,因為它帶來了這些好處:發(fā)布者與訂閱者不用了解彼此,只要認識同一個消息代理即可。發(fā)布者和訂閱者不需要交互,發(fā)布者無需等待訂閱者確認而導致鎖定。發(fā)布者和訂閱者不需要同時在線,可以自由選擇時間來消費消息。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、服務質(zhì)量9、遺囑消息MQTT代理24;主題 與訂閱機制MQTT是通過主題對消息進行分類的,本質(zhì)上就是一個UTF-8的字符串,不過可以通過反斜杠表示多個層級關系。主題并不需要創(chuàng)建,直接使用就是了。主題還
15、可以通過通配符進行過濾。其中,層級數(shù)量沒有限制不能包含任何的下文中提到的特殊符號(/、+、#),必須至少包含一個字符 /A”和“A”是不同的。 “A”和“A/”是不同的層級分隔符 /只能匹配本級不能匹配上級。例如,“sport/+”不匹配“sport多層通配符 #單層通配符 +一個Subsribe請求可訂閱多個Topic(節(jié)省帶寬,多訂閱盡量用一次請求)。25;大綱8、服務質(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ā)送以保證消息接收者至少會收到一次,當然可能造成重復消息。28;QoS2級別2:恰好一次。保證這種語義肯待會減少并發(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、服務質(zhì)量MQTT代理30;遺囑消息MQTT本身就是為信號不穩(wěn)定的網(wǎng)絡設計的
17、,所以難免一些客戶端會無故的和Broker斷開連接。當客戶端連接到Broker時,可以指定LWT,Broker會定期檢測客戶端是否有異常。當客戶端異常掉線時,Broker就往連接時指定的topic里推送當時指定的LWT消息。當客戶端斷開連接時,發(fā)送給相關的訂閱者的遺囑消息。以下情況下會發(fā)送WillMessage:服務端發(fā)生了I/O錯誤或者網(wǎng)絡失??;客戶端在定義的心跳時期失聯(lián);客戶端在發(fā)送下線包之前關閉網(wǎng)絡連接;服務端在收到下線包之前關閉網(wǎng)絡連接。31;使用場景在客戶端A進行連接時候,遺囑消息設定為”offline“,客戶端B訂閱這個遺囑主題。當A異常斷開時,客戶端B會收到這個”offline“的遺囑消息,從而知道客戶端A離線了。32;高級使用場景這里介紹一下如何將Retained消息與Will消息結(jié)合起來進行使用??蛻舳薃遺囑消息設定為”offline“,該遺囑主題與一個普通發(fā)送狀態(tài)的主題設定成同一個A/status;當客戶端A連接時,向主題A/status發(fā)送“online”的Retained消息,其它客戶端訂閱主題A/status的時候,獲取Retained消息為“online”
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年方向節(jié)項目投資可行性研究分析報告
- 某企業(yè)節(jié)能評估報告
- 知識產(chǎn)權糾紛解決的心理分析
- 電商企業(yè)如何構建高效的末端配送體系
- 知識經(jīng)濟時代的創(chuàng)新發(fā)展與教育模式探討
- 中國煉焦行業(yè)市場發(fā)展現(xiàn)狀及前景趨勢與投資分析研究報告(2024-2030版)
- 知識產(chǎn)權在數(shù)字經(jīng)濟中的機遇與挑戰(zhàn)
- 婦產(chǎn)科護理技術模擬題(附參考答案)
- 三江學院《攝影測量與遙感》2023-2024學年第二學期期末試卷
- 遼寧農(nóng)業(yè)職業(yè)技術學院《媒介倫理與法規(guī)》2023-2024學年第二學期期末試卷
- 職業(yè)素養(yǎng)的內(nèi)容(含事例)課件
- 環(huán)衛(wèi)市場化運營方案PPT
- 二年級下冊綜合實踐活動說課稿-我是清潔小衛(wèi)士 全國通用
- 人教版(2023)必修三 Unit 3 Diverse Cultures 單元整體教學設計(表格式)
- 電流互感器和電壓互感器選型指南
- 大學生心理健康教育PPT完整全套電子教學課件
- 會務服務投標技術方案
- 中國傳統(tǒng)圖案大全
- 人間草木讀書報告
- 市政污水管網(wǎng)深基坑拉森鋼板樁支護專項施工方案
- 員工離職登記表(范本模板)
評論
0/150
提交評論