“同伴重置连接”是什么意思?

时间:2009-09-16 17:38:58

标签: sockets tcp

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

3 个答案:

答案 0 :(得分:665)

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

  

“通过对等方重置连接”是TCP / IP等同于将电话重新关闭。它更礼貌而不仅仅是不回复,留下一个悬挂。但这并不是真正礼貌的TCP / IP逆转所期望的FIN-ACK。

答案 1 :(得分:172)

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

如果另一方崩溃然后重新启动或者如果在传输过程中有数据时它在套接字上调用close(),则会发生这种情况,并且表明您有一些数据属于您以前发送的可能尚未收到。

这取决于你是否是一个错误;如果您发送的信息仅用于远程客户端的利益,那么任何最终数据可能都已丢失可能无关紧要。但是,您应该关闭套接字并释放与该连接关联的任何其他资源。

答案 2 :(得分:2)

我正在通过Go语言goroutines解析cooljugator.com(以学习/获得goroutines的经验并了解我在实际项目中可能面临的挑战),现在遇到了此错误。我可以理解,打开太多的HTTP链接会导致远程服务器关闭连接。我认为,他们的服务器上有这样的配置,可以避免由漫游器解析其数据。在打开许多goroutines时设置延迟(例如10秒)不会导致此错误。