学习MQTT的学生。
为了测试MQTT,代理使用了mosquitto,发布者和订阅者使用了paho库。
从发布者到代理,连续发送有效负载大小为1000字节的消息的实验 我们已经开始了。
我在发布商中将QoS级别设置为1,当我将数据发送到代理时,我遇到了有关通过wireshark检查数据的问题。
上面的图片捕获了wireshark。 (354)响应于PUBLISH消息,代理发送(355)PUBLISH ACK消息。然后,代理发送(356)重传消息,例如355。
我已经验证发布确认在TCP中以搭载的ack形式发生,但我不知道为什么会发生356。
356为什么会出现? 如果它是TCP问题,我不知道搭载ack的重传机制。
答案 0 :(得分:0)
代理未发送重传,托管代理的计算机上的TCP堆栈发送了它,因为它在所需的超时(https://en.wikipedia.org/wiki/Transmission_Control_Protocol#Timeout_based_retransmission)中没有收到原始的TCP sync
响应
如果检查356的实际内容,则应与355
完全相同