Ho letto che per terminare una connessione TCP sono necessari 3 handshake: FIN, FIN ACK e ACK. Tuttavia, quando si chiude una connessione, Wireshark visualizza FIN ACK, FIN ACK, ACK; non visualizza mai FIN da solo.

Tuttavia, quando si stabilisce una connessione Wireshark mostra chiaramente le tre strette di mano: SYN, SIN ACK , ACK.

Quindi sono un po confuso perché quando si chiude la connessione le tre strette di mano non vengono visualizzate in questo modo.

Risposta

Unimplementazione TCP potrebbe inviare un FIN autonomo nel primo segmento di chiusura. Tuttavia, può anche inviare un FIN ACK, invece.

Questultimo è decisamente migliore: limplementazione può raggruppare un ACK “libero” con il segmento FIN senza allungarlo. Questo perché, se non ACK, cè ancora spazio nel segmento per il numero ACK, che verrà ignorato, e spreco di larghezza di banda. Quindi lultimo ACK inviato viene semplicemente ritrasmesso, nel caso in cui il destinatario lo abbia perso.

Questo è vero per tutti i segmenti TCP. Quindi, ad eccezione del primo segmento SYN, dove il mittente non ha informazioni sul numero ACK, tutti gli altri segmenti avranno normalmente il flag ACK attivo.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *