Nachrichtentypen
In dieser interaktiven Lerneinheit tauchst du tief in die verschiedenen ICMP-Nachrichtentypen und deren Header-Struktur ein. Du lernst, wie ICMP-Nachrichten in IP-Paketen übertragen werden und wie die einzelnen Header-Felder die Funktion der Nachricht bestimmen. Dieses Wissen ist essentiell für die Netzwerkdiagnose und Fehleranalyse in der täglichen Praxis.
Einführung
Du arbeitest in einem Netzwerkteam und bekommst die Rückmeldung:
Die Anwendung antwortet nicht – aber der Server ist online.

Was jetzt? Bevor du dich in Logfiles verlierst, greifst du zu einem einfachen, aber mächtigen Werkzeug: Ping. Doch was steckt eigentlich technisch dahinter?
→ Damit du solche Situationen in Zukunft sicher analysieren kannst, schauen wir uns jetzt das zugrundeliegende Protokoll an: ICMP, das Internet Control Message Protocol.
Einleitung
ICMP steht für Internet Control Message Protocol. Es dient zur Diagnose und Steuerung in IP-Netzwerken und wird direkt über IP transportiert:
- Bei IPv4: Protokollnummer 1
- Bei IPv6: Protokollnummer 58 (für ICMPv6)
ICMP operiert auf der Netzwerkschicht (Internet Layer im TCP/IP-Modell) und wird z. B. bei Tools wie ping oder traceroute verwendet.
ICMP bei IPv4
ICMP für IPv4 wird direkt als Nutzlast (Payload) innerhalb eines IP-Pakets transportiert und beginnt unmittelbar nach dem IP-Header. Es nutzt den Standard-IP-Header des IPv4-Protokolls für die Adressierung und Identifikation:
- Das Protokollfeld im IP-Header wird auf 1 gesetzt, um ICMP als Nutzlast zu kennzeichnen.

Der eigentliche ICMP-Inhalt beginnt im Datenbereich (Payload) des IP-Pakets. Er besteht aus:
- ICMP-Typ (Art der Nachricht)
- ICMP-Code (Details zur Nachricht)
- ICMP-Prüfsumme
- ICMP-Datenbereich: z. B. bei Fehlermeldungen der ursprüngliche IP-Header + erste 64 Bit der IP-Daten des ursprünglichen Pakets
ICMP bei IPv6 (ICMPv6)
Im Gegensatz zu IPv4 besitzt ICMPv6 einen eigenständigen Header mit fester Struktur mit bereits bekannten Feldern:
- Typ (8 Bit): z. B. Echo Request oder Router Solicitation
- Code (8 Bit): z. B. Unterscheidung bei Fehlermeldungen
- Prüfsumme (16 Bit): Fehlerprüfung über gesamte ICMPv6-Nachricht
Zusätzlich wird die Prüfsumme bei ICMPv6 auch über einen Pseudoheader berechnet. Dieser enthält:
- Quell- und Zieladresse (aus dem IPv6-Header)
- Länge der ICMPv6-Nachricht
- Eintrag “Next Header”
Wie ist eine ICMP-Nachricht aufgebaut?
Unabhängig von IPv4 oder IPv6 folgt jede ICMP-Nachricht dieser Struktur:
- ICMP-Header (mindestens 8 Byte)
- Datenbereich, dessen Inhalt vom Nachrichtentyp abhängt
Der ICMP-Header
Der grundlegende Header ist bei ICMPv4 und ICMPv6 in den ersten vier Bytes identisch aufgebaut und enthält die wichtigsten Informationen zur Klassifizierung der Nachricht:
- Typ (8 Bit): Dieses Feld definiert die grundlegende Kategorie der ICMP-Nachricht. Es ist das erste Feld, das von einem empfangenden Gerät analysiert wird, um zu verstehen, ob es sich um eine Fehlermeldung, eine Informationsanfrage oder eine Antwort handelt.

Beispiele
ICMPv4-Typen
| Typ | Bedeutung |
|---|---|
| 0 | Echo Reply (Antwort auf einen Ping) |
| 3 | Destination Unreachable (Ziel nicht erreichbar) |
| 5 | Redirect (Bitte Route ändern) |
| 8 | Echo Request (Ping-Anfrage) |
| 11 | Time Exceeded (Lebenszeit überschritten) |
ICMPv6-Typen
| Typ | Bedeutung |
|---|---|
| 1 | Destination Unreachable |
| 2 | Packet Too Big |
| 3 | Time Exceeded |
| 4 | Parameter Problem |
| 128 | Echo Request |
| 129 | Echo Reply |
Der ICMP-Header
- Code (8 Bit): Dieses Feld präzisiert die Nachricht innerhalb des durch das
Typ-Feld definierten Rahmens. Die Bedeutung desCode-Feldes hängt direkt vom Wert imTyp-Feld ab. Für manche Typen gibt es nur den Code0, für andere existieren mehrere Codes, die spezifische Gründe oder Bedingungen angeben.

Beispiel
ICMPv4 Typ 3 – Destination Unreachable
| Code | Bedeutung (Englisch) | Beschreibung (Deutsch) |
|---|---|---|
| 0 | Network Unreachable | Das Zielnetzwerk ist nicht erreichbar. |
| 1 | Host Unreachable | Das Zielnetzwerk ist erreichbar, aber der spezifische Host antwortet nicht. |
| 3 | Port Unreachable | Der Host ist erreichbar, aber der angegebene Zielport (z. B. für UDP/TCP) ist auf dem Host nicht aktiv. |
| 4 | Fragmentation Needed and Don’t Fragment was set | Das Paket ist zu groß und darf nicht fragmentiert werden (DF-Bit ist gesetzt). |
ICMPv6 Typ 1 – Destination Unreachable
| Code | Bedeutung (Englisch) | Beschreibung (Deutsch) |
|---|---|---|
| 0 | No route to destination | Es existiert keine Route zum Ziel. |
| 1 | Communication with destination administratively prohibited | Die Kommunikation zum Ziel ist administrativ untersagt. |
| 3 | Address unreachable | Die Zieladresse ist nicht erreichbar. |
| 4 | Port unreachable | Der Zielport ist nicht erreichbar (z. B. Dienst auf Zielhost nicht aktiv). |
Der ICMP-Header
- Prüfsumme (16 Bit): Dieses Feld dient der Integritätsprüfung der ICMP-Nachricht selbst (Header und Daten). Der Sender berechnet die Prüfsumme über die gesamte ICMP-Nachricht (wobei das Prüfsummenfeld selbst auf 0 gesetzt wird) und trägt das Ergebnis hier ein. Der Empfänger führt die gleiche Berechnung durch. Stimmen die Ergebnisse nicht überein, wird die ICMP-Nachricht als beschädigt verworfen.

Wichtiger Unterschied bei ICMPv6:
Die Prüfsummenberechnung bei ICMPv6 bezieht zusätzlich einen Pseudo-Header mit ein. Dieser Pseudo-Header enthält wichtige Felder aus dem IPv6-Header (Quell-IP, Ziel-IP, Länge des Upper-Layer-Pakets und das Next-Header-Feld). Dies stellt sicher, dass die ICMPv6-Nachricht nicht nur inhaltlich korrekt ist, sondern auch tatsächlich für die im IPv6-Header genannten Adressen bestimmt war, was eine zusätzliche Schutzschicht gegen fehlgeleitete Pakete bietet.
Der Datenbereich
Der Inhalt des ICMP-Pakets nach den ersten vier Header-Bytes (Type, Code, Checksum) variiert erheblich je nach Nachrichtentyp und Code. Grundsätzlich lassen sich zwei Hauptkategorien unterscheiden:

1. Fehlermeldungen
Diese Nachrichten (z. B. Destination Unreachable, Time Exceeded, Packet Too Big, Parameter Problem) werden generiert, wenn ein Router oder der Zielhost ein Problem bei der Verarbeitung eines ursprünglichen IP-Pakets feststellt.
Inhalt des Datenbereichs bei Fehlermeldungen:
- Der vollständige IP-Header des ursprünglichen Datagramms: Das ist der IP-Header des Pakets, das den Fehler verursacht hat.
- Die ersten 8 Bytes der Daten des ursprünglichen Datagramms: Diese 8 Bytes enthalten typischerweise den Anfang des Headers des nächsthöheren Protokolls (meistens UDP oder TCP).
Zweck dieser Struktur: Diese Struktur ist essenziell, damit der ursprüngliche Sender des fehlerhaften Pakets die ICMP-Fehlermeldung korrekt zuordnen kann.
- Der IP-Header im ICMP-Datenbereich identifiziert die ursprüngliche Quell- und Ziel-IP-Adresse.
- Die ersten 8 Bytes des Transport-Headers (z. B. UDP/TCP) enthalten normalerweise die Quell- und Ziel-Portnummern.
Damit kann das Betriebssystem des Senders die Fehlermeldung dem Prozess oder der Anwendung zuordnen, die die ursprüngliche Verbindung oder den Datenaustausch initiiert hat.
1. Fehlermeldung: Beispiel
ICMPv4 Typ 3, Code 3 (Port Unreachable)
Wenn dein Rechner ein UDP-Paket an einen Server auf Port 1234 sendet, aber auf dem Server kein Dienst auf diesem Port lauscht, antwortet der Server (oder ein zwischengeschalteter Router) mit einer ICMP Typ 3, Code 3 Nachricht. Im Datenbereich dieser ICMP-Nachricht findest du:
- Den kompletten IPv4-Header deines ursprünglichen UDP-Pakets.
- Die ersten 8 Bytes deines UDP-Headers, die deine Quell-Portnummer und die (nicht erreichbare) Ziel-Portnummer
1234enthalten. Dein Betriebssystem kann diese Information nutzen, um der Anwendung, die das Paket gesendet hat, mitzuteilen: “Deine Kommunikation zum Ziel-Port1234ist fehlgeschlagen.”
2. Abfragen und Informationsnachrichten
Abfragen und Informationsnachrichten (z. B. Echo Request/Reply)
Diese Nachrichten dienen diagnostischen oder informativen Zwecken (z. B. Echo Request/Reply, Timestamp Request/Reply)
Inhalt des Datenbereichs bei Abfragen/Informationen:
- Der Inhalt ist hier flexibler und wird durch den spezifischen Typ/Code definiert. Er dient oft dazu, Informationen zu transportieren oder Zustände abzufragen.
- Identifier (Identifikator) und Sequence Number (Sequenznummer): Bei Echo Request/Reply (Ping) werden diese 16-Bit-Felder häufig verwendet, um Anfragen und Antworten einander zuzuordnen, besonders wenn mehrere Ping-Prozesse parallel laufen oder mehrere Anfragen kurz hintereinander gesendet werden.
- Optionale Daten: Der restliche Datenbereich kann variable Daten enthalten.
- Zeitstempel: Bei Echo Request/Reply kann hier ein Zeitstempel eingefügt werden. Der Empfänger muss diese Daten unverändert in der Echo Reply zurücksenden. Der ursprüngliche Sender kann dann die Zeitdifferenz zwischen dem Senden der Anfrage und dem Empfang der Antwort berechnen (Round-Trip Time - RTT).
- Fülldaten (Padding): Der Datenbereich kann mit beliebigen Daten aufgefüllt werden, um die Gesamtgröße des ICMP-Pakets zu erhöhen. Dies wird genutzt, um die Netzwerkpfade mit Paketen unterschiedlicher Größe zu testen.
Zusammenfassung der Felder
| Feld | Bedeutung |
|---|---|
| Typ & Code | Bestimmen die Art und Ursache der Nachricht |
| Prüfsumme | Gewährleistet die Fehlerfreiheit |
| Rest des Headers | Identifikation (z. B. ID & Sequenz) |
| Datenbereich | Kontext (Fehler) oder Nutzdaten (Abfragen) |
Überleitung
Wenn in einem Netzwerk etwas nicht funktioniert, liegt die Ursache oft nicht sofort auf der Hand: Ist der Zielhost nicht erreichbar? Blockiert eine Firewall den Zugriff? Oder ist das Paket unterwegs verloren gegangen?
Wir wissen: Protokolle wie ICMP und ICMPv6 helfen dir, diese Fragen zu beantworten. Sie senden spezielle Nachrichtentypen, die dir mitteilen, was im Netzwerk gerade schiefläuft. Verschaffen wir uns einen Überblick über die wichtigsten ICMP- und ICMPv6-Nachrichtentypen
ICMPv4-Nachrichtentypen im Überblick
| Nachrichtentyp | Typ / Code | Zweck / Bedeutung |
|---|---|---|
| Echo Request | Typ 8 | Anfrage zur Erreichbarkeit eines Hosts (Teil von ping) |
| Echo Reply | Typ 0 | Antwort auf Echo Request |
| Destination Unreachable | Typ 3 / Code 0–15 | Ziel nicht erreichbar (z. B. Netzwerk, Host, Port oder Protokoll) |
| Time Exceeded | Typ 11 / Code 0–1 | Zeitlimit (TTL) erreicht – Paket wurde verworfen |
| Redirect Message | Typ 5 / Code 0–3 | Router empfiehlt eine bessere Route |
| Timestamp / Reply | Typ 13 / 14 | Zeitabfrage für Synchronisation (veraltet) |
| Source Quench | Typ 4 | Flusskontrolle bei Überlastung (veraltet, in RFC 6915 entfernt) |
ICMPv6-Nachrichtentypen im Überblick
| Nachrichtentyp | Typ | Zweck / Bedeutung |
|---|---|---|
| Router Solicitation | 133 | Host fragt aktiv nach einem Router im Netzwerk |
| Router Advertisement | 134 | Router informiert über sich und Netzwerkeinstellungen |
| Packet Too Big | 2 | Paket überschreitet die maximal erlaubte Größe für den nächsten Hop |
Anwendungen in der Praxis
1. Echo Request / Echo Reply:
- Mit dem Tool
pingsendest du Echo Requests an ein Ziel. - Wenn das Ziel erreichbar ist, erhältst du eine Echo Reply.
- So kannst du schnell feststellen, ob ein Host online ist.
Anwendungen in der Praxis
2. Destination Unreachable:
- Wird ein Ziel nicht erreicht, informiert dich ICMP mit dem Typ 3 darüber.
- Codes unterscheiden zwischen Ursachen (z. B. Host, Port oder Protokoll nicht erreichbar).
- Besonders nützlich zur Analyse von Routing- oder Firewall-Problemen.
Anwendungen in der Praxis
3. Time Exceeded:
- Jedes IP-Paket hat ein TTL-Feld (Time To Live), das mit jedem Router-Hops sinkt.
- Erreicht TTL den Wert 0, wird das Paket verworfen und ein ICMP-Fehler zurückgesendet.
- Tools wie
traceroutenutzen diesen Mechanismus, um den Pfad eines Pakets durch das Netz zu verfolgen.
Anwendungen in der Praxis
4. Redirect Message:
- Wenn ein Router feststellt, dass es eine bessere Route gibt, sendet er eine Redirect-Nachricht.
- Ziel ist es, den Host auf eine effizientere Route hinzuweisen.
- Kommt häufig in lokalen Netzwerken mit mehreren Routern vor.
Anwendungen in der Praxis
5. Packet Too Big (ICMPv6):
- In IPv6 ist die Fragmentierung durch Router nicht mehr erlaubt.
- Wenn ein Paket größer als die MTU (Maximum Transmission Unit) des nächsten Hops ist, informiert ICMPv6 den Sender.
- Der Sender passt die Paketgröße an. Dieser Prozess heißt Path MTU Discovery.
Wichtige Hinweise
-
Source Quench (Typ 4) wurde früher zur Flusskontrolle verwendet, ist aber seit 2013 durch RFC 6915 offiziell veraltet. Heute verwenden Protokolle wie TCP eigene Mechanismen zur Staukontrolle, etwa das sogenannte “Congestion Control”.
-
Timestamp und Timestamp Reply (Typ 13 / 14) dienten früher der Zeitsynchronisation. Sie wurden weitgehend durch das Network Time Protocol (NTP) ersetzt. NTP ist ein spezielles Protokoll zur Synchronisierung von Systemuhren in Netzwerken und ist deutlich genauer und flexibler als ICMP-Zeitabfragen.
Zusammenfassung und Ausblick
Zusammenfassung: ICMP & ICMPv6
Aufbau und Struktur einer ICMP-Nachricht
- ICMP (für IPv4) wird direkt als Nutzlast im IP-Paket transportiert. Das IP-Protokollfeld hat den Wert 1, um ICMP zu kennzeichnen.
- ICMPv6 verwendet dagegen einen eigenständigen Header mit zusätzlichem Pseudo-Header zur Prüfsummenbildung.
Grundstruktur jeder ICMP-Nachricht:
- Header (mindestens 8 Byte):
- Typ (8 Bit): Art der Nachricht (z. B. Echo, Fehler)
- Code (8 Bit): Unterkategorie je nach Typ
- Prüfsumme (16 Bit): Fehlerprüfung über Header & Daten
- Datenbereich (Payload): Inhalt abhängig vom Nachrichtentyp
Datenbereiche je nach Nachrichtentyp:
-
Fehlermeldungen (z. B. Destination Unreachable):
- Enthalten den vollständigen IP-Header des ursprünglichen Pakets
- Plus: die ersten 8 Byte der ursprünglichen Transportdaten (z. B. UDP/TCP)
-
Abfragen & Diagnose (z. B. Echo Request/Reply):
- Felder wie Identifier und Sequence Number
- Optionale Daten (z. B. Zeitmessung)
Besonderheit ICMPv6:
- Die Prüfsumme wird mit einem Pseudo-Header berechnet:
- Quell-/Zieladresse (aus IPv6-Header)
- Länge der Nachricht
- Next-Header-Feld
- Damit wird geprüft, ob die Nachricht nicht nur korrekt ist, sondern auch für das richtige Ziel bestimmt war
Wichtige ICMP- und ICMPv6-Nachrichtentypen
ICMPv4:
-
Echo Request / Reply (Typ 8 / 0):
- → Wird von
pinggenutzt zur Erreichbarkeitsprüfung
- → Wird von
-
Destination Unreachable (Typ 3):
- → Ziel nicht erreichbar (Netz, Host, Port, Protokoll)
-
Time Exceeded (Typ 11):
- → TTL abgelaufen, wichtig für
traceroute
- → TTL abgelaufen, wichtig für
-
Redirect Message (Typ 5):
- → Router informiert über bessere Route
-
Timestamp / Source Quench:
- → Veraltet; ersetzt durch modernere Protokolle (z. B. NTP, TCP Congestion Control)
ICMPv6:
-
Router Solicitation (Typ 133) & Router Advertisement (Typ 134):
- → Kommunikation zur automatischen Netzwerkintegration
-
Packet Too Big (Typ 2):
- → MTU zu klein für Paket → Sender passt Größe an
ICMP und ICMPv6 sind zentrale Bestandteile der Netzwerkkommunikation.
- Sie liefern strukturiert verwertbare Informationen zur Fehlersuche und Pfadanalyse.
- ICMPv6 übernimmt darüber hinaus grundlegende Aufgaben für IPv6-Netze wie Adresskonfiguration und Pfad-MTU-Ermittlung.
- Der modulare Aufbau der ICMP-Nachrichten ermöglicht eine gezielte Auswertung mit Tools wie Wireshark, ping oder traceroute.
Diese Kenntnisse bilden die Basis für die systematische Analyse von Netzwerkproblemen und für ein Verständnis moderner IPv6-Kommunikation.