問答中心

        Answer Center

        下載中心

        視頻中心

        常見問題

        售后服務

        報文是什么意思?mqtt協議報文格式詳解

        時間:2022-11-05 14:26:42 

        點擊:3883 

        關鍵詞:報文,mqtt,報文格式 

        問題
        報文是什么意思?mqtt協議報文格式詳解

        回答
        報文是網絡中交換和傳輸的數據單元,也是網絡傳輸的單元。報文包含了將要發送的完整的數據信息,其長短不需一致。報文在傳輸過程中會不斷地封裝成分組、包、幀來傳輸,封裝的方式就是添加一些控制信息組成的首部,那就是報文頭。
         
        mqtt協議報文結構
         
        固件報頭Fixed header
         
        最多一次(0), 發出去了就不管了
         
        至少一次(1),發出必須要等接收方回復ack,沒有回復,那么就找時機重發,接收方需要處理去重
         
        準確一次(2),保證只發一次,需要持久化,重復消息自動去重,并且只有當接收方把消息投遞出去,才算完成
         
        控制報文的類型 Control Packet type,14種有效類型: [connect, publish, subscribe,.....]
         
        第一個1個字節前4位,
         
        標志Flags,
         
        第一個1個字節后4位,
         
        DUP 控制報文是否為重復報文,只有PUBLISH才會有DUP為1的情況,其他的報文類型都是0
         
        QoS 控制PUBLISH報文的質量等級,
         
        publish
         
        publish - pubrec
         
        publish - pubrec - pubrel - pubcomp
         
        RETAIN,
         
        每個topic只有唯一的保留消息,每個client訂閱的時候,會立刻讀取到保留消息
         
        如果訂閱者無法與broker連接,可以通過retain消息,讓訂閱者下次連接訂閱成功時一次接受所有的內容
         
        發布者定時發布retain消息,訂閱者可以根據retain消息的變化推測發布者狀態
         
        剩余長度 Remaining Length
         
        從第二個字節開始,最大長度是4個字節,低位在前,高位在后,通過每一個字節第一位[0不需要,1需要]確定是否需要繼續往后繼續計算,也就是最多可以存儲256M, 最大值16進制為:0xFF,0xFF,0xFF,0x7F
         
        可變報頭Variable header
         
        可變報文部分是根據不同的報文類型,這部分的內容也不同
         
        比如: 連接報文會有用戶名密碼標識,遺囑標識,是否清理會話標識等,發布報文會有topic信息
         
        報文標識符 PackageIdentifier [messageId]
         
        標識符作用:
         
        2個字節最大65535
         
        這些報文類型需要:PUBLISH(QoS > 0), PUBACK, PUBREL, PUBCOMP, SUBSCRIBE,SUBACK, UNSUSCRIBE,UNSUBACK
         
        重發使用相同的標識符
         
        確認后釋放標識符
         
        有效載荷Payload
         
        以下這些報文類型才有payload:
         
        CONNECT(用戶名密碼,遺囑消息,遺囑topic,客戶端標識),
         
        PUBLISH(可有可無,根據實際情況),
         
        SUBSCRIBE(訂閱的topic信息集合),
         
        SUBACK(按順序返回的訂閱的topic的報文質量等級集合)
         
        UNSUBSCRIBE(取消訂閱的topic信息集合)
         
        報文類型處理邏輯(接收方的處理邏輯)
         
        CONNECT 連接服務端 客戶端--服務端
         
        報文解析錯誤:
         
        如果報文解析錯誤,連接失敗
         
        如果解析的報文標識符不合法,連接失敗
         
        報文解析成功
         
        重發QoS1的未完成的消息
         
        重發QoS2的未完成的消息
         
        連接成功,保存會話信息
         
        連接成功,回會CONNACK報文給客戶端
         
        如果之前保存的會話信息,cleanSession == true,需要清空保存的session,訂閱信息,需要重發的發布QoS1報文,需要重發的發布的QoS2的報文
         
        關閉之前的保存的會話
         
        如果報文標識符不存在,連接失敗
         
        如果用戶密碼驗證失敗,連接失敗
         
        如果是會話中已經存在該連接,說明是發送重復的連接報文
         
        檢查心跳包,將已經存在的心跳包的間隔時間,更新成客戶端指定的時間
         
        如果連接報文中存在遺囑消息,需要將遺囑消息保存在本次連接的會話對象中
         
        如果本次連接的報文cleanSession == false,也就是不清理會話,如果是客戶端重連的,可能存在服務端有部分信息沒有發送出去,需要重新發送給該客戶端
         
        CONNACK 確認連接請求 服務端--客戶端
         
        客戶端確認連接成功
         
        PUBLISH 發布消息 雙向
         
        客戶端發送給服務端,是為了將報文分發到其他訂閱匹配的客戶端
         
        服務端發送給客戶端,是為了發消息給匹配訂閱的客戶端
         
        根據不同的質量等級進行不同的回復報文
         
        QoS 0 直接publish消息即可
         
        QoS 1 PUBLISH消息之后,還需要回復PUBACK給來源客戶端
         
        Qos 2 PUBLISH消息之后,還需要回復PUBREC給來源客戶端 (后續客戶端端發送PUBREL,再服務端發送PUBCOMP完成整個生命周期)
         
        如果是保留消息,需要覆蓋之前保存的保留消息
         
        PUBACK 發布確認 雙向
         
        帶著messageId回復發布方,通知發布成功
         
        PUBAREC 發布收到 雙向
         
        帶著messageId回復發布方,通知收到了發布報文
         
        PUBREL 發布釋放 雙向
         
        帶著messageId回復接收方,可以釋放報文
         
        PUBCOMP 發布完成 雙向
         
        帶著messageId回復發布方,可以發布完成了
         
        SUBSCRIBE 訂閱主題 客戶端--服務端
         
        根據訂閱的主題列表,
         
        保存訂閱信息
         
        回復SUBACK,按順序返回訂閱報文中的報文質量等級集合
         
        根據訂閱的主題,處理服務端保留信息,立即PUBLISH給客戶端
         
        SUBACK 訂閱確認 服務端-- 客戶端
         
        客戶端確認訂閱成功
         
        UNSUBSCRIBE 取消訂閱 客戶端--服務端
         
        移除掉該客戶端保存的訂閱主題
         
        回復UNSUBACK報文
         
        UNSUBACK 訂閱確認 服務端-- 客戶端
         
        客戶端確認取消訂閱成功
         
        PINGREQ 心跳請求 客戶端--服務端
         
        返回客戶端PINGRESP報文
         
        PINGRESP 心跳響應 服務端--客戶端
         
        收到報文確認服務端正常

         

        免責聲明:本網站部分文章、圖片等信息來源于網絡,版權歸原作者平臺所有,僅用于學術分享,如不慎侵犯了你的權益,請聯系我們,我們將做刪除處理!


        產品系列

        工業智能網關
        物通博聯·WG系列工業智能網關是一款支持采集各種PLC,儀器儀表,水環保,電力設備,CNC等各種工業設備數據,具有協議解析,邊緣計算的高可靠性工業智能網關,是構建工業互聯網系統的核心邊緣節點。
        了解更多
        工業數采終端
        物通博聯·WD系列工業數采終端,主要實現對現場工業設備的數字量DI、DO,模擬量AI,AO的采集和控制,實現LORA本地組網和4G數據上云的功能,從而實現對現場傳感器、執行機構、指示燈等數采和控制。
        LoRa終端
        LoRa網關
        DTU
        RTU
        4G無線IO
        WIFI無線IO
        了解更多
        工業聯網終端
        物通博聯·工業聯系終端包含WR系列工業無線路由、WC系列網段隔離器和WS系列工業交換機。 支持5G/4G/WIFI/以太網等方式聯網接入,支持VPN組網,為現場設備提供低時延、高可靠、高安全的網絡接入,從而實現大規模設備組網應用。
        了解更多
        設備遠程維護系統
        物通博聯·設備遠程維護系統是一套實現對分散式設備遠程維護和運營的軟硬件系統,為工程師搭建一條通往遠端設備現場的安全數據通道,實現對現場設備(PLC)的遠程配置、遠程診斷、遠程調試和遠程升級程序。
        設備遠程配置
        設備遠程調試
        遠程上下載程序
        設備遠程維護
        設備遠程監控
        設備預防式維護
        了解更多
        工業設備數據平臺
        物通博聯·工業設備數據平臺是一款高并發的工業設備遠程管理和工業設備數據可視化的云平臺,廣泛應用于智能工廠數采中臺、遠程設備運營管理平臺、各行業的物聯網數據云平臺等。
        海量設備接入
        高效數據采集
        豐富組態控件
        強大的數據分析
        預防式設備維護
        豐富的API接口
        了解更多
        設備遠程接入平臺
        物通博聯·設備遠程接入云平臺是一款針對分布式設備數據實時監測的快速接入平臺,采用SAAS云服務方式為工業現場的各種工業設備的數據互通互聯建立實時在線的數據通道。
        分布式項目監控
        設備互通互聯
        無需公網IP
        快速低成本接入
        實時在線通道
        點對點通信
        了解更多

        物通博聯,助您開啟工業數字化和智能化之路

        申請樣機
        在線
        咨詢
        免費
        試用
        国产成人1024精品免费| 欧美成人精品欧美一级乱黄码| 久久国产精品偷99| 亚洲精品黄色视频在线观看免费资源| 日本一区二区精品| 久久精品国产亚洲AV麻豆网站| 久久99国产精品久久| 精品人妻少妇嫩草AV无码专区| 尤物视频在线播放| 国产精品v片在线观看不卡| 87国产私拍福利精品视频| 久久久久久无码国产精品中文字幕| 国产久热青草视频在线观看| 国产成人精品手机在线观看| 99精品欧美一区二区三区| 亚洲麻豆精品国偷自产在线91| 国产亚洲精品a在线无码| 国产精品高清在线观看| 色先锋先锋影音在线资源站| 国产精品55夜色66夜色| 欧美精品一区二区三区免费观看| 亚洲av无码乱码国产精品fc2| 久久久久免费精品国产| 亚洲AV永久无码精品一区二区 | 中文精品无码中文字幕无码专区| 99re6在线精品免费观看| 免费看一级毛片在线观看精品视频 | 亚洲国产一成久久精品国产成人综合| 精品无码无人网站免费视频 | 欧美亚洲高清日韩成人| 国产精品爽黄69天堂a| 亚洲午夜精品久久久久久浪潮| 99久久精品国产免看国产一区| 男人的天堂精品国产一区| 国产精品va无码一区二区| 欧美在线精品永久免费播放 | 亚洲精品岛国片在线观看| 国产99视频精品一区| 在线中文字幕精品第5页| 久久精品国产免费| 5566av来看电影|