Internet Control Message Protocol (ICMP) is een netwerkprotocol voor Internet Protocol (IP) -netwerken. ICMP verzendt controle-informatie voor de status van het netwerk zelf in plaats van toepassingsgegevens. Een IP-netwerk vereist ICMP om goed te kunnen functioneren.
ICMP-berichten zijn een specifiek soort IP-bericht dat verschilt van TCP en UDP.
Het bekendste voorbeeld van ICMP-berichten in de praktijk is het ping-hulpprogramma, dat ICMP gebruikt om externe hosts te testen op reactievermogen en de totale round-trip-tijd van de sondeberichten te meten.
ICMP ondersteunt ook andere hulpprogramma's zoals traceroute die tussenliggende routeringsapparaten ("hops") identificeren op het pad tussen een bepaalde bron en bestemming.
ICMP versus ICMPv6
De oorspronkelijke definitie van ICMP ondersteunde Internet Protocol versie 4 (IPv4) netwerken. IPv6 bevat een herziene vorm van het protocol dat conventioneel ICMPv6 wordt genoemd om het te onderscheiden van het oorspronkelijke ICMP (soms ICMPv4 genoemd).
ICMP-berichttypen en berichtindelingen
ICMP-berichten bevatten gegevens die essentieel zijn voor de werking en het beheer van een computernetwerk. Het protocol rapporteert over omstandigheden zoals niet-reagerende apparaten, transmissiefouten en problemen met netwerkcongestie.
Net als andere protocollen in de IP-familie definieert ICMP een berichtkop. De koptekst bevat vier velden in de volgende volgorde:
- Type (8 bits)
- Code (8 bits)
- Checksum (16 bits)
- ICMP-gegevens (32 bits)
ICMP definieert een lijst met specifieke berichttypen en kent aan elk daarvan een uniek nummer toe.
Zoals te zien is in de onderstaande tabel, bieden ICMPv4 en ICMPv6 enkele veelgebruikte berichttypen (maar vaak met verschillende nummers) en ook enkele berichten die uniek zijn voor elk bericht. (De gebruikelijke berichttypen kunnen ook enigszins verschillen in hun gedrag tussen IP-versies).
| v4 # | v6 # | Type | Omschrijving |
|---|---|---|---|
| 0 | 129 | Echo antwoord | Bericht verzonden als reactie op een echo-aanvraag (zie hieronder) |
| 3 | 1 | Bestemming onbereikbaar | Verzonden als reactie op het feit dat een IP-bericht om verschillende redenen niet kan worden afgeleverd. |
| 4 | - | Source Quench | Een apparaat kan dit bericht terugsturen naar een afzender die sneller inkomend verkeer genereert dan dat het kan worden verwerkt. (Vervangen door andere methoden.) |
| 5 | 137 | Omleiden bericht | Routeringsapparaten kunnen deze methode genereren als ze een wijziging in de aangevraagde route detecteren voor een IP-bericht. |
| 8 | 128 | Echo-aanvraag | Bericht verzonden door ping-hulpprogramma's om de reactietijd van een doelapparaat te controleren |
| 11 | 3 | Tijd overschreden | Routers hebben dit bericht gegenereerd wanneer de binnenkomende gegevens de limiet voor "hop" -telling hebben bereikt. Gebruikt door traceroute. |
| 12 | - | Parameter probleem | Gegenereerd wanneer een apparaat beschadigde of ontbrekende gegevens in een binnenkomend IP-bericht detecteert. |
| 13, 14 | - | Tijdstempel (verzoek, antwoord) | Ontworpen om tijdklokken tussen twee apparaten te synchroniseren via IPv4, (vervangen door andere betrouwbaardere methoden.) |
| - | 2 | Pakket te groot | Routers genereren dit bericht wanneer een bericht wordt ontvangen dat niet naar zijn bestemming kan worden doorgestuurd vanwege overschrijding van een lengtelimiet. |
Het protocol vult de coderings- en ICMP-gegevensvelden afhankelijk van het berichttype dat is gekozen om aanvullende informatie te delen. Een bericht Bestemming onbereikbaar kan bijvoorbeeld veel verschillende codewaarden hebben, afhankelijk van de aard van de fout.




