【发布时间】:2016-12-21 19:17:01
【问题描述】:
我已经从一台服务器运行了一些流量到另一台服务器。在第一种情况下,数据包是通过 TCP 协议发送的。在另一种情况下,数据包是通过 MQTT 协议(也通过 TCP 运行)发送的。通过MQTT交换场景,server1发送到server2的数据包是我使用TCP时从server1发送到server2的数据包的3倍。
【问题讨论】:
-
您的问题与物联网有何关系?并非所有涉及网络、连接或服务器的东西都与物联网有关。我没有看到任何关系。如果没有更多内容,请删除 IoT 标签。
-
另外,由于您承认此 mqtt 实现通过 tcp 运行,我希望发送的数据包数量至少与使用直接 tcp 的通信相同或更高。为什么是3倍?我不知道。也许这只是额外包装的大小,或者可能是一些订阅/取消订阅消息。谁知道。这是您的应用程序,您没有说明它如何运行或通过网络发送什么。你甚至没有说你的应用程序中网络背后的概念或方案是什么。我们如何猜测?与此同时,也许只是抓住 Wireshark 自己看看?
-
您需要提供更多信息才能获得正确答案。有效载荷有多大,您使用了什么 QOS,您发布的主题是什么,您将 keepalive 值设置为什么?
-
@quetzalcoatl MQTT 被认为是物联网协议,因此它是一个合理的标签
-
MQTT 在连接时有自己的握手 - 您是否计算了这些,或者您只计算了带有用户有效负载的 MQTT 消息?您的 MQTT 库是否禁用 Nagle 算法以更快地传递数据,可能以发送更多 TCP 段为代价?您在 TCP 之上运行的自定义协议是否像 MQTT 那样发送应用程序数据的应用程序确认?