MQTT设置QoS level 1时PUBACK重传是什么原因?
What is the reason for PUBACK retransmission when QoS level 1 is set in MQTT?
正在学习 MQTT 的学生。
为了测试 MQTT,代理使用了 mosquitto,发布者和订阅者使用了 paho 库。
从publisher到broker,连续发送payload大小为1000字节的消息的实验
我们进行了。
我在publisher中设置了QoS level为1,在向broker发送数据时,出现了通过wireshark查数据的问题
上图抓取wireshark。 (354) 为响应 PUBLISH 消息,代理发送 (355) PUBLISH ACK 消息。然后broker发送一个(356)重传报文,比如355.
我已验证在 TCP 中发布 ack 以 piggybacked ack 形式出现,但我不知道为什么会出现 356。
为什么会出现356?
不知道是不是TCP问题piggybacked ack的重传机制
代理没有发送重传,托管代理的机器上的 TCP 堆栈发送了它,因为它没有在要求的超时内收到原始的 TCP sync
响应(https://en.wikipedia.org/wiki/Transmission_Control_Protocol#Timeout_based_retransmission).
如果你查看356的实际内容应该和355完全一样
正在学习 MQTT 的学生。
为了测试 MQTT,代理使用了 mosquitto,发布者和订阅者使用了 paho 库。
从publisher到broker,连续发送payload大小为1000字节的消息的实验 我们进行了。
我在publisher中设置了QoS level为1,在向broker发送数据时,出现了通过wireshark查数据的问题
上图抓取wireshark。 (354) 为响应 PUBLISH 消息,代理发送 (355) PUBLISH ACK 消息。然后broker发送一个(356)重传报文,比如355.
我已验证在 TCP 中发布 ack 以 piggybacked ack 形式出现,但我不知道为什么会出现 356。
为什么会出现356? 不知道是不是TCP问题piggybacked ack的重传机制
代理没有发送重传,托管代理的机器上的 TCP 堆栈发送了它,因为它没有在要求的超时内收到原始的 TCP sync
响应(https://en.wikipedia.org/wiki/Transmission_Control_Protocol#Timeout_based_retransmission).
如果你查看356的实际内容应该和355完全一样