V počítačových sieťach UDP znamená User Datagram Protocol. David P. Reed vyvinul protokol UDP v roku 1980. Je definovaný v RFC 768 a je súčasťou protokolu TCP/IP, takže ide o štandardný protokol cez internet. Protokol UDP umožňuje počítačovým aplikáciám odosielať správy vo forme datagramov z jedného stroja do druhého cez sieť internetového protokolu (IP). UDP je alternatívny komunikačný protokol k protokolu TCP (transmission control protocol). Podobne ako TCP, aj UDP poskytuje súbor pravidiel, ktoré riadia spôsob výmeny údajov cez internet. UDP funguje tak, že dáta zapuzdrí do paketu a paketu poskytne svoju vlastnú hlavičku. Potom je tento UDP paket zapuzdrený do IP paketu a odoslaný na miesto určenia. Obaja TCP a UDP protokoly odosielajú údaje cez sieť internetového protokolu, preto je známy aj ako TCP/IP a UDP/IP. Medzi týmito dvoma protokolmi je veľa rozdielov. UDP umožňuje procesu spracovať komunikáciu, zatiaľ čo TCP poskytuje komunikáciu medzi hostiteľmi. Keďže UDP posiela správy vo forme datagramov, považuje sa to za najvhodnejší spôsob komunikácie. TCP odosiela jednotlivé pakety, takže ide o spoľahlivé transportné médium. Ďalším rozdielom je, že TCP je protokol orientovaný na pripojenie, zatiaľ čo UDP je protokol bez pripojenia, pretože na prenos údajov nevyžaduje žiadny virtuálny okruh.
UDP tiež poskytuje odlišné číslo portu na rozlíšenie rôznych požiadaviek používateľov a tiež poskytuje možnosť kontrolného súčtu na overenie, či prišli alebo neprišli úplné údaje; vrstva IP tieto dve služby neposkytuje.
Vlastnosti protokolu UDP
Nasledujú vlastnosti protokolu UDP:
UDP je najjednoduchší komunikačný protokol transportnej vrstvy. Obsahuje minimálne množstvo komunikačných mechanizmov. Považuje sa za nespoľahlivý protokol a je založený na doručovacích službách s maximálnym úsilím. UDP neposkytuje žiadny potvrdzovací mechanizmus, čo znamená, že príjemca nepošle potvrdenie pre prijatý paket a odosielateľ tiež nečaká na potvrdenie pre paket, ktorý odoslal.
UDP je protokol bez spojenia, pretože nevytvára virtuálnu cestu na prenos údajov. Nevyužíva virtuálnu cestu, takže pakety sú odosielané rôznymi cestami medzi odosielateľom a príjemcom, čo vedie k strate paketov alebo prijímaniu mimo poradia.
Objednané doručenie údajov nie je garantované.
V prípade UDP nie je zaručené, že datagramy odoslané v určitom poradí budú prijaté v rovnakom poradí, keďže datagramy nie sú očíslované.
Protokol UDP používa rôzne čísla portov, aby mohli byť údaje odoslané do správneho cieľa. Čísla portov sú definované medzi 0 a 1023.
UDP umožňuje rýchlejší prenos, keďže ide o protokol bez spojenia, t. j. na prenos údajov nie je potrebná žiadna virtuálna cesta. Existuje však šanca, že sa jednotlivý paket stratí, čo ovplyvňuje kvalitu prenosu. Na druhej strane, ak sa paket stratí v TCP spojení, bude tento paket odoslaný znova, takže je zaručené doručenie dátových paketov.
UDP má akýkoľvek potvrdzovací mechanizmus, t. j. medzi odosielateľom UDP a prijímačom UDP nedochádza k žiadnemu nadviazaniu spojenia. Ak je správa odoslaná v TCP, potom príjemca potvrdí, že som pripravený, potom odosielateľ odošle dáta. V prípade TCP dochádza k handshakingu medzi odosielateľom a príjemcom, zatiaľ čo v UDP nedochádza k žiadnemu handshakingu medzi odosielateľom a príjemcom.
S každým segmentom UDP sa zaobchádza jednotlivo ako s ostatnými, pretože každý segment má na dosiahnutie cieľa inú cestu. Segmenty UDP sa môžu stratiť alebo doručiť mimo poradia, aby sa dostali do cieľa, pretože medzi odosielateľom a prijímačom nie je vytvorené žiadne spojenie.
Je to bezstavový protokol, čo znamená, že odosielateľ nedostane potvrdenie o odoslanom pakete.
Prečo požadujeme protokol UDP?
Keďže vieme, že UDP je nespoľahlivý protokol, v niektorých prípadoch stále vyžadujeme protokol UDP. UDP sa používa tam, kde pakety vyžadujú veľkú šírku pásma spolu so skutočnými údajmi. Napríklad pri streamovaní videa je potvrdzovanie tisícok paketov problematické a plytvá veľkou šírkou pásma. V prípade streamovania videa strata niektorých paketov nemôže spôsobiť problém a možno ju tiež ignorovať.
Formát hlavičky UDP
V UDP je veľkosť hlavičky 8 bajtov a veľkosť paketu je až 65 535 bajtov. Ale táto veľkosť paketu nie je možná, pretože dáta musia byť zapuzdrené v IP datagrame a IP paket, veľkosť hlavičky môže byť 20 bajtov; preto by maximum UDP bolo 65 535 mínus 20. Veľkosť dát, ktoré môže UDP paket preniesť, by bola 65 535 mínus 28, teda 8 bajtov pre hlavičku paketu UDP a 20 bajtov pre hlavičku IP.
Hlavička UDP obsahuje štyri polia:
Koncepcia frontovania v protokole UDP
V protokole UDP sa čísla používajú na rozlíšenie rôznych procesov na serveri a klientovi. Vieme, že UDP poskytuje proces na spracovanie komunikácie. Klient generuje procesy, ktoré potrebujú služby, zatiaľ čo server generuje procesy, ktoré poskytujú služby. Fronty sú dostupné pre oba procesy, t.j. dva fronty pre každý proces. Prvý front je prichádzajúci front, ktorý prijíma správy, a druhý je odchádzajúci front, ktorý správy odosiela. Fronta funguje, keď je proces spustený. Ak sa proces ukončí, zničí sa aj front.
UDP spracováva odosielanie a prijímanie paketov UDP pomocou nasledujúcich komponentov:
Viaceré procesy chcú využívať služby UDP. UDP multiplexuje a demultiplexuje procesy, takže viaceré procesy môžu bežať na jednom hostiteľovi.
Obmedzenia
- Poskytuje nespoľahlivú službu doručenia pripojenia. Neposkytuje žiadne služby IP okrem toho, že poskytuje komunikáciu medzi jednotlivými procesmi.
- Správa UDP sa môže stratiť, oneskoriť, duplikovať alebo môže byť mimo prevádzky.
- Neposkytuje spoľahlivú prepravnú doručovaciu službu. Neposkytuje žiadne potvrdzovanie ani mechanizmus riadenia toku. Do určitej miery však poskytuje kontrolu chýb.
Výhody
- Produkuje minimálny počet režijných nákladov.