Değerli arkadaşlar, merhaba! Bu yazımızda sizlere, UDP protokolünün ne olduğundan bahsedeceğiz.
Açılımı; 'User Datagram Protocol' yani 'Kullanıcı Veri Birimi Protokolü' şeklindedir ve Transport Layer (Taşıma Katmanı) içerisinde yer alır. Aslında konuya başlamadan önce 'Datagram' ifadesinin ne olduğuna baksak iyi olacak. Türkçe karşılığı (Veri Birimi) aklınızı kurcalayabilir. O yüzden bunu İngilizce olarak algılarsanız sizin için daha kolay olacaktır. Çünkü kimse size 'Veri Birimi Nedir?' diye sormaz, 'Datagram Nedir?' diye sorar. Datagram, ağ üzerinden gönderilen; varışı, varış zamanı ve içeriği garanti edilemeyen, bağımsız, kendi kendine yeten bir mesajdır. Yani işin içinde Datagram varsa o verinin hedefine gidebileceği veya güvenliği konusunda emin olamazsınız. UDP paketlerine de Datagram adı verilir (UDP paketi veya UDP Datagram'ı gibi).
UDP; video oynatma, çevrim içi oyunlar veya DNS sorguları gibi özellikle zamana duyarlı (hız gerektiren) iletimler için internet üzerinden kullanılan bir iletişim protokolüdür. Dolayısıyla UDP'nin, hızlı olduğunu söyleyebiliriz. Evet, UDP verilerin çok hızlı bir şekilde aktarılmasına olanak tanır ancak aynı zamanda yukarıda söylediğimiz gibi paketlerin, aktarım sırasında kaybolmasına neden olabilir ve DDoS saldırıları biçiminde yararlanma fırsatları yaratabilir. UDP kullanılarak DDoS saldırısnın nasıl yapıldığını öğrenmek için buyurun: DoS - DDoS
Hatırlarsınız; TCP/IP blogunda 'Three Way Handshake' olayı vardı ve bir iletişim, 3 aşamadan geçtikten sonra gerçekleşiyordu. UDP'de böyle bir şey yoktur. Veriler aktarılmadan önce resmi olarak bir bağlantı kurmaz yani bir UDP paketinin gönderilmesi için iki cihaz arasında bağlantı kurulmasına gerek yoktur. Dolayısıyla UDP paketi alan bir bilgisayar, sunucu veya her neyse bu paketin nereden geldiğini doğrulamaz. Paketlerin güvenliği ve iletilmesi konusundaki şüphelerle beraber bu durum, UDP'yi güvensiz kılar.
İsterseniz TCP ve UDP'nin nasıl çalıştığını bir görsel ile açıklamaya çalışalım.
UDP'de, TCP'de olduğu gibi bir doğrulama veya herhangi bir aşama yoktur; zaten bu yüzden hızlıdır. Client (İstemci) ve Server (Sunucu) arasında sadece Request - Response (İstek - Yanıt) şeklinde bir iletişim söz konusudur.
TCP blogunda, TCP paketlerinin parçalandığını ve hedefe sırasıyla yollandığını söylemiştik. UDP'de bu da yoktur. Yani bir paket UDP ile gönderiliyorsa o paketin içeriğinin doğru sırada gideceği bile meçhul. Bununla beraber TCP ile yollanan bir paket yerine ulaşmazsa TCP bunu tekrar yollar fakat UDP'de bu da yoktur :). Kısacası UDP kullanan uygulamalar, hataları ve kayıpları tolere etmek zorundadır. Elbette, hassas bilgilerin iletimini gerçekleştiren uygulamaların UDP kullanması inanılmaz bir hata olacaktır çünkü dediğimiz gibi; UDP'de ne bir hata kontrolü (error control) ne de bir akış kontrolü (flow control) vardır. Ayrıca bu sebepten dolayı UDP, hata raporlamak için IP ve ICMP'ye bağlı bir protokoldür.
Şu ana kadar UDP ile ilgili güzel olan tek şeyin hızı olduğunu gördük. Bu yüzden 'Kim kullanır ki?' diye düşünebilirsiniz ama UDP, sandığınızdan fazla kullanılıyor. UDP, paket anahtarlamayı (packet switching) desteklediği için çok noktaya yayın yapmak (multicasting) için uygun bir protokoldür. Kendisi, DNS gibi hizmetlerde kullanılıyor ama bununla beraber DHCP, TFTP, NTP (Network Time Protocol) ve benzeri teknolojilerde de kullanılıyor.
UDP'de 'Checksum - Kontrol Toplamı' dediğimiz bir yapı da vardır. Bu yapı, bir ağ üzerinden iletilen verilerin bütünlüğünü belirlemek için basit bir hata algılama mekanizmasıdır. Fakat lütfen yanlış anlamayın; hatayı, veri gitmeden önce kontrol etmez. Verilerin gidişini izler ve sonunda ortaya bir sonuç çıkarır. Yani alınan verilerin ağ boyunca bozulup bozulmadığını belirler. Zaten 'Kontrol et (Check) ve Topla (Sum)' şeklinde okuduğunuz zaman daha net anlayacaksınızdır. Bununla beraber aslında 'Checksum' ortadan kaldırılırsa UDP paketi boş bir paket olarak nitelendirilebilir.
Bir de; TCP/IP gibi UDP'yi de UDP/IP olarak görebilirsiniz; kafanız karışmasın. İkisi de İnternet Protokolü'nde (IP) çalıştığı için bu şekilde geçerler. Son olarak; yukarıdaki olumsuzluklar UDP'nin kötü bir protokol olduğunu göstermez, gerektiğinde en verimli protokol de olabilir; ne de olsa bir balığı ağaca tırmanmaya zorlayamazsınız.
Bu yazı biraz sohbet havasında oldu. Dolayısıyla başlıklar hâlinde olmasa da UDP'nin faydalarını, zararlarını, TCP ile arasındaki benzerlikleri ve farklılıkları öğrenmiş olduk.
Yayınlanma Tarihi: 2022-08-29 17:52:07
Son Düzenleme Tarihi: 2022-08-31 18:39:18