TCP bağlantısı kurulurken istemci ve sunucu doğrudan veri göndermeye başlamaz. Önce iki tarafın da iletişime hazır olduğunu doğrulaması gerekir.
Bu sürece TCP Three-Way Handshake, yani TCP 3 yönlü el sıkışma denir.
Amaç; istemci ve sunucu arasında güvenilir, sıralı ve senkronize bir bağlantı başlatmaktır.
TCP Three-Way Handshake Neden Gereklidir?
TCP, bağlantı odaklı bir protokoldür. Bu nedenle veri iletiminden önce iki tarafın şu bilgileri netleştirmesi gerekir:
- Karşı taraf erişilebilir mi?
- Bağlantı kurulabilir mi?
- Başlangıç sequence number değerleri nedir?
- İki taraf da veri alıp göndermeye hazır mı?
Bu süreç tamamlandıktan sonra TCP bağlantısı ESTABLISHED durumuna geçer ve veri iletimi başlayabilir.
🔹 1. Adım: SYN
İstemci, sunucuya bağlantı kurmak istediğini bildirir.
Bu aşamada istemci, sunucuya bir SYN — Synchronize segmenti gönderir.
Client → Server: SYN
seq = x
Bu paketin anlamı şudur:
“Seninle TCP bağlantısı kurmak istiyorum. Benim başlangıç sequence number değerim x.”
Durumlar
Client: CLOSED → SYN-SENT
Server: LISTEN
Bu noktada istemci bağlantı isteğini göndermiştir ve sunucudan cevap bekler.
🔹 2. Adım: SYN + ACK
Sunucu, istemciden gelen SYN isteğini alır ve kabul eder.
Ardından istemciye SYN+ACK segmenti gönderir.
Server → Client: SYN + ACK
seq = y
ack = x + 1
Bu paketin anlamı şudur:
“Bağlantı isteğini aldım. Senin x sequence numaranı kabul ettim.
Benim başlangıç sequence number değerim de y.”
Durumlar
Server: LISTEN → SYN-RECEIVED
Client: SYN-SENT
Burada sunucu hem istemcinin SYN isteğini onaylar hem de kendi bağlantı başlangıç bilgisini gönderir.
🔹 3. Adım: ACK
İstemci, sunucunun SYN+ACK mesajını alır ve son onay paketini gönderir.
Client → Server: ACK
seq = x + 1
ack = y + 1
Bu paketin anlamı şudur:
“Senin SYN isteğini de aldım ve kabul ettim. Bağlantı kurulabilir.”
Durumlar
Client: ESTABLISHED
Server: ESTABLISHED
Bu aşamadan sonra TCP bağlantısı kurulmuş olur ve veri iletimi başlayabilir.
📶 TCP Handshake Akış Özeti
1. Client → Server: SYN
seq = x
2. Server → Client: SYN + ACK
seq = y
ack = x + 1
3. Client → Server: ACK
seq = x + 1
ack = y + 1
Sonuç:
TCP Connection State = ESTABLISHED
🔐 Güvenlik Açısından Neden Önemli?
TCP handshake süreci güvenlik analizi ve saldırı tespiti için kritik öneme sahiptir.
Özellikle şu senaryolarda incelenir:
- SYN Flood saldırıları
- Half-open connection analizi
- Port scan tespiti
- Firewall session analizi
- Load balancer bağlantı problemleri
- IDS/IPS alarm korelasyonu
- TCP state troubleshooting
- DDoS davranış analizi
🚨 SYN Flood Nedir?
SYN Flood saldırısında saldırgan hedef sunucuya çok sayıda SYN paketi gönderir; ancak bağlantıyı tamamlayan son ACK paketini göndermez.
Normal akış:
SYN → SYN/ACK → ACK
SYN Flood sırasında:
SYN → SYN/ACK → cevap yok
SYN → SYN/ACK → cevap yok
SYN → SYN/ACK → cevap yok
Bu durumda sunucu çok sayıda half-open connection tutmak zorunda kalabilir. Kaynaklar tüketilirse gerçek kullanıcılar bağlantı kuramaz.
🛠️ Troubleshooting İçin Kontrol Noktaları
TCP bağlantı problemi yaşandığında şu kontroller yapılabilir:
1️⃣ SYN gidiyor mu?
İstemci gerçekten bağlantı isteği gönderiyor mu?
tcpdump -nn host <server-ip> and tcp port 443
2️⃣ SYN/ACK dönüyor mu?
Sunucu veya aradaki firewall/load balancer cevap veriyor mu?
3️⃣ Son ACK gidiyor mu?
İstemci bağlantıyı tamamlıyor mu?
4️⃣ Firewall state oluşuyor mu?
Firewall üzerinde session kuruluyor mu?
5️⃣ TCP reset var mı?
RST paketi varsa bağlantı taraflardan biri tarafından sonlandırılıyor olabilir.
✅ Kısa Özet
TCP 3 yönlü el sıkışma süreci üç adımdan oluşur:
- SYN: İstemci bağlantı başlatır.
- SYN+ACK: Sunucu isteği kabul eder ve kendi sequence bilgisini gönderir.
- ACK: İstemci son onayı verir ve bağlantı kurulur.
Bu süreç tamamlandığında iki taraf da ESTABLISHED durumuna geçer ve veri iletimi başlar.
Sonuç
TCP Three-Way Handshake, güvenilir bağlantı kurulmasının temelidir.
Bu süreç yalnızca veri iletişimi için değil; güvenlik analizi, DDoS tespiti, port scan analizi, firewall troubleshooting ve ağ davranışını anlamak için de kritik bir referans noktasıdır.
Bir bağlantı çalışmıyorsa ilk bakılacak yer çoğu zaman şudur:
SYN gitti mi?
SYN/ACK döndü mü?
ACK tamamlandı mı?
Bu üç sorunun cevabı, TCP bağlantı problemlerinin büyük kısmında sizi doğrudan kök nedene götürür.

Cem Kemal Erbaş sitesinden daha fazla şey keşfedin
Subscribe to get the latest posts sent to your email.
Cem Kemal Erbaş Network, Siber Güvenlik ve Teknik Rehberler