// IP ADDRESS ANDA SAAT INI
Mengambil informasi koneksi…
Cek Koneksi Anda Sekarang →

Setiap kali Anda membuka website, mengirim email, atau download file — ada "jabat tangan" yang terjadi di belakang layar antara komputer Anda dan server. Proses ini disebut three-way handshake, dan tanpanya, tidak ada data yang bisa dikirim.

Fun fact: Setiap kali Anda membuka satu halaman web, browser Anda bisa melakukan 10-50+ three-way handshake ke berbagai server (web server, CDN, analytics, iklan).

Analogi: Telepon vs Chat vs Surat

Three-way handshake paling mudah dipahami lewat analogi menelepon seseorang:

Langkah 1: SYN — "Halo, bisa bicara?"

Anda menelepon teman dan berkata "Halo, ini Andi, bisa bicara sebentar?" — Anda memulai koneksi dan menunggu respons. Di TCP, ini disebut paket SYN (synchronize).

Langkah 2: SYN-ACK — "Iya, bisa. Kamu dengar saya?"

Teman Anda menjawab "Iya bisa, kamu dengar saya juga?" — Dia mengonfirmasi permintaan Anda DAN memastikan jalur komunikasi dua arah. Di TCP, ini adalah paket SYN-ACK.

Langkah 3: ACK — "Iya, dengar jelas. Oke mulai!"

Anda menjawab "Dengar jelas, oke kita mulai" — sekarang kedua pihak yakin bahwa jalur komunikasi berfungsi di kedua arah. Di TCP, ini adalah paket ACK (acknowledge).

Tanpa ketiga langkah ini, tidak ada jaminan bahwa kedua pihak siap berkomunikasi. Bandingkan dengan mengirim surat (UDP) — Anda langsung kirim tanpa tahu apakah penerima ada di rumah. Cepat? Iya. Tapi tidak ada jaminan sampai.

Proses Teknis Three-Way Handshake

Secara teknis, three-way handshake melibatkan pertukaran sequence number dan TCP flags. Ini yang terjadi di balik layar:

Langkah Pengirim TCP Flag Sequence Number Ack Number Penjelasan
1. SYN Client SYN=1 seq=100 (ISN) - Client memilih ISN (Initial Sequence Number) acak dan mengirim permintaan koneksi
2. SYN-ACK Server SYN=1, ACK=1 seq=300 (ISN) ack=101 Server memilih ISN sendiri, ACK = client_seq + 1 untuk konfirmasi
3. ACK Client ACK=1 seq=101 ack=301 Client konfirmasi dengan ACK = server_seq + 1. Koneksi terbuka!
Kenapa sequence number acak? Kalau selalu mulai dari 0, attacker bisa menebak sequence number dan menyisipkan paket palsu. ISN yang random (dan modern OS pakai algoritma khusus) mencegah TCP sequence prediction attack.

TCP Flags — Bahasa Isyarat Paket Data

TCP menggunakan "bendera" (flags) dalam setiap paket untuk menandai tujuan paket tersebut. Seperti lampu lalu lintas — setiap warna punya arti berbeda:

Flag Nama Lengkap Fungsi Analogi
SYN Synchronize Memulai koneksi baru Mengetuk pintu — "permisi, mau masuk"
ACK Acknowledge Konfirmasi penerimaan Mengangguk — "iya, saya terima"
FIN Finish Menutup koneksi secara sopan Berjabat tangan pamit — "saya selesai"
RST Reset Memutus koneksi paksa Banting telepon — "percakapan selesai SEKARANG"
PSH Push Kirim data segera tanpa buffer Teriak "URGENT!" — langsung diproses
URG Urgent Menandai data prioritas tinggi Lampu darurat — "ini penting, baca duluan"

Four-Way Termination — Cara TCP Menutup Koneksi

Kalau membuka koneksi butuh 3 langkah, menutup koneksi butuh 4 langkah. Kenapa? Karena kedua pihak harus mengonfirmasi bahwa mereka sudah selesai mengirim data:

Proses ini memastikan tidak ada data yang hilang saat koneksi ditutup. Berbeda dengan RST (reset) yang memutus paksa tanpa konfirmasi — seperti langsung tutup telepon tanpa bilang "bye".

SYN Flood Attack — Ketika Handshake Disalahgunakan

Three-way handshake punya kelemahan: server harus menyimpan state untuk setiap koneksi yang belum selesai (half-open). Attacker bisa mengeksploitasi ini:

Cara Kerja SYN Flood

Attacker mengirim ribuan paket SYN dengan IP palsu (spoofed). Server membalas SYN-ACK ke IP palsu yang tidak pernah merespons ACK. Server kehabisan memori menyimpan half-open connections.

Analogi: Reservasi Restoran Palsu

Bayangkan seseorang menelepon restoran ratusan kali untuk reservasi dengan nama palsu. Semua meja "dipesan" tapi tidak ada yang datang. Pelanggan asli tidak kebagian meja.

Solusi: SYN Cookies

Server tidak menyimpan state saat terima SYN. Sebaliknya, server meng-encode informasi koneksi ke dalam sequence number SYN-ACK. Saat ACK datang, server bisa merekonstruksi state dari angka tersebut.

SYN flood adalah salah satu jenis DDoS attack tertua dan masih digunakan sampai sekarang. Proteksi modern termasuk SYN cookies, rate limiting, dan firewall yang bisa mendeteksi pola SYN abnormal. Pelajari lebih lanjut tentang port dan keamanan jaringan.

Troubleshooting dengan Three-Way Handshake

Memahami handshake membantu Anda men-diagnosa masalah koneksi. Berikut status TCP yang sering ditemui:

Status Artinya Masalah Umum Solusi
SYN_SENT Client sudah kirim SYN, belum dapat respons Firewall memblokir, server mati, port salah Cek firewall, pastikan port terbuka, coba telnet/nmap
SYN_RECEIVED Server terima SYN, sudah kirim SYN-ACK Client tidak balas ACK (firewall/NAT) Cek firewall client, pastikan routing benar
ESTABLISHED Koneksi berhasil terbuka Tidak ada masalah — ini yang diharapkan -
TIME_WAIT Koneksi ditutup, menunggu paket terakhir Banyak TIME_WAIT = koneksi terlalu sering buka-tutup Tuning TCP timeout, gunakan connection pooling
CLOSE_WAIT Remote sudah FIN, lokal belum tutup Aplikasi tidak properly close socket Fix bug di aplikasi — harus close() socket setelah selesai
Cara melihat status TCP
# Windows — lihat semua koneksi TCP
netstat -an | findstr ESTABLISHED
netstat -an | findstr SYN_SENT
netstat -an | findstr TIME_WAIT

# Linux — lebih detail dengan ss
ss -tan state established
ss -tan state syn-sent
ss -tan state time-wait

# Hitung koneksi per status
ss -tan | awk '{print $1}' | sort | uniq -c | sort -rn
Banyak SYN_SENT = server tujuan tidak merespons. Banyak TIME_WAIT = perlu tuning connection reuse.

Uji Pengetahuan TCP Anda

Three-way handshake adalah salah satu topik favorit di Network Quiz CekIPSaya. Coba jawab soal tentang TCP flags, sequence number, dan SYN flood — dari level Basic sampai Professional!

Soal favorit: "Apa yang terjadi jika langkah ketiga (ACK) dalam three-way handshake tidak pernah dikirim?" — Coba jawab di mode Network Professional di Network Quiz.

FAQ — Pertanyaan yang Sering Ditanyakan

Three-way handshake adalah proses 3 langkah (SYN → SYN-ACK → ACK) yang digunakan TCP untuk membuka koneksi antara client dan server. Proses ini memastikan kedua pihak siap berkomunikasi sebelum data dikirim.
Dua langkah hanya memastikan komunikasi satu arah. Langkah ketiga (ACK) membuktikan bahwa client juga bisa menerima respons dari server — memastikan komunikasi dua arah (full-duplex) berfungsi.
Three-way handshake membuka koneksi (SYN, SYN-ACK, ACK). Four-way termination menutup koneksi (FIN, ACK, FIN, ACK). Penutupan butuh 4 langkah karena kedua pihak harus mengonfirmasi bahwa masing-masing sudah selesai mengirim.
SYN flood adalah serangan DDoS di mana attacker mengirim ribuan paket SYN dengan IP palsu. Server kehabisan memori menyimpan koneksi yang tidak pernah selesai. Solusi modern: SYN cookies dan rate limiting.
Tidak. UDP adalah connectionless — langsung kirim data tanpa handshake. Lebih cepat tapi tidak ada jaminan data sampai. Cocok untuk streaming, gaming, dan DNS query.

Kesimpulan

Three-way handshake adalah fondasi dari setiap koneksi TCP — dari browsing web hingga transfer file. Prosesnya sederhana (SYN → SYN-ACK → ACK) tapi sangat penting untuk menjamin komunikasi yang reliable. Memahaminya membantu Anda melakukan troubleshooting jaringan dan memahami serangan seperti SYN flood. Cek koneksi jaringan Anda di Speed Test CekIPSaya.

COBA SEKARANG
Cek Koneksi Anda Sekarang
→ Cek Koneksi Anda Sekarang
// ARTIKEL INI MEMBANTU?

Share ke teman yang butuh info ini: