# UDP (Kullanıcı Datagram Protokolü)

Adres: https://softwaredictionary.org/tr/terimler/udp
Kategori: Ağlar
Son güncelleme: 2026-09-30

Kısaca: UDP, bağlantı kurmadan datagram adı verilen küçük ve bağımsız mesajlar gönderen, garantili teslimat yerine hızı seçen hafif bir internet protokolüdür.

## UDP nedir?

UDP (Kullanıcı Datagram Protokolü), veriyi datagram adı verilen bağımsız mesajlar olarak gönderen basit bir taşıma protokolüdür. Önce bir bağlantı kurmaz; bir mesajın ulaştığını doğrulamaz, kaybolan mesajları yeniden göndermez ve mesajları sıraya sokmaz. TCP gibi o da IP'nin üzerinde çalışır ve her datagramı doğru programa ulaştırmak için port numaralarını kullanır.

UDP el sıkışmayı, onayları ve yeniden iletimleri atladığı için ek yükü çok azdır ve gecikmesi düşüktür. Her datagram; kaynak portu, hedef portu, uzunluğu ve bozulmuş veriyi saptamakta kullanılan bir sağlama toplamını içeren küçük bir başlık taşır. Bir uygulamanın güvenilirliğe ihtiyacı varsa kendi kurallarını bunun üzerine eklemelidir; QUIC gibi yeni protokoller tam olarak bunu yapar.

Günlük hayattan bir benzetme kartpostal göndermektir: her biri kendi başına yola çıkar, sırasız ulaşabilir ve ara sıra kaybolur, ama bir sonrakini göndermeden önce yanıt beklemezsiniz. UDP, taze verinin kusursuz veriden daha önemli olduğu yerlerde kullanılır: canlı sesli ve görüntülü görüşmeler, çevrimiçi çok oyunculu oyunlar, DNS sorguları ve QUIC üzerinde çalışan HTTP/3 bunlara örnektir.

Sık yapılan bir yanılgı, UDP'nin sadece daha kötü bir TCP olduğunu düşünmektir. Aslında farklı bir ödünleşimdir: bir görüntülü görüşmede geç gelen bir paket işe yaramaz, bu yüzden TCP'nin yaptığı gibi yeniden iletimi beklemek, paketi atlamaktan daha fazla takılmaya yol açar. UDP bağlantısız olduğu için, TCP'nin yapamadığı bir şeyi de yapabilir: yayın (broadcast) ve çoklu yayın (multicast) ile tek bir mesajı aynı anda birçok alıcıya göndermek.

## Önemli noktalar

- UDP bağlantısızdır: veri gönderilmeden önce el sıkışma yoktur.
- Teslimatı ya da sırayı garanti etmez ve kopyaları engellemez.
- Düşük ek yükü onu hızlı ve gerçek zamanlı uygulamalar için uygun kılar.
- DNS, sesli ve görüntülü görüşmeler, çevrimiçi oyunlar ve QUIC (HTTP/3 tarafından kullanılır) UDP'ye dayanır.
- UDP üzerinde güvenilirlik isteyen uygulamalar bunu kendileri uygulamak zorundadır.

## Örnek: Python'da bir UDP datagramı göndermek

```python
import socket

# Create a UDP socket (SOCK_DGRAM means datagrams)
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# Send a message with no connection or handshake
sock.sendto(b"player:42 x=10 y=20", ("127.0.0.1", 9999))

# Wait up to 1 second for a reply; it may never come
sock.settimeout(1.0)
try:
    data, sender = sock.recvfrom(1024)
    print("Reply from", sender, data)
except TimeoutError:
    print("No reply: UDP does not guarantee delivery")
```

## Sık sorulan sorular

**UDP güvenilmezse neden kullanılır?**

Çünkü daha hızlı ve daha basittir. Görüntülü görüşme ya da oyun gibi gerçek zamanlı kullanımlarda yeni veriyi hızlıca almak eski veriyi kurtarmaktan daha önemlidir; uygulamalar da yalnızca gerçekten ihtiyaç duydukları güvenilirliği ekleyebilir.

**DNS, UDP mi yoksa TCP mi kullanır?**

DNS sorgularının çoğu küçük olduğu ve hızlı yanıt gerektirdiği için `53` numaralı portta UDP kullanır. Büyük yanıtlarda ve DNS sunucuları arasındaki aktarımlarda TCP'ye geçilir; DNS over HTTPS gibi şifreli türler ise TCP ya da QUIC kullanır.

**UDP, TCP'den daha hızlı mıdır?**

Genellikle evet, çünkü el sıkışmayı, onayları ve yeniden iletimleri atlar. Gerçek fark ağa bağlıdır; güvenilmez bir ağda uygulamanın yine de kendi kurtarma mantığını eklemesi gerekebilir.

## Kaynaklar

- [RFC 768: User Datagram Protocol](https://www.rfc-editor.org/rfc/rfc768.html)

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
