Handshake
Nel mondo reale, una stretta di mano è un saluto consueto tra due persone. Allo stesso modo, un handshake tra computer funge da saluto tra due sistemi computer. Viene comunemente utilizzato per inizializzare una connessione di rete tra due host.
Un handshake tra computer può essere completato tra due sistemi qualsiasi che comunicano utilizzando lo stesso protocollo. I due sistemi possono essere un client e un server, oppure semplicemente due computer su una rete P2P. L'handshake conferma le identità dei sistemi che si connettono e consente di avviare ulteriori comunicazioni.
L'handshake su una rete viene comunemente chiamato handshake a 3 vie o "SYN-SYN-ACK". Un handshake completato correttamente prevede sette passaggi:
- L'host A invia un pacchetto di sincronizzazione (SYN) all'host B.
- L'host B riceve la richiesta SYN dell'host A.
- L'host B invia all'host A un messaggio di conferma della sincronizzazione (SYN-ACK).
- L'host A riceve il messaggio SYN-ACK dell'host B.
- L'host A invia un messaggio di conferma (ACK) all'host B.
- L'host B riceve il messaggio ACK dell'host A.
- La connessione tra i due sistemi viene stabilita.
Quando un sistema avvia un handshake, sono possibili tre risultati:
- Nessuna risposta – Se il sistema che riceve l'handshake non è disponibile o non supporta il protocollo utilizzato dal sistema che lo avvia, potrebbe non rispondere alla richiesta.
- Connessione rifiutata – Il sistema che riceve l'handshake è disponibile e comprende la richiesta, ma rifiuta la connessione.
- Connessione accettata – Il sistema che riceve l'handshake è disponibile, riceve la richiesta e accetta la connessione.
Il terzo risultato elencato sopra è l'unico in cui l'handshake viene completato. Se un handshake ha esito positivo, i due sistemi possono iniziare a comunicare e a trasferire dati utilizzando il protocollo stabilito. Esempi di protocolli che usano l'handshake includono TCP, TLS e SSL.
Metti alla prova le tue conoscenze