Según tengo entendido, el indicador de restablecimiento TCP (RST) se establece cuando un segmento recibido no está destinado a la conexión actual y esto da como resultado el aborto de la sesión TCP actual. Pero la captura de wireshark pegada debajo no parece seguir esta teoría. Básicamente, el extremo A que ha iniciado RESET (cuadro n. ° 466) intenta retransmitir las tramas TCP en la misma sesión TCP y también siguió respondiendo cualquier solicitud de conexión nueva posterior [SYN] desde el extremo B con [RST, ACK] y esto el comportamiento se repite 5 veces y el de 3 vías nuevamente solo tiene éxito durante el 6to intento (cuadro # 486).La retransmisión TCP continúa incluso después de restablecer el indicador RST
464 04:35.1 50000 > enpc [PSH, ACK] Seq=31894 Ack=7454 Win=5345 Len=105
465 04:35.2 enpc > 50000 [ACK] Seq=7454 Ack=31999 Win=32127 Len=0
466 04:35.2 50000 > enpc [RST] Seq=31999 Win=0 Len=0
467 04:35.4 [TCP Retransmission] 50000 > enpc [PSH, ACK] Seq=31894 Ack=7454 Win=5345 Len=105
468 04:36.1 [TCP Retransmission] 50000 > enpc [PSH, ACK] Seq=31894 Ack=7454 Win=5345 Len=105
469 04:37.5 [TCP Retransmission] 50000 > enpc [PSH, ACK] Seq=31894 Ack=7454 Win=5345 Len=105
470 04:40.3 [TCP Retransmission] 50000 > enpc [PSH, ACK] Seq=31894 Ack=7454 Win=5345 Len=105
471 04:45.9 [TCP Retransmission] 50000 > enpc [PSH, ACK] Seq=31894 Ack=7454 Win=5345 Len=105
472 04:57.1 [TCP Retransmission] 50000 > enpc [PSH, ACK] Seq=31894 Ack=7454 Win=5345 Len=105
473 05:17.1 fg-fps > 50000 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 WS=2 SACK_PERM=1
474 05:17.1 50000 > fg-fps [RST, ACK] Seq=1 Ack=1 Win=0 Len=0
475 05:17.5 fg-fps > 50000 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 WS=2 SACK_PERM=1
476 05:17.5 50000 > fg-fps [RST, ACK] Seq=1 Ack=1 Win=0 Len=0
477 05:18.0 fg-fps > 50000 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 WS=2 SACK_PERM=1
478 05:18.0 50000 > fg-fps [RST, ACK] Seq=1 Ack=1 Win=0 Len=0
479 05:19.5 [TCP Retransmission] 50000 > enpc [PSH, ACK] Seq=31894 Ack=7454 Win=5345 Len=105
480 05:23.2 fg-gip > 50000 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 WS=2 SACK_PERM=1
481 05:23.2 50000 > fg-gip [RST, ACK] Seq=1 Ack=1 Win=0 Len=0
482 05:23.7 fg-gip > 50000 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 WS=2 SACK_PERM=1
483 05:23.7 50000 > fg-gip [RST, ACK] Seq=1 Ack=1 Win=0 Len=0
484 05:24.2 fg-gip > 50000 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 WS=2 SACK_PERM=1
485 05:24.2 50000 > fg-gip [RST, ACK] Seq=1 Ack=1 Win=0 Len=0
486 05:29.7 dyniplookup > 50000 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 WS=2 SACK_PERM=1
487 05:29.7 50000 > dyniplookup [SYN, ACK] Seq=0 Ack=1 Win=5840 Len=0 MSS=1460 SACK_PERM=1 WS=2
488 05:29.7 dyniplookup > 50000 [ACK] Seq=1 Ack=1 Win=65536 Len=0
489 05:29.7 dyniplookup > 50000 [PSH, ACK] Seq=1 Ack=1 Win=65536 Len=105
490 05:29.7 50000 > dyniplookup [ACK] Seq=1 Ack=106 Win=5840 Len=0
491 05:29.7 dyniplookup > 50000 [PSH, ACK] Seq=106 Ack=1 Win=65536 Len=105
Mi Pregunta:
Por qué extremo A mantenerse en la re-transmisión de los paquetes a través de una conexión en la RST se genera a partir de su propio fin?
Quizás el iniciador que envió inicialmente ACK no esperaba ACK para otro paquete (número de secuencia diferente), por lo que envía RST y luego envía nuevamente el paquete en intervalos de tiempo crecientes hasta que el receptor devuelve el mensaje correcto (lo cual hace no, entonces el iniciador envía RST una y otra vez). Parece un problema en el canal, tal vez un cable defectuoso o una diferencia en los modos de interfaz (semidúplex frente a dúplex completo, etc.) – Alfabravo
@Alfabravo: ¿Por qué trataría de retransmitir el paquete cuando la conexión se movió al estado CERRADO una vez RST es enviado? – amit
RST no significa cerrado. RST significa "intentemos esto de nuevo". Para una conexión de cierre, la secuencia es FIN->, <-ACK, <-FIN, ACK->. Y, por lo general, RST significa "esperemos un tiempo aleatorio (creciente) para cada nuevo intento, así evitamos colisiones y cosas". – Alfabravo