【问题标题】:Why there is a difference in payload size of MQTT and CoAP?为什么 MQTT 和 CoAP 的有效载荷大小不同?
【发布时间】:2020-03-30 23:57:11
【问题描述】:

我刚开始在学校使用 MQTT 和 CoAP,因此我有一个担忧。 我分别使用两种协议进行数据包传输,对于 MQTT,我使用 mosquitto,libcoap 用于 CoAP,传输的数据包包含信息“Temperature=22*C”。我知道两种协议的数据包中标头大小的差异。但我的问题是为什么有效载荷大小不同,即使它包含相同的信息。 我知道 TCP 标头大于 UDP 标头。但是对于 MQTT,有效负载是 22 个字节,对于 CoAP,它是 4 个字节。为什么使用相同信息为 CoAP 压缩有效负载? 请帮我解答。

【问题讨论】:

  • 我不确定,你认为什么是“有效载荷”。是字符串(17 个字符,可能是 + 终止 \000)吗?如果是这样,我不明白 22 个字节,这 4 个字节可能是 c 指针而不是字符串。如果你发送那个,你会在另一边收到什么?

标签: iot


【解决方案1】:
  1. 正如您所说,TCP 数据包和 UDP 数据报的大小至少会因 TCP 和 UDP 标头大小的不同而不同。
  2. MQTT 消息(TCP 打包体)和 CoAP 打包(UDP 数据报体)至少会因为 MQTT 和 CoAP 消息头的不同而有所不同。
  3. MQTT 有效负载和 CoAP 有效负载(省略 MQTT 和 CoAP 标头)可能由于不同的序列化协议而有所不同。字符串可以以不同的格式进行序列化传输:JSON、TLV、CBOR、明文。您需要检查案例中每条消息的用途。

【讨论】:

    猜你喜欢
    • 2020-10-11
    • 2021-08-02
    • 2017-02-07
    • 1970-01-01
    • 2014-11-10
    • 2019-07-30
    • 1970-01-01
    • 1970-01-01
    • 2017-03-13
    相关资源
    最近更新 更多