Kullanıcı Datagram Protokolü, ağ katmanında bulunan üstünde çalışan hafif bir veri aktarım protokolüdür.
UDP, paketlerdeki bozuk verileri algılamak için bir mekanizma sağlar, ancak kayıp veya bozuk paketlerde ortaya çıkan diğer sorunları çözmeye çalışmaz. Bu yüzden UDP bazen “Güvenilmez Veri Protokolü” olarak adlandırılabilir. TCP’de olduğu gibi 3’lü el sıkışma işlemi gerçekleşmez. Fakat TCP’ye göre oldukça hızlı veri iletimi sağladığından duruma göre sıklıkla kullanılmakta olduğunu belirtmekte fayda vardır.
UDP, genellikle hızın güvenli veri iletilmesinden daha önemli olduğu zamanlarda, özellikle gerçek zamanlı veri iletişimi sağlanan uygulamalar, bilgisayar oyunları, video akışları gibi kullanımlar için tercih edilir.
UDP Segment Nedir?
IP üzerinden UDP kullanarak paket gönderirken, her IP paketinin veri kısmı bir UDP segmenti olarak biçimlendirilir.
Her UDP segmenti 8 baytlık bir başlık ve değişken uzunlukta veri içerir.
Port Numaraları
UDP üstbilgisinin ilk dört baytı, kaynak ve hedef için bağlantı noktası numaralarını depolar.
Ağa bağlı bir cihaz, (bir okyanus limanının farklı limanlardaki tekneleri nasıl alabileceğine benzer şekilde) birbirinden farklı (sanal) portlardan mesajlar alabilir. Farklı portlar yani bağlantı noktaları, farklı ağ trafiği türlerini ayırt etmeye yardımcı olur.
UDP Header Format
UDP, TCP’ye göre başlıkları daha küçüktür. Bunun sebebide kapasitesinden kaynaklıdır. Bir UDP başlığı, dört zorunlu alana bölünmüş 8 bayt içerir.
- Source UDP port number (2 bytes): Kaynak UDP bağlantı noktası numarası gönderen aygıtı temsil eder.
- Destination UDP port number (2 bytes): Hedef UDP bağlantı noktası numarası, alıcı aygıtın iletişim uç noktasıdır.
- Length of data (2 bytes): UDP’de uzunluk alanı, hem başlık hem de veriler dahil olmak üzere her bir veri biriminin toplam boyutunu temsil eder. Bu alanın değeri en az 8 bayt (gerekli başlık boyutu) ile 65.000 baytın üzerindeki boyutlar arasında değişir.
- UDP checksum (2 bytes): TCP’ye benzer şekilde, bir UDP checksum (sağlama toplamı), alıcıların mesajın bozuk bitleri için gelen verileri çapraz kontrol etmesine izin verir.
Segment Uzunluğu ve Checksum
Bir UDP başlığı, dört zorunlu alana bölünmüş 8 bayt içerir. UDP başlığının sonraki iki baytı, segmentin (başlık dahil) uzunluğunu (bayt cinsinden) depolar.
İki bayt 16 bittir.
16 bit, bu nedenle uzunluk bu ikili sayı kadar olur: 1111111111111111
Ondalık sayı olarak 2¹⁶ – 1 işlemi bize 65535 sonucunu verir. Bu nedenle, bir UDP segmentinin maksimum uzunluğu 65,535 byte’tır.
UDP başlığının son iki baytı, gönderen ve alıcı tarafından veri bozulmasını kontrol etmek için kullanılan bir alan olan sağlama toplamıdır. Buna checksum denir.
Segmenti göndermeden önce, gönderici:
-Sağlama toplamını segmentteki verilere göre hesaplar.
-Hesaplanan sağlama toplamını alana depolar.
Segmenti aldıktan sonra, alıcı:
-Alınan segmente göre sağlama toplamını hesaplar.
-Sağlama toplamlarını birbiriyle karşılaştırır. Sağlama toplamları eşit değilse, verilerin bozuk olduğunu bilir.
TCP ile UDP Farkı Nedir?
TCP
- Verilerin gönderilmesini garanti eder.
- Hata akışlarını kontrol eder.
- UDP’den yavaştır.
- 20 baytlık bir başlık, isteğe bağlı 40 baytlık bir işlev verisine izin verir.
- Güvenilir olması gereken uygulamalar için kullanılır.
UDP
- Verinin teslim edilmesini garanti edemez.
- Hata kontrolü sağlamaz.
- TCP’den hızlıdır.
- 8 Baytlık bir başlık yalnızca zorunlu işlev verilerine izin verir.
- Hızlı olması gerekli uygulamalar için kullanılır. (Oyun, video, VPN gibi)