首页 文章

是什么导致发送TCP / IP重置(RST)标志?

提问于
浏览
107

我试图找出为什么我的应用程序的TCP / IP连接每10分钟(确切地说,在1-2秒内)打嗝 . 我运行Wireshark并发现在10分钟不活动后,另一端正在发送一个设置了重置(RST)标志的数据包 . 谷歌搜索告诉我“RESET标志表示接收器已经变得混乱,因此想要中止连接”但这有点不足我需要的细节 . 可能是什么导致了这个?并且沿途的某个路由器是否有可能对此负责,或者这总是来自另一个 endpoints ?

Edit: 在我的计算机和另一个 endpoints 之间有一个路由器(特别是Linksys WRT-54G) - 在路由器设置中我应该寻找什么?

6 回答

  • 4

    一个'路由器'可能正在做任何事情 - 特别是NAT,这可能涉及任何数量的错误缠扰交通流量......

    设备发送RST的一个原因是响应于接收到关闭套接字的数据包 .

    很难给出一个坚定但一般性的答案,因为TCP自成立以来就已经访问过每一个可能的变态,并且各种各样的人可能会插入RST以试图阻止流量 . (例如,有些'国家防火墙'就像这样工作 . )

  • 11

    在对等体上也运行数据包嗅探器(例如,Wireshark)以查看它是发送RST的对等体还是中间的某个人 .

  • 4

    我花了很长时间来解决这个问题 . 所提出的解决方案都没有奏效 . 原来我们的系统管理员错误地将相同的静态IP分配给属于不同组但位于同一网络的两个不相关的服务器 . 最终结果是间歇性地丢弃连接,浏览器必须刷新几次以获取网页,以及其他奇怪的事情 .

  • 18

    如果连接空闲x分钟,某些防火墙会这样做 . 一些ISP也将其路由器设置为出于各种原因 .

    在这个时代,你需要优雅地处理(根据需要重新 Build )这种状况 .

  • 4

    RST由执行主动关闭的一方发送,因为它是发送最后一个ACK的一方 . 因此,如果它从处于错误状态的被动关闭的一侧接收FIN,则它发送RST数据包,该数据包指示另一方发生了错误 .

  • 76

    如果有路由器在做NAT,特别是资源很少的低端路由器,它将首先使最老的TCP会话老化 . 为此,它在数据包中设置 RST 标志,有效地告诉接收站(非常不合理地)关闭连接 . 这样做是为了节省资源 .

相关问题