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.
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.