我有一个基于Web服务的应用程序,其中Web服务器在特定端口上的应用程序中运行。最近在生产环境中,我注意到应用程序正在向客户端发送RST数据包以重置连接。在分析了TCP转储之后,我发现TCP 4路连接关闭没有正确发生。在从应用程序Web服务器向客户端发送响应之后,应用程序正在向客户端发送FIN数据包并接收ACK,但是没有从客户端向应用程序发起FIN数据包,而是接收到一些请求数据包。此时,应用程序向客户端发送RST数据包,因为应用程序期望从客户端启动FIN数据包。这导致丢失请求分组。我相信这是Web服务器应用程序的正常/预期行为,需要在客户端修复。
请评论上述情况。您的意见将不胜感激。
提前致谢
答案 0 :(得分:0)
客户端忽略套接字上的EOS条件并继续写入。然后客户端将获得“通过对等方重置连接”。这基本上是应用程序协议错误。客户端不应该在同一个连接上发送另一个请求,或者服务器应该在第一个响应之后查找它而不是关闭连接。