UDP: шта је то, протокол без успостављања везе и како ради

Аутор: IT Sectr Објављено: 2026-03-06 Време читања: 8 мин

UDP (User Datagram Protocol) — протокол за пренос података без успостављања везе, који ради преко IP-а и обезбеђује минимално кашњење при слању датаграма. За разлику од TCP-а, UDP не гарантује испоруку, редослед пакета или заштиту од дуплирања. Према подацима IETF RFC 768 (2024), UDP обрађује више од 40% светског интернет саобраћаја захваљујући видео позивима, стримингу и DNS упитима.

Главне тачке

  • UDP — протокол без успостављања везе, који шаље датаграме без потврде испоруке
  • Минимално кашњење се постиже одсуством handshake-а, контроле загушења и поновних слања
  • Примењује се у видео позивима, онлајн играма, DNS-у, DHCP-у и стримовању
  • Датаграм UDP садржи заглавље од само 8 бајтова насупрот 20–60 бајтова код TCP-а
  • Губици пакета се компензују на нивоу апликације путем FEC-а, ретрансмисије или冗余ности података

Шта је UDP?

UDP (User Datagram Protocol) — један од кључних протокола транспортног слоја TCP/IP модела, који је развио Дејвид Рид 1980. године. Он пружа минимални механизам за пренос података: апликација шаље датаграм, а протокол не прати да ли је стигао до примаоца.

Заглавље UDP-а се састоји од само четири поља: изворни порт, одредишни порт, дужина и контролна сума. Свако поље заузима 2 бајта, тако да је укупна величина заглавља 8 бајтова. За поређење, TCP заглавље без опција заузима 20 бајтова, а са опцијама — до 60 бајтова.

Протокол не подржава фрагментацију на свом нивоу — ако датаграм премашује MTU (Maximum Transmission Unit), фрагментира се на IP нивоу. При губитку једног фрагмента, цео датаграм се одбацује, јер UDP не може да захтева поновно слање појединачних фрагмената. Програмери морају да контролишу величину датаграма — за мобилне мреже MTU је често 1400 бајтова, тако да максимална величина не би требало да прелази ову вредност.

Како ради UDP

Апликација која користи UDP креира сокет типа SOCK_DGRAM, наводи порт и одредишну IP адресу и шаље датаграм. Протокол додаје минимално заглавље и прослеђује пакет IP слоју. Прималац ослушкује свој порт и издваја податке из пристиглих датаграма.

UDP не врши контролу загушења — апликација може да шаље датаграме максималном брзином коју мрежа подржава. То може довести до преоптерећења канала, али у сценаријима реалног времена таква агресивност је оправдана: за видео позив је важнији ток података са могућим губицима него заустављање преноса.

python
import socket

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

У примеру се креира сокет SOCK_DGRAM за UDP. Метода sendto шаље датаграм без успостављања везе — довољно је знати IP и порт примаоца. Метода recvfrom на страни сервера враћа и податке и адресу пошиљаоца за одговор. UDP сокети на мобилним платформама се конфигуришу слично, али захтевају додатне дозволе: на iOS-у је потребно додати NSAppTransportSecurity за нешифроване UDP везе, а на Android-у — дозволу INTERNET у манифесту.

Предности и недостаци UDP-а

Избор UDP-а је оправдан у сценаријима где је брзина критичнија од поузданости. Протокол не троши време на успостављање везе, потврде и поновна слања — то даје минимално кашњење, али захтева од програмера самостално руковање губицима.

ПредностиНедостаци
Мало кашњење — без handshake-аНема гаранције испоруке
Мање заглавље — 8 бајтоваНема контроле загушења
Подршка за broadcast и multicastМогући дупликати пакета
Независност датаграма — без редоваВеличина датаграма ограничена MTU-ом

У мобилним апликацијама UDP се примењује кроз фрејмворке попут WebRTC-а, који додају преко UDP-а контролу губитака, адаптивни битрејт и jitter бафер. Ово даје предности брзине без недостатака сировог протокола.

Још један важан аспект UDP-а је одсуство контроле загушења. У TCP-у, алгоритми Slow Start и Congestion Avoidance смањују брзину преноса при губитку пакета како не би преоптеретили мрежу. UDP нема такве механизме, па програмери морају да имплементирају сопствене стратегије контроле брзине — на пример, адаптивни битрејт у видео позивима или rate limiting на серверима игара ради спречавања прекомерног оптерећења мрежног канала.

Где се UDP примењује

UDP је незаменљив у сценаријима где је толеранција на кашњење важнија од толеранције на губитак пакета. Размотримо главне области примене протокола у мобилном и веб развоју.

Стримовање звука и видеа

Протоколи RTP и RTSP, који раде преко UDP-а, користе се за пренос аудио и видео токова у реалном времену. WebRTC — стандард за видео позиве у прегледачима и мобилним апликацијама — користи UDP као главни транспорт за медијске податке, а TCP за сигнализацију. Губитак једног пакета у видеу од 30 fps је неприметан за корисника, за разлику од кашњења поновног слања које изазива приметно замрзавање слике.

Онлајн игре

Вишекорисничке пуцачине и MOBA захтевају кашњење мање од 50 ms за правилну синхронизацију. UDP преноси позиције играча, пуцњеве и догађаје брже од TCP-а, а губитак пакета се једноставно игнорише — следеће ажурирање ће стићи за 16–33 ms. Популарни гејм енџини, укључујући Unity и Unreal Engine, користе UDP кроз сопствене транспортне слојеве са додавањем поузданости за критичне догађаје путем потврда на нивоу апликације.

DNS и DHCP

DNS упити користе UDP на порту 53, јер је сваки упит један мали датаграм (обично до 512 бајтова). Ако одговор не стигне, клијент једноставно понавља упит након тајм-аута, што је брже од успостављања TCP везе са трофазним руковањем. DHCP такође ради преко UDP-а, јер клијент још увек нема IP адресу и не може да успостави TCP везу, а broadcast UDP пакети омогућавају проналажење DHCP сервера у локалној мрежи.

Поређење UDP-а и TCP-а

Избор између UDP-а и TCP-а је компромис између брзине и поузданости. Сваки протокол је оптималан за своју класу задатака, а разумевање њихових разлика помаже у доношењу правих архитектонских одлука при пројектовању мрежне интеракције у мобилним апликацијама.

КритеријумUDPTCP
Успостављање везеНије потребноТрофазно руковање
Заглавље8 бајтова20–60 бајтова
Гаранција испорукеНеДа, са потврдом
ПоређењеНеДа
Контрола загушењаНеДа (AIMD, Slow Start)
ПрименаСтриминг, игре, DNSВеб, имејл, фајлови, API

У мобилним пројектима се често користи хибридни приступ: TCP за поуздане захтеве (ауторизација, учитавање података) и UDP за медијске токове. QUIC — савремени Google протокол који ради преко UDP-а — комбинује брзину UDP-а са поузданошћу TCP-а и већ се користи у HTTP/3.

Пример UDP кода

Размотримо једноставан UDP сервер у Python-у који прима поруке од клијената и шаље одговоре. Сервер ослушкује порт 8888 и обрађује пристигле датаграме у бесконачној петљи.

python
import socket

server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server.bind(('0.0.0.0', 8888))
print('UDP сервер је покренут на порту 8888')

while True:
    data, addr = server.recvfrom(1024)
    print(f'Примљено од {addr}: {data.decode()}')
    server.sendto(b'OK', addr)

Сервер креира UDP сокет, везује се за порт 8888 и чека пристигле датаграме. recvfrom враћа податке и адресу клијента, што омогућава одговор путем sendto. За разлику од TCP-а, сервер не чува стање везе — сваки датаграм се обрађује независно. То чини UDP сервере скалабилним: један сервер може да обрађује милионе клијената без издвајања меморије за сваку појединачну везу, што је важно за DNS сервере и системе за мечмејкинг у играма.

У мобилном развоју, UDP се често користи преко библиотека високог нивоа. На пример, CocoaAsyncSocket за iOS пружа UDP сокетове са делегатима и GCD-ом за асинхрону обраду догађаја. На Android-у класа DatagramSocket је део стандардне библиотеке java.net и не захтева додатне зависности. За Flutter постоји пакет udp, који пружа једноставан интерфејс за слање и пријем датаграма без конфигурисања нативних сокетова.

Важно је напоменути да многе мобилне мреже и корпоративни фајерволови блокирају UDP саобраћај, посебно на портовима изнад 1024. Ако ваша апликација користи UDP, потребно је предвидети fallback на TCP или проверу доступности протокола путем STUN сервера, као што то ради WebRTC. На iOS-у системски фрејмворк Network.framework са NWConnection подржава и TCP и UDP, аутоматски бирајући оптимални протокол на основу доступности. За апликације реалног времена такође се препоручује имплементација адаптивног битрејта, који смањује квалитет тока при губитку пакета, обезбеђујући континуитет репродукције чак и на нестабилним каналима са високим нивоом грешака.

Често постављана питања

По чему се UDP разликује од TCP-а?

UDP не успоставља везу и не гарантује испоруку пакета, што га чини бржим од TCP-а. UDP заглавље — 8 бајтова насупрот 20–60 бајтова код TCP-а. UDP је погодан за стриминг и игре, TCP — за веб захтеве и пренос датотека.

Шта је датаграм у UDP-у?

Датаграм — самостални пакет података са UDP заглављем (изворни порт, одредишни порт, дужина, контролна сума). Сваки датаграм се обрађује независно, без везе са претходним. Величина датаграма је ограничена MTU-ом мреже и по спецификацији — до 65507 бајтова.

Како се обезбеђује поузданост при коришћењу UDP-а?

UDP не обезбеђује поузданост на транспортном нивоу — њу имплементира апликација. Програмери додају редне бројеве, контролне суме, поновне захтеве и корекцију грешака. FEC (Forward Error Correction) омогућава опоравак изгубљених пакета без поновног слања.

Када не треба користити UDP?

UDP није погодан за сценарије где је интегритет података критичан: пренос датотека, банкарске трансакције, REST-API. У овим случајевима TCP гарантује да ће сваки бајт стићи у правилном редоследу. UDP се такође не препоручује на нестабилним каналима са високим нивоом губитака.

Шта је QUIC и како је повезан са UDP-ом?

QUIC — транспортни протокол који ради преко UDP-а, развијен од стране Google-а и стандардизован од IETF-а као RFC 9000. Он комбинује брзину UDP-а са поузданошћу TCP-а, подржава мултиплексирање без блокирања и уграђено шифровање. HTTP/3 користи QUIC као транспортни слој.

Закључак

  • UDP — протокол без успостављања везе са минималним кашњењем и заглављем од 8 бајтова
  • Не гарантује испоруку, редослед пакета или заштиту од дуплирања
  • Примењује се у видео позивима, онлајн играма, DNS-у, DHCP-у и стримовању
  • Избор UDP или TCP зависи од баланса брзине и поузданости у конкретном сценарију
  • Губици пакета се компензују на нивоу апликације кроз FEC, поновне захтеве или冗余ност
  • QUIC преко UDP-а комбинује брзину UDP-а са поузданошћу TCP-а у протоколу HTTP/3
  • Програмери морају да контролишу величину датаграма и предвиде fallback на TCP при блокирању или филтрирању UDP-а у мрежи

Развићемо мобилну апликацију под кључ

IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту

Прочитајте такође