2009-09-16 23 views

Respuesta

564

Es fatal. El servidor remoto le ha enviado un paquete RST, que indica una caída inmediata de la conexión, en lugar del habitual saludo de mano. Esto pasa por alto la transición de estado medio cerrado normal. Me gusta this description:

"Restablecimiento de la conexión por pares" es el equivalente de TCP/IP de golpear el teléfono de nuevo en el gancho. Es más educado que simplemente no responder, dejando uno colgando. Pero no es el FIN-ACK esperado del converseur de TCP/IP verdaderamente educado.

+19

¿Por qué está etiquetado como "restablecimiento de conexión por * peer *"? Parece que debería ser "conexión restablecida por el host" o "restablecimiento de conexión por el servidor" – Robert

+18

@Robert porque de ahí viene el restablecimiento. par envió un paquete RST – EJP

+43

... Robert, su preocupación no tiene sentido para mí. Peer es estrictamente más general que eso. En un modelo típico de cliente-servidor, el servidor puede recibir tan fácilmente esta notificación del "cliente" "La máquina que inicialmente solicita la conexión tiene el mismo poder para enviar esta notificación. En un nivel de TCP, se ve idéntica una vez que la conexión está en curso. Las dos máquinas, cuando se comunican, son solo iguales. – codetaku

153

Esto significa que se recibió un TCP RST y la conexión ahora está cerrada. Esto ocurre cuando se envía un paquete desde el final de la conexión pero el otro extremo no reconoce la conexión; enviará un paquete con el bit RST establecido para cerrar la conexión a la fuerza.

Esto puede suceder si el otro lado se cuelga y vuelve a aparecer o si llama al close() en el zócalo mientras hay datos suyos en tránsito, y es una indicación de que algunos de los datos que ha enviado anteriormente pueden no ha sido recibido.

Depende de usted si eso es un error; si la información que estaba enviando era solo para el beneficio del cliente remoto, entonces puede no importar que se haya perdido cualquier dato final. Sin embargo, debe cerrar el socket y liberar cualquier otro recurso asociado con la conexión.

+5

Si configura la opción de socket SO_LINGER a cero cuando abre un nuevo socket, entonces ciérrelo normalmente, se establecerá el bit RST. Entonces TODA conexión finalizará con un reinicio. No intentes esto en casa, es simplemente molesto. http://stackoverflow.com/questions/3757289 –

Cuestiones relacionadas