{"id":303,"date":"2020-04-05T23:45:22","date_gmt":"2020-04-05T21:45:22","guid":{"rendered":"http:\/\/tech.sosthe.sk\/?p=303"},"modified":"2020-04-06T16:50:21","modified_gmt":"2020-04-06T14:50:21","slug":"3-3-transportny-protokol-udp","status":"publish","type":"post","link":"http:\/\/tech.sosthe.sk\/index.php\/2020\/04\/05\/3-3-transportny-protokol-udp\/","title":{"rendered":"3.3.\u2002Transportn\u00fd protokol UDP"},"content":{"rendered":"<p><strong>UDP: user datagram protocol<\/strong>,\u00a0<a href=\"http:\/\/www.ietf.org\/rfc\/rfc768.txt\">RFC 768<\/a><\/p>\n<p>Protokol UDP prid\u00e1va k mo\u017enostiam ni\u017e\u0161\u00edch vrstiev okrem adres\u00e1cie soketov cez \u010d\u00edsla portov, u\u017e iba kontroln\u00fd s\u00fa\u010det. Hlavi\u010dka UDP segmentu obsahuje zdrojov\u00fd a cie\u013eov\u00fd port, inform\u00e1ciu o po\u010dte bajtov segmentu a 16 bitov\u00fd kontroln\u00fd s\u00fa\u010det.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-304 size-full aligncenter\" src=\"http:\/\/tech.sosthe.sk\/wp-content\/uploads\/2020\/04\/fig03_p01.png\" alt=\"\" width=\"440\" height=\"117\" srcset=\"http:\/\/tech.sosthe.sk\/wp-content\/uploads\/2020\/04\/fig03_p01.png 440w, http:\/\/tech.sosthe.sk\/wp-content\/uploads\/2020\/04\/fig03_p01-300x80.png 300w\" sizes=\"(max-width: 440px) 100vw, 440px\" \/><\/p>\n<p>Nap\u00ed\u0161me si z\u00e1kladn\u00e9 vlastnosti UDP protokolu:<\/p>\n<ul>\n<li><strong>nepodporuje spo\u013eahliv\u00fd prenos d\u00e1t<\/strong>\n<ul>\n<li>Protokoly ni\u017e\u0161\u00edch vrstiev nezabezpe\u010duj\u00fa spo\u013eahlivos\u0165 doru\u010denia ka\u017ed\u00e9ho segmentu na cie\u013eov\u00fd po\u010d\u00edta\u010d. To znamen\u00e1, \u017ee UDP segmenty sa m\u00f4\u017eu strati\u0165 (ich pakety zahod\u00ed niektor\u00fd router na ceste kv\u00f4li zahlteniu, alebo cie\u013eov\u00e1 stanica kv\u00f4li tomu, \u017ee nest\u00edha dan\u00fd segment spracova\u0165) alebo by\u0165 doru\u010den\u00e9 v inom porad\u00ed ako boli vysielan\u00e9. Protokol UDP tieto vlastnosti zachov\u00e1va v plnom rozsahu. Aplika\u010dnej vrstve odovzd\u00e1va spr\u00e1vy (d\u00e1ta) tak ako prich\u00e1dzaj\u00fa. Z toho vypl\u00fdva, \u017ee ak aplika\u010dn\u00e1 vrstva vyu\u017e\u00edva protokol UDP, mus\u00ed po\u010d\u00edta\u0165 s t\u00fdm, \u017ee niektor\u00e9 \u010dasti odosielanej spr\u00e1vy sa nemusia dosta\u0165 k cie\u013eov\u00e9mu procesu. Sie\u0165ov\u00e9 aplik\u00e1cie sa teda musia bu\u010f vedie\u0165 zotavi\u0165 zo str\u00e1t prenesen\u00fdch d\u00e1t, alebo si spr\u00e1vu prenesen\u00fdch d\u00e1t realizova\u0165 sami.<\/li>\n<\/ul>\n<\/li>\n<li><strong>bez spojenia<\/strong>\n<ul>\n<li>Protokol neobsahuje \u017eiadnu inicializ\u00e1ciu ani uzatv\u00e1ranie spojenia. To znamen\u00e1, \u017ee nie je potrebn\u00e9 ani uchov\u00e1vanie stavu spojenia v koncov\u00fdch staniciach. D\u00e1ta s\u00fa odosielan\u00e9 k cie\u013eu bez toho, aby bolo vy\u017eadovan\u00e9 potvrdenie prijatia spr\u00e1v. Dokonca m\u00f4\u017ee \u00eds\u0165 iba o jednosmern\u00e9 vysielanie bez akejko\u013evek sp\u00e4tnej reakcie. Typick\u00fdm pr\u00edkladom, kde sa to vyu\u017e\u00edva je streamovanie r\u00e1dia a telev\u00edzi\u00ed (z\u00e1ujemcovia pozrite si\u00a0<a href=\"http:\/\/en.wikipedia.org\/wiki\/Real-time_Transport_Protocol\">RTP protokol<\/a>, ktor\u00fd dokonca umo\u017e\u0148uje, \u017ee raz odoslan\u00e9 d\u00e1ta m\u00f4\u017eu d\u00f4js\u0165 k viacer\u00fdm pr\u00edjemcom \u2013 tzv. multicast).<\/li>\n<\/ul>\n<\/li>\n<li><strong>\u017eiadna kontrola toku d\u00e1t ani zahltenia siete<\/strong>\n<ul>\n<li>UDP protokol umo\u017e\u0148uje odosiela\u0165 tak r\u00fdchlo, ako umo\u017e\u0148uje najbli\u017e\u0161ie sie\u0165ov\u00e9 pripojenie, bez oh\u013eadu na to, \u010di je na ceste k cie\u013eu u\u017e\u0161ie miesto, kde sa str\u00e1caj\u00fa pakety. Od\u013eah\u010duje to spr\u00e1vu odosielania, ale m\u00f4\u017ee to nepriaznivo ovplyvni\u0165 sie\u0165 a sp\u00f4sobi\u0165 zahltenie pr\u00edjemcu alebo routrov na ceste.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>3.3.1\u2002 Kontroln\u00fd s\u00fa\u010det<\/h3>\n<p>Kontroln\u00fd s\u00fa\u010det sa pou\u017e\u00edva na odhalenie ch\u00fdb v d\u00e1tach sp\u00f4soben\u00fdch prenosom. Chyba m\u00f4\u017ee nasta\u0165 \u013eubovo\u013en\u00fdm negat\u00edvnym vplyvom pri prenose (siln\u00e9 magnetick\u00e9 pole, ne\u010distota v optickom vl\u00e1kne a pod.). Chyba sa obvykle prejav\u00ed zmenou niektor\u00fdch bitov segmentu na opa\u010dn\u00e9.<\/p>\n<p>Na vytvorenie kontroln\u00e9ho s\u00fa\u010dtu vezmeme obsah spr\u00e1vy plus \u010d\u00edsla portov a rozdel\u00edme na k\u00fasky ve\u013ekosti 16 bitov. T\u00fdm n\u00e1m vznikne mnoho 16 bitov\u00fdch \u010d\u00edsiel, ktor\u00e9 v\u0161etky s\u010d\u00edtame, pri\u010dom ignorujeme prenesen\u00e9 bity mimo 16 bitov\u00fd rozsah.<\/p>\n<p>Napr\u00edklad, ak m\u00e1me urobi\u0165 kontroln\u00fd s\u00fa\u010det z d\u00e1t 11100110 01100110 01010101 01010101 00001111 00001111, potrebujeme s\u010d\u00edta\u0165 tri 16 bitov\u00e9 \u010d\u00edsla. Najprv s\u010d\u00edtame prv\u00e9 dve a k v\u00fdsledku pripo\u010d\u00edtame tretie.<\/p>\n<pre class=\"wp-block-preformatted\"> 1110011001100110 \r\n 0101010101010101\r\n ================\r\n10011101110111011\r\n\r\n0011101110111011\r\n0000111100001111\r\n================\r\n0100101011001010\r\n<\/pre>\n<p>Nakoniec e\u0161te vytvor\u00edme z v\u00fdsledku inverzn\u00e9 \u010d\u00edslo, t.j. zmen\u00edme vo v\u00fdsledku v\u0161etky 1 na 0 a v\u0161etky 0 na 1. Takto vzniknut\u00e9 \u010d\u00edslo prehl\u00e1sime za kontroln\u00fd s\u00fa\u010det a vlo\u017e\u00edme ho do hlavi\u010dky UDP segmentu. Pr\u00edjemca segmentu urob\u00ed op\u00e4\u0165 s\u00fa\u010det doru\u010den\u00e9ho segmentu rovnak\u00fdm sp\u00f4sobom a nakoniec ho pripo\u010d\u00edta ku kontroln\u00e9mu s\u00fa\u010dtu. Ak vo v\u00fdsledku sa nach\u00e1dza aspo\u0148 jedna nula, segment obsahuje chybu. Inak predpoklad\u00e1me, \u017ee segment chybu neobsahuje, aj ke\u010f to aj tak nevieme na 100%.<\/p>\n<pre class=\"wp-block-preformatted\">          s\u00fa\u010det: 0100101011001010\r\nkontroln\u00fd s\u00fa\u010det: 1011010100110101\r\n                 ================\r\n                 1111111111111111<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>UDP: user datagram protocol,\u00a0RFC 768 Protokol UDP prid\u00e1va k mo\u017enostiam ni\u017e\u0161\u00edch vrstiev okrem adres\u00e1cie soketov cez \u010d\u00edsla portov, u\u017e iba kontroln\u00fd s\u00fa\u010det. Hlavi\u010dka UDP segmentu&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[],"_links":{"self":[{"href":"http:\/\/tech.sosthe.sk\/index.php\/wp-json\/wp\/v2\/posts\/303"}],"collection":[{"href":"http:\/\/tech.sosthe.sk\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/tech.sosthe.sk\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/tech.sosthe.sk\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/tech.sosthe.sk\/index.php\/wp-json\/wp\/v2\/comments?post=303"}],"version-history":[{"count":2,"href":"http:\/\/tech.sosthe.sk\/index.php\/wp-json\/wp\/v2\/posts\/303\/revisions"}],"predecessor-version":[{"id":468,"href":"http:\/\/tech.sosthe.sk\/index.php\/wp-json\/wp\/v2\/posts\/303\/revisions\/468"}],"wp:attachment":[{"href":"http:\/\/tech.sosthe.sk\/index.php\/wp-json\/wp\/v2\/media?parent=303"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/tech.sosthe.sk\/index.php\/wp-json\/wp\/v2\/categories?post=303"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/tech.sosthe.sk\/index.php\/wp-json\/wp\/v2\/tags?post=303"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}