Startseite   Titel   Zurück   Suche 
OPTIONEN
 Zur Startseite
 Zur Titelseite
 Eine Seite zurück
 Zum Archiv-Index
HILFE
 Suche
SCHLIESSEN


ICMP
Übersicht
Einführung Mehr... Links RFCs Books
TECHNIK
  • Die Funktion des ICMP
  • Der Aufbau des ICMP
  • ICMP Typen
  • Credits
  • Die Funktion des ICMP
    Das ICMP (Internet Control Message Protocol) wird, wie der Name schon sagt, zur Meldung von Fehlern bei der Kommunikation und Übertragung von Daten verwendet. So wird es z.B. benutzt, wenn ein Datengramm nicht zustellbar ist. Dabei ist das ICMP nicht 100%ig zuverlässig, da trotzdem Pakete verloren gehen können, ohne dass eine Fehlermeldung erfolgt und auch keine ICMP-Nachrichten über ICMP-Nachrichten versendet werden (d.h. wenn eine Fehlermeldung verloren geht, erfährt der Empfänger weder dies noch die Tatsache, dass eines seiner Pakete überhaupt nicht angekommen ist). Desweiteren werden bei fragmentierten Daten nur ICMP-Nachrichten verschickt, wenn bei dem ersten Fragment (Fragment Offset ist 0) ein Fehler auftritt, nicht bei den weiteren. Das ICMP ist fester Bestandteil des IP.

    Der Aufbau des ICMP
    Für das Versenden von ICMP-Nachrichten wird der Basis-Header des IP verwendet. Dabei ist das erste Oktett des Datengramms das ICMP-Typ Feld. Hier wird festgelegt, wie die restlichen Felder zu handhaben sind (mit welchen Informationen diese gefüllt sind) . Dies ist notwendig, da es verschiedene, jeweils anders aufgebaute ICMP-Nachrichten gibt. Gleich ist bei den meisten dieser Meldungen, dass die ersten 8 Oktetts (64 Bits) für die ICMP-Meldung benötigt werden; die Verwendung dieses Platzes ist jedoch unterschiedlich (genaueres dazu weiter unten im vorliegenden Dokument). Nach den ersten 8 Oktetts folgt normalerweise der Internet Header (IP) und nach diesem die ersten 64 Bits des ursprünglichen Paketes. Diese Daten werden für den Host benötigt, um die Nachricht dem entsprechenden Prozess zuordnen zu können. Wenn von einem höheren Protokoll Portnummer benutzt werden, so sind diese in den ersten 64 Bits vorhanden.

    Bei dem IP müssen für das ICMP bestimmte Felder gefüllt sein, alle anderen werden nach den allgemeinen Regeln gefüllt (z.B. Destination Address, Flags, etc.; siehe dazu IP) . Die benötigten Felder samt den entsprechenden Werten sind:

  • Version: 4
  • Type of Service: 0
  • Protocol: 1 (ICMP)

    ICMP verwendet IP zum Übertragen der Nachrichten. Entsprechend wird eine ICMP Nachricht in einem IP-Datengramm eingekapselt. Hier ist der allgemeine Aufbau einer ICMP-Nachricht:

    Bei der Beschreibung der einzelnen Fehlermeldungen wird jeweils nur auf die ersten 8 Oktetts (die ersten zwei Zeilen) eingegangen, da der Rest immer gleich bleibt. Ausnahmen: Echo oder Echo Reply Nachrichten und Timestamp oder Timestamp Reply Nachrichten.

  • ICMP Typen
  • Destination Unreachable Message (Empfänger nicht erreichbar)

    Erklärungen:
  • Type: 3
  • Code:
    0 = Netz nicht erreichbar
    1 = Host nicht erreichbar
    2 = Protokoll nicht erreichbar
    3 = Port nicht erreichbar
    4 = Fragmentierung benötigt und DF-Flag gesetzt
    5 = source route failed
  • Dieser Typ wird benutzt, wenn der vom IP der ursprünglichen Nachricht angegebene Empfänger bzw. Dienst nicht erreichbar ist, sei es weil eine falsche Adresse angegeben wurde, sei es weil der Empfänger nicht mehr mit dem Netz in Verbindung steht. Es wird auch benutzt, wenn für den weiteren Transport des Datengramms eine Fragmentierung nötig ist, das DF-Flag (don't fragment) aber gesetzt ist.

    Die Codes 0, 1, 4 und 5 werden von einem Gateway gesetzt, die Codes 2 und 3 von einem Host.

  • Time Exceeded Message

    Erklärungen:
  • Type: 11
  • Code:
    0 = Time to Live wurde während des Transportes überschritten
    1 = fragment reassembly time exceeded
  • Wenn während des Transportes der TTL-Wert 0 erreicht, muss die Nachricht gelöscht werden und dem Sender die entsprechende Nachricht geschickt werden. Dies ist auch der Fall, wenn beim Defragmentieren nicht alle Daten vorhanden sind. (Ausnahme: Wenn Fragment 0 nicht vorhanden ist, wird auch keine Time Exceeded Nachricht geschickt). Code 0 wird von einem Gateway gesetzt, Code 1 von einem Host.

  • Parameter Problem Message

    Erklärungen:
  • Type: 12
  • Code: 0 (der Zeiger verweist auf den Fehler)
  • Pointer: wenn der Code 0 ist, dann verweist der Zeiger auf das fehlerhafte Oktett
  • Wenn beim Transport des Datengramms ein Fehler bei den Header-Parametern festgestellt wird, der das Weitersenden unmöglich macht, dann muss das Datengramm gelöscht werden und eine entsprechende Fehlermeldung an den Absender geschickt werden. Bei einem Fehler verweist der Zeiger dann auf das fehlerhaft Oktett. So ist bei einem Wert von 1 ein Fehler beim Type of Service aufgetreten, bei 20 ist etwas bei dem TypeCode der ersten Option falsch. Code 0 wird von einem Gateway oder Host gesetzt.

  • Source Quench Message

    Erklärungen:
  • Type: 4
  • Code: 0
  • Diese Nachricht wird verschickt, wenn das Datengramm entweder wegen mangelndem Speicherplatz seitens des Gateways oder wegen zu schnellem Verschicken der Pakete gelöscht wird. In letzterem Fall schraubt der Sender solange die Geschwindigkeit, mit der er Daten versendet, zurück, bis er keine Fehlermeldungen mehr erhält. Danach kann er wieder langsam seine Geschwindigkeit erhöhen, bis er wieder Fehlermeldungen erhält. Dadurch erreicht er die optimale Sendegeschwindigkeit Code 0 wird von einem Gateway oder Host gesetzt.

  • Redirect Message

    Erklärungen:
  • Type: 5
  • Code:
    0 = Leite die Datengramme für das Netzwerk um
    1 = Leite die Datengramme für den Host um
    2 = Leite die Datengramme für den Type of Service und das Netzwerk um
    3 = Leite die Datengramme für den Type of Service und den Host um
  • Gateway Internet Address: Adresse des Gateways, zu welchem Nachrichten für den gewünschten Bestimmungsort geschickt werden sollten, um das Senden zu beschleunigen
  • Wenn es einen schnelleren Weg als den momentan benutzten gibt, um Daten von Punkt A nach Punkt B zu senden, dann sendet der entsprechende Gateway, der dies anhand seiner Routing-Tabelle feststellt, die entsprechende Nachricht an den Sender. Für Datengramme, die dies ausdrücklich untersagen, wird dennoch der umständlichere Weg benutzt. Die Codes 0, 1, 2 und 3 werden von einem Gateway gesetzt.
  • Echo oder Echo Reply Message

    Erklärungen:
  • Type:
    8 = für Echo Nachrichten
    0 = für Echo Reply Nachrichten
  • Code: 0
  • Identifier: hi lft bei der Zuordnung der Echo und Echo Reply Nachricht
  • Sequence Number: hilft bei der Zuordnung der Echo und Echo Reply Nachricht
  • Die Daten der Echo Nachricht müssen mit der Echo Reply Nachricht zurückgeschickt werden.
  • Timestamp oder Timestamp Reply Message

    Erklärungen:
  • Type:
    13 = Timestamp Nachricht
    14 = Timestamp Reply Nachricht
  • Code: 0
  • Identifier: hilft bei der Zuordnung der Timestamp und Timestamp Reply Nachricht
  • Sequence Number: hilft bei der Zuordnung der Timestamp und Timestamp Reply Nachricht
  • Ein Timestamp beinhaltet die Anzahl an vergangenen Millisekunden seit Mitternacht (UT). Das Feld Originate Timestamp beinhaltet die Zeitangabe, zu der der Sender das Paket vor dem Versenden zuletzt berührt hat, das Feld Receive Timestamp die Zeitangabe, zu der der Echo-Absender das Paket empfangen hat und das Feld Transmit Timestamp die Zeitangabe, zu der der Echo-Absender das Paket vor dem Versenden zuletzt berührt hat. Code 0 wird von einem Gateway oder Host gesetzt.

  • Information Request oder Information Reply Message

    Erklärungen:
  • Type:
    15 = für eine Information Request Nachricht
    16 = für eine Information Reply Nachricht
  • Code: 0
  • Identifier: hilft bei der Zuordnung der Information und Information Reply Nachricht
  • Sequence Number: hilft bei der Zuordnung der Information und Information Reply Nachricht
  • Diese Nachricht wird geschickt, um die Nummer des Netzwerkes, in dem man sich befindet, herauszufinden. Dazu sendet man eine Request Nachricht, wobei die Source und Destination Address Felder beide den Wert 0 haben (dies bedeutet, dass es sich um "dieses" (sein) Netzwerk handelt). Die Antwort (Reply Nachricht) enthält dann die vollständigen Adressen in den entsprechenden Feldern. Code 0 wird von einem Gateway oder Host gesetzt.


    Bericht von :
    [ Chronyx ]
    Überarbeitet von :
    [ CONVEX ]


    CHECK THIS SITE