Beschreibung der verschiedenen ICMP Packet Typen
Es gibt insgesammt 15 verschiedene ICMP Packet Typen.
|
Typ |
ICMP Messages |
|
0 |
|
|
3 |
|
|
4 |
|
|
5 |
|
|
8 |
|
|
9 |
Router Advertisement |
|
10 |
Router Solicitation |
|
11 |
|
|
12 |
|
|
13 |
|
|
14 |
|
|
15 |
|
|
16 |
|
|
17 |
|
|
18 |
Das Datenpacket ist 16 Bit breit.
|
Type (0 oder 8) |
Code (0) |
Checksumme über komplette Datenblock |
|
|
Identifikator |
Sequenznummer |
||
|
Zusätzliche Daten |
|||
|
. . . |
|||
Anwendung: Das Kommando Ping ist eine Anwendung des Echo Reply und Request.
|
Type (3) |
Code (0-5) |
Checksumme über komplette Datenblock |
|
|
unbenutzt |
|||
|
IP-Header und 64 Bit Datagram-Prefix |
|||
|
. . . |
|||
|
Code |
|
|
0 |
Netzwerk nicht erreichbar |
|
1 |
Host nicht erreichbar |
|
2 |
Protokoll nicht verfügbar |
|
3 |
UDP-Port nicht verfügbar |
|
4 |
Fragmentierung erforderlich, aber |
|
5 |
Source Routing war nicht erfolgreich |
Anwendung: z.B.: falls ein Router ein Datenpaket verwirft, da es nicht zu fragmentieren ist, so schickt der Router dem Sender ein "Destination unreachable" um ihm die neue kleinere MTU mitzuteilen.
|
Type (4) |
Code (0) |
Checksumme über komplette Datenblock |
|
|
unbenutzt |
|||
|
IP-Header und 64 Bit Datagram-Prefix |
|||
|
. . . |
|||
Anwendung: Sollte ein Router Datenpakete verwerfen, da er zu schnell Daten bekommt, so sendet er ein Source Quench und der Empfänger senkt seine Übertragungsrate.
|
Type (5) |
Code (0-3) |
Checksumme über komplette Datenblock |
|
|
Adresse des besseren Routers |
|||
|
IP-Header und 64 Bit Datagram-Prefix |
|||
|
. . . |
|||
|
Code |
|
|
0 |
Neue Route für ein Netz |
|
1 |
Neue Route für einen Host |
|
2 |
Neue Route für einen Service und ein Netz |
Anwendung: Bekommt ein Router ein Datenpacket für ein Netz, bzw. einen Host der über einen anderen Router im selben Netz erreichbar ist, so leitet er das Datenpaket weiter und sendet zusätzlich ein "Change Route" an den Sender, um ihm den besseren Router mitzuteilen.
|
Type (11) |
Code (0-1) |
Checksumme über komplette Datenblock |
|
|
unbenutzt |
|||
|
IP-Header und 64 Bit Datagram-Prefix |
|||
|
. . . |
|||
|
Code |
|
|
0 |
Time-to-Live wurde Null (Hopcounter) |
|
1 |
Fragment-Reassembly Zeit wurde überschritten |
Anwendung: Der Befehl Traceroute sendet einen Ping zu einem Host mit dem Time-to-Live Zähler gleich eins. Nach einem Schritt ist der Zähler Null und es wird ein Time Exceeded Code(0) zurückgesendet. Jetzt wird ein Ping abgesendet dessen Time-to-Live Zähler zwei ist, usw. Man bekommt von jedem Host auf dem Weg zum Ziel eine Antwort, und damit die IP-Adresse.
|
Type (12) |
Code (0) |
Checksumme über komplette Datenblock |
|
|
Pointer |
unbenutzt |
||
|
IP-Header und 64 Bit Datagram-Prefix |
|||
|
. . . |
|||
Der Pointer zeigt auf die Stelle im IP-Header die das Problem verursacht hat.
|
Type (13-14) |
Code (0) |
Checksumme über komplette Datenblock |
|
|
Identifikation |
Sequenz-Nummer |
||
|
Zeitstempel unmittelbar vor dem Senden des Requests |
|||
|
Zeitstempel unmittelbar nach dem Empfang des Requests |
|||
|
Zeitstempel unmittelbar vor dem Senden des Reply |
|||
Anwendung: Zur Ermittelung von Laufzeiten. Zeitstempel in Millisekunden seit Mitternacht.
|
Type (15-16) |
Code (0) |
Checksumme über komplette Datenblock |
|
|
Identifikator |
Sequenz-Nummer |
||
|
Type (17-18) |
Code (0) |
Checksumme über komplette Datenblock |
|
|
Identifikator |
Sequenz-Nummer |
||
|
Netzwerkmaske |
|||
Anwendung: Die Requests können als IP-Broadcasts oder an ein Gateway geschickt werden.