TCP是否可以在’;她在交通中迷路了?

TCP是否可以在’;她在交通中迷路了?,tcp,Tcp,我在内联网上看到两台主机之间有大量失败的连接(称之为客户端和服务器) 在这两台机器上使用netstat,我可以看到相应的端口号,其中服务器端处于SYN_RECV状态,客户端处于SYN_SENT状态 我的解释是,服务器已使用SYN ACK响应客户端的SYN,但该数据包已丢失。握手中断,套接字连接处于不完整状态,我看到客户端在20-45秒后超时 我的问题是,TCP是否为服务器提供了一种在某个时间间隔后重新传输SYN、ACK的方法?这是个好主意还是个坏主意 更多相关的系统细节:两端RHEL5,ssh成

我在内联网上看到两台主机之间有大量失败的连接(称之为客户端和服务器)

在这两台机器上使用netstat,我可以看到相应的端口号,其中服务器端处于SYN_RECV状态,客户端处于SYN_SENT状态

我的解释是,服务器已使用SYN ACK响应客户端的SYN,但该数据包已丢失。握手中断,套接字连接处于不完整状态,我看到客户端在20-45秒后超时

我的问题是,TCP是否为服务器提供了一种在某个时间间隔后重新传输SYN、ACK的方法?这是个好主意还是个坏主意


更多相关的系统细节:两端RHEL5,ssh成功,ping丢失100%,traceroute成功。客户机构建在OpenOrb(Java)上,服务器是Mico(C++)

SYN和FIN标志被认为是序列空间的一部分,并且被可靠地传输(因此,您的直接问题的答案是“是的,默认情况下是这样的”)

然而,我认为你真的想挖得更深一点,因为:

如果您的intranet上的主机上有大量失败的连接,这表明网络中存在问题-通常情况下,您应该有一个处于这些状态的低连接(如果有)。重新传输意味着您的连接将中断2,4,8,。。秒(虽然不是必需的-取决于TCP堆栈。但是对用户来说没有什么好处)

我建议在两台主机上都运行tcpdump或wireshark,并跟踪数据包丢失的位置,然后修复它

在旧硬件上,一个常见的原因可能是路径中某些设备对的双工不匹配(自动检测错误或硬编码错误)。其他一些原因可能是驱动程序出现问题,或者电缆损坏(不足以导致完全断电,但足以导致周期性停电)