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:

  1. ICMP-Header (mindestens 8 Byte)
  2. 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

TypBedeutung
0Echo Reply (Antwort auf einen Ping)
3Destination Unreachable (Ziel nicht erreichbar)
5Redirect (Bitte Route ändern)
8Echo Request (Ping-Anfrage)
11Time Exceeded (Lebenszeit überschritten)

ICMPv6-Typen

TypBedeutung
1Destination Unreachable
2Packet Too Big
3Time Exceeded
4Parameter Problem
128Echo Request
129Echo Reply

Der ICMP-Header

  • Code (8 Bit): Dieses Feld präzisiert die Nachricht innerhalb des durch das Typ-Feld definierten Rahmens. Die Bedeutung des Code-Feldes hängt direkt vom Wert im Typ-Feld ab. Für manche Typen gibt es nur den Code 0, für andere existieren mehrere Codes, die spezifische Gründe oder Bedingungen angeben.

Beispiel

ICMPv4 Typ 3 – Destination Unreachable

CodeBedeutung (Englisch)Beschreibung (Deutsch)
0Network UnreachableDas Zielnetzwerk ist nicht erreichbar.
1Host UnreachableDas Zielnetzwerk ist erreichbar, aber der spezifische Host antwortet nicht.
3Port UnreachableDer Host ist erreichbar, aber der angegebene Zielport (z. B. für UDP/TCP) ist auf dem Host nicht aktiv.
4Fragmentation Needed and Don’t Fragment was setDas Paket ist zu groß und darf nicht fragmentiert werden (DF-Bit ist gesetzt).

ICMPv6 Typ 1 – Destination Unreachable

CodeBedeutung (Englisch)Beschreibung (Deutsch)
0No route to destinationEs existiert keine Route zum Ziel.
1Communication with destination administratively prohibitedDie Kommunikation zum Ziel ist administrativ untersagt.
3Address unreachableDie Zieladresse ist nicht erreichbar.
4Port unreachableDer 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:

  1. Den kompletten IPv4-Header deines ursprünglichen UDP-Pakets.
  2. Die ersten 8 Bytes deines UDP-Headers, die deine Quell-Portnummer und die (nicht erreichbare) Ziel-Portnummer 1234 enthalten. Dein Betriebssystem kann diese Information nutzen, um der Anwendung, die das Paket gesendet hat, mitzuteilen: “Deine Kommunikation zum Ziel-Port 1234 ist 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

FeldBedeutung
Typ & CodeBestimmen die Art und Ursache der Nachricht
PrüfsummeGewährleistet die Fehlerfreiheit
Rest des HeadersIdentifikation (z. B. ID & Sequenz)
DatenbereichKontext (Fehler) oder Nutzdaten (Abfragen)
⏳ Lädt Dataview-Inhalt...

Ü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

NachrichtentypTyp / CodeZweck / Bedeutung
Echo RequestTyp 8Anfrage zur Erreichbarkeit eines Hosts (Teil von ping)
Echo ReplyTyp 0Antwort auf Echo Request
Destination UnreachableTyp 3 / Code 0–15Ziel nicht erreichbar (z. B. Netzwerk, Host, Port oder Protokoll)
Time ExceededTyp 11 / Code 0–1Zeitlimit (TTL) erreicht – Paket wurde verworfen
Redirect MessageTyp 5 / Code 0–3Router empfiehlt eine bessere Route
Timestamp / ReplyTyp 13 / 14Zeitabfrage für Synchronisation (veraltet)
Source QuenchTyp 4Flusskontrolle bei Überlastung (veraltet, in RFC 6915 entfernt)

ICMPv6-Nachrichtentypen im Überblick

NachrichtentypTypZweck / Bedeutung
Router Solicitation133Host fragt aktiv nach einem Router im Netzwerk
Router Advertisement134Router informiert über sich und Netzwerkeinstellungen
Packet Too Big2Paket überschreitet die maximal erlaubte Größe für den nächsten Hop

Anwendungen in der Praxis

1. Echo Request / Echo Reply:

  • Mit dem Tool ping sendest 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 traceroute nutzen 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.

⏳ Lädt Dataview-Inhalt...

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:

  1. 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
  2. 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 ping genutzt zur Erreichbarkeitsprüfung
  • Destination Unreachable (Typ 3):

    • → Ziel nicht erreichbar (Netz, Host, Port, Protokoll)
  • Time Exceeded (Typ 11):

    • → TTL abgelaufen, wichtig für traceroute
  • 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.