【问题标题】:Incorrect acknowledgements in TCPTCP 中的错误确认
【发布时间】:2017-01-12 13:16:12
【问题描述】:

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

【问题讨论】:

    标签: tcp wireshark


    【解决方案1】:

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

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

    见:Wireshark error with "TCP Acked unseen segment"?

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


    在任何情况下,捕获的帧都表明,每一端最终都正确地确认了另一端发送的最后一个数据,之后任何一端都不再发送数据。所以,严格来说,协议层面没有错。

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

    从截图中可以看出,嵌入式设备:

    1. 发送虚假重传;
    2. 以一种似乎与实际接收数据量无关的奇怪方式反弹“接收窗口大小”(“Win”)。 (大小变化是 1460 的倍数,因此表明与缓冲区可用性有关)。

    因此,如果要在 Windows TCP 问题(极不可能)和我不知道的嵌入式设备中的问题之间进行选择,我会选择嵌入式设备(尤其是考虑到设备的 TCP 有一些奇怪之处)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-17
      • 2016-11-10
      • 2012-11-03
      • 1970-01-01
      • 2010-10-12
      • 1970-01-01
      • 1970-01-01
      • 2013-01-30
      相关资源
      最近更新 更多