Logo NEXUS

NEXUS didattica

← Torna indietro
Informatica / Lezione Teorica

Il Three-Way Handshake TCP

Analisi dettagliata della procedura di sincronizzazione a tre fasi, gestione dei numeri di sequenza e simulatore interattivo.

1. Cos'è il Three-Way Handshake

Il Three-Way Handshake (stretta di mano a tre vie) è il meccanismo fondamentale utilizzato dal protocollo TCP per stabilire una connessione logica bidirezionale affidabile tra un client e un server prima di iniziare la trasmissione effettiva dei dati.

Obiettivi della Procedura:
    Sincronizzazione: Consente a entrambe le estremità di concordare i numeri di sequenza iniziali (Sequence Numbers).
    Negoziazione: Permette di accordarsi su parametri di sessione opzionali, come la dimensione massima del segmento (MSS) e le finestre di controllo del flusso.

2. Le Tre Fasi della Sequenza

La connessione si instaura attraverso tre passaggi sequenziali rigorosi basati sullo scambio di flag di controllo:

Passo Direzione & Pacchetto Significato e Dettagli dei Flag
1. SYN Client ➔ Server Il client sceglie un numero di sequenza casuale $x$ e invia un segmento con il flag SYN attivo ([SYN] Seq=x). Il client entra nello stato SYN_SENT.
2. SYN-ACK Server ➔ Client Il server riceve la richiesta, sceglie un proprio numero di sequenza $y$, riconosce il pacchetto del client impostando l'Acknowledgment su $x+1$ e attiva sia SYN che ACK ([SYN, ACK] Seq=y, Ack=x+1).
3. ACK Client ➔ Server Il client riceve la conferma del server, invia un riscontro incrementando il numero di sequenza (Seq=x+1) e confermando il server con Ack=y+1 ([ACK] Seq=x+1, Ack=y+1). La connessione è ora nello stato ESTABLISHED.

3. Perché proprio tre passaggi? (Prevenzione di pacchetti fantasma)

L'utilizzo di un sistema a tre vie previene l'apertura di connessioni obsolete o duplicate causate da vecchi pacchetti SYN rimasti intrappolati nella rete a causa di ritardi o instradamenti anomali. Senza il terzo passaggio di conferma finale da parte del client, un server potrebbe allocare risorse per sessioni inesistenti.

4. Simulatore Interattivo: Step-by-Step Handshake TCP

Esegui passo dopo passo il protocollo di sincronizzazione e osserva l'evoluzione dello stato di rete sui terminali.

handshake-debugger@nexus-sys:~# TCP Handshake Simulator
> Seleziona una fase dell'handshake e avvia la simulazione per visualizzare i log sul terminale.