
Güncellendi:
TCP ve UDP, IP ağlarında uygulamaların veri taşıması için kullanılan iki temel aktarım protokolüdür. TCP sıralı bir bayt akışı ve yeniden iletim gibi mekanizmalar sunar. UDP ise datagramları daha sınırlı bir taşıma hizmetiyle iletir. Doğru seçim, uygulamanın kayıp, gecikme, sıralama ve bağlantı yönetimi gereksinimine bağlıdır.
Görseli büyüt →
TCP ne sağlar?
TCP, bağlantının iki ucu arasında sıralı bir bayt akışı sunar. Sıra numaraları, alındı bilgisi ve yeniden iletim gibi mekanizmalarla kayıp veriyi ele alır. Akış ve tıkanıklık kontrolü, alıcının ve ağın koşullarına göre gönderimi düzenlemeye yardımcı olur. Bu özellikler uygulamanın bazı taşıma ayrıntılarını kendisinin yazma ihtiyacını azaltır.
Bununla birlikte TCP “veri mutlaka karşı tarafa ulaşır” şeklinde sınırsız bir garanti vermez. Bağlantı zaman aşımına uğrayabilir veya kopabilir. Uygulama, işlemin tamamlanıp tamamlanmadığını kendi protokolü ve hata yönetimiyle değerlendirmelidir. Bir sipariş isteğinin ağa yazılması, siparişin iş sisteminde kabul edildiğini tek başına göstermez.
TCP mesaj sınırlarını korumaz
Gönderenin iki ayrı yazma işlemi, alıcıda aynı iki okuma işlemi olarak görünmek zorunda değildir. TCP bir bayt akışıdır; uygulama mesaj uzunluğu, ayraç veya başka bir çerçeveleme yöntemi kullanır. Ağ parçalarını doğrudan uygulama mesajı sanmak eksik okuma veya birden fazla mesajı karıştırma hatasına yol açabilir.
Bir bağlantıda veri kaybının giderilmesini beklemek gecikmeyi artırabilir. Bu etki uygulamanın aynı akışta hangi işleri taşıdığına bağlıdır. Yalnız ortalama yanıt süresine değil, yoğunluk ve kayıp dönemlerindeki gecikme dağılımına da bakın.
UDP neyi uygulamaya bırakır?
UDP datagram sınırlarını korur; ancak kendi başına teslim sırası, yeniden iletim veya bağlantı kurulumu için TCP’deki mekanizmaları sunmaz. Datagram kaybolabilir, yinelenebilir veya farklı sırada ulaşabilir. Uygulama bunların hangisini tolere edeceğine ve hangisini üst katmanda yöneteceğine karar vermelidir.
Bu, UDP kullanan bütün uygulamaların güvensiz veya güvenilmez olduğu anlamına gelmez. QUIC gibi üst protokoller UDP üzerinde kendi güvenlik, akış ve kurtarma mekanizmalarını kurabilir. Öte yandan gerekli tıkanıklık ve tekrar davranışını tasarlamadan UDP kullanmak yalnız başlık maliyetini azaltmakla çözülecek bir konu değildir.
Hangi durumda hangisi seçilir?
Dosya aktarımı veya sıralı uygulama akışı için TCP’nin sunduğu model uygun olabilir. Gerçek zamanlı medya veya oyun trafiğinde geç gelen bir güncelleme değerini yitirebilir; uygulama kayıp toleransı ve gecikme arasında farklı kararlar verebilir. DNS ve QUIC gibi örnekler, protokol seçiminin yalnız “hızlı olanı kullan” sorusu olmadığını gösterir.
TCP de UDP de tek başına uygulama verisini şifrelemez. Gizlilik, kimlik doğrulama ve bütünlük için uygun üst protokol gerekir. TLS, DTLS veya QUIC gibi mekanizmaların seçim ve kullanım koşulları uygulamaya göre değerlendirilir. Güvenlik duvarında aynı port numarasının TCP ve UDP için ayrı akışları temsil ettiğini unutmayın.
Test planında neleri ölçmeli?
- Normal ve yoğun kullanımda gecikme, hata ve tamamlanan işlem sayısını kaydedin.
- Paket kaybı, bağlantı kesintisi ve yeniden deneme davranışını kontrollü ortamda inceleyin.
- Mesaj boyutunu, MTU etkisini ve iki yönlü erişimi değerlendirin.
- Tekrarlanan iş isteğinin çift kayıt üretmemesi için uygulama seviyesinde koruma tasarlayın.
- Protokol değiştirmeden önce darboğazın uygulama, ağ veya dış servis kaynaklı olup olmadığını doğrulayın.
Sık sorulan sorular
- UDP her zaman TCP’den hızlı mı?
-
Hayır. Sonuç uygulama, ağ koşulları ve üst protokolün yaptığı işe bağlıdır. Daha az taşıma mekanizması, her işte daha kısa tamamlanma süresi anlamına gelmez.
- TCP bağlantısının başarılı olması işlemin başarıyla bittiğini gösterir mi?
-
Hayır. Uygulama yanıtı ve iş sonucu ayrıca kontrol edilmelidir. Tekrar deneme sırasında aynı işlemin iki kez uygulanmasını önleyen bir tasarım gerekebilir.
Sonraki adım
Güvenlik duvarı rehberi ile port ve protokol kurallarını, VPN rehberi ile trafik yolunu birlikte değerlendirin. Ölçümü uygulamanın gerçek başarı ölçütüne bağlayın.