Internet Control Message Protocol
aus Wikipedia, der freien Enzyklopädie
ICMP (Internet Control Message Protocol) | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Familie: | Internetprotokollfamilie | |||||||||||||||||
Einsatzgebiet: |
Obligatorischer Zusatz |
|||||||||||||||||
|
||||||||||||||||||
Standards: |
RFC 792 (1981) |
Das Internet Control Message Protocol (ICMP) dient in Netzwerken zum Austausch von Informations- und Fehlermeldungen über das Internet-Protokoll (IP).
ICMP befindet sich auf derselben OSI-Modell-Ebene wie IP, auf dem Network-Layer (Ebene 3). Es wird von jedem Router und jedem Rechner erwartet, das ICM-Protocol „sprechen“ zu können. Die meisten ICMP-Pakete enthalten Diagnose-Informationen, sie werden vom Router zur Quelle zurückgeschickt, wenn der Router Pakete verwirft, etwa weil das Ziel nicht erreichbar ist, die TTL abgelaufen ist usw. Es gilt der Grundsatz, dass ein ICMP-Paket niemals ein anderes ICMP-Paket auslöst, das heißt 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 zum Beispiel durch das Programm Ping versendet.
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.
Inhaltsverzeichnis |
[Bearbeiten] Die ICMP-Pakettypen
- 0 = Echo Reply
- 3 = Destination Unreachable
- 4 = Source Quench
- 5 = Redirect
- 8 = Echo Request
- 9 = Router Advertisement
- 10 = Router Solicitation
- 11 = Time Exceeded
- 12 = Parameter Problem
- 13 = Timestamp (erleichtert die Zeitsynchronisation)
- 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
[Bearbeiten] Port Unreachable
Gängige Konvention ist das Absetzen eines „Port Unreachable“ als Antwort auf einen Verbindungsversuch zu einem nicht von einem Dienst geöffneten UDP-Port. Die Antwort „Port Unreachable“ besteht aus einem Paket vom Typ 3 (Destination Unreachable), das den Code 3 enthält (siehe Aufbau).
Ungeöffnete TCP-Ports antworten nicht per ICMP sondern mit einem TCP-Reset-Paket.
[Bearbeiten] Time-To-Live
Traceroute sendet UDP-Datagramme mit manipulierten TTL im IP-Header 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 genommen haben kann.
[Bearbeiten] Aufbau
Der Aufbau einer ICMP-Nachricht lässt sich wie folgt darstellen:
Bit 0–7 | 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:
Typ | Typname | Code | Bedeutung |
---|---|---|---|
0 | Echo Antwort | 0 | Echo Antwort |
3 | Ziel nicht erreichbar | 0 | Netzwerk nicht erreichbar |
1 | Host (Zielstation) nicht erreichbar | ||
2 | Protokoll nicht erreichbar | ||
3 | Port nicht erreichbar | ||
4 | Fragmentierung nötig, DF gesetzt | ||
5 | Route nicht möglich (die Richtung in IP-Header-Feld Option falsch angegeben) | ||
4 | Quelle verstopfen | 0 | Datagramm verworfen, da Warteschlange voll |
8 | Echo-Anfrage | 0 | Echo-Anfrage (besser bekannt als „Ping“) |
11 | Zeit vergangen | 0 | TTL (Time To Live, Lebensdauer) abgelaufen |
1 | Die Zeitgrenze der Fragmente ist überschritten | ||
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 auslesenden Datagramms sowie die ersten 64 Bit des Pakets übermittelt. Das „Daten“-Feld kann jedoch auch dazu missbraucht werden, um Nutzdaten zu übertragen(ICMP-Tunneling). Die notwendige Fehlerbehandlung beziehungsweise Fehlerkorrektur und ähnliches muss dann jedoch auf der Anwendungsebene implementiert werden.
[Bearbeiten] Siehe auch
- ICMPv6
- Protokollstapel
- Service Access Point
- Datenkapselung (Netzwerktechnik)
- Internet Protocol
- IP-Adresse
- IPv4
- IPv6
- Address Resolution Protocol
- DoD Standard Internet Protocol
- IPTV
- IP-Paket
- IP-Telefonie
- Mobile IP
- Referenzmodell
- TCP/IP-Referenzmodell
- Ping (Datenübertragung)
[Bearbeiten] Weblinks
- RFC 792 – Internet Control Message Protocol
- RFC 1122 – Requirements for Internet Hosts – Communication Layers (u. a. ICMP-Erweiterungen)
- IANA ICMP Parameters – vollständige Liste der ICMP-Typen und Codes