logo

Protokol UDP

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:

    Protokol transportnej vrstvy

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.

    Bez pripojenia

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é.

    Porty

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.

    Rýchlejší prenos

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.

    Potvrdzovací mechanizmus

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.

    Segmenty sa ovládajú nezávisle.

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.

    Bezstavový

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

Protokol 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:

    Číslo zdrojového portu:Je to 16-bitová informácia, ktorá identifikuje, ktorý port sa chystá odoslať paket.Číslo cieľového portu:Identifikuje, ktorý port prijme informácie. Ide o 16-bitové informácie, ktoré sa používajú na identifikáciu služby na úrovni aplikácie na cieľovom počítači.dĺžka:Je to 16-bitové pole, ktoré špecifikuje celú dĺžku paketu UDP, ktorý obsahuje aj hlavičku. Minimálna hodnota by bola 8 bajtov, pretože veľkosť hlavičky je 8 bajtov.Kontrolný súčet:Je to 16-bitové pole a je to voliteľné pole. Toto pole kontrolného súčtu kontroluje, či sú informácie presné alebo nie, pretože existuje možnosť, že informácie môžu byť počas prenosu poškodené. Je to nepovinné pole, čo znamená, že závisí od aplikácie, či chce zapísať kontrolný súčet alebo nie. Ak nechce zapísať kontrolný súčet, potom je všetkých 16 bitov nula; v opačnom prípade zapíše kontrolný súčet. V UDP sa pole kontrolného súčtu aplikuje na celý paket, t. j. hlavičku aj dátovú časť, zatiaľ čo v IP sa pole kontrolného súčtu aplikuje iba na pole hlavičky.

Koncepcia frontovania v protokole UDP

Protokol 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:

    Vstupný front:Pakety UDP používajú pre každý proces množinu frontov.Vstupný modul:Tento modul preberá užívateľský datagram z IP a potom nájde informácie z tabuľky riadiacich blokov toho istého portu. Ak nájde záznam v tabuľke riadiacich blokov s rovnakým portom ako užívateľský datagram, zaradí údaje do frontu.Modul riadiaceho bloku:Spravuje tabuľku riadiacich blokov.Tabuľka riadiacich blokov:Tabuľka riadiacich blokov obsahuje záznam otvorených portov.Výstupný modul:Výstupný modul vytvorí a odošle užívateľský datagram.

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.