Wireshark ile görülen UDP mesajı
**UDP (User Datagram Protocol - Kullanıcı Veribloğu İletişim Kuralları)**, TCP/IP protokol takımının iki aktarım katmanı protokolünden birisidir. Verileri bağlantı kurmadan yollar.

Gelişmiş bilgisayar ağlarında paket anahtarlı bilgisayar iletişiminde bir datagram modu oluşturabilmek için UDP protokolü yazılmıştır. Bu protokol minimum protokol mekanizmasıyla bir uygulama programından diğerine mesaj göndermek için bir prosedür içerir. Bu protokol 'transaction' yönlendirmelidir. Paketin teslim garantisini isteyen uygulamalar TCP protokolünü kullanır.

* Geniş alan ağlarında (WAN) ses ve görüntü aktarımı gibi gerçek zamanlı veri aktarımlarında UDP kullanılır.
* UDP bağlantı kurulum işlemlerini, akış kontrolü ve tekrar iletim işlemlerini yapmayarak veri iletim süresini en aza indirir.
* UDP ve TCP aynı iletişim yolunu kullandıklarında UDP ile yapılan gerçek zamanlı veri transferinin servis kalitesi TCP'nin oluşturduğu yüksek veri trafiği nedeniyle azalır.

UDP'yi kullanan protokollerden bazıları DNS, TFTP ve SNMP protokolleridir. Uygulama programcıları birçok zaman UDP'yi TCP'ye tercih eder, zira UDP ağ üzerinde fazla bant genişliği kaplamaz.

UDP güvenilir olmayan bir aktarım protokolüdür. Ağ üzerinden paketi gönderir ama gidip gitmediğini takip etmez ve paketin yerine ulaşıp ulaşmayacağına onay verme yetkisi yoktur. UDP üzerinden güvenilir şekilde veri göndermek isteyen bir uygulama bunu kendi yöntemleriyle yapmak zorundadır.

Paket Yapısı
------------

UDP, Ulaşım katmanı'nda faaliyet gösteren bir protokoldür. Verilerin doğru ya da yanlış şekilde iletilip iletilmediğini garanti etmez (connectionless).

UDP başlığı, her biri 16 bit uzunluğunda olmak üzere 4 alandan oluşur.

| Bitler | 0 – 15 | 16 – 31 |
| --- | --- | --- |
| 0 | Kaynak Port Numarası | Hedef Port Numarası |
| 32 | Uzunluk | Kontrol Sayısı (Checksum) |
| 64 |  Veri  |

**Kaynak Port Numarası**

Seçimlik bir alandır. Bir cevap alınmasının gerektiği durumlarda gönderenin port numarasını barındırır. Gönderici host'un istemci olması halinde port numarası geçici, sunucu olması halinde ise yaygın olarak bilinen bir port numarası olur. Bu alanın sıfır olması, gönderen hostun bir kaynak port numarasına sahip olmadığı anlamına gelir.

UDP ve TCP arasındaki farklar
-----------------------------

* TCP, bağlantı tabanlı (connection oriented) bir protokoldür, UDP bağlantı tabanlı değildir (connectionless).
* TCP'de akış kontrolü vardır, UDP'de akış kontrolü yoktur.
* TCP başlığı (header) 20 bayttır, UDP başlığı 8 bayttır

* TCP, UDP'den daha yavaştır, çünkü verinin karşı tarafa ulaşıp ulaşmadığını kontrol eder.
* UDP, ses ve video gönderiminde kullanılır. TCP'ye göre daha hızlıdır fakat güvenilir (reliable) değildir. Veri ismine datagram denilir.
* Datagramın segmentten farkı ise içerisinde sıra numarasının bulunmamasıdır.

**IPv4 Sahte Başlığı**

UDP IPv4 üzerinde çalıştığında, gerçek IPv4 başlığındaki aynı bilgilerin bazılarını içeren sahte bir başlık kullanılarak Kontrol Sayısı (Checksum) hesaplanır.Bu sahte başlık IP paketi göndermek için kullandığımız gerçek bir IPv4 başlığı değildir. Aşağıdaki tabloda sadece checksum hesaplamak için kullanılan sahte başlık tanımlanmıştır:

| Bitler | 0 – 7 | 8 – 15 | 16 – 23 | 24 – 31 |
| --- | --- | --- | --- | --- |
| 0 | Kaynak Adresi |
| 32 | Hedef Adres |
| 64 | Sıfır | Protokol | UDP uzunluğu |
| 96 | Kaynak Port | Hedef Port |
| 128 | Uzunluk | Kontrol Sayısı (Checksum) |
| 160+ |  Veri  |

Kaynak ve Hedef Adresler IPv4 başlığındakilerdir. Protokol UDP içindir. UDP uzunluğu alanı ise UDP başlığının ve verinin uzunluğunu gösterir.

|  |  |
| --- | --- |
| Otorite kontrolü Bunu Vikiveri'de düzenleyin | 
* GND: 4728148-0

 |