TCP ile UDP Arasındaki Fark
Güvenilir teslim ile hız takası; hangi uygulamanın hangisini kullandığı.
TCP ve UDP, internetteki verinin büyük kısmını taşıyan iki protokol. Farkları tek cümleye sığıyor: TCP her paketin eksiksiz ve sırayla ulaşmasını garanti ediyor, UDP göndermekle yetiniyor.
Bu bir kalite farkı değil, bir takas. Garanti bedava değil; bedeli gecikme. Hangi uygulamanın hangisini seçtiği de tam olarak bu takasa göre belirleniyor.
TCP: önce el sıkış, sonra konuş
TCP veri göndermeden önce karşı tarafla bir bağlantı kuruyor. Buna üçlü el sıkışma deniyor:
- İstemci:
SYN— "bağlanmak istiyorum" - Sunucu:
SYN-ACK— "tamam, hazırım" - İstemci:
ACK— "başlıyoruz"
Bağlantı kurulduktan sonra TCP dört iş yapıyor:
- Numaralandırma: her baytın bir sıra numarası var, karşı taraf parçaları doğru sırayla birleştiriyor.
- Onay: alıcı neyi aldığını bildiriyor.
- Yeniden gönderim: onayı gelmeyen veri tekrar gönderiliyor.
- Hız ayarı: kayıp görünce gönderim hızını düşürüyor, ağ boşaldıkça artırıyor.
UDP: gönder ve unut
UDP'de bağlantı yok, onay yok, sıra numarası yok. Paket gönderiliyor; ulaşıp ulaşmadığı, hangi sırayla ulaştığı UDP'nin sorunu değil. Başlığı da buna uygun küçük: UDP başlığı 8 bayt, TCP başlığı en az 20 bayt.
Kayıp bir paketle ne yapılacağına uygulamanın kendisi karar veriyor: yok sayabiliyor, tahminle doldurabiliyor ya da kendi yöntemiyle yeniden isteyebiliyor.
Asıl fark: sıra bekletmesi
TCP'nin sırayı garanti etmesinin gizli bir bedeli var. 100 paketlik bir akışta 40. paket kaybolursa, 41 ile 100 arası paketler alıcıya ulaşmış olsa bile uygulamaya verilmiyor. 40 yeniden gönderilip gelene kadar hepsi bekliyor.
Bir dosya indirirken bu önemsiz: dosyanın eksiksiz olması, yarım saniye gecikmesinden önemli. Ama canlı bir sesli görüşmede:
- TCP ile: kayıp paket beklenir, ses donar, sonra birikmiş sesler hızla gelir.
- UDP ile: kayıp paket atlanır, ses bir an cızırdar, konuşma akmaya devam eder.
300 milisaniye geç gelen bir ses parçası artık işe yaramıyor — o anı çoktan geçtiniz. Oyunlarda da aynı mantık: karakterin yarım saniye önceki konumu değil, şimdiki konumu gerekiyor.
Hangi uygulama hangisini kullanıyor?
| Uygulama | Protokol | Neden |
|---|---|---|
| Web sayfaları (HTTP/1.1, HTTP/2) | TCP 80, 443 | Sayfanın eksiksiz gelmesi şart |
| Web sayfaları (HTTP/3) | UDP 443 (QUIC) | Güvenilirlik UDP üstünde yeniden kuruluyor |
| E-posta | TCP | Eksik e-posta kabul edilemez |
| Dosya indirme, SSH | TCP | Tek bayt kaybı dosyayı bozar |
| DNS sorgusu | UDP 53, gerekirse TCP 53 | Tek soru, tek cevap; bağlantı kurmak gereksiz |
| Çevrim içi oyun | Çoğunlukla UDP | Güncel konum eski konumdan önemli |
| Sesli ve görüntülü görüşme | Çoğunlukla UDP | Gecikme kayıptan kötü |
| VPN | WireGuard UDP; OpenVPN UDP ya da TCP | Aşağıda |
| Saat eşitleme (NTP), DHCP | UDP | Küçük, tek seferlik mesajlar |
Port numaralarının tam listesi yaygın port numaraları yazısında.
"UDP güvenilmez" artık yarım doğru
Tablodaki HTTP/3 satırı önemli bir değişimi gösteriyor. QUIC protokolü UDP üzerinde çalışıyor ama numaralandırma, onay ve yeniden gönderimi kendisi yapıyor. Üstelik sıra bekletmesini akış bazında yapıyor: sayfadaki bir görselin kayıp paketi, aynı anda gelen yazı tipini bekletmiyor.
Yani "bu uygulama UDP kullanıyor" demek "veri kaybedebilir" demek değil. UDP, güvenilirliğin nasıl sağlanacağına uygulamanın karar verdiği bir zemin.
Pratikte karşınıza çıktığı dört yer
1. Port yönlendirme
Modem arayüzünde kural yazarken protokol soruluyor: TCP, UDP ya da ikisi. Yanlış seçim kuralı tamamen etkisiz bırakıyor — oyun UDP 3074 istiyorsa TCP 3074 kuralı hiçbir işe yaramıyor. Oyun ve uygulama belgeleri TCP ve UDP portlarını genellikle ayrı listeler hâlinde veriyor. Emin değilseniz "ikisi" seçin. Port yönlendirme adımlarını ayrı yazıda anlattık.
2. Dışarıdan port testi
TCP portunu sınamak kolay: bağlantı kurmayı deniyorsunuz, el sıkışma tamamlanıyorsa port açık. UDP'de el sıkışma olmadığı için karşı taraf hiç cevap vermeyebiliyor ve "cevap yok" hem açık hem filtreli anlamına gelebiliyor.
Bu yüzden port kontrol aracımız TCP bağlantısı kurmayı deniyor. Bir UDP portunu doğrulamanın en güvenilir yolu, o portu kullanan uygulamanın kendisini dışarıdan çalıştırmak.
3. VPN'de TCP modu neden yavaş?
OpenVPN'i TCP modunda kullandığınızda tünelin içindeki web trafiği de TCP. İki TCP katmanı üst üste geliyor. Bir paket kaybolunca ikisi birden yeniden gönderim ve hız düşürme yapıyor; kayıplı bağlantıda hız sert düşüyor.
Kural: VPN'de UDP'yi tercih edin; TCP'yi yalnızca bulunduğunuz ağ UDP'yi engellediğinde kullanın. Ayrıntısı OpenVPN nedir ve VPN hızını artırma yazılarında.
4. Paket kaybının belirtisi farklı
Aynı yüzde 2 kayıp iki protokolde farklı hissettiriyor:
| Protokol | Kaybın belirtisi |
|---|---|
| TCP (indirme, web) | Yavaşlama, sayfanın takılıp sonra açılması |
| UDP (oyun, görüşme) | Işınlanma, ses kesilmesi, görüntüde bozulma |
"İnternetim hızlı ama görüşmede ses kesiliyor" şikâyeti bu tablonun ikinci satırı. Ölçümü paket kaybı nedir yazısında anlattık.
Bilgisayarınızda görmek
Hangi programın hangi protokolde hangi portu kullandığını listelemek için:
- Windows:
netstat -ano— ilk sütunda TCP ya da UDP yazıyor, son sütun program kimliği. - Linux:
ss -tuln— dinleyen TCP ve UDP portları. - macOS:
netstat -an— satır başındakitcp4,udp6gibi ekler protokolü gösteriyor.
TCP satırlarında LISTENING, ESTABLISHED gibi
durumlar görürsünüz. UDP satırlarında durum sütunu boş — bağlantı
kavramı olmadığı için.
Sıkça sorulan sorular
TCP ile UDP arasındaki fark nedir?
TCP bağlantı kurar, her paketin eksiksiz ve sırayla ulaşmasını garanti eder. UDP bağlantı kurmadan gönderir ve garanti vermez; karşılığında daha düşük gecikme sağlar.
Oyunlar neden UDP kullanıyor?
TCP kayıp bir paket yeniden gelene kadar arkasındaki paketleri bekletir. Oyunda eski konum bilgisi işe yaramadığı için kaybı atlayıp güncel veriyle devam etmek daha iyidir.
Port yönlendirmede TCP mi UDP mi seçmeliyim?
Uygulamanın belgesinde yazan protokolü seçin; yanlış seçilen kural hiç çalışmaz. Emin değilseniz ikisini birden seçin.
UDP güvenilmez mi?
UDP kendisi garanti vermez ama üzerinde çalışan uygulama güvenilirliği kendisi sağlayabilir. HTTP/3’ün kullandığı QUIC protokolü UDP üzerinde çalışır ve veri kaybetmez.
VPN için TCP mi UDP mi daha iyi?
UDP. TCP modunda iki TCP katmanı üst üste gelir ve kayıpta ikisi birden yavaşlar. TCP modu yalnızca bulunduğunuz ağ UDP’yi engelliyorsa kullanılmalı.