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

Fra*_*ger 596 sockets tcp

TCP连接上"通过对等连接重置"错误的含义是什么?这是致命错误还是只是通知或与网络故障有关?

ire*_*ses 721

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

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

  • ......罗伯特,你的担忧对我毫无意义.Peer只是比这更普遍.在典型的客户端 - 服务器模型中,服务器可以轻松地从"客户端"接收此通知.最初请求连接的计算机具有发送此通知的同等功能.在TCP级别,一旦连接正在进行,它看起来是相同的.在沟通时,这两台机器只是同行. (90认同)
  • 为什么它被标记为"连接由*peer*重置"?听起来应该是"主机连接重置"或"服务器连接重置" (41认同)
  • @Robert因为这是重置的来源.对端发送了RST报文. (26认同)
  • 这个打包可能是由路由器中间的另一台设备发送的? (8认同)
  • @ user1595858最常见的原因是由于任何原因导致进程过早退出,或者在仍有未读数据或正在运行的数据时套接字过早关闭, (2认同)
  • 不能将其称为“服务器重置连接”,因为它可以由客户端或服务器发送。它不能被“绕过”。如果客户端收到此错误,则表示服务器中的TCP连接不再打开,例如,由于服务器崩溃并重新启动。 (2认同)

mar*_*k4o 183

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

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

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

  • 如果在打开新套接字时将套接字选项SO_LINGER设置为零,则将其正常关闭,将设置RST位.所以ALL连接将以重置结束.不要在家尝试这个,它只是讨厌.http://stackoverflow.com/questions/3757289 (10认同)
  • @ user2225190您需要重新连接客户端,但是首先您需要检查您的软件,以确保它不是由于应用程序协议错误引起的,即关闭另一端仍在写入的连接。 (3认同)