iot - 为什么 MQTT 和 CoAP 的有效载荷大小不同?
问题描述
我有一个担忧,因为我刚开始在学校使用 MQTT 和 CoAP。我分别使用两种协议进行数据包传输,对于 MQTT,我使用 mosquitto,libcoap 用于 CoAP,传输的数据包包含信息“Temperature=22*C”。我知道两种协议的数据包中标头大小的差异。但我的问题是为什么有效载荷大小不同,即使它包含相同的信息。我知道 TCP 标头大于 UDP 标头。但是对于 MQTT,有效负载是 22 个字节,对于 CoAP,它是 4 个字节。为什么使用相同信息为 CoAP 压缩有效负载?请帮我解答。
解决方案
- 正如您所指出的,至少由于 TCP 和 UDP 标头大小的不同,TCP 数据包和 UDP 数据报的大小会有所不同。
- MQTT 消息(TCP 打包体)和 CoAP 打包(UDP 数据报体)至少会因为 MQTT 和 CoAP 消息头的不同而有所不同。
- MQTT 有效负载和 CoAP 有效负载(省略 MQTT 和 CoAP 标头)可能由于不同的序列化协议而有所不同。字符串可以以不同的格式进行序列化传输:JSON、TLV、CBOR、明文。您需要检查案例中每条消息的用途。
推荐阅读
- linux - 错误:行首应有标签或指令(nasm)
- javascript - FireBase getAuth 和 onAuthStateChanged 不在“firebase/auth”导入中
- docker - 失败的 docker 图像占用空间,我找不到它们(Win 10)
- mongodb - MongoDB Compass 应用程序没有 $search 聚合
- flutter - Dart/Flutter:在 ListView 的选项卡上更改容器的内容
- javascript - 在 Typescript/Javascript 中将类型添加到 const
- r - R:geom_text() 与 gganimate 出错
- python - LXML + Python:如何在同一父子级别查找和使用参数
- php - 使用 ajax 显示类别循环
- php - instagram profile scraper - 重定向到登录页面 [PHP]