ICMP (Internet Control Message Protocol) is een netwerkprotocol voor fout- en statusmeldingen. Het werkt op hetzelfde niveau als IP maar is geen transportprotocol — het verstuurt geen gebruikersdata.
Elk IP-pakket heeft een TTL (Time To Live) — een getal dat bij elke router met 1 verlaagd wordt. Bereikt TTL nul, dan gooit de router het pakket weg en stuurt een ICMP "Time exceeded" terug. Zo worden pakketjes die rondblijven lopen vanzelf gestopt.
Firewalls blokkeren soms ICMP. Dit voorkomt ping, maar maakt ook probleemoplossing moeilijker. Blokkeer alleen ICMP-types die je echt niet wilt, niet alles.