EMZETT.
Login

ICMP

Kurz: Internet Control Message Protocol — dient nicht der Nutzdatenübertragung, sondern dem Melden von Netzwerkfehlern und Statusinformationen zwischen Geräten.

Genauer: Das bekannteste Beispiel ist Ping, das ICMP-Echo-Request/-Reply nutzt, um zu prüfen, ob ein Host erreichbar ist. Weitere ICMP-Typen melden z. B. Destination Unreachable oder Time Exceeded. Läuft direkt auf IP-Ebene, nicht auf TCP oder UDP.

Im Detail

Kein Transportprotokoll, sondern reine Steuerinformation

ICMP ist bewusst KEIN Transportprotokoll für Anwendungsdaten wie TCP oder UDP — es hat keine Ports, keine Verbindungen, keine Anwendungen, die darauf “lauschen”. Stattdessen läuft es direkt auf IP-Ebene und dient ausschließlich der Kommunikation ZWISCHEN Netzwerkgeräten selbst: “Ich konnte dein Paket nicht zustellen”, “diese Route funktioniert nicht mehr”, “dein Paket hat zu lange gebraucht und wurde verworfen”.

Anwendungsdaten:    HTTP über TCP über IP
Steuerinformation:  ICMP direkt über IP (kein TCP/UDP dazwischen)

ICMP als Diagnose-Werkzeug

Diese Sonderrolle macht ICMP zum wichtigsten Werkzeug für Netzwerkdiagnose: ping nutzt Echo Request/Echo Reply, um reine Erreichbarkeit zu prüfen, traceroute/tracert nutzt gezielt provozierte Time Exceeded-Meldungen, um den kompletten Weg eines Pakets Hop für Hop sichtbar zu machen, und Router nutzen ICMP, um Sendern automatisch Destination Unreachable-Meldungen zu schicken, wenn ein Ziel nicht erreichbar ist. Ohne ICMP wäre Problemdiagnose im Netzwerk erheblich schwieriger — Verbindungsprobleme würden nur als stilles Scheitern erscheinen, ohne jeden Hinweis darauf, WO im Übertragungsweg genau das Problem liegt.

Beispiel-Output

Ein einfacher ping zeigt die typische ICMP-Kommunikation:

$ ping emzett-digital.com
64 bytes from 203.0.113.5: icmp_seq=1 ttl=54 time=12.4 ms
64 bytes from 203.0.113.5: icmp_seq=2 ttl=54 time=11.8 ms

Jede Zeile entspricht einem Echo-Request/Echo-Reply-Paar; time zeigt die Latenz der Hin- und Rückreise, ttl den verbliebenen Time-to-Live-Wert des empfangenen Pakets.

ICMP als Angriffsvektor

Gerade weil ICMP so nützlich für Diagnose ist, wird es auch für Angriffe missbraucht: Ein “Ping Flood” überlastet ein Ziel mit massenhaften Echo-Requests, und der historische “Ping of Death” nutzte absichtlich fehlerhaft große ICMP-Pakete aus, um ältere Betriebssysteme zum Absturz zu bringen. Moderne Systeme sind gegen solche klassischen Angriffe längst gehärtet, weshalb viele Firewalls ICMP dennoch vorsichtshalber rate-limitieren statt komplett zu blockieren.

ICMPv6 als Kernbestandteil von IPv6

IPv6 nutzt eine erweiterte Variante namens ICMPv6, die noch deutlich mehr Aufgaben übernimmt (u. a. die komplette Nachbarschaftserkennung “Neighbor Discovery Protocol”, die bei IPv4 durch das separate ARP-Protokoll erledigt wird, sowie automatische Adresskonfiguration) — bei IPv6 ist ICMP damit nicht mehr nur “nice to have” für Diagnose, sondern für den grundlegenden Netzwerkbetrieb zwingend erforderlich. Ein komplettes Blockieren von ICMPv6 (wie es bei ICMPv4 manchmal aus Sicherheitsgründen gemacht wird) würde ein IPv6-Netzwerk faktisch funktionsunfähig machen.

Siehe auch: Ping, ICMP-Typen, Echo Request, IPv6, ARP