为什么MQTT和CoAP的有效负载大小有所不同?

时间:2019-12-06 01:15:16

标签: iot

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

1 个答案:

答案 0 :(得分:0)

  1. 您已经注意到,TCP数据包和UDP数据报的大小至少会有所不同,至少是由于TCP和UDP标头的大小不同。
  2. 至少由于MQTT和CoAP消息头不同,MQTT消息(TCP打包主体)和CoAP打包(UDP数据报主体)将有所不同。
  3. 由于不同的序列化协议,
  4. MQTT有效负载和CoAP有效负载(省略MQTT和CoAP标头)可能有所不同。字符串可以以不同的格式进行序列化传输:JSON,TLV,CBOR,明文。您需要检查案例中每条消息使用的内容。