ChatGPT解决这个技术问题 Extra ChatGPT

“对等方重置连接”是什么意思?

TCP连接上的“对等连接重置”错误是什么意思?是致命错误还是只是通知或与网络故障有关?


u
user207421

这是致命的。远程服务器向您发送了一个 RST 数据包,这表明连接立即断开,而不是通常的握手。这绕过了正常的半关闭状态转换。我喜欢this description

“由对等方重置连接”是 TCP/IP 等价物,相当于将电话重新挂上。这比仅仅不回复,留下一个悬而未决更有礼貌。但这并不是真正礼貌的 TCP/IP 话务员所期望的 FIN-ACK。


为什么标为“对等方重置连接”?听起来应该是“主机重置连接”,或者“服务器重置连接”
@Robert因为那是重置的来源。对端发送了一个 RST 数据包。
...罗伯特,你的担心对我来说毫无意义。 Peer 严格来说比这更笼统。在典型的客户端-服务器模型中,服务器可以很容易地从“客户端”接收此通知。最初请求连接的机器有同样的权力来发送这个通知。在 TCP 级别上,一旦连接正在进行,它看起来是相同的。两台机器在通信时只是对等点。
这个包装可能是由中间的另一个设备(如路由器)发送的?
它不能被称为“服务器重置连接”,因为它可以由客户端或服务器发送。它不能被“绕过”。如果客户端收到此错误,则意味着 TCP 连接不再在服务器中打开,例如因为服务器崩溃并重新启动。
C
Chris Huang-Leaver

这意味着收到了 TCP RST,现在连接已关闭。当数据包从您的连接端发送但另一端无法识别连接时,会发生这种情况;它会发回一个设置了 RST 位的数据包,以强制关闭连接。

如果另一端崩溃然后又恢复,或者如果它在套接字上调用 close() 而您的数据正在传输中,则可能会发生这种情况,这表明您之前发送的某些数据可能没有已收到。

这是否是错误取决于您;如果您发送的信息只是为了远程客户端的利益,那么任何最终数据可能已经丢失可能并不重要。但是,您应该关闭套接字并释放与连接相关的任何其他资源。


如果在打开新套接字时将套接字选项 SO_LINGER 设置为零,然后正常关闭它,则将设置 RST 位。所以所有连接都将以重置结束。不要在家里尝试这个,它只是烦人。 stackoverflow.com/questions/3757289
那么如何解决这个问题,我们是否需要重新启动远程和我们的主机?
@user2225190 您需要重新连接客户端,但首先您需要检查您的软件以确保它不是由于应用程序协议错误,即关闭另一端仍在写入的连接。
谢谢你的评论。它曾经工作了两个月。我也在从命令行尝试它,但仍然收到此错误。我尝试“sftp user@machine”。错误不一致。
由重启的路由硬件发送也很常见,在这种情况下,服务器或客户端都没有发送重置消息,因此它可能是一个误导性消息。