IPv4: ICMP

RFC-792 definiert das Internet Control Message Protocol. Es informiert über Fehler und hilft bei der Fehlersuche. Der Aufbau der ICMP-Nachricht:

ICMP-Paket

Die Bedeutung der Felder:

Type (8 Bits) - Der Nachrichtentyp:

Code (8 Bits) - Der Code gibt die Unterart der Nachricht an. Er hat je nach Nachrichtentyp eine unterschiedliche Bedeutung.

Checksum (16 Bits) - Prüfsumme über die ICMP-Nachricht. Bei der Berechnung fließt das Checksum-Feld mit "0" ein.

Unused/based on type (32 Bits) - Je nach Nachrichtentyp enthält dieses Feld bestimmte Daten oder ist einfach leer.

IP-Header + 64 Bits of Original Datagram (variable, 32-Bit-Worte) - Je nach Nachrichtentyp besitzt das Feld einen speziellen zweck. Normalerweise enthält es den Header und die ersten 64 Daten-Bits des IP-Pakets, auf welches sich die ICMP-Nachricht bezieht. Bei Echo transportiert es Testdaten und bei Timestamp bzw. Timestamp Reply sind es Zeitstempel. Bei Information Request oder Information Reply Message entfällt das Feld komplett.

 

Erkärung der wichtigsten Typen:

Echo Request / Echo Reply

Bei beiden Typen ist der Code jeweils 0. Das "unused"-Feld wird in zwei 16-Bit-Felder aufgeteilt:

Im Datenbereich befinden sich Testdaten, meist ein vorgegebenes, fortlaufendes Muster. Der Sender schickt ein Echo Request und der Empfänger beantwortet es. Das bekannte Tool "ping" nutzt dieses Verfahren.

Destination Unreachable

Ist das Ziel wegen eines offensichtlichen Grundes (Routingtabelle) nicht erreichbar, sendet ein System diese Nachricht. Der Code spezifiziert die Ursache:

Die Codes 2 & 3 werden meist von Hosts gesendet. Die anderen primär von Routern.

Time Exceeded

Diese Fehlermeldung hat zwei Codes:

Das Tool "traceroute" baut auf die Code-0-Fehlermeldung auf. Es sendet ein Paket mit einer TTL von 1 und wartet auf die Fehlermeldung des ersten Routers. Aus der Fehlermeldung ergibt sich die IP-Adresse des Routers. Danach sendet traceroute ein Paket mit einer TTL von 2 und wartet wieder auf eine Fehlermeldung - auf die des zweiten Routers. Bei jedem Schritt erhöht traceroute die TTL um eins bis das Zielsystem erreicht ist. So läßt sich der Hinweg zum Ziel erkunden.