0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

哪個版本的MQTT協(xié)議更好用?

億佰特物聯(lián)網(wǎng)應用專家 ? 2023-03-17 10:06 ? 次閱讀

MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸)是ISO標準下基于發(fā)布/訂閱方式的輕量級消息協(xié)議,其通常應用于物聯(lián)網(wǎng)智能家居等設備和應用程序之間的通信。de04239c-c35f-11ed-ad0d-dac502259ad0.png

MQTT協(xié)議由發(fā)布者/訂閱者,消息代理Broker兩部分組成,如圖1所示,發(fā)布者負責消息推送至Broker,Broker將消息推送至匹配的訂閱者。發(fā)布者(Publisher):設備通過主題將消息發(fā)送給訂閱者。訂閱者(Subscriber):作為終端設備,訂閱者通過主題從發(fā)布者處接收消息。消息代理(Broker):服務器作為中央樞紐,負責發(fā)布者和訂閱者之間的組織級通信。
MQTT有兩個主要版本:v3 和 v5。這兩個版本原理基本相同,但它們之間存在一些關鍵的差異,下面將從以下幾個方面來介紹它們之間的區(qū)別。

01

協(xié)議格式

MQTT v5 新增了一個 Property字段,這個字段使MQTT v5 可以支持更多的新特性。而在MQTT v3 中,MQTT沒有任何可以拓展的地方,限制了MQTT拓展功能的可能性。

02

主題別名

主題是MQTT中的核心概念,它用于標識消息的內容和意圖。在MQTT v3 中,主題只是一個簡單的字符串,其結構是由一系列以斜杠分隔的單詞組成的。例如,一個 MQTT v3 主題可以是 sensors/temperature/room1,其中sensors是頂級主題,temperature是其子主題,room1是子主題下的一個特定設備。de874bf0-c35f-11ed-ad0d-dac502259ad0.png

然而,在 MQTT v5 中,主題的結構得到了擴展,新增了一些更高級的功能。具體來說,MQTT v5 引入了一個名為主題別名的新概念,它允許客戶端將主題字符串映射到預定義的主題 ID,從而減少網(wǎng)絡流量和消息大小。主題別名由客戶端和服務端各自維護,且生命周期和作用范圍僅限于當前連接。deca6638-c35f-11ed-ad0d-dac502259ad0.png

針對某個主題,首次發(fā)布時設置別名,之后就可以使用主題別名發(fā)布。這使得客戶端能夠在發(fā)送消息時只發(fā)送主題ID,而不必每次都發(fā)送完整的主題字符串。這對于 IoT 設備和網(wǎng)絡帶寬有限的環(huán)境來說非常有用。

03

訂閱操作

MQTT v5 引入了一種名為共享訂閱的新訂閱類型。可以通過其他標志和過濾功能,來實現(xiàn)更靈活的訂閱。如下圖所示,共享訂閱允許多個客戶端共享一個訂閱,并按照一定規(guī)則進行分配。這種訂閱類型對于訂閱高負載主題非常有用,因為它可以平衡訂閱請求,減輕單個客戶端的負載壓力。
df0f5f4a-c35f-11ed-ad0d-dac502259ad0.png

另外MQTT v5 增加了訂閱選項的概念,可以指定訂閱選項,例如QoS等級、Retain As Publish、Retain Handling、消息的生命周期等,來對訂閱行為進行更加精細地控制。

04

遺囑消息

遺囑消息是MQTT為那些可能出現(xiàn)意外斷線的設備提供的將遺囑優(yōu)雅地發(fā)送給第三方的能力。在 CONNECT 報文的 Payload 中,部分字段發(fā)生了變化,其中Will Message(遺囑消息)變成了Will Payload(遺囑載荷)。df481ee8-c35f-11ed-ad0d-dac502259ad0.png

Will Properties(遺囑屬性)是MQTT v5新增的一個字段,不同類型的報文有著不同的屬性,例如CONNECT報文有最大報文長度、會話過期間隔等屬性,SUBSCRIBE報文則有訂閱標識符等屬性。而且MQTT v5較v3相比,遺囑消息的內容變得更加靈活,可以包含任何主題和任何消息內容。

05

錯誤處理

MQTT v5支持更加詳細的錯誤處理機制,可以通過錯誤碼和錯誤原因來定位和解決問題。同時,MQTT v5還引入了一個新的控制報文——Disconnect報文,可以幫助客戶端和服務器更好地處理錯誤情況。

06

流量控制

MQTT v5 在 v3 版本基礎上引入了一些新的機制用于流量控制,為了更好地控制消息的傳輸和處理,避免因為消息傳輸速度過快導致的網(wǎng)絡擁塞和負載過高。
最大報文大小限制(Maximum Packet Size):MQTT v5 允許客戶端和服務端在握手時協(xié)商最大報文大小。如下圖所示,這個最大報文大小限制可以用于控制客戶端和服務端之間傳輸?shù)淖畲笙⒋笮。乐挂驗閭鬏數(shù)南⑦^大導致網(wǎng)絡擁塞和負載過高。df75ba92-c35f-11ed-ad0d-dac502259ad0.png

消息隊列(Message Queue):當服務端發(fā)送的消息超出了客戶端處理的速度時,服務端可以將消息存儲到消息隊列中,等待客戶端處理。MQTT v5 定義了消息隊列的隊列大小和超時時間,以控制消息隊列的大小和生命周期。

07

性能效率

MQTT v5 相對于 MQTT v3 來說,可以更好地處理大規(guī)模的數(shù)據(jù)傳輸,提高了通信的效率和性能。例如MQTT v5 支持批量發(fā)布(Batch Publish)和預?。∕essage Prefetch)等功能,可以大大減少MQTT通信時的開銷。

總之,相比于MQTT v3,MQTT v5 具有更多的新功能和安全性。但是,需要注意的是,MQTT v5 增加了很多新的功能和概念,因此在使用MQTT v5時,需要對MQTT協(xié)議的新特性進行深入的了解,以便可以更好地使用這個新協(xié)議來構建可靠的應用程序。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 通信
    +關注

    關注

    18

    文章

    6042

    瀏覽量

    136138
  • 物聯(lián)網(wǎng)

    關注

    2909

    文章

    44736

    瀏覽量

    374463
  • MQTT
    +關注

    關注

    5

    文章

    651

    瀏覽量

    22555
收藏 人收藏

    評論

    相關推薦

    基于MQTT協(xié)議的車云通信設計

    隨著智能汽車的發(fā)展,車云通信的功能場景及數(shù)據(jù)量也逐漸增多,具有輕量化、可靠性等特點的MQTT協(xié)議成為很多OEM車云通信協(xié)議的選擇。本文主要介紹。 什么是MQTT
    的頭像 發(fā)表于 01-08 10:24 ?95次閱讀
    基于<b class='flag-5'>MQTT</b><b class='flag-5'>協(xié)議</b>的車云通信設計

    MQTT-3.1.1標準協(xié)議文檔

    電子發(fā)燒友網(wǎng)站提供《MQTT-3.1.1標準協(xié)議文檔.pdf》資料免費下載
    發(fā)表于 11-21 16:20 ?4次下載

    MQTT.fx 連接Onenet 多協(xié)議接入平臺 MQTT協(xié)議(舊版)詳解

    此文檔可以作為中間態(tài)MQTT版本,默認參數(shù)獲取教程 多協(xié)議接入地址 td {white-space:nowrap;border:1px solid #dee0e3;font-size:10pt
    的頭像 發(fā)表于 09-30 15:20 ?790次閱讀
    <b class='flag-5'>MQTT</b>.fx 連接Onenet 多<b class='flag-5'>協(xié)議</b>接入平臺 <b class='flag-5'>MQTT</b><b class='flag-5'>協(xié)議</b>(舊版)詳解

    物聯(lián)網(wǎng)行業(yè)中MQTT通信協(xié)議詳解以及使用

    一 概述 MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸協(xié)議),是一種基于發(fā)布/訂閱(publish/subscribe)模式的“輕量級”通訊協(xié)議
    的頭像 發(fā)表于 09-20 17:08 ?1532次閱讀
    物聯(lián)網(wǎng)行業(yè)中<b class='flag-5'>MQTT</b>通信<b class='flag-5'>協(xié)議</b>詳解以及使用

    MQTT協(xié)議網(wǎng)關的工作原理及功能特性

    在物聯(lián)網(wǎng)的快速發(fā)展中,MQTT協(xié)議網(wǎng)關作為連接物聯(lián)網(wǎng)設備與消息代理服務器的重要橋梁,扮演著不可或缺的角色。MQTT是一種基于發(fā)布/訂閱模式的輕量級通信協(xié)議,特別適用于低帶寬、不穩(wěn)定網(wǎng)絡
    的頭像 發(fā)表于 09-18 17:00 ?540次閱讀
    <b class='flag-5'>MQTT</b><b class='flag-5'>協(xié)議</b>網(wǎng)關的工作原理及功能特性

    鋇錸技術Modbus轉MQTT網(wǎng)關:橋接Modbus協(xié)議MQTT協(xié)議

    提供了一鍵對接亞馬遜云平臺的解決方案。 BL101網(wǎng)關是鋇錸技術研發(fā)的一款高性能工業(yè)物聯(lián)網(wǎng)設備,通過橋接Modbus協(xié)議MQTT通信協(xié)議,實現(xiàn)了工業(yè)設備與云端平臺之間的高效互聯(lián)。支持Modbus RTU、Modbus TCP和
    的頭像 發(fā)表于 07-30 16:28 ?406次閱讀
    鋇錸技術Modbus轉<b class='flag-5'>MQTT</b>網(wǎng)關:橋接Modbus<b class='flag-5'>協(xié)議</b>與<b class='flag-5'>MQTT</b><b class='flag-5'>協(xié)議</b>

    基于MQTT協(xié)議云平臺的Modbus轉MQTT網(wǎng)關

    鋇錸Modbus轉MQTT網(wǎng)關BL100是一款高性能、高性價比的物聯(lián)網(wǎng)網(wǎng)關,它支持將Modbus協(xié)議(包括Modbus RTU和Modbus TCP)的數(shù)據(jù)轉換為MQTT協(xié)議的數(shù)據(jù)格式
    的頭像 發(fā)表于 07-29 17:59 ?788次閱讀
    基于<b class='flag-5'>MQTT</b><b class='flag-5'>協(xié)議</b>云平臺的Modbus轉<b class='flag-5'>MQTT</b>網(wǎng)關

    鋇錸協(xié)議網(wǎng)關輕松實現(xiàn)Modbus轉MQTT協(xié)議

    Modbus是一種在工業(yè)自動化領域廣泛使用的通信協(xié)議,以其簡單性和可靠性而著稱。然而,隨著物聯(lián)網(wǎng)技術的興起,傳統(tǒng)的Modbus協(xié)議需要與通信協(xié)議MQTT相結合,以實現(xiàn)更廣泛的應用場景和
    的頭像 發(fā)表于 07-23 15:51 ?374次閱讀
    鋇錸<b class='flag-5'>協(xié)議</b>網(wǎng)關輕松實現(xiàn)Modbus轉<b class='flag-5'>MQTT</b><b class='flag-5'>協(xié)議</b>

    SolidWorks教育版本好用嗎?

    SolidWorks教育版本,作為一款專為教育領域設計的三維CAD軟件,以其直觀易用的界面、強大的功能以及豐富的教育資源,受到了廣大師生的青睞。那么,SolidWorks教育版本好用嗎?答案是肯定的。
    的頭像 發(fā)表于 05-09 16:18 ?432次閱讀
    SolidWorks教育<b class='flag-5'>版本</b><b class='flag-5'>好用</b>嗎?

    mqtt協(xié)議和tcp協(xié)議區(qū)別

    MQTT協(xié)議和TCP協(xié)議在設計和應用上存在以下主要區(qū)別: 1. 起源與設計:MQTT協(xié)議誕生于1999年互聯(lián)網(wǎng)初期,而TCP
    的頭像 發(fā)表于 04-01 09:15 ?1656次閱讀

    MQTT和Modbus的物聯(lián)網(wǎng)網(wǎng)關協(xié)議的區(qū)別分析

    MQTT和Modbus的物聯(lián)網(wǎng)網(wǎng)關協(xié)議區(qū)別分析 MQTT(Message Queuing Telemetry Transport)與Modbus是兩種廣泛應用在物聯(lián)網(wǎng)環(huán)境中的通信協(xié)議
    的頭像 發(fā)表于 03-18 16:50 ?853次閱讀
    <b class='flag-5'>MQTT</b>和Modbus的物聯(lián)網(wǎng)網(wǎng)關<b class='flag-5'>協(xié)議</b>的區(qū)別分析

    MQTT協(xié)議網(wǎng)關解決方案設計與實施

    MQTT協(xié)議網(wǎng)關是一個中間件,負責接收來自不同MQTT客戶端的消息,并將這些消息轉發(fā)到MQTT服務器;同時,也能接收來自MQTT服務器的消息
    的頭像 發(fā)表于 03-11 14:07 ?519次閱讀

    什么是MQTT?MQTT協(xié)議中的方法

    MQTT是一種輕量級消息傳遞協(xié)議,由IBM開發(fā),于1999年首次發(fā)布。它使用發(fā)布/訂閱模式并在設備、服務器和應用程序之間轉換消息。
    的頭像 發(fā)表于 02-25 17:04 ?1371次閱讀
    什么是<b class='flag-5'>MQTT</b>?<b class='flag-5'>MQTT</b><b class='flag-5'>協(xié)議</b>中的方法

    mqtt協(xié)議與終端監(jiān)測設備結合

    mqtt協(xié)議與終端監(jiān)測設備結合 摘要: MQTT是一個基于客戶端-服務器的消息發(fā)布/訂閱傳輸協(xié)議, 優(yōu)點是輕量,簡單,開放和易于實現(xiàn)的,這樣的特點在于物聯(lián)網(wǎng)設備中就十分適用,這也是它在
    的頭像 發(fā)表于 01-30 13:13 ?412次閱讀
    <b class='flag-5'>mqtt</b><b class='flag-5'>協(xié)議</b>與終端監(jiān)測設備結合

    mqtt協(xié)議和http協(xié)議區(qū)別

    MQTT(Message Queuing Telemetry Transport)是一種基于發(fā)布/訂閱模式的“輕量級”通訊協(xié)議,構建于TCP/IP協(xié)議上。它是由IBM在1999年發(fā)布的。MQT
    的頭像 發(fā)表于 01-19 15:56 ?6968次閱讀