精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

哪個版本的MQTT協議更好用?

億佰特物聯網應用專家 ? 2023-03-17 10:06 ? 次閱讀

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

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

01

協議格式

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,從而減少網絡流量和消息大小。主題別名由客戶端和服務端各自維護,且生命周期和作用范圍僅限于當前連接。deca6638-c35f-11ed-ad0d-dac502259ad0.png

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

03

訂閱操作

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

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

04

遺囑消息

遺囑消息是MQTT為那些可能出現意外斷線的設備提供的將遺囑優雅地發送給第三方的能力。在 CONNECT 報文的 Payload 中,部分字段發生了變化,其中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 版本基礎上引入了一些新的機制用于流量控制,為了更好地控制消息的傳輸和處理,避免因為消息傳輸速度過快導致的網絡擁塞和負載過高。
最大報文大小限制(Maximum Packet Size):MQTT v5 允許客戶端和服務端在握手時協商最大報文大小。如下圖所示,這個最大報文大小限制可以用于控制客戶端和服務端之間傳輸的最大消息大小,防止因為傳輸的消息過大導致網絡擁塞和負載過高。df75ba92-c35f-11ed-ad0d-dac502259ad0.png

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

07

性能效率

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

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

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

    關注

    18

    文章

    5973

    瀏覽量

    135865
  • 物聯網
    +關注

    關注

    2903

    文章

    44285

    瀏覽量

    371355
  • MQTT
    +關注

    關注

    5

    文章

    649

    瀏覽量

    22435
收藏 人收藏

    評論

    相關推薦

    MQTT-3.1.1標準協議文檔

    電子發燒友網站提供《MQTT-3.1.1標準協議文檔.pdf》資料免費下載
    發表于 11-21 16:20 ?0次下載

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

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

    物聯網行業中MQTT通信協議詳解以及使用

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

    MQTT協議網關的工作原理及功能特性

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

    基于MQTT協議云平臺的Modbus轉MQTT網關

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

    鋇錸協議網關輕松實現Modbus轉MQTT協議

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

    SolidWorks教育版本好用嗎?

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

    mqtt協議和tcp協議區別

    MQTT協議和TCP協議在設計和應用上存在以下主要區別: 1. 起源與設計:MQTT協議誕生于1999年互聯網初期,而TCP
    的頭像 發表于 04-01 09:15 ?1551次閱讀

    MQTT和Modbus的物聯網網關協議的區別分析

    MQTT和Modbus的物聯網網關協議區別分析 MQTT(Message Queuing Telemetry Transport)與Modbus是兩種廣泛應用在物聯網環境中的通信協議
    的頭像 發表于 03-18 16:50 ?765次閱讀
    <b class='flag-5'>MQTT</b>和Modbus的物聯網網關<b class='flag-5'>協議</b>的區別分析

    MQTT協議網關解決方案設計與實施

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

    什么是MQTTMQTT協議中的方法

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

    mqtt協議與終端監測設備結合

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

    mqtt協議和http協議區別

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

    lwm2m協議MQTT協議有什么區別?怎么選擇?哪個更適合物聯網?

    LwM2M(Lightweight M2M)和MQTT(Message Queuing Telemetry Transport)是兩種不同的通信協議,它們在物聯網領域有著不同的應用和特點。
    的頭像 發表于 01-07 10:20 ?674次閱讀

    MQTT和Modbus協議的區別

    兩種物聯網補充協議:用于短距離設備連接的本地協議 Modbus 以及支持物聯網進行全局通信的可擴展互聯網協議 “消息隊列遙測傳輸 (MQTT)”。 Modbus 是一個串行通信
    的頭像 發表于 12-08 15:21 ?2763次閱讀
    <b class='flag-5'>MQTT</b>和Modbus<b class='flag-5'>協議</b>的區別