我遇到了无法解决的网络问题。在一些运行 Windows 8.1 并与 Linux http 服务器通信的计算机上,TCP 连接在 Windows 端悬而未决,而不是正确关闭。
响应后 [分成几个部分,由 Windows 确认,tcp 数据包] linux 服务器 - 10.14.11.59 - 发送一个包含 FIN 和 ACK 标志设置的 tcp 数据包。

Windows 机器(10.14.10.195)对此进行了确认,数据包仅设置了 ACK 标志。

Linux 会多次重新发送带有 FIN 和 ACK 标志的数据包,而 Windows 机器 - 由于某种原因仍然保持连接打开;Windows 机器永远不会发送带有 RST 标志的数据包。

如果发生这种情况,Windows 应用程序将等待并最终超时。这种情况在 10-50% 的尝试中随机发生。
两台机器之间的流量未经过滤;基于主机的防火墙已关闭。为了避免潜在的问题,我在 Linux 和 Windows 上禁用了 TCP 卸载。另外,在 Windows 上运行以下命令并重新启动机器:
netsh int tcp set global chimney=disabled
netsh int tcp set global autotuninglevel=disabled
netsh int tcp set global rss=disabled
Run Code Online (Sandbox Code Playgroud)
数据包捕获:此处。
任何想法将不胜感激!