TCP ve UDP Farkı Nedir? Hangisi Nerede Kullanılır?

Yayın tarihi:

11 dk okuma

Acar Diveroli
Yazar: Acar Diveroli
İki şerit halinde veri akışı: TCP şeridinde onaylı paketler, UDP şeridinde hızlı ve aralıklı paketler

Online bir oyunda karakteriniz bir anda birkaç adım ileri ışınlanıyor, rakip yerinde sayıyor gibi görünüyor. Aynı anda oyun içi sohbete yazdığınız mesajlar ise hiçbir zaman eksik ya da karışık sırada gitmiyor. İkisi aynı bağlantıdan geçiyor ama farklı kurallarla taşınıyor. Karakterinizin konumu UDP ile, sohbet mesajlarınız ve oyuna giriş bilgileriniz ise büyük ihtimalle TCP ile gönderiliyor.

Bu yazıda TCP ve UDP'nin ne olduğunu, veriyi nasıl taşıdıklarını ve aralarındaki farkı sade bir bilgisayar diliyle anlatıyoruz. Ardından web sayfası, e-posta, oyun, görüntülü arama ve canlı yayında hangisinin neden kullanıldığını, oyunlarda ping ve paket kaybının bununla ilişkisini, proxy seçerken UDP desteğinin neden önemli olduğunu ve "port açmak" ifadesinin ne anlama geldiğini açıklıyoruz.

TCP ve UDP nedir?

İnternette bir veri, örneğin bir web sayfası ya da bir sesli mesaj, tek parça halinde gönderilmez. Önce küçük parçalara bölünür. Bu parçalara paket denir. Her paket kendi başına yola çıkar, farklı yollardan geçebilir ve karşı tarafta yeniden birleştirilir.

Bu parçaların nasıl gönderileceğini, kaybolursa ne olacağını ve hangi sırayla birleştirileceğini belirleyen kural setlerine protokol denir. TCP ve UDP, bu işi yapan en yaygın iki protokoldür:

  • TCP (Transmission Control Protocol): Veriyi eksiksiz ve sırasıyla teslim etmeye odaklanır. Güncel tanımı IETF'in RFC 9293 belgesindedir.
  • UDP (User Datagram Protocol): Veriyi olabildiğince az bekleyerek göndermeye odaklanır. Tanımı RFC 768 belgesindedir; üç sayfalık kısa bir metindir.

İkisi de aynı internet üzerinde, aynı kablolardan ve aynı modemden geçer. Fark, paketlerin gönderilme biçimindedir.

TCP nasıl çalışır?

TCP'nin temel kuralı şudur: gönderdiği her şeyin karşıya ulaştığından emin olmadan devam etmez. Bunu dört adımda yapar.

  1. Önce bağlantı kurulur. Veri gönderilmeden önce iki bilgisayar birbirine üç kısa mesaj gönderir: "bağlanmak istiyorum", "tamam, hazırım", "ben de hazırım". Buna üçlü el sıkışma denir. Bu mesajlar bitmeden asıl veri yola çıkmaz.
  2. Paketler numaralanır. Her pakete bir sıra numarası verilir. Karşı taraf paketleri farklı sırayla alsa bile numaralara bakarak doğru sıraya dizer.
  3. Her paket için onay beklenir. Karşı taraf aldığı paketler için "şu numaraya kadar aldım" diye onay gönderir. Gönderen taraf bu onayı bekler.
  4. Onay gelmeyen paket yeniden gönderilir. Belli bir süre içinde onay gelmezse TCP o paketin kaybolduğunu varsayar ve tekrar gönderir. Ağ yoğunsa gönderme hızını da düşürür.

Bu kuralların sonucu olarak TCP ile gönderilen bir dosya karşıya ya eksiksiz ulaşır ya da hiç ulaşmaz. Yarım bir web sayfası ya da birkaç harfi eksik bir e-posta almazsınız. Bunun bedeli ise zamandır: her onay beklemesi ve her yeniden gönderme birkaç milisaniye ekler.

UDP nasıl çalışır?

UDP'nin kuralı çok daha basittir: paketi gönder ve sıradakine geç.

  1. Bağlantı kurulmaz. El sıkışma yoktur; ilk paket hemen yola çıkar.
  2. Onay beklenmez. Karşı tarafın paketi alıp almadığı UDP'yi ilgilendirmez.
  3. Kaybolan paket yeniden gönderilmez. Yolda kaybolan paket kaybolmuş olarak kalır.
  4. Sıra garanti edilmez. Paketler karşıya farklı sırayla ulaşabilir; UDP bunları yeniden dizmez.

Bu kadar az kural, UDP'yi hızlı ve hafif yapar. Gönderen taraf hiçbir şeyi beklemediği için veri, üretildiği anda yola çıkar. Kayıp ve sıra sorunuyla gerekiyorsa uygulamanın kendisi ilgilenir. Örneğin bir oyun, geç gelen eski konum bilgisini atıp en yenisini kullanır.

TCP ve UDP karşılaştırması

ÖzellikTCPUDP
Bağlantı kurmaVeri göndermeden önce el sıkışma yaparDoğrudan göndermeye başlar
Teslim onayıHer paketin ulaştığını kontrol ederKontrol etmez
Kaybolan paketYeniden gönderirYeniden göndermez
Paket sırasıDoğru sırayla teslim ederSırayı garanti etmez
GecikmeOnay ve yeniden gönderme yüzünden daha yüksekDaha düşük
Ağ yoğunluğundaHızını kendiliğinden düşürürAynı hızla göndermeye devam eder
Paket başına ek bilgiDaha fazlaDaha az
Uygun olduğu işlerDoğruluğun önemli olduğu her şeyAnlık iletişim, küçük sorgular
Günlük örneklerWeb sayfası, e-posta, dosya indirme, mesajlaşmaOnline oyun, görüntülü arama, canlı yayın, DNS

Tablodan çıkan sonuç şu: TCP "yavaş", UDP "hızlı" değildir. İkisi farklı bir soruya cevap verir. TCP "veri eksiksiz ulaşmalı mı?" sorusuna evet diyen işler için, UDP "geç gelen veri işe yarar mı?" sorusuna hayır diyen işler için uygundur.

Günlük hayatta hangisi kullanılır?

TCP kullanan işler:

  • Web sayfaları. Tarayıcınız bir siteyi açtığında sayfanın her harfi ve her görseli eksiksiz gelmelidir. Web'in iletişim kuralı olan HTTP uzun süre yalnız TCP üzerinde çalıştı.
  • E-posta. Bir e-postanın bir cümlesinin eksik gelmesi kabul edilemez.
  • Dosya indirme ve güncelleme. Tek bir bayt eksik olan dosya açılmaz.
  • Mesajlaşma uygulamalarında yazılı mesajlar. Mesaj geç gelebilir ama eksik gelmemelidir.
  • Oyunlarda giriş, satın alma ve sohbet. Hesap bilgileri ve mesajlar doğru ulaşmalıdır.

UDP kullanan işler:

  • Online oyunlarda hareket ve konum bilgisi. Saniyede onlarca kez gönderilen konum bilgisinin bir tanesi kaybolursa bir sonraki zaten yoldadır. Kaybolanı beklemek oyunu durdururdu.
  • Görüntülü ve sesli arama. Yarım saniye geç gelen bir ses parçası artık işe yaramaz; beklemek yerine atlamak konuşmayı akıcı tutar.
  • Canlı yayın. İzleyiciye yayını olabildiğince gerçek zamanlı ulaştırmak için kayıplar tolere edilir.
  • DNS sorguları. Bir site adını adrese çeviren sorgu çok kısadır; cevap gelmezse tekrar sormak, bağlantı kurmaktan daha hızlıdır.

Yeni nesil web bağlantıları: Web'in yeni sürümü HTTP/3, QUIC adlı bir protokol üzerinde çalışır ve QUIC paketleri UDP ile taşınır. IETF'in RFC 9000 belgesi QUIC'i "UDP tabanlı" bir taşıma protokolü olarak tanımlar. QUIC, TCP'nin sağladığı sıralama ve yeniden gönderme işlerini kendi içinde yapar. Yani bugün açtığınız bazı web sayfaları UDP üzerinden gelir ama yine eksiksiz ulaşır.

Oyunlarda neden UDP kullanılır?

Bir online oyunda sunucu, oyuncuların konumunu saniyede defalarca günceller. Bu bilgiyi TCP ile göndermek şöyle bir sorun yaratır: tek bir paket kaybolduğunda TCP onu yeniden göndermek için bekler ve arkasındaki bütün paketler de sırada bekler. Ekranda oyun bir an donar, sonra biriken hareketler bir anda oynatılır.

UDP'de ise kaybolan paket beklenmez. Oyun bir sonraki konum bilgisini kullanır. En kötü durumda karakteriniz bir adımı atlar, yani kısa bir "ışınlanma" görürsünüz, ama oyun durmaz.

Oyunlarda sık duyduğunuz üç kavram bu farkla doğrudan ilişkilidir:

  • Ping: Bir paketin sunucuya gidip cevabının geri gelmesi için geçen süre, milisaniye (ms) cinsinden. Düşük ping, hareketlerinizin sunucuya çabuk ulaştığı anlamına gelir.
  • Paket kaybı: Yolda kaybolan paketlerin oranı. UDP kullanan oyunlarda paket kaybı ışınlanma ve takılma olarak görünür.
  • Jitter: Ping süresinin sürekli değişmesi. Paketler düzensiz aralıklarla geldiğinde oyun akıcılığını kaybeder.

Bu sorunların nedenlerini ve çözümlerini Oyunlarda Ping ve Paket Kaybı Çözümü yazımızda ayrıntılı anlattık. Oyuncuların proxy'yi hangi amaçlarla kullandığına dair bir örneği Knight Online'da Neden Proxy Kullanılır? yazımızda bulabilirsiniz.

Proxy ve UDP: hangi proxy UDP taşır?

Proxy, trafiğinizi aracı bir sunucu üzerinden geçirir. Ancak her proxy türü her protokolü taşıyamaz.

Proxy türüTCPUDPUygun olduğu işler
HTTP / HTTPS proxyEvetHayırWeb sitesi, tarayıcı, çoğu uygulama
SOCKS5 proxyEvetEvet (UDP desteği olan sunucu ve uygulamalarda)Oyun, görüntülü arama, anlık iletişim uygulamaları

HTTP proxy'ler web trafiği için tasarlanmıştır ve yalnız TCP taşır. UDP kullanan bir oyunu HTTP proxy'den geçirmeye çalışırsanız oyunun giriş ekranı açılabilir ama oyun içine girdiğinizde bağlantı kopar. SOCKS5 ise UDP'yi de taşıyabilen bir proxy türüdür. SOCKS5 Proxy bu yüzden oyun ve anlık iletişim uygulamalarında tercih edilir. Ancak UDP'nin çalışması için hem proxy sunucusunun hem de kullandığınız uygulamanın SOCKS5 UDP desteği vermesi gerekir.

İki türün farkını SOCKS ve HTTP Proxy Farkı, SOCKS5'in ayrıntılarını ise SOCKS5 Proxyler Nedir? yazımızda anlattık. Oyun için özel olarak hazırlanmış seçenekler oyun proxy sayfamızda, canlı yayın için olanlar streaming proxy sayfamızda.

Port nedir, "TCP/UDP portu açmak" ne demek?

Bir bilgisayar aynı anda birçok programla internete bağlanır: tarayıcı, oyun, mesajlaşma uygulaması. Gelen paketin hangi programa ait olduğunu ayırt etmek için port denen numaralar kullanılır. Adres paketi doğru bilgisayara, port ise o bilgisayardaki doğru programa götürür.

Portlar TCP ve UDP için ayrı ayrı sayılır. Bu yüzden oyun kurulum rehberlerinde "şu numaralı TCP portunu ve şu numaralı UDP portunu açın" gibi ifadeler görürsünüz. Bunun anlamı şudur: modeminiz dışarıdan gelen bağlantıları varsayılan olarak içeri almaz; bazı oyunlar ve uygulamalar ise dışarıdan bağlantı kabul etmek ister. "Port açmak", modeme "bu numaraya gelen paketleri şu bilgisayara ilet" demektir. Bu ayara modem arayüzünde genellikle port yönlendirme adı verilir.

Port açarken dikkat edilecekler:

  • Yalnız gereken portu açın. Oyunun resmi destek sayfasında belirtilen port ve protokolü kullanın.
  • Protokolü doğru seçin. Rehber UDP diyorsa TCP açmak işe yaramaz; "ikisi" diyorsa iki kural ekleyin.
  • Kullanmadığınız yönlendirmeleri silin. Açık bırakılan portlar gereksiz risk oluşturur.
  • Güvenlik duvarını kapatmayın. Sorunu çözmek için güvenlik duvarını tamamen kapatmak yerine yalnız o program için izin verin. Güvenlik duvarının ne yaptığını Proxy ve Firewall Farkı yazımızda anlattık.

Yaygın yanlış bilgiler

  • "UDP her zaman daha hızlıdır." UDP daha az bekler, ama indirme hızını belirleyen şey internet bağlantınızın kapasitesidir. Büyük bir dosyayı UDP ile göndermek onu daha hızlı indirtmez; eksik parçaları uygulamanın kendisi toplamak zorunda kalır.
  • "TCP daha güvenlidir." TCP verinin eksiksiz ulaşmasını sağlar, ama veriyi şifrelemez. Şifreleme HTTPS gibi üstteki katmanların işidir. UDP üzerinde çalışan QUIC de şifrelidir.
  • "UDP güvenilmezdir, kullanılmamalıdır." UDP'nin kayıpları kabul etmesi bir kusur değil, bilinçli bir tercihtir. Görüntülü arama ve oyun gibi işlerde doğru tercih budur.
  • "Oyunlarda ping yüksekse protokolü değiştirmek gerekir." Oyunun hangi protokolü kullanacağına oyuncu karar vermez. Ping'i sunucuya olan mesafe, ağ yoğunluğu ve bağlantının kalitesi belirler.

Karar rehberi

İhtiyacınızHangi protokol ve ne yapmalı?
Web sitesine girmek, dosya indirmekTCP (ya da HTTP/3 ile QUIC); HTTP veya HTTPS proxy yeterli
Online oyun oynamakOyun hareketleri UDP; UDP destekli SOCKS5 proxy ya da oyun proxy'si
Görüntülü arama yapmakUDP; proxy kullanacaksanız UDP desteğini kontrol edin
Oyunda ışınlanma ve takılma yaşamakPaket kaybını ve ping'i ölçün, sunucuya yakın bir bağlantı seçin
Oyun "port açın" diyorResmi sayfadaki port ve protokolü modemde yalnız o bilgisayar için yönlendirin
Proxy ile oyun giriş ekranı açılıyor ama oyun kopuyorHTTP proxy UDP taşımıyordur; SOCKS5'e geçin

Sıkça sorulan sorular

TCP mi daha iyi, UDP mi?

İkisi farklı işler için tasarlanmıştır. Verinin eksiksiz ulaşması gereken işlerde TCP, gecikmenin kayıptan daha önemli olduğu anlık işlerde UDP daha uygundur. Çoğu uygulama ikisini birlikte kullanır.

Bir uygulamanın TCP mi UDP mi kullandığını nasıl anlarım?

En kolay yol uygulamanın resmi destek sayfasına bakmaktır; oyunlar ve iletişim uygulamaları kullandıkları port ve protokolleri genellikle listeler. Genel kural olarak web sayfaları ve dosya aktarımı TCP, oyun hareketleri ve görüntülü arama UDP kullanır.

UDP kullanan bir uygulamada veri kaybolursa ne olur?

Kaybolan paket geri gelmez. Uygulama bunu kendi yöntemiyle telafi eder: oyun bir sonraki konum bilgisini kullanır, görüntülü arama kısa bir ses ya da görüntü parçasını atlar. Kayıp oranı yüksekse bu atlamalar fark edilir hale gelir.

HTTP proxy ile oyun oynayabilir miyim?

Oyunun giriş ve sohbet kısmı TCP kullanıyorsa bu kısımlar çalışabilir. Ama oyunun hareket ve konum bilgisi UDP ile taşınıyorsa HTTP proxy bu trafiği iletemez. Oyun için UDP destekli bir SOCKS5 proxy ya da oyun proxy'si kullanın.

Port açmak güvenli mi?

Yalnız gerekli port, doğru protokol ve doğru bilgisayar için açıldığında risk düşüktür. Gereksiz ya da geniş aralıkta port açmak, dışarıdan gelen istenmeyen bağlantılara kapı bırakır. Kullanmadığınız yönlendirmeleri silin.

DNS neden UDP kullanır?

Bir site adını adrese çeviren DNS sorgusu çok kısadır ve cevabı da kısadır. Bağlantı kurmak için harcanan süre, sorgunun kendisinden uzun sürerdi. Cevap gelmezse sorgunun tekrar gönderilmesi daha hızlıdır. Büyük cevaplarda DNS de TCP'ye geçebilir.

Özet

TCP ve UDP, internette veriyi paketler halinde taşıyan iki protokoldür. TCP bağlantıyı önce kurar, her paketin ulaştığının onayını bekler, kaybolanı yeniden gönderir ve paketleri sırasıyla teslim eder. UDP ise beklemeden gönderir, kaybolanı geri istemez. Web sayfaları, e-posta ve dosyalar TCP ile; oyun hareketleri, görüntülü arama ve canlı yayın UDP ile taşınır. Proxy seçerken bu fark önemlidir: HTTP proxy yalnız TCP taşırken SOCKS5 UDP'yi de taşıyabilir. Oyun ve anlık iletişim için uygun proxy türlerini proxy hizmetlerimizde bulabilirsiniz.

ChatGPT'ye sorClaude'a sor