iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 11
0
IoT

簡簡單單的MQTT入門系列 第 11

Qos(Quality of Service)

  • 分享至 

  • xImage
  •  

Qos是訂閱者或發佈者和Broker之間的傳輸服務品質,一共有0、1、2等三個等級。

  • QoS 0:最多一次(At most once delivery)
  • QoS 1:至少一次(At least once delivery)
  • QoS 2:確實一次(Exactly once delivery)

  • QoS 0:最多一次(At most once delivery)
    射後不理。
    訊息的傳遞是根據底層的網路的能力(MQTT v3.1.1/v5.0都是TCP),接收端不會回應ACK,傳送端也不會重傳,所以接收端可能不會收到訊息,例如網路斷線。

  • QoS 1:至少一次(At least once delivery)
    確保訊息至少傳送一次,當傳送端發送一個訊息,會期待接收端回應PUBACK的訊息,如果一段時間之後沒有收到回應,傳送端會再次發送訊息,直到在限定時間內收到接收端回應PUBACK的訊息。

  • QoS 2:確實一次(Exactly once delivery)
    最高的服務品質等級,不會丟失訊息亦不會重複發送訊息,使用Qos 2會產生額外的開銷,是最安全也是最慢的服務品質。
    https://ithelp.ithome.com.tw/upload/images/20190918/20011273mEhCVW1Yra.jpg
  1. 傳送端傳送訊息。
  2. 接收端收到之後回應PUBREC訊息,如果傳送端沒有收到PUBREC訊息,會再次傳送帶有DUP(重複)標記的訊息。
  3. 傳送端收到PUBREC訊息之後會傳送PUBREL訊息。
  4. 接收端收到PUBREL訊息之後會回應PUBCOMP訊息給傳送端。

上一篇
保留訊息
下一篇
MQTT Control Packet type
系列文
簡簡單單的MQTT入門23
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言