Das Internet Control Message Protocol (ICMP) ist kein Datenübertragungsprotokoll – es ist ein Diagnose- und Steuerungsprotokoll auf OSI-Schicht 3. ICMP wird verwendet um Fehlermeldungen und Statusinformationen zwischen Netzwerkgeräten auszutauschen.
ICMP ist direkt in IP integriert – es verwendet keine Ports wie TCP oder UDP. Stattdessen hat ICMP eigene Typ- und Code-Nummern.
Typ | Name | Bedeutung |
|---|---|---|
0 | Echo Reply | Antwort auf Ping |
3 | Destination Unreachable | Ziel nicht erreichbar (mit Code-Nummer) |
5 | Redirect | Router leitet auf bessere Route hin |
8 | Echo Request | Ping-Anfrage |
11 | Time Exceeded | TTL abgelaufen (traceroute nutzt das) |
12 | Parameter Problem | Fehler im IP-Header |
Code | Bedeutung |
|---|---|
0 | Network Unreachable – Netzwerk nicht erreichbar |
1 | Host Unreachable – Host nicht erreichbar |
2 | Protocol Unreachable – Protokoll nicht unterstützt |
3 | Port Unreachable – Port geschlossen |
4 | Fragmentation Needed – Paket zu groß, DF-Bit gesetzt |
13 | Communication Administratively Prohibited – Firewall blockiert |
Ping ist das bekannteste Netzwerk-Diagnosetool. Es sendet ICMP-Typ-8-Pakete (Echo Request) und wartet auf Typ-0-Pakete (Echo Reply):
ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.412 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.398 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.421 ms
--- 192.168.1.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss
rtt min/avg/max/mdev = 0.398/0.410/0.421/0.009 msWert | Bedeutung |
|---|---|
icmp_seq | Sequenznummer – prüft ob Pakete in Reihenfolge ankommen |
ttl | Time to Live des zurückgekommenen Pakets – gibt Hinweis auf Betriebssystem |
time | Round Trip Time in Millisekunden – Latenz |
packet loss | Paketverlustrate – bei > 0% Netzwerkprobleme |
Standard-TTL-Werte:
Linux/Android: TTL = 64
Windows: TTL = 128
Cisco/Router: TTL = 255
macOS: TTL = 64
Wenn TTL = 54 angezeigt wird:
→ Startwert war 64
→ Paket hat 10 Hops durchlaufen
→ 64 - 10 = 54Traceroute zeigt den Weg eines Pakets durch das Netzwerk – jeden einzelnen Router auf dem Weg zum Ziel. Es nutzt ICMP Typ 11 (Time Exceeded):
Prinzip:
1. Paket mit TTL=1 senden → Erster Router antwortet mit "Time Exceeded"
2. Paket mit TTL=2 senden → Zweiter Router antwortet
3. Paket mit TTL=3 senden → Dritter Router antwortet
... und so weiter bis zum Ziel
Windows:
tracert www.google.com
Linux/Mac:
traceroute www.google.com
Ausgabe:
1 192.168.1.1 1 ms → Heimrouter
2 10.0.0.1 8 ms → ISP-Router
3 72.14.232.1 12 ms → Google-Netz
4 216.239.51.9 13 ms → Google-Rechenzentrum
5 142.250.185.46 14 ms → Ziel erreichtWindows:
ping 192.168.1.1 → 4 Pings (Standard)
ping -t 192.168.1.1 → Dauerhaft pingen (Strg+C zum Stoppen)
ping -n 10 192.168.1.1 → 10 Pings
ping -l 1000 192.168.1.1 → 1000 Byte große Pakete
ping -4 google.com → Nur IPv4
ping -6 google.com → Nur IPv6
Linux/Mac:
ping 192.168.1.1 → Dauerhaft (Strg+C zum Stoppen)
ping -c 5 192.168.1.1 → 5 Pings
ping -s 1000 192.168.1.1 → 1000 Byte große Pakete
ping -i 0.2 192.168.1.1 → Alle 0,2 SekundenViele Firewalls blockieren ICMP – aus Sicherheitsgründen aber auch aus Unwissenheit. Das führt zu Diagnoseproblemen:
Wichtige ICMP-Typen die NICHT blockiert werden sollten:
Typ 3 (Destination Unreachable) → Wichtig für PMTUD
Typ 8 (Echo Request) → Ping – hilfreich für Diagnose
Typ 11 (Time Exceeded) → Traceroute
Probleme bei vollständiger ICMP-Blockierung:
- Kein Ping möglich → Diagnose schwierig
- PMTUD (Path MTU Discovery) funktioniert nicht → Verbindungsprobleme
- Traceroute zeigt nur Sternchen (*)Bei IPv6 ist ICMP noch wichtiger als bei IPv4 – viele IPv6-Kernfunktionen basieren auf ICMPv6:
ICMPv6-Typ | Funktion |
|---|---|
133 – Router Solicitation | Client sucht Router |
134 – Router Advertisement | Router kündigt sich an (SLAAC) |
135 – Neighbor Solicitation | Ersatz für ARP – "Wer hat diese IPv6?" |
136 – Neighbor Advertisement | Antwort auf Neighbor Solicitation |
ICMPv6 darf in IPv6-Netzwerken niemals vollständig blockiert werden – sonst funktioniert IPv6 nicht mehr.
ICMP ist ein Diagnose- und Steuerungsprotokoll auf OSI-Schicht 3
ICMP verwendet keine Ports – stattdessen Typ- und Code-Nummern
Ping verwendet ICMP Typ 8 (Echo Request) und Typ 0 (Echo Reply)
Traceroute nutzt ICMP Typ 11 (Time Exceeded) um Router zu identifizieren
TTL gibt Auskunft über die Anzahl der Hops und den OS-Typ
ICMP sollte nicht vollständig durch Firewalls blockiert werden
ICMPv6 ist für IPv6 unverzichtbar – ersetzt unter anderem ARP