TCP中的确认不正确

时间:2016-09-05 07:50:45

标签: tcp wireshark

Windows应用程序通过WiFi与嵌入式设备进行通信,但有时会突然断开连接。我已经捕获了与Wireshark的通信,并找到了断开点之间的最后一次通信。 我可以看到发送确认不正确。我可以看到TCP Spurious重传和丢失确认。嵌入式设备的IP地址为192.168.1.1,Windows PC的IP地址为192.168.1.2谁应该责怪这些通信问题?嵌入式设备(192.168.1.1)或Windows App(192.168.1.2)。附加数据包的屏幕截图。

enter image description here

1 个答案:

答案 0 :(得分:1)

嵌入式设备指示的“虚假重传”是正确的。

Wireshark的“TCP acked unseen segment”指示不正确。这似乎是一个Wireshark错误(可能已修复或未修复)。

请参阅:Wireshark error with "TCP Acked unseen segment"?

您使用的是什么版本的Wireshark?

在任何情况下,捕获的帧显示每个端最终正确地确认另一端发送的最后数据,之后任何一端都不再发送数据。因此,严格来说,协议级别没有任何问题。

在连接的最终帧之后应该发生什么? 来自嵌入式设备的更多数据?

如捕获中所见,嵌入式设备:

  1. 发送虚假重传;
  2. 以一种奇怪的方式反弹“接收窗口大小”(“Win”),似乎与收到的实际数据量无关。 (大小变化是1460的倍数,因此表明与缓冲可用性的关系)。
  3. 因此,考虑到Windows TCP问题(极不可能)与嵌入式设备未知问题之间的选择,我会选择嵌入式设备(特别是在设备的TCP中存在一些奇怪的情况)。