Handout zum PRRL Referat: ICMP

Internet Control Message Protocol

Referent: David Lenhart

Klasse: 4AHDVN

Überblick

* Dient zum Informationsaustausch über Fehler im Datenaustausch.
* Keine ICMP Nachrichten als Antworten auf ICMP Nachrichten und nur als Reaktion auf den 1ten (0ten) Teil eines fragmentierten Datagrams
* Werden unter Verwendung des IP Headers gesendet
* Wie funktioniert Checksummenbildung im ICMP Header:
** Zuerst wird beim Sender das Checksum field auf 8*0 gesetzt
** Dann wird der ICMP Header in 8bit Felder unterteilt
** Diese werden alle addiert und anschließend das 1er Komplement dieser Summe gebildet
** Das wird dann in das Checksum field eingefügt
** Der Empfänger wiederholt den Prozess und sollte 8x1 erhalten, falls nicht wurde der Packet Header beim Transport veraendert
* RFC 792 stellt die erstmalige Definiton von ICMP dar.

Überblick über die ICMP Type/Code Arten



* Das Type Feld im ICMP Header wird mit der jeweiligen Type Nummer gefüllt (z.B.: bei Echo Request: Type = 0)
* Das Code Feld dient zur Untergliederung der jeweiligen ICMP Type Msg.

ICMP Type 0/8 (Echo Request/Reply)



* Dient zur Messung der Erreichbarkeit/Verbindungsgeschwindigkeit des Zielhosts.
* Identifier/Seq. Number kann dazu verwendet werden um herauszufinden zu welchem Request ein Reply eingetroffen ist ("Packet Matching")(vom OS abhängig, beliebiger 16bit Wert)
* Praktisches Beispiel: ping

ICMP Type 3 (Destination Unreachable)



* Dient zur Informationsweitergabe ueber die (Un-) Erreichbarkeit eines:
** Netzwerkes
** Hosts
** Protokolls
** Dienstes
Bei Type = 4, Unused Feld = 2 Byte, Next Hop MTU = 2 Byte (<68 Byte)

ICMP Type 4 (Source Quench)



* Anfrage um Geschwindigkeitsreduktion bei der Datenübertragung vom Empfänger an den Sender
* Vom Empfänger gesendet

ICMP Type 5 (Redirect)



* Vom Router des Zielnetzwerks (Netzwerks in dem sich der Zielhost befindet) gesendet. ("Ich hab zuviel zu tun")
* Umleiten von einem Datentransfer (Bester Router um ein Netzwerk zu erreichen)

ICMP Type 9/10 (Router Advertisement/Solicitation)



* Router sagt: “Ich existiere“
* Nicht mehr unter Verwendung (abgelöst durch BOOTP/BOOTSTRAP bzw. DHCP
* Der “Advertisement count“ gibt an wie viele Router Adress/Pref. Level Paare im Datenteil der Message sind.
* Die “Address entry size“ gibt an wie groß ein Informationspaar ist (in 32bit Worten), normalerweise auf 2 gesetzt. (Router Adresse + Pref. Level)
* Preference Level = Gibt die Qualitaet des Routers an. (Umso höher umso besser)(Signed 2s complement)
* Lifetime = 16bit TTL

ICMP Type 11 (Time Exceeded)



* TTL wird im IP Header bei der Packet Weitergabe von Router zu Router um jeweils "1" pro Router dekrementiert (vom Router).
* TTL = 0 (Route, bzw. Reassembly)
* Praktisches Beispiel: traceroute

ICMP Type 13/14 (Timestamp Request/Reply)



* Anfrage fuer die korrekte Uhrzeit (In ms nach 2400 (Mitternacht))
* Sender: fuellt “Originate Timestamp“ aus
* Empfänger: füllt “Receive Timestamp“ beim Erhalt und “Transmit Timestamp“ beim Versand aus.


Quellen: RFC 792, networksorcery.com