TCP ve UDP Arasındaki Farklar
TCP ve UDP arasındaki farklar hakkında bilgiler sunmak istiyoruz. Bu 2 protokol, oldukça büyük öneme yer veriyor.
İnternet dünyasında bağlantı kurmak için pek çok protokol bulunur. Bu protokoller üzerinden bağlantı sağlanır. Her bir protokolün kendine özgü özellikleri bulunur. İnternet protokollerinin amacı, bir yerden bir yere bağlantı sağlamak. Hangi türde yapı olursa olsun bunlar internet kablosu üzerinden hareket eder. Aralarındaki farklar sebebiyle birbirlerinden ayrılır.
Günümüze baktığımızda TCP ile UDP’nin yanı sıra daha pek çok protokol karşımıza çıkıyor. Bunlar arasında HTTP, HTTPS, FTP, DNS, DHCP, XMPP ve SMTP protokollerinden söz edebiliriz. Her bir protokolün kendine has amaçları olur. Bu içerikte oldukça popüler bir kullanımı olan TCP ve UDP’den bahsedeceğiz.
TCP
TCP, Transmission Control Protocol yani Geçiş Kontrol Protokolü anlamına geliyor. Güvenli bir altyapı sağlayan bu protokol, 1974 yılında tanıtıldı. Pek çok sunucuda karşımıza çıkan bu yapı, verilerin 2 bilgisayar arasında taşınmasını sağlamakta. Sunucu ve kullanıcı arasında bir veri aktarımı yaşanarak bu hizmet meydana gelir.
UDP
UDP, 1980 yılında geliştirilen bir teknoloji. Açılımı User Datagram Protocol yani Türkçe anlamıyla Kullanıcı Veri Bilimi Protokolü demek. TCP’ye göre daha az güvenli olan UDP, sunucu ve kullanıcı arasındaki iletişimi sağlıyor. Bu tür protokol, genel olarak canlı yayın, video veya çok oyunculu oyunlarda karşımıza çıkıyor.
TCP ve UDP Arasındaki Farklar
TCP ile UDP arasında birkaç fark bulunuyor. Öncelikle bu sistemlerin nasıl veri aktarımı gerçekleştirdiğinden söz etmek istiyoruz. TCP’nin güvenli olmasının nedeni gönderilen her veriyi kayıpsız iletiyor olması. Veri, aktarılırken eğer paket kaybı var ise paket, tekrar gönderilir. Bu durum gecikmeyi bir miktar arttırsa da paketin sorunsuz iletilmesini sağlar. UDP ise paketi gönderir ama kayıp olup olmadığını denetlemez. Özellikle saniyede onlarca paket gönderiminde UDP kullanılır.
TCP ve UDP’nin kullanım alanlarından da söz edelim. TCP, paket kaybının olmaması gerektiği alanlarda görünür. Mesela sohbet uygulamalarında sohbet yazışmalarının kesilmemesi lazım. Eğer UDP kullanılırsa bazı mesajlar gitmez. TCP ile tüm mesajlar, güvenle gönderilir. TCP’nin kullanıldığı diğer şeyler arasında dosya aktarımı ve e-posta gönderimi gibi uygulamalar yer alıyor.
UDP’nin kullanıldığı alanlara baktığımızda karşımıza özellikle sık sık paket gönderimi yapılan alanlar çıkıyor. Bunlardan birisi çok oyunculu oyunlar. Bu tür oyunlarda bazen karakterlerin hareketlerinin kesik kesik olduğunu fark etmişsinizdir. Bunun sebebi paket kaybıdır. Bunun yanı sıra yayın akışında da UDP kullanılır. Bu gibi uygulamalarda performansın yüksek olması gerektiğinden bu protokole yer verilir.
TCP ile UDP’nin performans farkını ortaya koyan bir diğer şeye geçelim. TCP ve UDP arasındaki farklar arasında bağlantı farkı da yer alıyor. TCP, bağlantı kurulduğunda bu bağlantıyı açık bırakır. Yani kullanıcı, sunucuya bağlanır ve bağlantı açık tutulur. UDP ise soket oluşturmadan veriyi gönderir. Yani açık bir bağlantı bırakmaz. TCP, WebSocket yapısı gibi düşünülebilir. UDP ise AJAX yapısına benzer.
Bir diğer fark akış kontrolü. TCP, sunucu ile kullanıcı arasında özel bir bağlantı oluşturduğu için bazı ek olanaklar tanır. Mesela hız limitleme uygulanabilir. Bu da trafiğin tıkanmasını önler. UDP’de bu olanaklar bulunmaz. Veri, en yüksek hızda gönderilir.
TCP ve UDP ile Sunucu Kurma
TCP ve UDP arasındaki farklar dışında bu 2 sistemin nasıl kullanıldığı merak edilmekte. Özellikle yazılımcılar, bu soruyu soruyor. İster web sayfası üzerinde olsun ister bir uygulama olsun TCP ve UDP protokolü, oldukça faydalı bir altyapı. Öncelikle şunu ifade edelim ki hem TCP he de UDP, benzer yapılar olduğu için kod yapısı da birbirine benzer.
Bu sistemlerde hem sunucu tarafında hem de yazılım tarafında eklenebilecek birçok fonksiyon var. Sunucu tarafını anlatmakla başlayalım. Öncelikli fonksiyon istenen port üzerine bağlantı açma. Bunun yanı sıra gelen bağlantıları denetleme, kullanıcıdan gelen veriyi işleme, kullanıcıya veri gönderme ve kullanıcının bağlantısını sonlandırma gibi birçok fonksiyon var. Toplu veri gönderme fonksiyonunun da yer aldığını ifade edelim. Yazılım tarafında da benzer fonksiyonlar bulunmakta. Bağlantı kurma, veri gönderme, veri çekme gibi kodlardan söz edebiliriz.
Burada önemli olan nokta bir programlama dili belirlemek. Ardından o dildeki yapıyı dokümanlardan öğrenmek. Mesela Microsoft, C# için nasıl TCP veya UDP bağlantısı kurulacağını ve kullanılacağını kendi belgelerinde anlatıyor. Birkaç fonksiyon ve olayı bilmek yeterli. Yazılım dili bilen bir insan, aynı gün içerisinde bu protokolleri kullanmayı öğrenir.
Sıkça Sorulan Sorular
TCP mi güvenli UDP mi?
TCP, UDP’ye göre daha güvenli bir katman. Bunun sebebi TCP’nin verileri kayıpsız iletmesi. Eğer veri eksik giderse tekrar gönderiliyor. UDP ise paketler arasında eksik gönderim yapabilir. Verilerin tamamının gönderilmesi gerektiği durumlarda TCP tavsiye edilir. Örneğin yazılı sohbet uygulamaları için TCP ideal.
TCP ve UDP aynı anda kullanılır mı?
TCP ve UDP, tek bir yazılımda aynı anda kullanılır fakat bu 2 sistem, farklı protokoller olduğu için tek sunucuda çalışmaz. Bir yazılımda 2 ayrı sunucu kurularak bu işlem gerçekleştirilir. Sunuculardan birisi TCP, diğeri UDP olur.
TCP en çok ne için kullanılır?
TCP, pek çok amaç için tercih edilir. Özellikle kayıpsız veri aktarımının gerektiği alanlarda. Mesela yazılı sohbet uygulamalarında TCP’ye yer verilir. TCP ve UDP arasındaki farklar hakkında bilgi almak bundan dolayı önemli. Sohbet ederken eğer UDP kullanılır ise bazı yazılar teslim edilmeyebilir. TCP ile beraber yazıların tamamı karşıya ulaşır.
UDP ise sürekli kayıpsız iletimin gerekmediği yerlerde tercih edilir. Örneğin yayın akışında veya online oyunda saniyede 20 paket gönderildiğini varsayalım. Bu paketlerden birinin kayıp olması pek problem teşkil etmez.
TCP hangi portu kullanır?
TCP, istenilen her portta çalışır. Önemli olan işletim sistemi üzerinde o portun boşta yer alması. Eğer port, boşta olmazsa hata oluşur. Sonuç olarak boş olan her portta TCP sunucusu kurulur.
HTTP, TCP mi UDP mi?
HTTP protokolü, TCP veya UDP olmayan ayrı bir protokol. Web sayfaları, HTTP protokolü üzerinden yönlendirilir. Yani TCP ve UDP ile gönderim yapılmaz.