Published on

UDP Datagram Yapısı ve UDP ile TCP Farkı

Authors
  • avatar
    Name
    Alperen Önal
    Twitter

UDP de TCP gibi iki bilgisayar arasındaki veri aktarımı protokolüdür.

UDP, genel olarak hız gerektiren ve güvenliğin pek önemsenmediği veri aktarımlarında tercih edilir.

Mesela gerçek zamanlı video aktarımı sırasında çoğu zaman UDP tercih edilir. Çünkü video izleyeceğimiz zaman ekrandaki bir kaç pixel’in bozuk olmasını umursamayız.

UDP, TCP’nin aksine bağlantı gerektirmez. Böylece iletişimi hızlandırır ancak aynı zamanda packet loss ve çeşitli güvenlik sorunlarına yol açar.

UDP’de söz konusu paketler sırası belirtilmeden ve sırası kontrol edilmeden doğrudan hedef bilgisayara gönderilir.

UDP’de akış kontrolü yoktur.

UDP’de paketin(datagramın) karşıya ulaşıp ulaşmadığı kontrol edilmez.

UDP paketlerine Datagram denir.(TCP’de segment diyorduk.)

Yani özetle UDP, hızın tercih edildiği ve güvenliğin pek önemsenmediği durumlarda kullanılır. Gerçek zamalı video, ses aktarımlarında tercih edilir. UDP, paketin gidip gitmediğini yahut hangi sırayla geldiğini kontrol etmez ve önemsemez. Eğer UDP üzerinden güvenilir şekilde veri gönderimi isteniyorsa bu güvenliğin Application Layer’da uygulamanın kendi yöntemleriyle sağlanması gerekmektedir.

DDoS Saldırılarında UDP Kullanımı

UDP, az önce de belirttiğim gibi bir el sıkışması işlemi yapmıyor. Saldırganlar, hedeflenen sunucudan iletişim için bağlantı başlatma izni almadan direkt UDP trafiği başlatarak sunucuyu deaktif bırakabilir.

Tipik bir UDP flood saldırısı, hedef bilgisayardaki rastgele bağlantı port’larına çok uzun sayıda UDP veri birimi gönderir. Bu, hedef bilgisayarın eşit sayıda ICMP paketiyle yanıt vermeye zorlar. Bu da ilgili port’ların trafik dışı kalmasına sebep olur.

Kuruluşlar bu UDP flood saldırılarından korunmak için çeşitli yöntemlerle savunma yaparlar.

ICMP paketlerinin yanıt hızını sınırlamak :

Bu yaklaşım meşru paketlerin de filtrelenmesine yol açabilir.

Dağıtık veri merkezlerinden oluşan bir aracı ağ üzerinden UDP trafiğini almak ve yanıt vermek :

Bu yaklaşım ile sunucudaki UDP paketlerinin anlaşılan kurum üzerinden alınması ve yanıtlanması sağlanır. Bu yaklaşım maddi ve gizlilik sorunlarına yol açabilir. Bu hizmeti sağlayan en bilindik kuruluşlar : CLOUDFLARE, AWS Shield, Radware.

UDP Datagram Yapısı

UDP protokolü, RFC(request for comments) 768 ile standartlaştırılmıştır.

UDP Header + Data = UDP datagram

Datagram Header :

Source Port(16-bit)

Veriyi gönderen uygulamanın/process’in port numarasını belirtir. Eğer gönderici, kaynak port numarasını belirtmek istemiyorsa bu alan sıfır olur.

Destination Port(16-bit)

Veriyi alacak uygulamanın port numarasını belirtir. Bu alan, verinin hangi uygulamaya/process’e iletileceğini belirtmek için kullanılır.

Length(16-bit)

UDP header’ini ve veri yükünün(payload) toplam uzunluğunun bayt cinsinden belirtir. Minimum değeri 8’dir. Çünkü veri yoksa bile title’nin boyutu minimum 8-bayt’tır.

Checksum(16-bit)

Veri bütünlüğünü kontrol etmek için kullanılan hata kontrol alanıdır. Bu alan, gönderici tarafından belli kurallara göre hesaplanır ve doldurularak alıcıya gönderilir. Alıcı ise checksum’un sağlamasını yaparak verinin bozulup bozulmadığını anlayabilir.(Ancak unutulmamalıdır ki, Checksum’un doğru çıkması veri bütünlüğünün kesin olarak korunduğu anlamına gelmez.)

UDP ve TCP Farkları

TRANSMISSION CONTROL PROTOCOL(TCP)USER DATAGRAM PROTOCOL(UDP)
Bağlantı tabanlıdır.Bağlantısızdır.
Güvenilirdir. Veri kaybını önler ve sıralamayı kontrol eder.Güvenilmezdir. Veri kaybı ve sıralama kontrolü yapmaz.
Hata kontrolü ve düzeltme yapar.Hata kontrolü yapar ancak düzeltme yapmaz.
Header boyutu(20-60 bayt)Header boyutu(8 bayt)
Segment formatında veri iletir.Datagram formatında veri iletir.
Verileri sıralı şekilde iletir.Verileri sıralama garantisi yoktur.
Daha yavaştır, çünkü güvenlik sağlar.Daha hızlıdır. Çünkü ekstra kontroller yapmaz.
E-posta, dosya transferi gibi alanlarda kullanılır.Canlı video, oyunlar, DNS sorguları gibi alanlarda kullanılır.
Üç aşamalı el sıkışma ile bağlantı kurma sürecini başlatır.Bağlantı kurma süreci yoktur.
IP paketleri içinde TCP segmentleri formatında kapsüllenirler.IP paketleri içinde UDP datagramları formatında kapsüllenirler.
Çift yönlü veri akışı vardır. (Full Duplex)Tek yönlü veya çift yönlü veri akışı olabilir.

KAYNAKÇA :

Kurose, James F., & Ross, Keith W. (2017). “Computer Networking: A Top-Down Approach” (7th ed.). Boston: Pearson Education.

www.cloudflare.com/learning/ddos/glossary/user-datagram-protocol-udp/

www.cloudflare.com/learning/ddos/udp-flood-ddos-attack/

www.cloudflare.com/learning/ddos/glossary/user-datagram-protocol-udp/

www.binaryterms.com/user-datagram-protocol.html

www.techtarget.com/searchnetworking/definition/UDP-User-Datagram-Protocol