{"id":252,"date":"2020-04-05T22:40:56","date_gmt":"2020-04-05T20:40:56","guid":{"rendered":"http:\/\/tech.sosthe.sk\/?p=252"},"modified":"2020-04-06T00:37:56","modified_gmt":"2020-04-05T22:37:56","slug":"icmp","status":"publish","type":"post","link":"http:\/\/tech.sosthe.sk\/index.php\/2020\/04\/05\/icmp\/","title":{"rendered":"ICMP"},"content":{"rendered":"<p><strong>Internet Control Message Protocol<\/strong>, skr\u00e1tene protokol <strong>ICMP<\/strong>, je jeden z najd\u00f4le\u017eitej\u0161\u00edch protokolov internetu. Pou\u017e\u00edvaj\u00fa ho opera\u010dn\u00e9 syst\u00e9my po\u010d\u00edta\u010dov v sieti na odosielanie chybov\u00fdch spr\u00e1v, napr\u00edklad na ozn\u00e1menie, \u017ee po\u017eadovan\u00e1 slu\u017eba nie je dostupn\u00e1 alebo \u017ee potrebn\u00fd po\u010d\u00edta\u010d alebo router nie je dosiahnute\u013en\u00fd. ICMP sa svoj\u00edm \u00fa\u010delom l\u00ed\u0161i od TCP a UDP protokolov t\u00fdm, \u017ee sa obvykle nepou\u017e\u00edva sie\u0165ov\u00fdmi aplik\u00e1ciami priamo. V\u00fdnimkou je napr\u00edklad n\u00e1stroj ping, ktor\u00fd posiela ICMP spr\u00e1vy \u201eEcho Request\u201c (a o\u010dak\u00e1va pr\u00edjem spr\u00e1vy \u201eEcho Reply\u201c), aby ur\u010dil, \u010di je cie\u013eov\u00fd po\u010d\u00edta\u010d dosiahnute\u013en\u00fd a ako dlho paketom trv\u00e1, ne\u017e sa dostan\u00fa k cie\u013eu a sp\u00e4\u0165.<\/p>\n<p>Protokol ICMP je definovan\u00fd v <em>RFC 792<\/em>.<\/p>\n<p>ICMP spr\u00e1vy sa typicky generuj\u00fa pri chyb\u00e1ch v IP datagramoch alebo na diagnostick\u00e9 a routovacie \u00fa\u010dely. ICMP spr\u00e1vy sa kon\u0161truuj\u00fa nad IP vrstvou, obvykle z IP datagramu, ktor\u00fd ICMP reakciu vyvolal. IP vrstva patri\u010dn\u00fa ICMP spr\u00e1vu zapuzdr\u00ed novou IP hlavi\u010dkou (aby sa ICMP spr\u00e1va dostala sp\u00e4\u0165 k p\u00f4vodn\u00e9mu odosielate\u013eovi) a obvykl\u00fdm sp\u00f4sobom vzniknut\u00fd datagram odo\u0161le. Ka\u017ed\u00fd stroj (ako napr. medzi\u013eahl\u00e9 routery), ktor\u00fd preposiela IP datagram, mus\u00ed v IP hlavi\u010dke zn\u00ed\u017ei\u0165 hodnotu pol\u00ed\u010dka TTL (\u201etime to live\u201c, \u201ezost\u00e1vaj\u00faca doba \u017eivota\u201c) o \u010d\u00edslo 1. Ak TTL klesne na 0 (a datagram nie je ur\u010den\u00fd stroju, ktor\u00fd zn\u00ed\u017eenie vykon\u00e1va), router prijat\u00fd paket zahod\u00ed a p\u00f4vodn\u00e9mu odosielate\u013eovi datagramu po\u0161le ICMP spr\u00e1vu \u201eTime to live exceeded in transit\u201c (\u201epo\u010das prenosu vypr\u0161ala doba \u017eivota\u201c). Ka\u017ed\u00e1 ICMP spr\u00e1va je zapuzdren\u00e1 priamo v jedinom IP datagrame, a tak (ako u UDP) ICMP nezaru\u010duje doru\u010denie.<br \/>\nHoci ICMP spr\u00e1vy s\u00fa obsiahnut\u00e9 v \u0161tandardn\u00fdch IP datagramoch, ICMP spr\u00e1vy sa spracov\u00e1vaj\u00fa odli\u0161ne od norm\u00e1lneho spracovania protokolov nad IP. V mnoh\u00fdch pr\u00edpadoch je nutn\u00e9 presk\u00fama\u0165 obsah ICMP spr\u00e1vy a doru\u010di\u0165 patri\u010dn\u00fa chybov\u00fa spr\u00e1vu aplik\u00e1cii, ktor\u00e1 vyslala p\u00f4vodn\u00fd IP paket, ktor\u00fd sp\u00f4sobil odoslanie ICMP spr\u00e1vy k p\u00f4vodcovi. Ve\u013ea be\u017ene pou\u017e\u00edvan\u00fdch sie\u0165ov\u00fdch diagnostick\u00fdch util\u00edt je zalo\u017een\u00fdch na ICMP spr\u00e1vach. Pr\u00edkaz traceroute je implementovan\u00fd odosielan\u00edm UDP datagramov so \u0161peci\u00e1lnou nastavenou \u017eivotnos\u0165ou v TTL pol\u00ed\u010dku IP hlavi\u010dky a o\u010dak\u00e1van\u00edm ICMP odozvy \u201eTime to live exceeded in transit\u201c alebo \u201eDestination unreachable\u201c (\u201eCie\u013e nedosiahnute\u013en\u00fd\u201c). Pr\u00edbuzn\u00e1 utilita ping je implementovan\u00e1 pou\u017eit\u00edm ICMP spr\u00e1v \u201eEcho Request\u201c a \u201eEcho Reply\u201c.<\/p>\n<p><strong><span style=\"text-decoration: underline;\">Najpou\u017e\u00edvanej\u0161ie ICMP datagramy:<\/span><\/strong><\/p>\n<p><em><strong>Echo Request<\/strong><\/em> &#8211; po\u017eiadavka na odpove\u010f; ka\u017ed\u00fd prvok v sieti pracuj\u00faci na IP vrstve by na t\u00fato v\u00fdzvu mal reagova\u0165. \u010casto to z r\u00f4znych d\u00f4vodov nie je dodr\u017eiavan\u00e9.<br \/>\n<strong><em>Echo Reply<\/em><\/strong> &#8211; odpove\u010f na po\u017eiadavku<br \/>\n<em><strong>Destination Unreachable<\/strong><\/em> &#8211; inform\u00e1cie o nedostupnosti cie\u013ea, obsahuje \u010fal\u0161iu upres\u0148uj\u00facu inform\u00e1ciu<br \/>\n<em><strong>Net Unreachable<\/strong><\/em> &#8211; nedostupn\u00e1 cie\u013eov\u00e1 sie\u0165, reakcia smerova\u010da na po\u017eiadavku komunikova\u0165 so sie\u0165ou, do ktorej nepozn\u00e1 cestu<br \/>\n<em><strong>Host Unreachable<\/strong><\/em> &#8211; nedostupn\u00fd cie\u013eov\u00fd stroj<br \/>\n<em><strong>Protocol unreachable<\/strong><\/em> &#8211; inform\u00e1cie o nemo\u017enosti pou\u017ei\u0165 vybran\u00fd protokol<br \/>\n<em><strong>Port Unreachable<\/strong><\/em> &#8211; inform\u00e1cie o nemo\u017enosti pripoji\u0165 sa na vybran\u00fd port<br \/>\n<em><strong>Redirect<\/strong><\/em> &#8211; presmerovanie; pou\u017e\u00edva sa predov\u0161etk\u00fdm pokia\u013e zo siete vedie k cie\u013eu lep\u0161ia cesta ako cez defaultn\u00fa br\u00e1nu. Stanice v\u00e4\u010d\u0161inou nepou\u017e\u00edvaj\u00fa smerovacie protokoly a preto s\u00fa informovan\u00e9 touto cestou. Funguje tak, \u017ee stanica po\u0161le datagram svojej, v\u00e4\u010d\u0161inou defaultnej, br\u00e1ny, t\u00e1 ho prepo\u0161le spr\u00e1vnym smerom a z\u00e1rove\u0148 informuje stanicu o lep\u0161ej ceste.<br \/>\n<em><strong>Redirect Datagram for the Network<\/strong><\/em> &#8211; informuje o presmerovan\u00ed datagramov do celej siete<br \/>\n<em><strong>Redirect Datagram for the Host<\/strong><\/em> &#8211; informuje o presmerovan\u00ed datagramov pre jedin\u00fd stroj<br \/>\n<em><strong>Time Exceeded<\/strong><\/em> &#8211; vypr\u0161al \u010dasov\u00fd limit<br \/>\n<em><strong>Time to Live exceeded in Transit<\/strong><\/em> &#8211; po\u010das prenosu do\u0161lo ku zn\u00ed\u017eeniu TTL na 0 bez toho, aby bol doru\u010den\u00fd<br \/>\n<em><strong>Fragment Reassembly Time Exceeded<\/strong><\/em> &#8211; nepodarilo sa zostavi\u0165 jednotliv\u00e9 fragmenty v \u010dasovom limite (napr\u00edklad pokia\u013e d\u00f4jde ku strate \u010dast\u00ed datagramov)<br \/>\nOstatn\u00e9 datagramy s\u00fa pou\u017e\u00edvan\u00e9 zriedka, niekedy je pou\u017e\u00edvanie ICMP znemo\u017enen\u00e9 zl\u00fdm nastaven\u00edm firewallu.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Internet Control Message Protocol, skr\u00e1tene protokol ICMP, je jeden z najd\u00f4le\u017eitej\u0161\u00edch protokolov internetu. Pou\u017e\u00edvaj\u00fa ho opera\u010dn\u00e9 syst\u00e9my po\u010d\u00edta\u010dov v sieti na odosielanie chybov\u00fdch spr\u00e1v, napr\u00edklad&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"_links":{"self":[{"href":"http:\/\/tech.sosthe.sk\/index.php\/wp-json\/wp\/v2\/posts\/252"}],"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=252"}],"version-history":[{"count":1,"href":"http:\/\/tech.sosthe.sk\/index.php\/wp-json\/wp\/v2\/posts\/252\/revisions"}],"predecessor-version":[{"id":253,"href":"http:\/\/tech.sosthe.sk\/index.php\/wp-json\/wp\/v2\/posts\/252\/revisions\/253"}],"wp:attachment":[{"href":"http:\/\/tech.sosthe.sk\/index.php\/wp-json\/wp\/v2\/media?parent=252"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/tech.sosthe.sk\/index.php\/wp-json\/wp\/v2\/categories?post=252"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/tech.sosthe.sk\/index.php\/wp-json\/wp\/v2\/tags?post=252"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}