User Datagram Protocol (UDP), daha standart olan Transmission Control Protocol (TCP) ile çeşitli yönlerden zıtlık gösteren bir iletişim protokolüdür. Temel olarak kayıp toleranslı ve düşük gecikmeli bağlantılar için kullanılan bir iletişim protokolü olan UDP, alıcı taraf bir anlaşma göndermeden önce veri transferlerinin gerçekleşmesine izin verir. TCP çoğu internet tabanlı iletişim için en iyi çözüm olsa da, UDP’nin özellikle bazı IoT uygulamaları için birkaç avantajı vardır.
Peki User Datagram Protocol (UDP) tam olarak nedir?
UDP (User Datagram Protocol) Nedir?
User Datagram Protocol (UDP) yani Kullanıcı Datagram Protokolü anlamına gelir. Ana işlevi veri paketlerini bir ağ üzerinden iletmek olan bağlantısız bir internet protokolüdür. Güvenilir bir kullanıcı datagram protokolü bağlantısız bir protokoldür ve veri iletmeden önce bir oturum gerektirmez.
UDP, TCP’den daha hızlı veri iletimi sağlayabildiği için genellikle akışlı medya uygulamalarında kullanılır. UDP protokolü, OSI Reference Model Transport Layer 4 internet protokol ailesine aittir. Ağ katmanı ile daha yüksek katmanlar arasında basit bir arayüz sağlar. UDP, önceden kurulmuş bir bağlantı olmadan datagramların ağ üzerinden gönderilmesine izin verir. Bu, UDP’yi güvenilir ve sıralı mesaj teslimatı gerektirmeyen uygulamalar için TCP’den daha verimli bir protokol haline getirir.
UDP ayrıca TCP’ye göre daha az ağ kaynağı gerektirme avantajına sahiptir. Örneğin, bir sunucu birden fazla bağlantı noktasında UDP paketlerini dinleyecek şekilde yapılandırılabilirken, bir sunucunun her TCP bağlantısı için ayrı bir soket kullanması gerekir.
UDP’nin ana dezavantajı, datagramların alınma sırası veya içeriklerinin doğruluğu hakkında hiçbir garanti sağlamamasıdır. İletim sırasında hatalar meydana gelirse, UDP protokolünü kullanarak bunları düzeltmenin bir yolu yoktur.
UDP Protokolünün Temel Özellikleri
Bu protokolün temel özellikleri aşağıdakileri içerir:
- Çevrimdışı çalışır ve kaynak ile hedef arasında senkronizasyon yapmaz.
- TCP gibi tek tek baytlarla değil, tüm paketlerle veya datagramlarla çalışır. UDP protokolünü kullanan bir uygulama, bayt blokları şeklinde bilgi alışverişinde bulunur, böylece uygulama katmanından taşıma katmanına gönderilen her bayt bloğu için bir UDP paketi gönderilir.
- Güvenilir değildir. Akış kontrolü veya sipariş paketleri kullanmaz.
- En büyük avantajı, basit olması ve çok basit başlıklar kullanması nedeniyle ağ üzerinde çok az ek yüke neden olmasıdır.
UDP’nin Tarihçesi
User Datagram Protocol (UDP) ilk olarak 1980 yılında David P. Reed ve Jon Postel tarafından RFC 768’de ARPANET için tasarlanan ilk internet protokolleri setinin bir parçası olarak tanımlanmıştır. UDP’nin amacı, TCP’nin güvenilirliğini ve ek yükünü gerektirmeyen uygulamalar için basit ve verimli bir taşıma katmanı protokolü sağlamaktı.
UDP’den önce, çoğu ağ protokolü, herhangi bir veri alışverişi yapılmadan önce gönderici ve alıcı arasında güvenilir ve hatasız bir sanal devrenin kurulduğu bağlantı odaklı paradigmalara dayanıyordu. Bu yaklaşım verilerin bütünlüğünü sağlarken, aynı zamanda önemli bir ek yük ve gecikmeye neden oluyordu, bu da onu düşük gecikme süresi ve hızlı teslimat gerektiren ses ve video akışı gibi gerçek zamanlı uygulamalar için uygun hale getirmiyordu.
Bu sorunu çözmek için UDP, her paketin (datagram) bağımsız bir varlık olarak ele alındığı ve herhangi bir el sıkışma veya doğrulama süreci olmaksızın alıcıya gönderildiği bağlantısız, datagram odaklı bir model getirmiştir. Bu model, göndericinin paketi basitçe gönderdiği ve herhangi bir garanti olmaksızın alıcıya ulaşacağını varsaydığı “en iyi çabayla teslimat” kavramına dayanmaktadır.
UDP’nin tasarımı, Domain Name System (DNS), Simple Network Management Protocol (SNMP) ve Time Protocol (NTP) gibi ilk internet uygulamalarının ihtiyaçlarından büyük ölçüde etkilenmiştir. Bu uygulamalar, az miktarda veriyi minimum ek yük ile işleyebilecek hızlı ve hafif bir aktarım katmanı protokolü gerektirmiştir. UDP ayrıca gerçek zamanlı iletişim ve düşük gecikme süresi gerektiren, ancak ara sıra paket kaybı veya hatalarını tolere edebilen ilk çevrimiçi oyun ve ses/video akışı uygulamaları tarafından da kullanılmıştır.
Yıllar içinde UDP, paketleri birden fazla alıcıya çoklu yayınlama ve yayınlama yeteneği ve paketlerdeki hataları tespit etmek için sağlama toplamlarının eklenmesi gibi yeni özellikleri ve kullanım durumlarını destekleyecek şekilde gelişmiştir. UDP ayrıca, UDP’nin üzerine ek işlevsellik ve hata kurtarma mekanizmaları sağlayan Real-time Transport Protocol (RTP) ve User Datagram Protocol Lite (UDPLite) gibi diğer protokoller ve çerçeveler için bir yapı taşı olarak kullanılmıştır.
UDP Nasıl Çalışır?
TCP gibi, UDP de bir bilgisayardan diğerine datagram göndermek için IP üzerinden çalışır. İlk olarak, verileri bir UDP paketinde toplar ve ardından gönderen ve alan bağlantı noktaları, paket uzunluğu ve sağlama toplamı ile ilgili başlık verileri de dahil olmak üzere göndermek için bir IP paketine ekler. UDP bir paketin teslimini garanti etmez, bu nedenle alıcı bilgisayarla doğrudan bir bağlantı kurmaz. Bunun yerine, bir mektubu adresleyip posta yoluyla göndermek gibi kendisi ve hedefi arasındaki makinelerin oraya ulaşmasına yardımcı olacağı umuduyla verileri gönderir.
UDP, TCP’ye kıyasla riskli bir seçim gibi görünse de, saha cihazlarının pil gücünü koruması gereken IoT uygulamaları da dahil olmak üzere belirli durumlar için açık avantajları vardır.
Düşük Gecikme
UDP, paket sıralamasına dayanmayan daha basit bir veri iletimi yöntemi kullanır. Bu kontrolleri beklemek zorunda olmadığından, verileri TCP’den daha hızlı bir şekilde paketler ve gönderir, bu da onu ara sıra kaybolan bir veri paketinin büyük bir sorun olmadığı video ve ses akışı gibi zamana duyarlı uygulamalar için iyi bir seçim haline getirir.
Güç Tasarrufu
Verileri iletime hazırlamak için çok fazla zaman ve enerji harcamadığından, UDP daha az güç kullanır. Bu da gönderen cihazın pil gücüne bağımlı olması durumunda oldukça harikadır.
Küçük Paket Boyutu
UDP, küçük (8 bayt) bir başlık ile küçük bir paket boyutu kullanır. Bu tasarruf, paketlerin üretilmesinin daha az zaman aldığı ve işlenmesi için daha az bellek gerektirdiği anlamına gelir.
Kullanıcı Datagram Protokolünün (UDP) Yapısı
Bir Kullanıcı Datagram Protokolü (UDP) datagramının yapısı, bir başlık ve ardından gelen yük verisinden oluşur. Başlık, datagram ve hedefi hakkında bilgi sağlayan çeşitli alanlar içerir. Yük verisi, iletilen asıl mesaj veya veridir.
UDP başlığı dört alandan oluşur:
- Kaynak bağlantı noktası: Gönderenin bağlantı noktası numarasını belirten 16 bitlik bir alan.
- Hedef bağlantı noktası: Hedeflenen alıcının bağlantı noktası numarasını belirten 16 bitlik bir alan.
- Uzunluk: UDP üstbilgisinin ve yük verilerinin bayt cinsinden uzunluğunu belirten 16 bitlik bir alan.
- Sağlama toplamı: Hata denetimi amacıyla bir sağlama toplamı içeren 16 bitlik bir alan. Sağlama toplamı, başlık ve yük verilerine dayalı olarak hesaplanır ve iletim sırasında verilerin bütünlüğünü doğrulamak için kullanılır.
Neden Kullanıcı Datagram Protokolü (UDP) Protokolüne İhtiyacınız Var?
User Datagram Protocol (UDP), uygulamalar için bağlantısız iletişim sağlayan basit bir aktarım katmanı protokolüdür. UDP genellikle çevrimiçi oyun, IP üzerinden ses (VoIP) ve video akışı gibi düşük gecikme süresi gerektiren gerçek zamanlı uygulamalar için kullanılır.
UDP’nin ana avantajlarından biri düşük ek yüke sahip olmasıdır, yani Transmission Control Protocol (TCP) gibi diğer taşıma protokollerine kıyasla veri iletmek için daha az kaynak ve daha az işlem gücü gerektirir. Bu, bağlantı kurma ve sürdürme ek yükü olmadan hızlı bir şekilde büyük miktarda veri göndermesi gereken uygulamalar için çok uygun hale getirir.
UDP’nin bir diğer avantajı da bağlantısız bir protokol olmasıdır, yani veri göndermeden önce bir bağlantı kurmaz. Bu, veri iletmeden önce bir bağlantı kurulmasını gerektiren TCP’den daha verimli olmasını sağlar. Bununla birlikte, bu aynı zamanda UDP’nin bir “en iyi çaba” protokolü olduğu anlamına gelir, yani verilerin teslimini garanti etmez. Veriler iletim sırasında kaybolursa, gönderici bilgilendirilmez ve alıcı verilerin yeniden iletilmesini talep edemez.
Genel olarak UDP protokolü, veri kaybı mümkün olsa bile hızlı ve verimli veri iletimi gerektiren uygulamalar için kullanışlıdır.
UDP Uygulamaları
UDP kullanan bazı uygulamalar aşağıdakileri içerir:
- Domain Name System (DNS) sorguları: Alan Adı Sistemi (DNS) sorguları genellikle küçük oldukları ve hızlı yanıt gerektirdikleri için UDP kullanır.
- Trivial File Transfer Protocol (TFTP): TFTP, hata kontrol yetenekleri olmamasına rağmen basitliği ve hızı nedeniyle UDP’yi kullanır.
- SNMP: IP ağlarındaki cihazları yönetmek için kullanılan Basit Ağ Yönetim Protokolü (SNMP), öncelikle UDP kullanarak çalışır.
- DHCP: Bir ağdaki cihazlara dinamik olarak IP adresleri atamak için kullanılan Dynamic Host Configuration Protocol (DHCP) de işlemleri için UDP kullanır.
- Çevrimiçi Oyun: Çevrimiçi çok oyunculu oyunlar UDP kullanır çünkü gerçek zamanlı oyun için gerekli olan daha hızlı veri iletimi sağlar.
- Akış Hizmetleri: IPTV ve VoIP gibi video ve ses akışı hizmetleri, düşük gecikme süresi ve ara sıra yaşanan paket kaybının iletimdeki gecikmeden daha az zararlı olması nedeniyle UDP’yi kullanır.
UDP’nin Avantajları
UDP protokolü aşağıdaki avantajları sağlar:
- Belirli uygulamalar için TCP’den daha yüksek hız sunar.
- UDP bağlantısız bir protokol olduğu için TCP’den daha az ek yük gerektirir.
- TCP’ye göre daha geniş bir ağ koşulları aralığında çalışabilir.
- Güvenilir ve sıralı mesaj teslimatı gerektirmeyen uygulamalar için kullanışlıdır.
- TCP’ye kıyasla nispeten basittir.
UDP’nin Dezavantajları
UDP’nin ana dezavantajları aşağıdakileri içerir:
- Çok az hata kontrolü veya veri bütünlüğü garantisi.
- Kaynak ve hedef portların eşleşmesini veya alınan bir mesajın onaylanmasını sağlayacak bir mekanizma yoktur.
- UDP, TCP’den daha az güvenilirdir.
- UDP multicast iletimi desteklemez.
- TCP, UDP’den daha iyi güvenlik özellikleri sağlar.
UDP Güvenli Midir?
UDP (User Datagram Protocol), paket kaybını tolere eden uygulamalar için harika bir amaca hizmet eder. Ancak, UDP’nin bağlantısız bir protokol olması ve bir “el sıkışma” prosedürü uygulamaması siber suçlular için bir fırsat sağlar. Hedeflenen kişileri UDP trafiğine boğarak bundan faydalanırlar. Bu sayede bilgisayar korsanlarının böyle bir DDoS saldırısı başlatmak için bir bağlantı kurmaları ve izin almaları gerekmez.
Genellikle UDP flood saldırısı, hedeflenen kişilerin cihazındaki farklı portlara büyük miktarda UDP datagramı göndermeyi içerir. Bu, hedeflenen kişinin bu bağlantı noktalarının erişilemez olduğunu belirten aynı miktarda ICMP paketiyle yanıt vermesine neden olur. Sonuç olarak, hedeflenen kişinin kaynakları tükenir ve DDoS saldırısı tamamlanır.
TCP ve UDP Arasındaki Fark Nedir?
TCP bağlantı odaklı bir protokoldür, UDP ise bağlantısız bir protokoldür. TCP ve UDP arasındaki en önemli fark hızdır, çünkü TCP UDP’ye göre nispeten daha yavaştır. Genel olarak, UDP çok daha hızlı, basit ve verimli bir protokoldür, ancak kayıp veri paketlerinin yeniden iletimi yalnızca TCP ile mümkündür.
TCP ile UDP arasındaki bir diğer önemli farklılık da TCP’nin kullanıcıdan sunucuya (ve tersi) düzenli bir veri iletimi sağlarken, UDP’nin uçtan uca iletişime adanmamış olması ve alıcının hazır olup olmadığını kontrol etmemesidir (daha az ek yük gerektirir ve daha az yer kaplar).
Özellikler | TCP | UDP |
Bağlantı durumu | Veri iletmek için kurulmuş bir bağlantı gerektirir (iletim tamamlandıktan sonra bağlantı kapatılmalıdır). | Bir bağlantının açılması, sürdürülmesi veya sonlandırılması için herhangi bir gereklilik içermeyen bağlantısız protokoldür. |
Veri sıralama | Sıralama yapabilir. | Sıralama yapılamaz. |
Garantili teslimat | Verilerin hedef yönlendiriciye teslim edilmesini garanti edebilir. | Verilerin hedefe teslim edileceği garanti edilemez. |
Verilerin yeniden iletimi | Kayıp paketlerin yeniden iletimi mümkündür. | Kayıp paketlerin yeniden iletimi yoktur. |
Hata kontrolü | Kapsamlı hata kontrolü ve veri onaylama. | Sağlama toplamlarını kullanan temel hata kontrol mekanizması |
Transfer yöntemi | Veriler bayt akışı olarak okunur; mesajlar segment sınırlarına iletilir. | Sınırları tanımlanmış UDP paketleri; ayrı ayrı gönderilir ve varışta bütünlük açısından kontrol edilir. |
Hız | UDP’den daha yavaştır. | TCP’den daha hızlıdır. |
Yayın | Yayını desteklemez. | Yayını destekler. |
Optimal kullanım | HTTPS, HTTP, SMTP, POP, FTP, vb. tarafından kullanılır | Video konferans, akış, DNS, VoIP, vb. |
En Çok Sorulan Sorular
1. TCP ve UDP arasındaki temel fark nedir?
TCP, verilerin güvenilir bir şekilde teslim edilmesini sağlayan bağlantı odaklı bir protokoldür, UDP ise veri teslimini garanti etmeyen bağlantısız bir protokoldür.
2. UDP, TCP’den daha mı hızlıdır?
Evet, UDP genellikle TCP’den daha hızlıdır çünkü veri iletmeden önce bir bağlantı kurması gerekmez ve tıkanıklık kontrolü kullanmaz.
3. UDP güvenli midir?
UDP kendi başına güvenlik özellikleri sağlamaz. Ancak, veri iletimini güvence altına almak için şifreleme protokolleriyle birlikte kullanılabilir.
4. UDP TCP’nin yerini alabilir mi?
UDP’nin avantajları olsa da, TCP’nin yerini tam olarak alamaz. Farklı ihtiyaçlara hizmet ederler; TCP yüksek güvenilirlik gerektiren uygulamalar için, UDP ise hız ve verimlilik gerektiren uygulamalar için kullanılır.
5. UDP bağlantı noktası nedir?
UDP bağlantı noktası, UDP iletişiminin sayısal bir tanımlayıcı olarak temsil edilen bir uç noktasıdır. Farklı kullanıcı isteklerini veya süreçlerini ayırt etmeye yardımcı olur.
6. UDP neden önemlidir?
UDP, iki bilgisayar arasında bir ağ üzerinde daha hızlı iletişimi kolaylaştırdığı ve diğer iletişim protokollerine kıyasla çok daha düşük bant genişliği ek yükü ve gecikme süresine sahip olduğu için önemlidir.
Sonuç olarak, ses ve video iletişimi, ses ve video oynatma, DNS aramaları ve diğer zamana duyarlı iletişim biçimleri bugün olduğu kadar hızlı olmaz.