# TCP Handshake (TCP El Sıkışması)

Adres: https://softwaredictionary.org/tr/terimler/tcp-handshake
Kategori: Ağlar
Son güncelleme: 2026-10-03
Türkçe karşılığı: üçlü el sıkışma
Okunuşu: ti si pi hendşeyk

Kısaca: TCP el sıkışması, istemci ile sunucunun veri göndermeden önce bağlantı açıp başlangıç sıra numaralarında anlaştığı SYN, SYN-ACK, ACK alışverişidir.

## TCP üçlü el sıkışması (three-way handshake) nedir?

TCP güvenilir ve sıralı teslimat vaat eder; bu yüzden iki tarafın önce konuşmaya razı olması ve kayıtlarını hazırlaması gerekir. İstemci, rastgele bir başlangıç sıra numarasıyla bir SYN segmenti gönderir. Sunucu, istemcinin numarasını onaylayıp kendi numarasını gönderen bir SYN-ACK ile yanıt verir. İstemci de ACK ile cevap verir ve bağlantı açılır.

Sıra numaraları TCP'nin düzeni nasıl koruduğudur: gönderilen her bayt numaralandırılır, alıcı aldıklarını onaylar, eksik olan her şey yeniden gönderilir. Rastgele değerlerden başlamak da bir saldırganın başkasının bağlantısına sahte paketler sokmasını zorlaştırır.

El sıkışması, verinin ilk baytından önce tam bir gidiş-dönüş (round trip) süresine mal olur; gecikmenin web performansı için bu kadar önemli olmasının nedeni budur. Yeni bir HTTPS bağlantısı ayrıca bir TLS el sıkışmasına ihtiyaç duyar; TLS 1.3 ile bir gidiş-dönüş daha. Bağlantıyı yeniden kullanmak, keep-alive, HTTP/2 ve taşıma ile şifreleme kurulumunu birleştiren QUIC, bu maliyetlerin hepsini azaltır.

Sık yapılan bir yanlış, bağlantıyı kapatmanın el sıkışmasının tersi olduğunu düşünmektir. Kapatma normalde dört mesaj sürer, her yönde bir FIN ve bir ACK; çünkü her taraf göndermeyi bağımsız olarak bitirir. Ayrıca yarım kalan el sıkışmaları kötüye kullanılabilir: SYN flood, tamamlamadan çok sayıda SYN gönderir; sunucular buna SYN cookie'leriyle karşı koyar.

## Önemli noktalar

- El sıkışması SYN, SYN-ACK, ACK'ten oluşur.
- İki taraf da rastgele başlangıç sıra numaraları gönderir.
- Herhangi bir veri akmadan önce bir gidiş-dönüş süresine mal olur.
- HTTPS üstüne bir TLS el sıkışması ekler; QUIC ikisini birleştirir.
- Kapatma her yönde FIN ve ACK kullanır; SYN flood el sıkışmasını kötüye kullanır.

## Örnek: tcpdump ile bir el sıkışmasını izlemek

```bash
# Capture the start of a connection to example.com on port 443
sudo tcpdump -n 'tcp port 443 and tcp[tcpflags] & (tcp-syn|tcp-ack) != 0' &
curl -s https://example.com -o /dev/null

# Typical output (simplified):
# client > server: Flags [S],  seq 1000          ← SYN
# server > client: Flags [S.], seq 5000, ack 1001 ← SYN-ACK
# client > server: Flags [.],  ack 5001          ← ACK: connection open
```

## Sık sorulan sorular

**TCP neden üçlü el sıkışmasına ihtiyaç duyar?**

Her tarafın kendi başlangıç sıra numarasını gönderip onaylatması gerekir. İki yönün de onaylanması için en az üç mesaj gerekir: SYN, sunucunun numarasını ve onayı taşıyan SYN-ACK ve son ACK.

**UDP'nin el sıkışması var mı?**

Hayır. UDP datagramları bağlantı kurmadan gönderir; bu yüzden daha hızlı başlar ama teslimat ya da sıra garantisi vermez. QUIC gibi UDP üzerine kurulmuş protokoller kendi el sıkışmalarını ekler.

**SYN flood nedir?**

El sıkışmasını tamamlamadan çok sayıda SYN paketi göndererek sunucunun yarım açık bağlantılar tablosunu dolduran bir hizmet engelleme saldırısıdır. SYN cookie'leri, sunucunun el sıkışması tamamlanana kadar durum tutmadan yanıt vermesini sağlar.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
