TCP连接未正确关闭时从应用程序发送的RST数据包

TCP连接未正确关闭时从应用程序发送的RST数据包,tcp,Tcp,我有一个基于Web服务的应用程序,其中Web服务器在特定端口的应用程序中运行。最近在生产环境中,我注意到应用程序正在向客户端发送一个RST数据包来重置连接。在分析TCP转储之后,我发现TCP 4路连接关闭没有正常发生。从应用程序web服务器向客户端发送响应后,应用程序向客户端发送FIN数据包并接收ACK,但客户端没有向应用程序发起FIN数据包,而是接收一些请求数据包。此时,应用程序向客户机发送一个RST数据包,因为应用程序希望从客户机发起FIN数据包。这会导致请求数据包丢失。我相信这是web服务

我有一个基于Web服务的应用程序,其中Web服务器在特定端口的应用程序中运行。最近在生产环境中,我注意到应用程序正在向客户端发送一个RST数据包来重置连接。在分析TCP转储之后,我发现TCP 4路连接关闭没有正常发生。从应用程序web服务器向客户端发送响应后,应用程序向客户端发送FIN数据包并接收ACK,但客户端没有向应用程序发起FIN数据包,而是接收一些请求数据包。此时,应用程序向客户机发送一个RST数据包,因为应用程序希望从客户机发起FIN数据包。这会导致请求数据包丢失。我相信这是web服务器应用程序的正常/预期行为,需要在客户端修复

请对上述情况发表评论。非常感谢您的评论


提前感谢

客户端正在忽略套接字上的EOS条件并继续写入。然后,客户端将获得“对等方重置连接”。这基本上是一个应用程序协议错误。客户端不应该在同一个连接上发送另一个请求,或者服务器应该寻找它,而不是在第一次响应后关闭连接。

感谢您的快速回复。您说过服务器应该在寻找它-但是,连接启动已经从服务器端完成了,客户端是否必须完成连接终止过程-即4路连接关闭procedure@ChandanTalukdar连接启动由客户端完成。否则,您的“客户端”和“服务器”背对背,您的问题不会被理解。无论谁收到FIN,都应该关闭连接,从而发送自己的FIN。对不起。“连接启动”——我实际上是指“连接关闭启动”。但是,我得到了我问题的答案。再次非常感谢。