为什么这种连接保持关闭 - SYN-> SYN,ACK-> ACK-> RST,ACK

时间:2011-04-27 13:55:16

标签: networking tcp

我有一个发送Web请求的应用程序,经过一段可变的时间后,我们开始收到连接超时错误。对TCP / IP数据包的分析表明,每次尝试的连接都会发生以下情况:

没有。时间源目标协议信息

98635 2011-04-21 10:13:47.192237 172.22.3.250 172.22.3.100 TCP [TCP端口号重用] httpx> http-alt [SYN] Seq = 0 Win = 65535 Len = 0 MSS = 1460

98639 2011-04-21 10:13:47.192397 172.22.3.100 172.22.3.250 TCP http-alt> httpx [SYN,ACK] Seq = 0 Ack = 1 Win = 5840 Len = 0 MSS = 1460

98641 2011-04-21 10:13:47.192425 172.22.3.250 172.22.3.100 TCP httpx> http-alt [ACK] Seq = 1 Ack = 1 Win = 65535 Len = 0

98646 2011-04-21 10:13:47.192502 172.22.3.250 172.22.3.100 TCP httpx> http-alt [RST,ACK] Seq = 1 Ack = 1 Win = 0 Len = 0

一旦发生这种情况,必须重新启动客户端计算机以解决问题。重新启动客户端或服务器应用程序,或重新启动服务器无效。工作和非工作消息之间​​的数据包详细信息的比较显示标志等没有差异

谢谢,

尼尔

1 个答案:

答案 0 :(得分:0)

TCP Port numbers reused是一个线索。可能是您的客户端正在重新使用应该关闭的旧连接的端口号。

您的客户端是否绑定到静态源端口?如果是,则可能是客户端操作系统拒绝来自服务器的数据包,因为它认为它们属于旧连接。操作系统拒绝数据包,这就是为什么只有客户端重新启动才能解决问题。 (或者尝试等几分钟)。

在客户端上打开连接时,请不要分配源端口。