偶尔,windows / .net应用程序会忽略tcp fin标志

前端之家收集整理的这篇文章主要介绍了偶尔,windows / .net应用程序会忽略tcp fin标志前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我遇到了一个我无法解决的网络问题.在几台运行 Windows 8.1并与linux http服务器tcp连接通信的计算机上,在Windows端悬挂而不是正确关闭.

响应后[碎片化为少数,由Windows确认,tcp包] linux服务器 – 10.14.11.59 – 发送一个包含FIN和ACK标志的tcp包.

这是由Windows机器确认的 – 10.14.10.195 – 数据包只设置了ACK标志.

在Windows机器上,linux重新发送带有FIN和ACK标志的数据包 – 由于某种原因仍然保持连接打开;具有RST标志的数据包永远不会被Windows机器发送.

如果发生这种情况,Windows应用程序会等待并最终超时.这种情况随机发生在10-50%的尝试之间.

两台机器之间的流量未经过滤;基于主机的防火墙已关闭.为了避免潜在的问题,我已经在Linux和Windows上禁用了tcp offloading.另外在Windows上运行以下内容并重新启动机器:

netsh int tcp set global chimney=disabled
netsh int tcp set global autotuninglevel=disabled
netsh int tcp set global RSS=disabled

数据包捕获:here.

任何想法将不胜感激!

我们发现在客户端计算机上运行的eset端点安全性是罪魁祸首.

禁用防火墙功能还不够;但卸载它完全解决了问题.

我的同事找到了类似问题的描述here;显然升级到最新版本的eset也解决了这个问题.

原文链接:/windows/368163.html

猜你在找的Windows相关文章