ICMP
(
anglicky
Internet Control Message Protocol
) je v
informatice
jeden z nejd?le?it?j?ich protokol?
po?ita?ovych siti
zalo?enych na rodin? protokol?
TCP/IP
(tedy protokolu, ktery pou?iva
Internet
). Protokol ICMP pou?ivaji
opera?ni systemy
v siti pro odesilani slu?ebnich informaci, nap?iklad chybovych zprav pro oznameni, ?e po?adovana slu?ba neni dostupna nebo ?e pot?ebny po?ita? nebo
router
neni dosa?itelny.
ICMP se svym u?elem li?i od
TCP
a
UDP
protokol? tim, ?e obvykle neni pou?ivan si?ovymi aplikacemi p?imo, nybr? je vygenerovan na zaklad? n?jake udalosti. Vyjimkou je nap?. nastroj
ping
, ktery posila ICMP zpravy ?
Echo Request
“ (a o?ekava p?ijem zpravy ?
Echo Reply
“), aby ur?il, zda je cilovy po?ita? dosa?itelny a jak dlouho paket?m trva, ne? se dostanou k cili a zp?t (tj. m??i
latenci
)
ICMP protokol definovany v
RFC 792
je sou?ast
sady protokol? internetu
. ICMP zpravy se typicky generuji p?i chybach v
IP
datagramech
(specifikovano v
RFC 1122
) nebo pro diagnosticke a
routovaci
u?ely.
Verze ICMP pro
IPv4
je znama jako
ICMPv4
.
IPv6
pou?iva obdobny protokol
ICMPv6
.
ICMP zpravy se konstruuji nad IP vrstvou; obvykle z IP datagramu, ktery ICMP reakci vyvolal. IP vrstva pat?i?nou ICMP zpravu zapouzd?i novou IP hlavi?kou (aby se ICMP zprava dostala zp?t k p?vodnimu odesilateli) a obvyklym zp?sobem vznikly datagram ode?le.
Nap?iklad ka?dy stroj (jako t?eba mezilehle
routery
), ktery p?eposila IP datagram, musi v IP hlavi?ce dekrementovat poli?ko
TTL
(?
time to live
“, ?zbyvajici doba ?ivota“) o jedni?ku. Jestli?e TTL klesne na 0 (a datagram neni ur?en stroji provad?jicimu dekrementaci), router p?ijaty paket zahodi a p?vodnimu odesilateli datagramu po?le ICMP zpravu ?
Time to live exceeded in transit
“ (?b?hem p?enosu vypr?ela doba ?ivota“).
Ka?da ICMP zprava je zapouzd?ena p?imo v jedinem IP datagramu, a tak (jako u
UDP
) ICMP nezaru?uje doru?eni.
A?koli ICMP zpravy jsou obsa?ene ve standardnich IP datagramech, ICMP zpravy se zpracovavaji odli?n? od normalniho zpracovani protokol? nad IP. V mnoha p?ipadech je nutne prozkoumat obsah ICMP zpravy a doru?it pat?i?nou chybovou zpravu aplikaci, ktera vyslala p?vodni IP paket, ktery zp?sobil odeslani ICMP zpravy k p?vodci.
Mnoho b??n? pou?ivanych si?ovych diagnostickych utilit je zalo?eno na ICMP zpravach. P?ikaz
traceroute
je implementovan odesilanim UDP datagram? se specialn? nastavenou ?ivotnosti v TTL poli?ku IP hlavi?ky a o?ekavanim ICMP odezvy ?
Time to live exceeded in transit
“ nebo ?
Destination unreachable
“ (?Cil nedosa?itelny“).
P?ibuzna utilita
ping
je implementovana pou?itim ICMP zprav ?Echo Request“ a ?Echo Reply“.
- Echo Request … po?adavek na odpov??, ka?dy prvek v siti pracujici na IP vrstv? by na tuto vyzvu m?l reagovat. ?asto to z r?znych d?vod? neni dodr?ovano.
- Echo Reply … odpov?? na po?adavek
- Destination Unreachable … informace o nedostupnosti cile, obsahuje dal?i up?es?ujici informaci
- Net Unreachable … nedostupna cilova si?, reakce sm?rova?e na po?adavek komunikovat se siti, do ktere nezna cestu
- Host Unreachable … nedostupny cilovy stroj
- Protocol Unreachable … informace o nemo?nosti pou?it vybrany protokol
- Port Unreachable … informace o nemo?nosti p?ipojit se na vybrany port
- Redirect … p?esm?rovani, pou?iva se p?edev?im pokud ze sit? vede k cili lep?i cesta ne? p?es vychozi branu. Stanice v?t?inou nepou?ivaji sm?rovaci protokoly a proto jsou informovany touto cestou. Funguje tak, ?e stanice po?le datagram sve, v?t?inou vychozi, bran?, ta jej p?epo?le spravnym sm?rem a zarove? informuje stanici o lep?i cest?.
- Redirect Datagram for the Network … informuje o p?esm?rovani datagram? do cele sit?
- Redirect Datagram for the Host … informuje o p?esm?rovani datagram? pro jediny stroj
- Time Exceeded … vypr?el ?asovy limit
- Time to Live exceeded in Transit … b?hem p?enosu do?lo ke sni?eni
TTL
(Time To Live) na 0, ani? byl datagram doru?en
- Fragment Reassembly Time Exceeded … nepoda?ilo se sestavit jednotlive fragmenty v ?asovem limitu (nap?. pokud dojde ke ztrat? ?asti datagram?)
Ostatni datagramy jsou pou?ivany spi?e vzacn?, n?kdy je pou?ivani ICMP znemo?n?no ?patnym nastavenim
firewallu
.