Internet Control Message Protocol
aus Wikipedia, der freien Enzyklopädie
ICMP (Internet Control Message Protocol) | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Familie: | Internetprotokollfamilie | |||||||||||||||||
Einsatzgebiet: |
Obligatorischer Zusatz |
|||||||||||||||||
|
||||||||||||||||||
Standards: |
Das Internet Control Message Protocol (ICMP) benutzt wie TCP und UDP das Internet Protocol (IP), ist also ein Teil der Internetprotokollfamilie. Es dient in Netzwerken zum Austausch von Fehler- und Informationsmeldungen.
Obwohl ICMP eine Ebene über IP angeordnet ist (im OSI-Modell die so genannte Vermittlungsschicht (Network Layer)), ist es in IP integriert. 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, z. B. 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, 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.
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 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
[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 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 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 Reply | 0 | Echo Reply |
3 | Destination Unreachable | 1 | Host Unreachable |
2 | Protokoll nicht erreichbar | ||
3 | Port Unreachable | ||
4 | Fragmentation Needed, DF Set | ||
5 | Route nicht möglich | ||
13 | Communication Administrativly Prohibited | ||
4 | Source-Quench | Datagramm verworfen, da Warteschlange voll | |
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 auslesenden Datagramms sowie die ersten 64 Bit des Pakets übermittelt.
[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