Günümüzün hızlı dijital dünyasında, verimli veri iletimi hayati önem taşır. Çeşitli uygulamalar için kesintisiz işlevsellik sağlar. Kullanıcı Datagram Protokolü (UDP) birincil yöntem olarak öne çıkar. Gerçek zamanlı iletişimde ağlar arasında hızlı veri alışverişini mümkün kılar.
Daha güvenilir muadili olan İletim Kontrol Protokolü’nün (TCP) aksine, UDP hıza odaklanır. Bu model, belirli uygulamalar için olmazsa olmaz olan güvenilirlik yerine basitliğe öncelik verir. Örneğin, UDP özellikle çevrimiçi oyun, video akışı ve VoIP hizmetleri için uygundur.
Bu makalede, UDP’nin inceliklerini inceleyeceğiz. Yapısını, işlevselliğini ve öne çıktığı belirli senaryoları inceleyeceğiz. Geliştiriciler ve ağ mühendisleri, User Datagram Protocol anlayarak yeteneklerini daha iyi kullanabilirler. Sonuç olarak, bu, modern uygulamaların taleplerini karşılamaya yardımcı olur.

İnternet İçin Hızlı Bir İletişim Protokolü Olan UDP Nedir?
UDP (Kullanıcı Datagram Protokolü), internet genelinde kullanılan bir iletişim protokolüdür. Veri paketlerini göndermek için diğer IP ağlarında da çalışır.
TCP’nin (İletim Kontrol Protokolü) aksine, UDP bir bağlantı kurmaz. Bunun yerine, veri paketlerini doğrudan gönderici ve alıcı arasında gönderir. Bu işlem ek yükü en aza indirir.
Her veri paketi, başlığında temel adresleme bilgilerini içerir. Bu, verimli yönlendirmeye yardımcı olan kaynak ve hedef portlarını içerir.
UDP’nin temel özelliklerinden biri, yerleşik güvenilirlik mekanizmalarının olmamasıdır. Kayıp paketlerin alındığına veya yeniden iletildiğine dair onay yoktur.
Ayrıca, akış kontrolü de yoktur. Sonuçta, paketler sırasız ulaşabilir, kopyalanabilir veya kaybolabilir. Bu, göndericiye veya alıcıya herhangi bir bildirim yapılmadan gerçekleşir.
Bu nedenle UDP, hızın kritik olduğu uygulamalar için uygundur. Bu gibi durumlarda, ara sıra veri kaybı kabul edilebilir. Örnekler arasında ses ve video akışı, çevrimiçi oyun ve IP üzerinden ses (VoIP) bulunur.
Ancak, kullanıcıların güvenilirlik istiyorlarsa kendi hata kontrol ve kurtarma mekanizmalarını uygulamaları gerekir. Genel olarak, UDP, özellikle düşük gecikmeli iletişim senaryolarında verimliliği ve hızı nedeniyle tercih edilmektedir.
Birincil kullanım alanı DHCP ve BOOTP gibi protokollerin gerçek zamanlı iletimidir. Ayrıca DNS ve diğerlerini de kapsar. Bu protokoller, büyük veya kârsız paket alışverişlerini içerir.
Bu durum, yeniden iletimin mümkün olmadığı durumlarda ortaya çıkar. Ses ve görüntü için katı gecikme gereksinimleri bu ihtiyaca katkıda bulunur.
UDP Protokolü Ne İşe Yarar?
UDP, protokol portları sağlar. Bu portlar, aynı makinedeki birçok programın birbirinden ayırt edilmesine yardımcı olur.
Her mesajı hem bir hedef port numarası hem de bir kaynak port numarası içerir.
Bu özellik, hedef UDP yazılımının mesajları doğru bir şekilde iletmesini sağlar. Ayrıca, yazılımın yanıt göndermesini de sağlar.
Ayrıca, UDP, mesaj aktarımı için birincil yöntem olarak İnternet Protokolünü (IP) kullanır. Aşağıdaki gibi bir dağıtım hizmeti sunar:
- Not connection-oriented (Bağlantı Odaklı Değil): Onay kullanmaz. Ayrıca, gelen mesajları sıralamaz. Dahası, makineler arasındaki bilgi akışını kontrol etmek için geri bildirim sağlamaz. Bu nedenle, mesajları uygun sıralama olmadan kopyalanamaz veya erişilemez.
- Unreliable (Güvenilmez): UDP kullanan bir uygulama programı tüm sorumluluğu kabul eder. Kayıp, çoğaltma, gecikme, sıra dışı teslimat ve bağlantı kaybı gibi güvenilirlik sorunlarını ele almalıdır.
UDP Protokolü Mesaj Formatı Nedir?
1. UDP Message Length (Mesaj Uzunluğu) – (16 bit)
Bu alan, UDP datagramının toplam uzunluğunu belirtir. Hem UDP başlığını hem de veri yükünü içerir. Uzunluk bayt cinsinden ifade edilir. Minimum değer 8 bayttır.
Bu minimum değer, yalnızca başlığın boyutuna karşılık gelir. Ayrıca, bu uzunluk alanı alıcı cihaz için çok önemlidir. Cihazın ne kadar veri beklemesi gerektiğini anlamasına yardımcı olur. Yani, paketin düzgün işlenmesini sağlar.
2. UDP Checksum(Sağlama Toplamı) – (16 bit, isteğe bağlı)
Sağlama toplamı, UDP datagramı için bir hata tespit mekanizması görevi görür. İletim sırasında veri bütünlüğünü sağlar. Bunu hesaplamak için bir sözde başlık hesaplanır.
Bu başlık, kaynak ve hedef IP adreslerini, protokol numarasını ve UDP uzunluğunu içerir. Bu hesaplama, İnternet Protokolü (IP) katmanıyla etkileşim gerektirir.
Bir sağlama toplamı mevcutsa, alıcı alınan verilerdeki sağlama toplamını hesaplamalıdır. İletilen sağlama toplamıyla eşleşmemesi, olası bir hata olduğunu gösterir. Kısacası, alıcı paketi atar.
3. Data (Veri)
Bu segment, gerçek bilgileri kaynaktan hedefe taşır. Veriler biçim ve boyut olarak değişiklik gösterebilir. Bu, uygulamanın gereksinimlerine bağlıdır.
Kaynak uygulama verileri gönderdikten sonra, veriler çeşitli ağlar üzerinden iletilir. Yönlendiricilerden ve internet üzerinden geçebilir. Sonunda, hedeflenen alıcıya ulaşır.
Hedefte, uygulama alınan verileri işler. Bu iletişim, gerçek zamanlı uygulamalar için çok önemlidir. Örneğin, video akışı ve çevrimiçi oyun oynama, zamanında teslimat gerektirir.
User Datagram Protokol Bağlantı Noktaları
UDP, uygulamalar arasında iletişim için portları kullanır. Port alanı 16 bit uzunluğundadır.
Dolayısıyla, geçerli aralık 0 ile 65.535 arasındadır. 0 portu ayrılmıştır ancak kaynak portu olarak kullanılabilir. Bu durum, gönderen işlem yanıt beklemediğinde ortaya çıkar.
1 ile 1023 arasındaki portlar “iyi bilinen” portlar olarak adlandırılır. Unix benzeri işletim sistemlerinde, bu portlar için süper kullanıcı erişimi gereklidir. 1024 ile 49.151 arasındaki portlar kayıtlı portlardır.
Ayrıca, 49.152 ile 65.535 arasındaki portlar geçicidir. İstemciler, sunucularla iletişim kurarken geçici portları kullanır.
Uygulamada, her uygulama işletim sistemiyle iletişim kurmak zorundadır. Bir protokol portuna ve ilişkili bir port numarasına ihtiyaç duyarlar.
Bu, bir veri paketi göndermelerine olanak tanır. Atandıktan sonra, uygulama programının veri paketleri, PORT KAYNAĞI alanında port numarasını içerir.
UDP, girdiyi işlerken gelen IP yazılımını kabul eder. Veri paketlerini HEDEF BAĞLANTI PORTU’na göre çoklar.
Bu portu bir kuyruk olarak düşünebilirsiniz. Bir uygulama işletim sistemiyle iletişim kurduğunda bir tampon oluşturulur. Bu tampon, gelen mesajları dahili bir bekleme kuyruğunda depolar.
Yani, bir veri paketi aldığında, hedef port numarasını doğrular. Port numarasının kullanımda olanla eşleşip eşleşmediğini kontrol eder.
Port numarası eksikse, ICMP erişilemeyen bir port hatası mesajı gönderir. Özetle, veri paketi atılır. Port bulunursa, yeni veri paketini sıralar. Ardından, uygulamanın o konuma erişmesini bekler.
