我有两个应用程序运行在本地主机与客户端服务器架构
A <-------------------->B 2411 43787
基本上A是服务器棒B是客户端。 在初始握手完成后,消息传送发生得很好,但是在一些日子(2/7/10天)之后,连接closures。
当我捕获TCP数据包时,我观察到RST数据包是从客户端发送的。 我检查客户端的代码,我没有看到客户端正在closures连接,也没有重新启动客户端应用程序,那么RST数据包被发送到服务器的原因是什么?
我如何着手解决断开问题。
10744 2017-10-29 13:58:43.179257 127.0.0.1 127.0.0.1 TCP 68 43787 > vrts-registry [ACK] Seq=76858 Ack=203335 Win=182 Len=0 TSval=4066492436 TSecr=4066492436 10745 2017-10-29 13:58:43.179272 127.0.0.1 127.0.0.1 TCP 68 43787 > vrts-registry [RST, ACK] Seq=76858 Ack=203335 Win=182 Len=0 TSval=4066492436 TSecr=4066492436
如果应用程序不知道新的传入数据包,则TCP复位可能发生。
应用程序太繁忙,在从监听器中select一个问题。 我会validation一个perfmon服务器的健康状况,当断开连接发生。
下一次重置是在networking帧发送六次(这将是原始帧加上帧的五次重传)时发生的TCP重置,没有响应。 结果,发送节点重置连接。 这是假设我们在三次握手后build立了联系。 重置之前的重发次数是可configuration的,但默认值是5。
在那个问题上有一个很好的阅读。