問答中心

      Answer Center

      下載中心

      視頻中心

      常見問題

      售后服務

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

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

      點擊:4044 

      關鍵詞:報文,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
      快速低成本接入
      實時在線通道
      點對點通信
      了解更多

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

      申請樣機
      在線
      咨詢
      免費
      試用
      主站蜘蛛池模板: 日韩精品无码免费一区二区三区| 国产吧一区在线视频| 久久99国产精一区二区三区| 无码人妻精品一区二区三区9厂| 无码毛片一区二区三区中文字幕 | 国产在线观看一区精品| 久久无码人妻一区二区三区| 精品国产日产一区二区三区| 国产伦精品一区二区三区视频猫咪| 免费一本色道久久一区| 69久久精品无码一区二区| 国产在线一区二区三区| 久久婷婷色综合一区二区| 国产一区在线视频观看| 夜精品a一区二区三区| 亚洲A∨精品一区二区三区下载| 青青青国产精品一区二区| 中文字幕亚洲一区二区va在线| 久久国产精品免费一区二区三区| 国产成人AV区一区二区三| 精品国产一区二区二三区在线观看| 国产午夜精品片一区二区三区| 麻豆天美国产一区在线播放| 国产在线精品一区二区在线观看 | 国产欧美色一区二区三区| 男人的天堂av亚洲一区2区 | 熟妇人妻AV无码一区二区三区| 色噜噜AV亚洲色一区二区| 中文字幕一区二区三区视频在线| 一区二区三区免费在线视频 | 亚洲AV无码一区二区二三区入口| 国精品无码A区一区二区| 2014AV天堂无码一区| 亚洲AV无码一区二区三区系列| 中文字幕精品无码一区二区三区| 国产亚洲一区二区手机在线观看 | 在线观看视频一区二区| 精品一区二区三区视频在线观看 | 88国产精品视频一区二区三区| 亚洲av无码一区二区三区观看| 亚洲av综合av一区二区三区|