UDP: bu nədir, əlaqə qurulmadan işləyən protokol və necə işləyir

Müəllif: IT Sectr Dərc olunub: 2026-03-06 Oxuma vaxtı: 8 dəq

UDP (User Datagram Protocol) — əlaqə qurulmadan məlumat ötürmə protokolu, IP üzərində işləyir və datagram göndərərkən minimal gecikmə təmin edir. TCP-dən fərqli olaraq, UDP çatdırılma, paket sırası və ya təkrarlanmadan qorunma zəmanəti vermir. IETF RFC 768 (2024) məlumatlarına görə, UDP videozənglər, streaming və DNS sorğuları hesabına dünya internet trafikinin 40%-dən çoxunu emal edir.

Əsas məqamlar

  • UDP — əlaqə qurulmadan işləyən, çatdırılma təsdiqi olmadan datagram göndərən protokol
  • Minimal gecikmə handshake, sıxlıq nəzarəti və təkrar göndərmələrin olmaması sayəsində əldə edilir
  • Tətbiq olunur videozənglərdə, onlayn oyunlarda, DNS, DHCP və axın yayımında
  • Datagram UDP-nin başlığı cəmi 8 baytdır, TCP-də isə 20–60 bayt
  • Paket itkiləri tətbiq səviyyəsində FEC, retranslyasiya və ya məlumat artıqlığı ilə kompensasiya olunur

UDP nədir?

UDP (User Datagram Protocol) — TCP/IP modelinin nəqliyyat təbəqəsinin əsas protokollarından biri, 1980-ci ildə Devid Rid tərəfindən işlənib hazırlanmışdır. O, minimal məlumat ötürmə mexanizmi təmin edir: tətbiq datagram göndərir və protokol onun alıcıya çatıb-çatmadığını izləmir.

UDP başlığı cəmi dörd sahədən ibarətdir: mənbə portu, təyinat portu, uzunluq və yoxlama cəmi. Hər bir sahə 2 bayt tutur, buna görə də başlığın ümumi ölçüsü 8 baytdır. Müqayisə üçün, TCP başlığı opsiyasız 20 bayt, opsiyalarla isə 60 bayta qədər tutur.

Protokol öz səviyyəsində fraqmentasiyanı dəstəkləmir — datagram MTU-nu (Maximum Transmission Unit) aşarsa, IP səviyyəsində fraqmentləşir. Bir fraqment itirildikdə bütün datagram ləğv edilir, çünki UDP ayrı-ayrı fraqmentlərin təkrar göndərilməsini tələb edə bilmir. Tərtibatçılar datagramın ölçüsünü nəzarət etməlidirlər — mobil şəbəkələr üçün MTU tez-tez 1400 bayt təşkil edir, buna görə də maksimum ölçü bu dəyərdən çox olmamalıdır.

UDP necə işləyir

UDP istifadə edən tətbiq SOCK_DGRAM tipli soket yaradır, təyinat portu və IP-ünvanı göstərir və datagram göndərir. Protokol minimal başlıq əlavə edir və paketi IP səviyyəsinə ötürür. Qəbul edən öz portunu dinləyir və gələn datagramlardan məlumatları çıxarır.

UDP sıxlıq nəzarətini həyata keçirmir — tətbiq şəbəkənin dəstəklədiyi maksimum sürətlə datagram göndərə bilər. Bu, kanalın həddindən artıq yüklənməsinə səbəb ola bilər, lakin real vaxt ssenarilərində belə aqressivlik əsaslandırılır: videozəng üçün ötürmənin dayandırılmasından daha çox mümkün itkilərlə məlumat axını vacibdir.

python
import socket

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.sendto(b'Hello, UDP!', ('192.168.1.100', 8888))
sock.close()

Nümunədə UDP üçün SOCK_DGRAM soketi yaradılır. sendto metodu əlaqə qurulmadan datagram göndərir — alıcının IP və portunu bilmək kifayətdir. Server tərəfində recvfrom metodu həm məlumatları, həm də cavab üçün göndərənin ünvanını qaytarır. Mobil platformalarda UDP soketləri oxşar şəkildə konfiqurasiya olunur, lakin əlavə icazələr tələb olunur: iOS-da şifrələnməmiş UDP birləşmələri üçün NSAppTransportSecurity əlavə etmək, Android-də isə manifestdə INTERNET icazəsi vermək lazımdır.

UDP-nin üstünlükləri və çatışmazlıqları

UDP seçimi sürətin etibarlılıqdan daha vacib olduğu ssenarilərdə əsaslandırılır. Protokol əlaqə qurulmasına, təsdiqləmələrə və təkrar göndərmələrə vaxt itirmir — bu minimal gecikmə verir, lakin tərtibatçıdan itkilərin müstəqil idarə edilməsini tələb edir.

ÜstünlüklərÇatışmazlıqlar
Aşağı gecikmə — handshake yoxdurÇatdırılma zəmanəti yoxdur
Kiçik başlıq — 8 baytSıxlıq nəzarəti yoxdur
Broadcast və multicast dəstəyiPaket təkrarlanması mümkündür
Datagramların müstəqilliyi — növbələr yoxdurDatagram ölçüsü MTU ilə məhdudlaşır

Mobil tətbiqlərdə UDP WebRTC kimi freymvorklar vasitəsilə tətbiq olunur, onlar UDP üzərində itki nəzarəti, adaptiv bitrate və jitter buferi əlavə edir. Bu, xam protokolun çatışmazlıqları olmadan sürət üstünlükləri verir.

UDP-nin digər vacib aspekti sıxlıq nəzarətinin olmamasıdır. TCP-də Slow Start və Congestion Avoidance alqoritmləri paket itkisi zamanı ötürmə sürətini azaldır ki, şəbəkəni yükləməsin. UDP-nin belə mexanizmləri yoxdur, buna görə də tərtibatçılar öz sürət nəzarəti strategiyalarını tətbiq etməlidirlər — məsələn, videozənglərdə adaptiv bitrate və ya oyun serverlərində şəbəkə kanalının həddindən artıq yüklənməsinin qarşısını almaq üçün rate limiting.

UDP harada tətbiq olunur

UDP gecikmə tolerantlığının paket itkisi tolerantlığından daha vacib olduğu ssenarilərdə əvəzolunmazdır. Protokolun mobil və veb inkişafda əsas tətbiq sahələrinə baxaq.

Audio və video streaming

UDP üzərində işləyən RTP və RTSP protokolları real vaxtda audio və video axınlarının ötürülməsi üçün istifadə olunur. WebRTC — brauzerlərdə və mobil tətbiqlərdə videozənglər üçün standart — media məlumatları üçün UDP-ni əsas nəqliyyat kimi, siqnalizasiya üçün isə TCP-ni istifadə edir. 30 fps videoda bir paketin itkisi istifadəçi üçün nəzərə çarpmır, təkrar göndərmə gecikməsindən fərqli olaraq, bu görüntünün nəzərə çarpan donmasına səbəb olur.

Onlayn oyunlar

Çoxoyunçulu atıcılar və MOBA düzgün sinxronizasiya üçün 50 ms-dən az gecikmə tələb edir. UDP oyunçuların mövqelərini, atışları və hadisələri TCP-dən daha sürətli ötürür, paket itkisi isə sadəcə nəzərə alınmır — növbəti yeniləmə 16–33 ms sonra gələcək. Məşhur oyun mühərrikləri, o cümlədən Unity və Unreal Engine, UDP-ni öz nəqliyyat təbəqələri vasitəsilə istifadə edir və kritik hadisələr üçün tətbiq səviyyəsində təsdiqləmələrlə etibarlılıq əlavə edir.

DNS və DHCP

DNS sorğuları 53-cü portda UDP-dən istifadə edir, çünki hər sorğu bir kiçik datagramdır (adətən 512 bayta qədər). Cavab gəlməzsə, müştəri sadəcə vaxt aşımından sonra sorğunu təkrarlayır, bu da üç mərhələli əl sıxması ilə TCP bağlantısı qurmaqdan daha sürətlidir. DHCP də UDP üzərində işləyir, çünki müştərinin hələ IP-ünvanı yoxdur və TCP bağlantısı qura bilməz, geniş yayım UDP paketləri isə lokal şəbəkədə DHCP serverini tapmağa imkan verir.

UDP və TCP-nin müqayisəsi

UDP və TCP arasında seçim sürət və etibarlılıq arasında kompromisdir. Hər protokol öz sinif tapşırıqları üçün optimaldır və onların fərqlərini anlamaq mobil tətbiqlərdə şəbəkə qarşılıqlı əlaqəsini layihələndirərkən düzgün arxitektura qərarları qəbul etməyə kömək edir.

MeyarUDPTCP
Əlaqənin qurulmasıTələb olunmurÜç mərhələli əl sıxması
Başlıq8 bayt20–60 bayt
Çatdırılma zəmanətiYoxBəli, təsdiqləmə ilə
SıralamaYoxBəli
Sıxlıq nəzarətiYoxBəli (AIMD, Slow Start)
TətbiqStreaming, oyunlar, DNSVeb, email, fayllar, API

Mobil layihələrdə tez-tez hibrid yanaşma istifadə olunur: TCP etibarlı sorğular üçün (avtorizasiya, məlumat yükləmə) və UDP media axınları üçün. QUIC — UDP üzərində işləyən müasir Google protokolu — UDP sürətini TCP etibarlılığı ilə birləşdirir və artıq HTTP/3-də istifadə olunur.

UDP kodu nümunəsi

Python-da müştərilərdən mesajları qəbul edən və cavab göndərən sadə UDP serverinə baxaq. Server 8888 portunu dinləyir və gələn datagramları sonsuz dövrədə emal edir.

python
import socket

server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server.bind(('0.0.0.0', 8888))
print('UDP serveri 8888 portunda işə salındı')

while True:
    data, addr = server.recvfrom(1024)
    print(f'{addr} ünvanından alındı: {data.decode()}')
    server.sendto(b'OK', addr)

Server UDP soketi yaradır, 8888 portuna bağlanır və gələn datagramları gözləyir. recvfrom məlumatları və müştərinin ünvanını qaytarır, bu da sendto vasitəsilə cavab verməyə imkan verir. TCP-dən fərqli olaraq, server bağlantı vəziyyətini saxlamır — hər datagram müstəqil emal olunur. Bu, UDP serverlərini miqyaslana bilən edir: bir server milyonlarla müştərini emal edə bilər, hər bir ayrıca bağlantı üçün yaddaş ayırmadan, bu DNS serverləri və oyun matçmeikinq sistemləri üçün vacibdir.

Mobil inkişafda UDP tez-tez yüksək səviyyəli kitabxanalar vasitəsilə istifadə olunur. Məsələn, iOS üçün CocoaAsyncSocket UDP soketlərini deleqatlar və GCD ilə asinxron hadisə emalı üçün təmin edir. Android-də DatagramSocket sinfi standart java.net kitabxanasına daxildir və əlavə asılılıqlar tələb etmir. Flutter üçün udp paketi mövcuddur ki, bu da nativ soketləri konfiqurasiya etmədən datagram göndərmək və qəbul etmək üçün sadə interfeys təmin edir.

Qeyd etmək vacibdir ki, bir çox mobil şəbəkələr və korporativ firevollər UDP trafikini bloklayır, xüsusən 1024-dən yuxarı portlarda. Tətbiqiniz UDP istifadə edirsə, TCP-yə fallback və ya WebRTC-nin etdiyi kimi STUN serverləri vasitəsilə protokolun əlçatanlığının yoxlanılması nəzərdə tutulmalıdır. iOS-da sistem freymvorku Network.framework NWConnection ilə həm TCP, həm də UDP-ni dəstəkləyir, əlçatanlığa əsasən avtomatik olaraq optimal protokolu seçir. Real vaxt tətbiqləri üçün həmçinin paket itkisi zamanı axın keyfiyyətini azaldan, hətta yüksək səhv səviyyəsi olan qeyri-sabit kanallarda belə davamlı oynatma təmin edən adaptiv bitrate tətbiq etmək tövsiyə olunur.

Tez-tez verilən suallar

UDP TCP-dən nə ilə fərqlənir?

UDP əlaqə qurmur və paketlərin çatdırılmasına zəmanət vermir, bu da onu TCP-dən daha sürətli edir. UDP başlığı — 8 bayt, TCP-də isə 20–60 bayt. UDP streaming və oyunlar üçün uyğundur, TCP — veb sorğular və fayl ötürülməsi üçün.

UDP-də datagram nədir?

Datagram — UDP başlığı (mənbə portu, təyinat portu, uzunluq, yoxlama cəmi) olan müstəqil məlumat paketidir. Hər datagram əvvəlkilərlə əlaqəsi olmadan müstəqil emal olunur. Datagram ölçüsü şəbəkənin MTU-su ilə məhdudlaşır və spesifikasiyaya görə 65507 bayta qədərdir.

UDP istifadə edərkən etibarlılıq necə təmin edilir?

UDP nəqliyyat səviyyəsində etibarlılığı təmin etmir — onu tətbiq həyata keçirir. Tərtibatçılar sıra nömrələri, yoxlama cəmləri, təkrar sorğular və səhv korreksiyası əlavə edir. FEC (Forward Error Correction) itirilmiş paketləri təkrar göndərmədən bərpa etməyə imkan verir.

UDP nə vaxt istifadə edilməməlidir?

UDP məlumat bütövlüyünün kritik olduğu ssenarilər üçün uyğun deyil: fayl ötürülməsi, bank əməliyyatları, REST-API. Bu hallarda TCP hər baytın düzgün qaydada çatacağına zəmanət verir. UDP həmçinin yüksək itki səviyyəsi olan qeyri-sabit kanallarda tövsiyə edilmir.

QUIC nədir və UDP ilə necə əlaqəlidir?

QUIC — UDP üzərində işləyən, Google tərəfindən hazırlanmış və IETF tərəfindən RFC 9000 kimi standartlaşdırılmış nəqliyyat protokoludur. O, UDP sürətini TCP etibarlılığı ilə birləşdirir, bloklamadan multipleksləşdirmə və daxili şifrələmə dəstəkləyir. HTTP/3 nəqliyyat səviyyəsi kimi QUIC-dən istifadə edir.

Nəticə

  • UDP — əlaqə qurulmadan işləyən, minimal gecikmə və 8 bayt başlıqlı protokol
  • Zəmanət vermir çatdırılma, paket sırası və ya təkrarlanmadan qorunma
  • Tətbiq olunur videozənglərdə, onlayn oyunlarda, DNS, DHCP və axın yayımında
  • UDP və ya TCP seçimi konkret ssenaridə sürət və etibarlılıq balansından asılıdır
  • Paket itkiləri tətbiq səviyyəsində FEC, təkrar sorğular və ya artıqlıqla kompensasiya olunur
  • QUIC UDP üzərində UDP sürətini TCP etibarlılığı ilə HTTP/3 protokolunda birləşdirir
  • Tərtibatçılar datagram ölçüsünü nəzarət etməli və şəbəkədə UDP bloklandıqda və ya filtrləndikdə TCP-yə fallback nəzərdə tutmalıdır

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun