加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

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

发布时间:2020-12-14 00:09:11 所属栏目:Windows 来源:网络整理
导读:我遇到了一个我无法解决的网络问题.在几台运行 Windows 8.1并与linux http服务器tcp连接通信的计算机上,在Windows端悬挂而不是正确关闭. 响应后[碎片化为少数,由Windows确认,tcp包] linux服务器 – 10.14.11.59 – 发送一个包含FIN和ACK标志的tcp包. 这是由W
我遇到了一个我无法解决的网络问题.在几台运行 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也解决了这个问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读