{"id":281,"date":"2020-04-05T23:20:14","date_gmt":"2020-04-05T21:20:14","guid":{"rendered":"http:\/\/tech.sosthe.sk\/?p=281"},"modified":"2020-04-06T16:26:06","modified_gmt":"2020-04-06T14:26:06","slug":"2-2-komunikacia-s-transportnou-vrstvou","status":"publish","type":"post","link":"http:\/\/tech.sosthe.sk\/index.php\/2020\/04\/05\/2-2-komunikacia-s-transportnou-vrstvou\/","title":{"rendered":"2.2.\u2002Komunik\u00e1cia s transportnou vrstvou"},"content":{"rendered":"<p>Ka\u017ed\u00fd sie\u0165ov\u00fd program sa spust\u00ed ako proces, pr\u00edpadne mno\u017eina procesov (z\u00e1le\u017e\u00ed na program\u00e1torovi). Pokia\u013e chc\u00fa dva procesy komunikova\u0165 v r\u00e1mci jedn\u00e9ho po\u010d\u00edta\u010da, m\u00f4\u017eu vyu\u017ei\u0165 medziprocesov\u00fa komunik\u00e1ciu, ktor\u00fa poskytuje opera\u010dn\u00fd syst\u00e9m. Procesy na r\u00f4znych po\u010d\u00edta\u010doch komunikuj\u00fa prostredn\u00edctvom\u00a0<strong>spr\u00e1v<\/strong>\u00a0niektor\u00fdm z aplika\u010dn\u00fdch protokolov.<\/p>\n<p>Bez oh\u013eadu na typ architekt\u00fary aplik\u00e1cie je pri sie\u0165ovej komunik\u00e1cii medzi dvoma procesmi v\u017edy jeden z procesov klientsky a jeden serverov\u00fd.\u00a0<strong>Klientsky proces<\/strong>\u00a0je ten, ktor\u00fd inicializuje komunik\u00e1ciu a\u00a0<strong>serverov\u00fd proces<\/strong>\u00a0je ten, ktor\u00fd \u010dak\u00e1, \u017ee sa na\u0148 niekto napoj\u00ed.<\/p>\n<p>Procesy posielaj\u00fa a prij\u00edmaj\u00fa spr\u00e1vy od procesu na druhej strane komunik\u00e1cie prostredn\u00edctvom\u00a0<strong>soketov<\/strong>. Soket je rozhranie (API), ktor\u00e9 poskytuje komunik\u00e1ciu sie\u0165ovej aplik\u00e1cie s niektor\u00fdm protokolom transportnej vrstvy. Samotn\u00e1 transportn\u00e1 vrstva je oby\u010dajne u\u017e riaden\u00e1 opera\u010dn\u00fdm syst\u00e9mom. Soket poskytuje posielanie a prij\u00edmanie spr\u00e1v syst\u00e9mom producent-konzument. Okrem toho umo\u017e\u0148uje nastavenie niektor\u00fdch parametrov protokolov ni\u017e\u0161\u00edch vrstiev.<\/p>\n<p>Na to, aby dva procesy na r\u00f4znych staniciach mohli komunikova\u0165, mus\u00ed klientsky proces vedie\u0165\u00a0<strong>identifik\u00e1tor<\/strong>\u00a0presne ur\u010duj\u00faci, kde sa nach\u00e1dza serverov\u00fd proces, aby s n\u00edm mohol inicializova\u0165 komunik\u00e1ciu. Identifik\u00e1tor sa sklad\u00e1 z\u00a0<strong>IP adresy<\/strong>\u00a0stanice, na ktorej be\u017e\u00ed serverov\u00fd proces a\u00a0<strong>\u010d\u00edsla portu<\/strong>, ktor\u00fd jednozna\u010dne identifikuje proces v r\u00e1mci tejto stanice. Netreba zab\u00fada\u0165, \u017ee na jednom po\u010d\u00edta\u010di m\u00f4\u017ee by\u0165 spusten\u00fdch nieko\u013eko serverov\u00fdch procesov a musia sa preto ich identifik\u00e1tory od seba l\u00ed\u0161i\u0165.<\/p>\n<p>\u010c\u00edslo portu si m\u00f4\u017ee serverov\u00fd proces (lep\u0161ie povedan\u00e9 jeho program\u00e1tor) vybra\u0165, ak\u00e9 chce. Dobre zn\u00e1me slu\u017eby u\u017e maj\u00fa v\u0161eobecne uznan\u00e9 \u010d\u00edsla portov (<a href=\"http:\/\/www.iana.org\/assignments\/port-numbers\">well known ports<\/a>). Napr\u00edklad HTTP server obvykle po\u010d\u00fava na porte 80, FTP server na porte 21 a podobne.<\/p>\n<p>Jednotliv\u00e9 webov\u00e9 aplik\u00e1cie maj\u00fa r\u00f4zne n\u00e1roky na transportn\u00fa vrstvu a sie\u0165ov\u00e9 pripojenie. Niektor\u00e9 nie s\u00fa\u00a0<em>citliv\u00e9 na stratu niektor\u00fdch d\u00e1t<\/em>\u00a0(napr. VoIP, streamovan\u00e9 r\u00e1dio a telev\u00edzia), in\u00e9 vy\u017eaduj\u00fa stopercentne spo\u013eahliv\u00e9 d\u00e1tov\u00e9 prenosy. Na druhej strane, r\u00f4zne multimedi\u00e1lne prenosy obrazu a zvuku vy\u017eaduj\u00fa nejak\u00fa\u00a0<em>minim\u00e1lnu \u0161\u00edrku p\u00e1sma<\/em>, aby ich kvalita bola dostato\u010dn\u00e1. In\u00e9 aplik\u00e1cie nie s\u00fa a\u017e tak\u00e9 citliv\u00e9 na \u0161\u00edrku p\u00e1sma a dok\u00e1\u017eu sa prisp\u00f4sobi\u0165 aktu\u00e1lnym mo\u017enostiam. Real-time aplik\u00e1cie ur\u010den\u00e9 na komunik\u00e1ciu tie\u017e vy\u017eaduj\u00fa\u00a0<em>mal\u00e9 zdr\u017eanie paketov<\/em>.<\/p>\n<p>Charakter internetu (prep\u00ednanie riaden\u00e9 paketmi) neumo\u017e\u0148uje \u017eiadnemu transportn\u00e9mu protokolu zabezpe\u010di\u0165 minim\u00e1lnu \u0161\u00edrku p\u00e1sma ani mal\u00e9 zdr\u017eanie paketov, tak\u017ee multimedi\u00e1lne real-time prenosy by sme mali uskuto\u010d\u0148ova\u0165 na \u201enevy\u0165a\u017een\u00fdch spojeniach s dostato\u010dnou \u0161\u00edrkou p\u00e1sma\u201c, kde je zdr\u017eanie mal\u00e9.<\/p>\n<p>V\u0161etky aplika\u010dn\u00e9 protokoly, ktor\u00e9 o\u010dak\u00e1vaj\u00fa spo\u013eahliv\u00fd prenos v\u0161etk\u00fdch spr\u00e1v v spr\u00e1vnom porad\u00ed, vyu\u017e\u00edvaj\u00fa transportn\u00fd protokol TCP. Protokol UDP je od\u013eah\u010den\u00fd protokol nepodporuj\u00faci spo\u013eahliv\u00fd prenos d\u00e1t (navy\u0161e ani v spr\u00e1vnom porad\u00ed). Ak sa odosielaj\u00faca stanica nemus\u00ed stara\u0165 o to, \u010di v\u0161etky d\u00e1ta spo\u013eahlivo do\u0161li ku klientom, je vhodnej\u0161ie pou\u017ei\u0165 UDP protokol, ktor\u00fd od\u013eah\u010d\u00ed odosielaj\u00facu stanicu aj sie\u0165ov\u00fa komunik\u00e1ciu. Typicky s\u00fa to pr\u00e1ve spom\u00ednan\u00e9 streamovan\u00e9 r\u00e1dia a telev\u00edzia \u010di telefonovanie cez internet. Niektor\u00e9 multimedi\u00e1lne programy v\u0161ak preferuj\u00fa TCP protokoly hlavne pre ich schopnos\u0165 kontroly zahltenia siete. Vyu\u017e\u00edvaj\u00fa ho hlavne arch\u00edvy multim\u00e9di\u00ed (napr. YouTube). UDP protokol je tie\u017e vhodn\u00fd, ak je potrebn\u00e9 odosiela\u0165 toto\u017en\u00e9 spr\u00e1vy viacer\u00fdm staniciam s\u00fa\u010dasne.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ka\u017ed\u00fd sie\u0165ov\u00fd program sa spust\u00ed ako proces, pr\u00edpadne mno\u017eina procesov (z\u00e1le\u017e\u00ed na program\u00e1torovi). Pokia\u013e chc\u00fa dva procesy komunikova\u0165 v r\u00e1mci jedn\u00e9ho po\u010d\u00edta\u010da, m\u00f4\u017eu vyu\u017ei\u0165 medziprocesov\u00fa&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"_links":{"self":[{"href":"http:\/\/tech.sosthe.sk\/index.php\/wp-json\/wp\/v2\/posts\/281"}],"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=281"}],"version-history":[{"count":1,"href":"http:\/\/tech.sosthe.sk\/index.php\/wp-json\/wp\/v2\/posts\/281\/revisions"}],"predecessor-version":[{"id":282,"href":"http:\/\/tech.sosthe.sk\/index.php\/wp-json\/wp\/v2\/posts\/281\/revisions\/282"}],"wp:attachment":[{"href":"http:\/\/tech.sosthe.sk\/index.php\/wp-json\/wp\/v2\/media?parent=281"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/tech.sosthe.sk\/index.php\/wp-json\/wp\/v2\/categories?post=281"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/tech.sosthe.sk\/index.php\/wp-json\/wp\/v2\/tags?post=281"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}