Zum Hauptinhalt springen

Echo or Echo Reply Message (Echo-Nachricht)

    0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifier | Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data ...
+-+-+-+-+-

IP-Felder

Addresses (Adressen)

Die Adresse des Quellhosts in einer Echo-Nachricht wird die Zieladresse der Echo-Antwort-Nachricht sein. Um eine Echo-Antwort zu bilden, vertauscht die Quelle und das Ziel einfach die Adressen, setzt den Typ-Code auf 0 und berechnet die Prüfsumme neu.

ICMP-Felder

Type

8 für Echo-Nachricht;

0 für Echo-Antwort-Nachricht.

Code

0

Checksum (Prüfsumme)

Die Prüfsumme ist das 16-Bit-Einerkomplement der Einerkomplement-Summe der ICMP-Nachricht, beginnend mit dem ICMP-Type. Zur Berechnung der Prüfsumme sollte das Prüfsummenfeld Null sein. Falls die Gesamtlänge ungerade ist, wird das empfangene Datagramm so ergänzt, dass es zum Zweck der Berechnung der Prüfsumme ein ganzzahliges Vielfaches von zwei Oktetten ist. Die Prüfsumme kann in Zukunft ersetzt werden.

Identifier

Wenn Code = 0, kann eine Identifikation als Hilfsmittel zur Zuordnung von Echoantworten zu Echo-Anfragen verwendet werden. Der Code muss in der Echo-Antwort zurückgegeben werden.

Sequence Number (Sequenznummer)

Wenn Code = 0, kann eine Sequenznummer als Hilfsmittel zur Zuordnung von Echoantworten zu Echo-Anfragen verwendet werden. Der Code muss in der Echo-Antwort zurückgegeben werden.

Beschreibung

Die Daten, die in einer Echo-Nachricht empfangen werden, müssen in der Echo-Antwort-Nachricht zurückgegeben werden.

Die Identifikatoren und Sequenznummern können vom sendenden Prozess verwendet werden, um die Antworten mit den Echoanfragen zu verknüpfen. Beispielsweise kann die Identifikation wie eine Portnummer im TCP oder UDP verwendet werden, um ein Ziel zu identifizieren. Die Sequenznummer kann verwendet werden wie eine Sequenznummer in TCP, um die Nachrichten zu ordnen.


Praktischer Hinweis: Dies ist die Grundlage für das ping Dienstprogramm, das weit verbreitet zur Netzwerkdiagnose verwendet wird:

$ ping google.com
PING google.com (142.250.185.78): 56 data bytes
64 bytes from 142.250.185.78: icmp_seq=0 ttl=116 time=12.5 ms
64 bytes from 142.250.185.78: icmp_seq=1 ttl=116 time=11.8 ms

Jede Zeile stellt eine Echo-Anfrage/Antwort-Sequenz dar:

  • icmp_seq: Entspricht der Sequenznummer
  • ttl: Time to Live des Antworpakets
  • time: Rundlaufzeit (RTT) in Millisekunden