首页 > 解决方案 > 是否可以通过 mqtt 通信只进行一次 3way 握手?

问题描述

我正在使用 mosquitto_pub 使用主题使用 TLS 发布数据。我正在使用 mosquitto_sub 从 mosquitto_pub 订阅主题。

每当我触发 mosquitto_pub 时,我注意到wireshark 每次都能检测到3 次握手。我现在的问题是,蚊子是否有可能只进行一次 3 次握手?只是为了尽量减少发送数据和接收数据到另一端的时间。

我的意思是在第一次触发 mosquitto_pub 时保持握手状态,然后在后续发布消息时,它只会发送 TLS 数据,而不是每次都一遍又一遍地进行 3 次握手。

标签: sslmqttiottls1.2mosquitto

解决方案


您所描述的是 SSL/TLS 会话恢复。

代理支持会话恢复,但不支持mosquitto命令行工具。

这是因为他们需要在每次执行之间存储会话 ID 密钥。这看起来已经在这个mosquitto-dev 邮件列表线程中讨论过,但由于没有需求而没有实现。

如果代理支持,您可以通过将 Clean Session 标志设置为 false 来使用 Paho C 库的 TLS 会话恢复(我仍然认为 MQTT 会话和 TLS 会话的概念应该保持分开)。


推荐阅读