In informatica l'handshaking (letteralmente "stretta di mano") è il processo attraverso il quale due calcolatori, tramite software o hardware, negoziano e stabiliscono le regole comuni, ovvero la velocità, i protocolli di compressione, di criptazione, di controllo degli errori, ecc.
Prima di iniziare la connessione vera e propria tra due macchine si crea questo tipo di connessione che consiste nella trasmissione dei pacchetti per regolare i parametri di connessione.
Il suono prodotto dal modem nella fase di connessione ad internet viene chiamato handshake.
L'handshaking può negoziare parametri accettabili per apparecchiature e sistemi a entrambe le estremità del canale di comunicazione, inclusa la velocità di trasferimento delle informazioni, l'alfabeto di codifica, la parità, la procedura di interruzione e altre funzionalità di protocollo o hardware. La stretta di mano è una tecnica di comunicazione tra due entità. Tuttavia, all'interno delle RFC TCP/IP, il termine "handshake" è più comunemente utilizzato per fare riferimento all'handshake a tre vie TCP. Ad esempio, il termine "handshake" non è presente nelle RFC che coprono FTP o SMTP. Un'eccezione è Transport Layer Security, TLS, setup, FTP[1]. Al posto del termine "handshake", FTP[2] sostituisce il termine "conversazione" per il passaggio di comandi[3][4].
Un semplice protocollo di handshaking potrebbe coinvolgere solo il destinatario che invia un messaggio che significa "Ho ricevuto il tuo ultimo messaggio e sono pronto a inviarmene un altro". Un protocollo di handshake più complesso potrebbe consentire al mittente di chiedere al destinatario se è pronto a ricevere o che il destinatario risponda con un riconoscimento negativo che significa "Non ho ricevuto correttamente il tuo ultimo messaggio, invialo di nuovo" (ad esempio, se i dati sono stati danneggiati durante il percorso)[5].
L'handshaking facilita il collegamento di sistemi o apparecchiature relativamente eterogenei su un canale di comunicazione senza la necessità dell'intervento umano per impostare i parametri.