Proses Handshake terjadi pada saat client mencoba menyambungkan koneksi dengan server. Pada saat client akan konek, kondisi pada server adalah listening pada port yang sudah disediakan. Proses handshake pada TCP ada 3 langkah .

Pertama client mengirim pesan SYN kepada server untuk meminta koneksi. Kemudian server mengirim konfirmasi pesan telah diterima dengan pesan ACK dan meminta konfirmasi client apakah sudah siap menerima koneksi dengan mengirim SYN bersamaan dengan ACK yang sebelumnya. Ketika client menerima pesan SYN+ACK, client mengetahui bahwa server siap berkomunikasi dan oleh sebab itu client membalas ACK kepada server sebagai penanda bahwa client siap menerima koneksi.

Handshake penting karena untuk menjamin bahwa sambungan yang akan dibuat akan dapat diandalkan selama terjadi komunikasi data. Data yang dikirimkan menjadi lebih valid dan utuh setelah handshake terjadi. – Handshake juga dibutuhkan ketika akan memutus koneksi. Hal ini mencegah ketika salah satu pihak tiba tiba memutuskan diri sedangkan pihak satunya sedang menerima/mengirim data sehingga koneksi soket terputus (broken pipe) dan bisa menyebabkan malfuungsi soket. Cara yang biasa digunakan untuk mengatasi hal tersebut adalah dengan handshake, dengan mengirimkan pesan akan memutus koneksi, maka kedua belah pihak tahu bahwa koneksi akan diputus dan telah bersiap untuk memutus koneksi. Sehingga setelah koneksi diputus tidak ada salah satu pihak yang masih mengunggu data dan menghambat koneksi lain yang sedang berjalan atau yang akan tersambung