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