Jabat Tangan 3 Arah TCP (SYN, SYN-ACK,ACK)
โก Ringkasan Cerdas
TCP 3-Way Handshake adalah ritual pengaturan koneksi yang memulai setiap sesi TCP. Klien dan server bertukar paket SYN, SYN-ACK, dan ACK untuk menyinkronkan nomor urutan dan memastikan kedua belah pihak siap sebelum satu byte pun data aplikasi dikirim.

Apa itu Jabat Tangan Tiga Arah TCP?
The Jabat Tangan Tiga Arah TCP adalah prosedur yang digunakan klien dan server pada jaringan TCP/IP Untuk membangun koneksi yang andal sebelum data aplikasi dipertukarkan. Sesuai namanya, proses ini terdiri dari tiga langkah di mana kedua belah pihak bertukar paket sinkronisasi (SYN) dan pengakuan (ACK) serta menyepakati nomor urutan awal yang akan mereka gunakan.
Proses jabat tangan dirancang sedemikian rupa sehingga kedua titik akhir dapat memulai, menegosiasikan, dan mengakhiri soket TCP secara simetris. Setelah jabat tangan selesai, koneksi menjadi full-duplex โ kedua sisi dapat mengirim dan menerima secara paralel hingga salah satu pihak mengeluarkan FIN untuk menutup sesi.
Jenis Pesan TCP
Empat bendera kontrol muncul berulang kali selama proses jabat tangan dan pemutusan.
| Pesan | Deskripsi |
|---|---|
| SYN | Memulai koneksi dan menyinkronkan nomor urutan antar perangkat. |
| ACK | Mengkonfirmasi kepada pihak lain bahwa segmen sebelumnya telah diterima. |
| SYN-ACK | Pesan gabungan โ SYN dari perangkat lokal ditambah ACK dari SYN sebelumnya dari perangkat lawan. |
| FIN | Digunakan untuk mengakhiri koneksi dengan baik. |
Proses Jabat Tangan Tiga Arah TCP
Lalu lintas TCP selalu dimulai dengan jabat tangan tiga arah. Klien memulai percakapan dengan meminta sesi dengan server.
Diagram jabat tangan 3 arah.
- Langkah 1 โ SYN: Klien mengirimkan segmen dengan flag SYN yang diaktifkan. Ini memberi tahu server "Saya ingin memulai komunikasi" dan mengusulkan nomor urutan awal.
- Langkah 2 โ SYN-ACK: Server merespons dengan segmen yang berisi flag SYN dan ACK. ACK mengakui SYN dari klien, dan SYN mengusulkan nomor urutan awal server sendiri.
- Langkah 3 โ ACK: Klien membalas SYN-ACK dari server dengan ACK terakhir. Koneksi kini telah terjalin, dan kedua belah pihak dapat memulai. transmitdata aplikasi ting.
Contoh Dunia Nyata
Berikut contoh yang dikerjakan dengan nomor urutan konkret.
- Host X memulai koneksi dengan mengirimkan paket TCP SYN ke server. Paket tersebut membawa nomor urutan awal acak โ misalnya,
4321โ yang menandai awal aliran byte yang akan dikirim oleh Host X. - Server menerima SYN dan membalas dengan SYN-ACK. Nomor ACK adalah nomor urutan Host X yang ditambah 1 (
4322), dan SYN mengusulkan nomor urutan awal server itu sendiri. - Host X membalas dengan ACK akhir yang nomor pengakuannya adalah nomor urutan server yang ditambah 1.
Setelah pertukaran data selesai, TCP memutuskan koneksi dengan urutan FIN/ACK empat arah sehingga kedua titik akhir dapat melepaskan soket dengan bersih.
Mengapa TCP Membutuhkan Jabat Tangan Tiga Arah?
Proses jabat tangan bukan sekadar formalitas โ proses ini memecahkan tiga masalah konkret yang muncul dari pengiriman aliran byte yang andal:
- Sinkronisasi nomor urut: Kedua pihak mempelajari nomor urutan awal dari pihak lain, yang digunakan TCP untuk mendeteksi segmen yang hilang atau tidak berurutan.
- Kesepakatan status koneksi: ACK ketiga mengkonfirmasi bahwa SYN-ACK dari server telah tiba, sehingga kedua belah pihak tidak mulai mengirim data sampai keduanya berada dalam kondisi yang sama. MAPAN negara.
- Perlindungan terhadap paket duplikat: Nomor urutan awal acak dan status jabat tangan berwaktu mencegah segmen usang dari sesi sebelumnya diterima secara keliru.
Masalah Umum pada Proses Jabat Tangan TCP
Proses jabat tangan ini memang kuat, tetapi tetap bisa mengalami kegagalan dengan cara yang dapat dikenali. Teknisi jaringan biasanya melihat salah satu dari hal berikut:
- Serangan banjir SYN: Klien jahat mengirimkan ribuan SYN tanpa membalas SYN-ACK, sehingga menghabiskan tabel koneksi server. Cookie SYN adalah pertahanan standar.
- Sambungan setengah terbuka: Ketika ACK ketiga hilang, koneksi tetap dalam keadaan setengah terbuka dan akhirnya ditutup karena waktu habis (timeout).
- Pemutusan koneksi firewall atau NAT di tengah penerbangan: Perangkat perantara (middlebox) yang menyimpan status dan kehilangan status dapat menyebabkan paket SYN-ACK hilang dan klien harus mencoba lagi.
- Pengaturan ulang RST: Jika server tidak mendengarkan pada port yang diminta, server akan menjawab SYN dengan RST, yang akan segera menghentikan upaya tersebut.


