在使用安全文件传输协议进行文件传输时,我看到了如下图所示的行为。
它不接受来自服务器的数据包,而是发送 RST。发现了类似的情况。https://stackoverflow.com/questions/12320998/client-sends-rst-to-server-after-fin-ack-during-ssl-handshake
但没有帮助,请帮忙。
问候,Joemon
答案1
您的流中的 FIN 和 RST 数据包没有直接关系。发送 FIN10.77.137.106
表示它没有更多数据要发送。它仍然可以从连接的另一端接收更多数据。但是,当有更多数据到达时,10.77.32.60
会发送 RST 以表示应用程序将不再从套接字读取任何数据。
如果应用程序想要彻底关闭 TCP 连接而不导致发送任何 RST 数据包,它必须首先使用系统shutdown
调用关闭套接字以进行写入,同时保持套接字打开以进行读取。在关闭套接字以进行写入后,它仍必须读取另一端必须发送的所有数据,然后才能完全关闭套接字。