Una vez que se establece la conexión, todos los paquetes deben tener configurado ACK y coincidir con el número de secuencia de los paquetes recibidos para un transporte / seguridad confiable. RST sin ACK no será aceptado. Cuando un lado envía RST, el socket se cierra inmediatamente y el lado receptor también cierra el socket inmediatamente después de recibir un RST válido. No necesita ser y no puede ser reconocido.
después del protocolo de enlace TCP
A ---> B Syn = x, Ack = y, len = z, indicador ACK
B ---> A Syn = y, Ack = x + z, len = o, indicador ACK
A ---> B Syn = x + z, Ack = y + o, len = p, indicador ACK
B ---> A Syn = y + o, ACK = x + z + p, len = q, RST, ACK Flag
B cierra el socket después de que envía el último paquete y A cierra el socket después de que lo recibe.
(sin tener en cuenta la ventana TCP aquí, o podría haber más paquetes de un extremo antes del reconocimiento)
La marca ACK, el número de reconocimiento y el procedimiento de reconocimiento están relacionados pero no son lo mismo.
Por RFC793
RFC793
Número de acuse de recibo: 32 bits
If the ACK control bit is set this field contains the value of the
next sequence number the sender of the segment is expecting to
receive. Once a connection is established this is always sent.
Restablecer procesamiento
En todos los estados, excepto SYN-SENT, todos los segmentos de restablecimiento (RST) se validan verificando sus campos SEQ. Un reinicio es válido si su número de secuencia está en la ventana. En el estado SYN-SENT (un RST recibido en respuesta a un SYN inicial), el RST es aceptable si el campo ACK reconoce el SYN.
El receptor de un RST primero lo valida y luego cambia de estado. Si el receptor estaba en el estado ESCUCHAR, lo ignora. Si el receptor estaba en estado SINCRONIZADO y había estado previamente en el estado ESCUCHAR, entonces el receptor vuelve al estado ESCUCHAR; de lo contrario, el receptor cancela la conexión y pasa al estado CERRADO. Si el receptor estaba en cualquier otro estado, aborta la conexión y avisa al usuario y pasa al estado CERRADO.