windows 服务器 服务端程序发送RST给客户端

来源:互联网 发布:mac应用程序删不掉 编辑:程序博客网 时间:2024/05/16 07:22

今天有位研发的同事,过来找我们运维,说,他们的程序运行几分钟后就自动断开了, 需要重新连接,怀疑是网络防火墙问题,而且用户的程序中,内置了30s一次的心跳数据。

排查过程,一开始就是怀疑确实是 天融信防火墙,导致长连接没有生效,但是本身防火墙没有阻断通信呢,因为客户30s一次都会有通信包。虽然天融信防火墙有长连接的策略配置,但是感觉根本问题不在这里。

研发同学建议服务器抓包。

这里写图片描述

通过抓包有了重大发现:

这里写图片描述

最后几行比较有意思,
1. 115989. 本地机器172.16.1.2向远端机器说, FIN
2. 对方回了一个确认,好吧,FIN
3. 对方又确认了一下之前发送的数据。
4. 本地有点不耐烦了, 发送了一个RST,重置对方。(怀疑这个地方是由于 本地的端口已经没有在监听了,也就是说,程序有异常,退出了,或者说线程退出了)
5. 对方开始回复FIN
6. 但是本地还是不理会,直接发送RST
7. 对方感觉挺无奈,直接回了个RST,确认。

以上仅仅是分析和猜测,到底问题是啥还得等进一步的调查结果。

参考:
http://russelltao.iteye.com/blog/1405349

windows系统调优参考
http://www.cnblogs.com/fczjuever/archive/2013/04/05/3000697.html
http://www.iyeele.com/268.html
https://kb.globalscape.com/KnowledgebaseArticle10438.aspx

今天下午有了一点进展,研发发现是由于自己的程序收到的数据包太快了,导致拒绝服务,RST发了出去。

  • windows tcp 优化软件
    http://www.speedguide.net/downloads.php
0 0
原创粉丝点击