Internet Control Message Protocol (ICMP)

Das Internet Control Message Protocol (ICMP) benutzt wie TCP und UDP das Internet Protocol IP, ist also ein Teil der Internet-Protokoll-Familie. Es dient in Netzwerken zum Austausch von Fehler- und Informationsmeldungen.

Obwohl ICMP eine Ebene über IP angeordnet ist, ist es in IP integriert. Es wird von jedem Router und PC erwartet, ICM-Protokoll zu sprechenn. Die meisten ICMP-Pakete enthalten Diagnosee-Informationen, sie werden vom Router zur Quelle (engl. source) zurückgeschickt, wenn der Router Pakete verwirft, z.B. weil das Ziel (engl. destination) nicht erreichbar ist, die TTL abgelaufen ist, usw. Es gilt der Grundsatz, dass ein ICMP-Paket niemals ein anderes ICMP-Paket auslöst, d.h. die Tatsache, dass ein ICMP Paket nicht zugestellt werden konnte wird nicht durch ein Weiteres signalisiert. Eine Ausnahme zu diesem Grundsatz bildet die Echo-Funktion. Echo-ICMP-Pakete werden z.B. durch das Programm Ping verschickt.

ICMP-Nachrichten werden beim Versand im Datenteil von IP-Datagrammen eingekapselt. Dabei sind im IP-Header der Servicetyp immer 0 und die Protokollnummer immer 1.


Die ICMP Pakettypen

  • 0 = Echo Reply

  • 3 = Destination Unreachable

  • 4 = Source Quench

  • 5 = Redirect

  • 8 = Echo Request

  • 9 = Router Advertisment

  • 10 = Router Solicitation

  • 11 = Time Exceeded

  • 12 = Parameter Problem

  • 13 = Timestamp (erleichtert die Synchronisation von Uhren)

  • 14 = Timestamp Reply

  • 15 = Information Request

  • 16 = Information Reply

  • 17 = Address Mask Request

  • 18 = Address Mask Reply

  • 19 = Reserved (for Security)

  • 20-29 = Reserved (for Robustness Experiment)

  • 30 = Traceroute

  • 31 = Datagram Conversion Error

  • 32 = Mobile Host Redirect

  • 33 = IPv6 Where-Are-You

  • 34 = IPv6 I-Am-Here

  • 35 = Mobile Registration Request

  • 36 = Mobile Registration Reply

  • 37 = Domain Name Request

  • 38 = Domain Name Reply

  • 39 = SKIP

  • 40 = Photuris

  • 41 = ICMP messages utilized by experimental mobility protocols such as Seamoby

  • 42-255 = Reserved


Time-To-Live

Traceroute sendet UDP-Datagramme mit manipulierten IP-Time-to-live-(TTL)-Header-Feldern und sucht nach ICMP-Meldungen .Time to live exceeded in transit und Destination unreachable in den Antworten. Damit kann festgestellt werden, welchen Weg ein Paket zu einem bestimmten Host nimmt.


Aufbau

Der Aufbau einer ICMP-Nachricht lässt sich wie folgt darstellen:

Bit 0 – 77

Bit 8 – 15

Bit 16 – 23

Bit 24 – 31

Typ

Code

Prüfsumme


Daten (optional)

 

Das Feld Typ gibt dabei die Klasse der ICMP-Nachricht an, das Feld Code spezifiziert die Art der Nachricht genauer. Einige der häufiger vorkommenden Typ.Code-Kombinationen sind:

Typp

Typname

Code

Bedeutung

0

Echo Reply

0

Echo Reply

3

Destination Unreachable

1

Host Unreachable

 

 

3

Port Unreachable

 

 

4

Fragmentation Needed, DF Set

8

Echo Request

0

Echo Request

11

Time Exceeded

0

TTL Exceeded

 

 

1

Fragment Reassembly Timeout

30

Traceroute

 

Traceroute

33

IPv6 Where-Are-You

 

IPv6 Where-Are-You

34

IPv6 I-Am-Here

 

IPv6 I-Am-Here

Ein zusätzliches Feld Daten trägt bei vielen ICMP-Nachrichten im ersten 32-Bit-Wort genauere Informationen zur Zuordnung der ICMP-Nachricht. Oft werden ab dem zweiten Datenwort auch IP-Header des auslösenden Datagramms sowie die ersten 64 Byte des Pakets übermittelt.