Interneto valdymo pranešimų protokolas (ICMP) yra programa, naudojama kompiuterių tinkluose pranešant apie klaidas ir diagnostikos tikslais. ICMP yra interneto protokolo (IP) rinkinio dalis ir susideda iš iš anksto nustatytų pranešimų, skirtų įvairiems tikslams. Daugumos Interneto valdymo pranešimų protokolo aspektų galutiniai vartotojai nepastebi, tačiau kai kurių tinklo įrankių, tokių kaip traceroute ir ping, funkcionalumas priklauso nuo ICMP pranešimų.
Tiek interneto, tiek mažesnių kompiuterių tinklų pagrindas yra protokolų rinkinys, žinomas kaip IP Suite. Šie protokolai nurodo pranešimų, kuriais keičiamasi tarp tinklo įrenginių, formatus ir nustato taisykles, kaip tie pranešimai siunčiami ir gaunami. Protokolai taip pat yra sluoksniuoti, kiekvienas sluoksnis priklauso nuo po juo esančio. ICMP yra antrojo aukščiausio sluoksnio, interneto sluoksnio, dalis. Šis sluoksnis apima gerai žinomą interneto protokolą, atsakingą už atskirų duomenų grupių, vadinamų paketais, perdavimą viename ar daugiau tinklų.
ICMP naudojamas klaidų pranešimams arba diagnostikos informacijai siųsti tarp įrenginių arba pagrindinių kompiuterių, naudojant interneto protokolą. ICMP pranešimai yra iš anksto apibrėžti ir gali būti nurodyti pavadinimu arba tipo numeriu. Dauguma šių pranešimų yra skirti įvairių tipų klaidų pranešimams. Pavyzdžiui, kai nepavyksta pasiekti konkretaus pagrindinio kompiuterio, dažnai generuojamas ICMP pranešimas, nurodantis konkrečią problemą, neleidžiančią perduoti duomenų. Kitų tipų pranešimai siunčiami, jei paketai sugadinami arba jei tinkle esantis maršrutizatorius arba pagrindinis kompiuteris yra perkrautas.
Maksimalus paketo dydis nėra iš anksto nustatytas, jį padiktuoja konkrečios tinklo nuorodos maksimalus perdavimo vienetas (MTU). Skirtingos nuorodos gali turėti skirtingus MTU, tačiau paketas turi būti mažesnis už mažiausią MTU tam tikrame kelyje, kad būtų užbaigta kelionė. Technika, žinoma kaip „Path MTU Discovery“ (PMTUD), naudoja ICMP pranešimus, kad praneštų siuntėjui, kai paketai yra per dideli tam tikram kelio segmentui.
Susijęs protokolas, žinomas kaip ICMP Router Discovery Protocol (IRDP), gali palengvinti automatinį tinklo konfigūravimą jį palaikantiems pagrindiniams kompiuteriams. IRDP naudoja dviejų tipų interneto valdymo pranešimų protokolo pranešimus, kad praneštų ir atrastų netoliese esančius maršrutizatorius, ty pagrindinius kompiuterius, jungiančius du ar daugiau tinklų. Maršrutizatorius, palaikantis IRDP, periodiškai transliuos ICMP maršrutizatoriaus reklaminį pranešimą, pranešantį apie jo buvimą pagrindiniams kompiuteriams. Kompiuteriai taip pat gali siųsti raginimo pranešimą, kuriame prašoma visų netoliese esančių maršrutizatorių identifikuoti save.
Kai kurios populiarios tinklo paslaugos taip pat remiasi interneto valdymo pranešimų protokolu. Vienas įrankis, traceroute, naudoja ICMP pranešimą, sugeneruotą, kai baigiasi paketo galiojimo laikas arba jis viršijo „laiką gyventi“ (TTL). Nustačius tyčia mažą paketo TTL reikšmę, traceroute gaus pranešimą ICMP laikas viršytas iš paskutinio maršruto parinktuvo, kurį pasiekė paketas prieš pasibaigiant galiojimo laikui. Pakartojus šį procesą ir padidinus TTL reikšmę, teoriškai bus sukurtas visų kompiuterių, kuriais keliauja paketai, sąrašas.
Kitas įrankis, vadinamas ping, priklauso nuo ICMP Echo Request pranešimo, į kurį atsakoma ICMP Echo Reply pranešimu. Deja, ping taip pat gali būti piktnaudžiaujama per vadinamąją „smurfų ataką“, kai įsilaužėlis siunčia aido užklausas su suklastota siuntėjo informacija, į kurią vėliau atsako daugelis kitų mašinų. Tai gali perkrauti tinklą tiek, kad jokie teisėti paketai negali patekti, o tai vadinama paslaugų atsisakymu.