1. Clientul care intenționează să stabilească o conexiune trimite segmentul cu numărul de ordine și pavilionul SYN către server.
Serverul primește segmentul, își amintește numărul de secvență și încearcă să creeze un soclu (buffere și structuri de control al memoriei) pentru a servi noul client;
În cazul succesului, serverul trimite clientului un segment cu numărul de ordine și simbolurile SYN și ACK și merge la starea SYN-RECEIVED;
2. Dacă clientul primește un segment cu simbolul SYN, își amintește numărul secvenței și trimite un segment cu pavilionul ACK.
Dacă primește simultan stegulețul ACK (care se întâmplă de obicei), acesta merge în starea ESTABLISHED;
Dacă clientul primește un segment cu steagul RST, acesta nu mai încearcă să se conecteze;
Dacă clientul nu primește un răspuns în decurs de 10 secunde, el repetă din nou procesul de conectare.
3. Dacă serverul în starea SYN-RECEIVED primește un segment cu pavilionul ACK, acesta intră în starea ESTABLISHED.
În caz contrar, după expirare, se închide soclul și se trece la starea ÎNCHIS.
Procesul se numește "strângere de mână în trei direcții", deoarece, deși procesul de stabilire a unei conexiuni folosind patru segmente este posibil (SYN către server, ACK către client, SYN către client, ACK către server) în practică, pentru a economisi timp, se folosesc trei segmente.