日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

MQTT QoS(服务质量)介绍

發布時間:2023/12/18 c/c++ 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MQTT QoS(服务质量)介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MQTT 協議?中規定了消息服務質量(Quality of Service),它保證了在不同的網絡環境下消息傳遞的可靠性,QoS 的設計是 MQTT 協議里的重點。作為專為物聯網場景設計的協議,MQTT 的運行場景不僅僅是 PC,而是更廣泛的窄帶寬網絡和低功耗設備,如果能在協議層解決傳輸質量的問題,將為物聯網應用的開發提供極大便利。

MQTT QoS 等級

MQTT 設計了 3 個 QoS 等級。

  • QoS 0:消息最多傳遞一次,如果當時客戶端不可用,則會丟失該消息。
  • QoS 1:消息傳遞至少 1 次。
  • QoS 2:消息僅傳送一次。

QoS 0 是一種 "fire and forget" 的消息發送模式:Sender (可能是 Publisher 或者 Broker) 發送一條消息之后,就不再關心它有沒有發送到對方,也不設置任何重發機制。

QoS 1 包含了簡單的重發機制,Sender 發送消息之后等待接收者的 ACK,如果沒收到 ACK 則重新發送消息。這種模式能保證消息至少能到達一次,但無法保證消息重復。

QoS 2 設計了重發和重復消息發現機制,保證消息到達對方并且嚴格只到達一次。

工作原理

QoS 0 - 最多分發一次

當 QoS 為 0 時,消息的分發依賴于底層網絡的能力。發布者只會發布一次消息,接收者不會應答消息,發布者也不會儲存和重發消息。消息在這個等級下具有最高的傳輸效率,但可能送達一次也可能根本沒送達。

Qos 1 - 至少分發一次

當 QoS 為 1 時,可以保證消息至少送達一次。MQTT 通過簡單的 ACK 機制來保證 QoS 1。發布者會發布消息,并等待接收者的 PUBACK 報文的應答,如果在規定的時間內沒有收到 PUBACK 的應答,發布者會將消息的 DUP 置為 1 并重發消息。接收者接收到 QoS 為 1 的消息時應該回應 PUBACK 報文,接收者可能會多次接受同一個消息,無論 DUP 標志如何,接收者都會將收到的消息當作一個新的消息并發送 PUBACK 報文應答。

QoS 2 - 只分發一次

當 QoS 為 2 時,發布者和訂閱者通過兩次會話來保證消息只被傳遞一次,這是最高等級的服務質量,消息丟失和重復都是不可接受的。使用這個服務質量等級會有額外的開銷。

發布者發布 QoS 為 2 的消息之后,會將發布的消息儲存起來并等待接收者回復 PUBREC 的消息,發送者收到 PUBREC 消息后,它就可以安全丟棄掉之前的發布消息,因為它已經知道接收者成功收到了消息。發布者會保存 PUBREC 消息并應答一個 PUBREL,等待接收者回復 PUBCOMP 消息,當發送者收到 PUBCOMP 消息之后會清空之前所保存的狀態。

當接收者接收到一條 QoS 為 2 的 PUBLISH 消息時,他會處理此消息并返回一條 PUBREC 進行應答。當接收者收到 PUBREL 消息之后,它會丟棄掉所有已保存的狀態,并回復 PUBCOMP。

無論在傳輸過程中何時出現丟包,發送端都負責重發上一條消息。不管發送端是 Publisher 還是 Broker,都是如此。因此,接收端也需要對每一條命令消息都進行應答。

QoS 在發布與訂閱中的區別

MQTT 發布與訂閱操作中的 QoS 代表了不同的含義,發布時的 QoS 表示消息發送到服務端時使用的 QoS,訂閱時的 QoS 表示服務端向自己轉發消息時可以使用的最大 QoS。

  • 當客戶端 A 的發布 QoS 大于客戶端 B 的訂閱 QoS 時,服務端向客戶端 B 轉發消息時使用的 QoS 為客戶端 B 的訂閱 QoS。
  • 當客戶端 A 的發布 QoS 小于客戶端 B 的訂閱 QoS 時,服務端向客戶端 B 轉發消息時使用的 QoS 為客戶端 A 的發布 QoS。

不同情況下客戶端收到的消息 QoS 可參考下表:

發布消息的 QoS主題訂閱的 QoS接收消息的 QoS
000
010
020
100
111
121
200
211
222

如何選擇 MQTT QoS 等級

QoS 級別越高,流程越復雜,系統資源消耗越大。應用程序可以根據自己的網絡場景和業務需求,選擇合適的 QoS 級別。

以下情況下可以選擇 QoS 0

  • 可以接受消息偶爾丟失。
  • 在同一個子網內部的服務間的消息交互,或其他客戶端與服務端網絡非常穩定的場景。

以下情況下可以選擇 QoS 1

  • 對系統資源消耗較為關注,希望性能最優化。
  • 消息不能丟失,但能接受并處理重復的消息。

以下情況下可以選擇 QoS 2

  • 不能忍受消息丟失(消息的丟失會造成生命或財產的損失),且不希望收到重復的消息。
  • 數據完整性與及時性要求較高的銀行、消防、航空等行業。

總結

以上是生活随笔為你收集整理的MQTT QoS(服务质量)介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 黄色在线播放网站 | 中文字幕专区 | 亚洲欧美偷拍一区 | wwwav网站 | 福利社91 | 1000部拍拍拍18勿入免费视频 | 中国一区二区三区 | 精品久久视频 | 福利在线视频导航 | 在线观看视频亚洲 | com国产 | 久久久久亚洲精品中文字幕 | 超碰88| 台湾黄色网址 | 日韩簧片在线观看 | 性色欲网站人妻丰满中文久久不卡 | 日韩欧美专区 | 手机成人在线视频 | 成人不卡视频 | 91香蕉一区二区三区在线观看 | 国产亚洲精品久久久久四川人 | 精品国产一区二区三区久久久 | 精品一区久久 | 在线免费看黄网站 | 亚洲人午夜射精精品日韩 | 国产人妻人伦精品1国产 | 一进一出好爽视频 | av动漫网站| 天天操人人射 | 欧美在线xxx | 成年人免费视频网站 | 大胸喷奶水www视频妖精网站 | 国产午夜福利精品 | 日韩aaaaaa | 欧美一区二区免费 | 欧美精品乱码视频一二专区 | 日韩精选在线观看 | 国产天堂精品 | 午夜高潮视频 | 免费黄色美女网站 | 日本精品一区 | 91成人久久| 人人操天天射 | 一级片在线免费观看视频 | 国产一级做a爰片久久毛片男 | 国模大胆一区二区三区 | 国产成人在线免费 | 国产强被迫伦姧在线观看无码 | 午夜不卡视频 | 黄瓜视频在线免费观看 | 妺妺窝人体色WWW精品 | 久久久久亚洲av成人网人人网站 | 久久久久亚洲av无码网站 | 成人免费视频免费观看 | 日本伦理一区二区 | 青青久操 | 日本一区二区三区久久久久 | 麻豆最新| 丰满少妇在线观看网站 | 亚洲精品第三页 | 中文亚洲字幕 | 成人毛片18女人毛片 | 777午夜 | 性久久久| 日本免费无人高清 | 欧美人妻精品一区二区三区 | 全部免费毛片 | 亚洲综合自拍偷拍 | 色婷婷在线影院 | 18一20岁毛毛片 | 久久国产麻豆 | 国产精品久久久不卡 | 免看一级片 | 国产三级在线免费 | 久久成人人人人精品欧 | 亚洲日本网站 | 91色交视频 | 99精品乱码国产在线观看 | 日批视频免费观看 | 精品国产欧美一区二区 | 欧美一级视频免费 | 男女www | 色优久久 | 日韩激情视频网站 | 男人的天堂亚洲 | 日韩的一区二区 | 四虎成人精品永久免费av九九 | av一区二区三区四区 | 国产91在线视频 | www国产视频 | 亚洲久久在线观看 | 色婷婷网 | 亚洲最新偷拍 | 日本一区二区精品 | 亚洲最大成人在线 | 亚洲av无码一区二区三区四区 | 天天射夜夜骑 | 久久性感视频 | 国产精品女同一区二区 |