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


648

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

Answers:


771

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

“由对等方重置连接”是TCP / IP的等效功能,它可以将电话重新挂断。礼貌比不回信,挂个电话更礼貌。但这不是真正礼貌的TCP / IP对话者所期望的FIN-ACK。


49
为什么将其标记为“ 对等连接重置”?听起来应该是“主机重置连接”还是“服务器重置连接”
Robert

27
@Robert因为那是重置的来源。对等体发送了一个RST数据包。
洛恩侯爵,

106
罗伯特,你的关心对我来说毫无意义。严格来说,Peer比这更笼统。在典型的客户端-服务器模型中,服务器可以轻松地从“客户端”接收此通知。最初请求连接的计算机具有发送此通知的功能。在TCP级别上,一旦连接正在进行,它看起来是相同的。这两个机器在通信时只是对等体。
codetaku

9
打包的数据可能是由中间的另一个设备(如路由器)发送的?
阿诺德·罗阿

3
不能将其称为“服务器重置连接”,因为它可以由客户端或服务器发送。它不能被“绕过”。如果客户端收到此错误,则意味着服务器不再打开TCP连接,例如,由于服务器崩溃并重新启动。
Johannes Overmann '17

193

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

如果另一端崩溃然后又重新启动,或者close()在传输中有数据从您的套接字上调用时发生了这种情况,这表明您可能没有收到您先前发送的某些数据。

这是否是错误取决于您自己;如果您发送的信息仅是为了远程客户端的利益,那么最终数据可能会丢失也没关系。但是,您应该关闭套接字并释放与该连接关联的所有其他资源。


11
如果在打开新套接字时将套接字选项SO_LINGER设置为零,然后正常关闭它,则RST位置1。因此,所有连接将以重置结束。不要在家尝试它,这很烦人。stackoverflow.com/questions/3757289
Chris Huang-Leaver

1
那么,如何解决此问题,我们是否需要重新启动远程主机和主机?
user2225190

3
@ user2225190您需要重新连接客户端,但是首先您需要检查您的软件,以确保它不是由于应用程序协议错误引起的,即关闭另一端仍在写入的连接。
罗恩侯爵'18

1
谢谢你的评论。它曾经工作了两个月。我也在命令行中尝试,但是仍然出现此错误。我尝试“ sftp user @ machine”。错误不一致。
user2225190 '18
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.