在MQTT中设置QoS级别1时,PUBACK重传的原因是什么?

时间:2017-07-05 05:00:55

标签: tcp mqtt wireshark qos

学习MQTT的学生。

为了测试MQTT,代理使用了mosquitto,发布者和订阅者使用了paho库。

从发布者到代理,连续发送有效负载大小为1000字节的消息的实验 我们已经开始了。

我在发布商中将QoS级别设置为1,当我将数据发送到代理时,我遇到了有关通过wireshark检查数据的问题。

enter image description here

上面的图片捕获了wireshark。 (354)响应于PUBLISH消息,代理发送(355)PUBLISH ACK消息。然后,代理发送(356)重传消息,例如355。

我已经验证发布确认在TCP中以搭载的ack形式发生,但我不知道为什么会发生356。

356为什么会出现? 如果它是TCP问题,我不知道搭载ack的重传机制。

1 个答案:

答案 0 :(得分:0)

代理未发送重传,托管代理的计算机上的TCP堆栈发送了它,因为它在所需的超时(https://en.wikipedia.org/wiki/Transmission_Control_Protocol#Timeout_based_retransmission)中没有收到原始的TCP sync响应

如果检查356的实际内容,则应与355

完全相同