【问题标题】:Since MQTT based on TCP, then why MQTT need QoS ? [duplicate]既然 MQTT 基于 TCP,那为什么 MQTT 需要 QoS 呢? [复制]
【发布时间】:2019-05-24 21:35:14
【问题描述】:

MQTT 是基于 TCP 的协议,而 TCP 是一种可靠的传输协议。

既然 TCP 是可靠的,那么为什么 MQTT 中有一个级别 0 的 QoS 表示从发布者到接收者的消息可能会丢失?

或者更多,既然 TCP 天生就支持可靠传输,那为什么 MQTT 需要一个 QoS 的概念呢?

【问题讨论】:

    标签: tcp mqtt qos


    【解决方案1】:

    假设您已将 MQTT 消息写入 TCP 链接,但在收到另一端的确认之前 TCP 链接出错。另一端可能收到也可能没有收到 MQTT 消息。 MQTT 实现必须决定是尝试通过另一个链接还是在重新建立 TCP 链接之后尝试发送消息。为此,它需要知道该消息是否是必不可少的,无论它延迟了多少,或者是否没有必要重新发送它,因为如果没有及时收到它就会过时。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-15
      • 2017-01-09
      • 2015-01-13
      • 2015-10-03
      • 1970-01-01
      • 1970-01-01
      • 2015-01-18
      相关资源
      最近更新 更多