UDP (User Datagram Protocol) Nedir? | Tanımı ve Özellikleri

Hızlı Bakış

UDP, veri paketlerini önceden bağlantı kurmadan doğrudan hedefe gönderen bir iletişim protokolüdür. Gönderici, paketleri alıcının hazır olup olmadığını kontrol etmeden yola çıkarıyor. Bu yaklaşım, onay ve yeniden iletim gibi ek yükleri tamamen ortadan kaldırıyor. Böylece veri, ağ üzerinde saniyelik gecikmeler olmadan akıyor. Bu ham hız, çevrimiçi oyunlar ve görüntülü konuşmalar için sarsıntısız bir deneyim sunuyor. Anlık veri akışına öncelik veren bu yapı, gerçek zamanlı iletişimin vazgeçilmez taşıyıcısı haline geliyor.

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.

UDP Protokolü Tanımı ve Özellikleri

İ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.

UDP ve Bağlantısız İletişim Hakkında SSS

Bu protokol neden TCP'den çok daha hızlı çalışır?

Arada üçlü el sıkışma diye bir tören yoktur. Gönderici paketi alıcıya fırlatır. Karşı taraf hazır mı değil mi bakmaz bile.
TCP her paket için onay bekler. Bu bekleme süresi gecikmeyi katlar. Datagram iletişimi ise onay mekanizmasını tamamen devre dışı bırakır.
Zira hız, güvenilirlikten önce gelir burada. Ara sıra paket kaybı umursanmaz. Önemli olan verinin anında karşıya varmasıdır.
Akış kontrolü de yoktur. Gönderici alıcının kapasitesine bakmaz. Paketleri ardı ardına yollar. Bu yüzden canlı yayınlarda tercih sebebidir.

Datagram haberleşmesinde kaybolan paketler için ne yapılır?

Protokolün kendisi hiçbir şey yapmaz. Kayıp paketi ne arar ne de sorar. Bu sorumluluk tamamen uygulama geliştiriciye aittir.
Geliştirici isterse kendi onay sistemini kurar. Uygulama katmanında paket numarası ekler. Eksik gelen veriyi tespit edip tekrar talep eder.
Ne var ki çoğu zaman buna gerek kalmaz. Sesli görüşmede birkaç milisaniyelik ses kaybı anlaşılmaz. Oyunlarda bir kare atlansa da oyun devam eder.
Asıl kritik olan şudur. Kayıp paketi bekleyip tüm akışı dondurmak yerine devam etmek daha akıllıcadır. Kullanıcı takılmayı asla affetmez.

UDP başlığındaki checksum alanı gerçekten işe yarar mı?

Evet, ama sadece temel seviyede koruma sağlar. Sağlama toplamı, paketin yolda bozulup bozulmadığını kontrol eder. IP adreslerini de hesaba katan sözde bir başlık kullanır.
Alıcı taraf aynı hesaplamayı tekrar yapar. Sonuç gelen değerle eşleşmezse paketi atar. Göndericiye haber verme zahmetine bile girmez.
Üstelik bu alan tamamen isteğe bağlıdır. Sıfır olarak gönderilirse alıcı kontrol yapmaz. Bazı gömülü sistemler performans için bunu tercih eder.
Dolayısıyla checksum sizi ağ hatalarına karşı korur. Ancak kayıp paketleri kurtarmaz. O iş tamamen sizin kodunuzun bileğine kalmıştır.

DNS sorguları neden bu hafif protokolü tercih eder?

Bir DNS sorgusu genelde tek bir paketten oluşur. Cevap da bir veya iki pakette gelir. Koca bir TCP oturumu kurmak burada cinayettir.
Önce SYN, sonra SYN-ACK, ardından ACK derken üç gidiş geliş yaşarsınız. Oysa datagram ile tek paket gönderir, tek paket alırsınız. Toplam süre saniyenin çok altında kalır.
Buna karşın paket boyutu 512 baytı aşarsa işler değişir. Büyük yanıtlar için TCP’ye geçiş yapılır. Zira parçalanma riski artar.
Kısacası DNS için hız her şeydir. Sayfa açılışında milisaniyeler önemlidir. Bu yüzden bağlantısız iletişim tartışmasız kazanır.

Port numaraları hangi kategorilere ayrılır ve geçici port nedir?

Toplamda 65535 port vardır. İlk 1023 tanesi iyi bilinen portlardır. HTTP için 80, DNS için 53 gibi standart hizmetlere ayrılmıştır.
Ardından 1024 ile 49151 arası kayıtlı portlar gelir. Belirli uygulamalar IANA’ya başvurup bu aralıktan bir numara kapar. Örneğin, Microsoft SQL Server 1433’ü kullanır.
Son bölüm ise 49152’den 65535’e kadardır. Bunlar geçici veya özel portlardır. İstemci tarafı sunucuya bağlanırken işletim sistemi rastgele bir tane seçer.
Bağlantı koptuğunda bu numara serbest kalır. Başka bir uygulama tekrar kullanabilir. Böylece sınırlı sayıdaki port yüzlerce eş zamanlı bağlantıya hizmet eder.

Canlı yayın ve çevrimiçi oyunlarda bağlantısız iletim neden şarttır?

Bir oyunda tetiğe bastığınızda merminin anında gitmesi gerekir. TCP’nin onay mekanizması burada işlemez. Kayıp paketi beklerken vurulursunuz.
Canlı yayında da durum aynıdır. Bir kare kare donup beklemezsiniz. Görüntüde hafif bozulma olur ama yayın devam eder.
Bu uygulamalar kayıptan çok gecikmeden korkar. 200 milisaniyelik bir donma, 2 saniyelik pürüzsüz akıştan kötüdür. İzleyici yayını kapatır.
Sonuç olarak geliştiriciler kayıp toleransını uygulama içinde çözer. Arabellek boyutunu ayarlar. Eksik veriyi enterpolasyonla doldurur. Temel katmanda ise hızdan asla ödün vermez.

Bu Rehberi Keşfettikleri İçin Sana Teşekkür Edecekler!

Sadece bir tıkla sevdiklerine dev bir iyilik yapmaya hazır mısın? Bilgi paylaştıkça devleşir.

İlk yorumu sen paylaş