Internet Control Message Protocol (ICMP) je pripomoček, ki se uporablja za poročanje o napakah in diagnostične namene v računalniških omrežjih. ICMP je del zbirke internetnih protokolov (IP) in je sestavljen iz vnaprej določenih sporočil z različnimi nameni. Večina vidikov protokola internetnih nadzornih sporočil ostane neopažena s strani končnih uporabnikov, vendar se nekaj omrežnih orodij, kot sta traceroute in ping, zanaša na sporočila ICMP za svojo funkcionalnost.
V središču tako interneta kot manjših računalniških omrežij je zbirka protokolov, znanih kot IP Suite. Ti protokoli določajo oblike sporočil, ki se izmenjujejo med omrežnimi napravami, in določajo pravila za pošiljanje in prejemanje teh sporočil. Protokoli so tudi večplastni, pri čemer se vsak sloj zanaša na enega pod njim. ICMP je del druge najvišje plasti, internetne plasti. Ta plast vključuje dobro znani internetni protokol, ki je odgovoren za prenos posameznih skupin podatkov, imenovanih paketi, po enem ali več omrežjih.
ICMP se uporablja za pošiljanje sporočil o napakah ali diagnostičnih informacij med napravami ali gostitelji z uporabo internetnega protokola. Sporočila ICMP so vnaprej določena in se lahko nanje sklicujejo bodisi po imenu bodisi po številki tipa. Večina teh sporočil je za različne vrste poročanja o napakah. Na primer, ko določenega gostitelja ni mogoče doseči, se pogosto ustvari sporočilo ICMP, ki označuje posebno težavo, ki preprečuje dostavo podatkov. Druge vrste sporočil se pošljejo, če se paketi poškodujejo ali če je usmerjevalnik ali gostitelj v omrežju preobremenjen.
Največja velikost paketa ni vnaprej določena, temveč jo narekuje največja enota prenosa (MTU) določene omrežne povezave. Različne povezave imajo lahko različne MTU, vendar mora biti paket manjši od najmanjšega MTU na dani poti, da lahko zaključi svojo pot. Tehnika, znana kot Path MTU Discovery (PMTUD), uporablja sporočila ICMP za obveščanje pošiljatelja, ko so paketi preveliki za določen segment poti.
Povezani protokol, znan kot ICMP Router Discovery Protocol (IRDP), lahko olajša samodejno konfiguracijo omrežja za gostitelje, ki ga podpirajo. IRDP uporablja dve vrsti sporočil protokola Internet Control Message Protocol za objavo in odkrivanje bližnjih usmerjevalnikov, tj. gostiteljev, ki povezujejo dve ali več omrežij. Usmerjevalnik, ki podpira IRDP, bo gostiteljem občasno oddajal oglasno sporočilo usmerjevalnika ICMP, ki oznanja svojo prisotnost. Gostitelji lahko pošljejo tudi pozivno sporočilo, v katerem zahtevajo, da se vsi bližnji usmerjevalniki identificirajo.
Nekateri priljubljeni omrežni pripomočki se zanašajo tudi na protokol za internetno nadzorno sporočilo. Eno orodje, traceroute, uporablja sporočilo ICMP, ustvarjeno, ko je paket potekel ali presegel svoj »čas življenja« (TTL). Z nastavitvijo namerno nizke vrednosti TTL za paket, bo traceroute prejel sporočilo ICMP Time Exceeded od zadnjega usmerjevalnika, ki ga je paket dosegel pred iztekom. Ponavljanje tega postopka in povečanje vrednosti TTL bo teoretično ustvarilo seznam vseh gostiteljskih paketov, skozi katere potujejo.
Drugo orodje, imenovano ping, se opira na sporočilo ICMP Echo Request, na katerega se odzove s sporočilom ICMP Echo Reply. Žal se lahko ping zlorabi tudi v tako imenovanem “napadu smurfov”, ko heker pošlje odmevne zahteve s ponarejenimi podatki o pošiljatelju, na katere nato odgovorijo številni drugi stroji. To lahko preobremeni omrežje do točke, ko noben legitimen paket ne more priti skozi, situacija, znana kot zavrnitev storitve.