ICMP

ICMP () je v informatice jeden z nejdůležitějších protokolů počítačových sítí založených na rodině protokolů TCP/IP (tedy protokolu, který používá Internet). Protokol ICMP používají operační systémy v síti pro odesílání služebních informací, například chybových zpráv pro oznámení, že požadovaná služba není dostupná nebo že potřebný počítač nebo router není dosažitelný.

ICMP se svým účelem liší od TCP a UDP protokolů tím, že obvykle není používán síťovými aplikacemi přímo, nýbrž je vygenerován na základě nějaké události. Výjimkou je např. nástroj ping, který posílá ICMP zprávy „Echo Request“ (a očekává příjem zprávy „Echo Reply“), aby určil, zda je cílový počítač dosažitelný a jak dlouho paketům trvá, než se dostanou k cíli a zpět (tj. měří latenci)

Technický přehled 
ICMP protokol definovaný v RFC 792 je součást sady protokolů internetu. ICMP zprávy se typicky generují při chybách v IP datagramech (specifikováno v RFC 1122) nebo pro diagnostické a routovací účely.

Verze ICMP pro IPv4 je známá jako ICMPv4. IPv6 používá obdobný protokol ICMPv6.

ICMP zprávy se konstruují nad  IP vrstvou; obvykle z IP datagramu, který ICMP reakci vyvolal. IP vrstva patřičnou ICMP zprávu zapouzdří novou IP hlavičkou (aby se ICMP zpráva dostala zpět k původnímu odesílateli) a obvyklým způsobem vzniklý datagram odešle.

Například každý stroj (jako třeba mezilehlé routery), který přeposílá IP datagram, musí v IP hlavičce dekrementovat políčko TTL („time to live“, „zbývající doba života“) o jedničku. Jestliže TTL klesne na 0 (a datagram není určen stroji provádějícímu dekrementaci), router přijatý paket zahodí a původnímu odesilateli datagramu pošle ICMP zprávu „Time to live exceeded in transit“ („během přenosu vypršela doba života“).

Každá ICMP zpráva je zapouzdřená přímo v jediném IP datagramu, a tak (jako u UDP) ICMP nezaručuje doručení.

Ačkoli ICMP zprávy jsou obsažené ve standardních IP datagramech, ICMP zprávy se zpracovávají odlišně od normálního zpracování protokolů nad IP. V mnoha případech je nutné prozkoumat obsah ICMP zprávy a doručit patřičnou chybovou zprávu aplikaci, která vyslala původní IP paket, který způsobil odeslání ICMP zprávy k původci.

Mnoho běžně používaných síťových diagnostických utilit je založeno na ICMP zprávách. Příkaz traceroute je implementován odesíláním UDP datagramů se speciálně nastavenou životností v TTL políčku IP hlavičky a očekáváním ICMP odezvy „Time to live exceeded in transit“ nebo „Destination unreachable“ („Cíl nedosažitelný“).
Příbuzná utilita ping je implementována použitím ICMP zpráv „Echo Request“ a „Echo Reply“.

Nejpoužívanější ICMP datagramy 

 Echo Request … požadavek na odpověď, každý prvek v síti pracující na IP vrstvě by na tuto výzvu měl reagovat. Často to z různých důvodů není dodržováno.
 Echo Reply … odpověď na požadavek
 Destination Unreachable … informace o nedostupnosti cíle, obsahuje další upřesňující informaci
 Net Unreachable … nedostupná cílová síť, reakce směrovače na požadavek komunikovat se sítí, do které nezná cestu
 Host Unreachable … nedostupný cílový stroj
 Protocol Unreachable … informace o nemožnosti použít vybraný protokol
 Port Unreachable … informace o nemožnosti připojit se na vybraný port
 Redirect … přesměrování, používá se především pokud ze sítě vede k cíli lepší cesta než přes výchozí bránu. Stanice většinou nepoužívají směrovací protokoly a proto jsou informovány touto cestou. Funguje tak, že stanice pošle datagram své, většinou výchozí, bráně, ta jej přepošle správným směrem a zároveň informuje stanici o lepší cestě.
 Redirect Datagram for the Network … informuje o přesměrování datagramů do celé sítě
 Redirect Datagram for the Host … informuje o přesměrování datagramů pro jediný stroj
 Time Exceeded … vypršel časový limit
 Time to Live exceeded in Transit … během přenosu došlo ke snížení TTL (Time To Live) na 0, aniž byl datagram doručen
 Fragment Reassembly Time Exceeded … nepodařilo se sestavit jednotlivé fragmenty v časovém limitu (např. pokud dojde ke ztrátě části datagramů)

Ostatní datagramy jsou používány spíše vzácně, někdy je používání ICMP znemožněno špatným nastavením firewallu.

Související články 
 ICMPv6
 IRDP (ICMP Router Discovery Protocol)

Externí odkazy 
 
 
 ICMP parametry

Internetové protokoly
Počítačové sítě