UDP
(
User Datagram Protocol
) je jeden ze
sady protokol? internetu
. O protokolu UDP ?ikame, ?e nedava zaruky na
datagramy
, ktere p?ena?i mezi
po?ita?i
v
siti
. N?kdy je ozna?ovan jako
nespolehlivy
, ale spravn?ji by m?lo byt
bez zaruky doru?eni
, co? je hlavni rozdil proti protokolu
TCP
.
Protokol UDP je vhodny pro nasazeni, ktere vy?aduje jednoduchost, mala re?ie nebo pro aplikace pracujici systemem otazka-odpov?? (nap?.
DNS
, sdileni soubor? v
LAN
). Jeho bezstavovost je u?ite?na pro servery, ktere obsluhuji mnoho klient? nebo pro nasazeni, kde se po?ita se ztratami datagram? a neni vhodne, aby se ztracel ?as novym odesilanim (starych) nedoru?enych zprav (nap?.
VoIP
,
online hry
).
UDP protokol
je protokol
transportni vrstvy
orientovany na zpravy a byl uveden v
RFC 768
.
V sad? protokol?
Internetu
poskytuje UDP velmi jednoduche rozhrani mezi si?ovou vrstvou pod a aplika?ni vrstvou nad. UDP neposkytuje ?adne zaruky doru?eni a odesilatelova UDP vrstva si u jednou u? odeslanych zprav neudr?uje ?adny stav. UDP pouze p?idava kontrolni sou?ty a schopnost rozt?i?ovat UDP pakety mezi vice aplikaci b??icich na stejnem po?ita?i.
+
|
bity 0 - 15
|
16 - 31
|
0
|
zdrojovy port
|
cilovy port
|
32
|
delka
|
kontrolni sou?et
|
64
|
data
|
UDP hlavi?ka se sklada jen ze 4 poli?ek, z nich? 2 jsou volitelna. Poli?ka zdrojoveho a ciloveho portu jsou ?estnactibitova a identifikuji odesilajici a p?ijimajici proces. Proto?e UDP je bezestavovy a odesilatel nemusi vy?adovat odpov??, zdrojovy port je volitelny. Pokud neni pou?it, zdrojovy port by m?l byt nastaven na nulu. Po ?islech port? nasleduje povinna delka UDP paketu v?etn? dat, v bytech. Minimalni hodnota ?ini 8
bajt?
. Zbyvajici poli?ko hlavi?ky tvo?i ?estnactibitovy
kontrolni sou?et
pokryvajici hlavi?ku i data. Tento sou?et je mo?ne vynechat, ale v praxi se tem?? v?dy pou?iva.
Kv?li chyb?jicim zarukam se UDP aplikace musi smi?it s n?jakymi ztratami, chybami nebo duplikacemi. N?ktere aplikace (jako t?eba
TFTP
) mohou podle pot?eby p?idavat jednoduchy mechanismus spolehlivosti do aplika?ni vrstvy. Aplikace pou?ivajici UDP nej?ast?ji opravny mechanismus nepot?ebuji, a dokonce jim mohou byt zdr?ovany. Pokud aplikace vy?aduje vysoky stupe? spolehlivosti, m??e se misto n?j pou?it TCP nebo opravne kody.
Proto?e UDP postrada mechanismus p?edchazeni a regulace zahlceni sit?, je nutne nadbyte?ne UDP datagramy na
routerech
zahazovat. Jako ?aste?ne ?e?eni tohoto problemu je navrhovan protokol
DCCP
(
Datagram Congestion Control Protocol
).
A?koliv je celkove mno?stvi UDP provozu na typicke siti jen v ?adu procent, je UDP pou?ivan ?adou kli?ovych slu?eb v?etn?
DNS
,
SNMP
,
DHCP
a
RIP
.
UDP pou?iva porty, aby bylo mo?ne rozli?it v po?ita?i jednotlive aplikace a spravn? jim doru?it data, i kdy? jich komunikuje v po?ita?i vice. Port je 16bitova hodnota, ktera umo??uje pou?ivat porty z rozsahu 0-65535. Port 0 je rezervovan, ale je mo?ne ho pou?it, pokud odesilajici proces neo?ekava ?adnou odpov??.
Porty 1-1023 jsou tzv. dob?e zname (
anglicky
well known ports
) a na
Unixech
a
odvozenych
opera?nich systemech jsou pot?eba prava u?ivatele root, aby je bylo mo?ne pou?it. Porty 1024-49151 jsou registrovane porty. Porty 49152-65535 jsou pou?ivany pro komunikaci klienta se serverem.
TCP je spojov? orientovany protokol co? znamena, ?e k navazani "end-to-end" komunikace pot?ebuje, aby prob?hl mezi klientem a serverem tzv. "handshaking". Pote, co bylo spojeni navazano, data mohou byt posilana ob?ma sm?ry. Charakteristicke vlastnosti TCP protokolu jsou:
- spolehlivost ? TCP pou?iva potvrzovani o p?ijeti, op?tovne posilani a p?ekro?eni ?asoveho limitu. Pokud se jakakoliv data ztrati po cest?, server si je op?tovn? vy?ada. U TCP nejsou ?adna ztracena data, jen pokud n?kolikrat po sob? vypr?i ?asovy limit, tak je cele spojeni ukon?eno.
- zachovani po?adi ? Pokud pakety dorazi ve ?patnem po?adi, TCP vrstva p?ijemce se postara o to, aby se n?ktera data pozdr?ela a finaln? je p?edala spravn? se?azena.
- vy??i re?ie ? TCP protokol pot?ebuje nap?. t?i pakety pro otev?eni spojeni, umo??uje to v?ak zaru?it spolehlivost celeho spojeni.
UDP je jednodu??i protokol zalo?eny na odesilani nezavislych zprav. Charakteristika protokolu:
- bez zaruky ? Protokol neumo??uje ov??it, jestli data do?la zamy?lenemu p?ijemci. Datagram se m??e po cest? ztratit. UDP nema ?adne potvrzovani, p?eposilani ani ?asove limity. V p?ipad? pot?eby musi uvedene problemy ?e?it vy??i vrstva.
- nezachovava po?adi ? P?i odeslani dvou zprav jednomu p?ijemci nelze p?edvidat, v jakem po?adi budou doru?eny.
- jednoduchost ? Ni??i re?ie ne? u TCP (neni zde ?azeni, ?adne sledovani spojeni atd.).