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

Posted

技术标签:

【中文标题】“对等方重置连接”是啥意思?【英文标题】:What does "connection reset by peer" mean?“对等方重置连接”是什么意思? 【发布时间】:2010-11-28 21:35:08 【问题描述】:

TCP 连接上的“connection reset by peer”错误是什么意思?是致命错误还是只是通知或与网络故障有关?

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

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

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

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

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

【讨论】:

如果在打开新套接字时将套接字选项SO_LINGER设置为零,然后正常关闭它,RST位将被设置。所以所有连接都将以重置结束。不要在家里尝试这个,它只是烦人。 ***.com/questions/3757289 如何解决这个问题,我们需要重新启动远程和我们的主机吗? @user2225190 您需要重新连接客户端,但首先您需要检查您的软件以确保它不是由于应用程序协议错误,即关闭另一端仍在写入的连接到。 感谢您的评论。它曾经工作了两个月。我也在从命令行尝试它,但仍然收到此错误。我尝试“sftp user@machine”。错误不一致。

以上是关于“对等方重置连接”是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

芹菜通过对等方重置连接

SSH - 对等方重置连接 - Linux 主机

致命:读取错误:对等方重置连接

气流 [Errno 104] 对等方重置连接

Heroku - ClearDB:连接中止 - 对等方重置连接

在Android中获取“SocketException:对等方重置连接”