Um Sta­tus­in­for­ma­tio­nen oder Feh­ler­mit­tei­lun­gen aus­tau­schen zu können, greifen Knoten in TCP/IP-Netz­wer­ken auf das Internet Control Message Protocol (ICMP) zurück. Ins­be­son­de­re An­wen­dungs­ser­ver und Gateways (z. B. Router) benutzen die IP-Er­wei­te­rung, um Be­nach­rich­ti­gun­gen über Probleme mit Da­ta­gram­men zum Absender des Pakets zu­rück­zu­schi­cken. Aufbau, Funk­ti­ons­wei­se und Ein­ord­nung in den In­ter­net­pro­to­koll­sta­pel wurden 1981 im RFC 792 spe­zi­fi­ziert. Für Version 6 des In­ter­net­pro­to­kolls ist darüber hinaus im RFC 4443 die spe­zi­fi­sche Im­ple­men­ta­ti­on ICMPv6 definiert worden.

Per De­fi­ni­ti­on ist ICMP ein ei­gen­stän­di­ges Protokoll, auch wenn die ver­schie­de­nen Be­nach­rich­ti­gun­gen in ge­wöhn­li­che IP-Pakete ein­ge­bun­den werden. Zu diesem Zweck behandelt das Internet Protocol die optionale Er­wei­te­rung wie ein Protokoll höherer Schichten. Diverse, oft genutzte Netz­werk­diens­te wie tra­ce­rou­te oder ping basieren auf dem ICMP-Protokoll.

Wie funk­tio­niert ICMP?

Um die Funk­ti­ons­wei­se des Pro­to­kolls zu verstehen, schauen wir uns zunächst den Aufbau von ICMP bzw. des Headers an. Dieser knüpft direkt an den IP-Header an, wobei er durch die Angabe der Pro­to­koll­num­mer 1 bzw. 58 (ICMPv6) im IP-Feld „Protocol“ an­ge­kün­digt wird. Der Kopf­da­ten­be­reich des Internet Control Message Protocol selbst ist nicht sehr um­fang­reich und hat folgende Form:

Das erste, 8 Bit lange Feld „Typ“ legt fest, um was für einen Be­nach­rich­ti­gungs­typ es sich bei dem je­wei­li­gen ICMP-Paket handelt. Diese Angabe kann durch das nach­fol­gen­de „Code“-Feld, das ebenfalls 8 Bit lang ist, spe­zi­fi­ziert werden. So gibt eine ICMP-Nachricht Typ 3 bei­spiels­wei­se an, dass das Ziel des Da­ten­pa­kets nicht er­reich­bar ist, während der Code diese Angabe prä­zi­siert und Auskunft darüber gibt, ob das Ziel­netz­werk (0), der ge­wünsch­te Host (1) oder der an­ge­streb­te Port (3) nicht auf die vor­aus­ge­hen­de Anfrage reagiert haben. Im Anschluss an die In­for­ma­tio­nen über den Nach­rich­ten­typ steht die ICMP-Prüfsumme, die für die Kor­rekt­heit der Be­nach­rich­ti­gung sorgt. Diese wird auf die gleiche Art und Weise gebildet wie die Prüfsumme anderer Stan­dard­pro­to­kol­le (IP, UDP, TCP).

Zuletzt stehen die ICMP-Daten, die abhängig von dem je­wei­li­gen Typ und der aus­lö­sen­den Instanz ganz un­ter­schied­lich aufgebaut und struk­tu­riert sind. Häufig werden hier noch einmal der IP-Header sowie die ersten 64 Bit des Da­ten­pa­kets auf­ge­führt, das für die Feh­ler­mel­dung oder die Sta­tus­ab­fra­ge ver­ant­wort­lich ist. Beim so­ge­nann­ten ICMP-Tunneling wird dieses Feld dazu zweck­ent­frem­det, Nutzdaten unter dem Radar von Firewalls zu ver­schi­cken oder einen ver­schlüs­sel­ten Kom­mu­ni­ka­ti­ons­ka­nal zwischen zwei Rechnern auf­zu­bau­en.

Welche ICMP-Pa­ket­ty­pen gibt es?

Aufgrund der Feldlänge von 8 Bit sind theo­re­tisch 256 ver­schie­de­ne ICMP-Nach­rich­ten­ty­pen möglich, wobei rund 40 fest vergeben (inklusive einiger ver­al­te­ter Vertreter) und einige für die ex­pe­ri­men­tel­le Nutzung blockiert sind. Der Großteil der Nummern (42–252) ist aktuell nicht vergeben, aber prin­zi­pi­ell re­ser­viert. Die Vergabe der Nummern liegt in der Ver­ant­wor­tung der IANA (Internet Assigned Numbers Authority), die bei­spiels­wei­se auch die Zuordnung der IP-Adress­räu­me und Ports reguliert. In der folgenden Tabelle haben wir einige der wich­tigs­ten Pa­ket­ar­ten zu­sam­men­ge­fasst, die auf dem Internet Control Message Protocol basieren:

ICMP-Typ ICMPv6-Typ Typname Code Be­schrei­bung
3 129 Echo Reply 0 Antwort auf einen Netzwerk-Ping zum Testen der Er­reich­bar­keit
0 1 De­sti­na­ti­on Un­re­acha­ble 0–15 ICMP-Nachricht, die u. a. über die Nicht­er­reich­bar­keit der im Feld „Code“ an­ge­ge­be­nen Kom­po­nen­te (Netzwerk, Protokoll, Port, Host), über Routing-Probleme oder eine Blo­ckie­rung durch Firewalls in­for­miert
5 137 Redirect Message 0–3 Be­nach­rich­ti­gung über die Umleitung eines Pakets für das an­ge­ge­be­ne Netzwerk (0), den aus­ge­wähl­ten Host (1), für den an­ge­ge­be­nen Dienst und das Netz (2) oder für den an­ge­ge­be­nen Dienst und Host (3)
8 128 Echo Request 0 Netzwerk-Ping
9 134 Router Ad­ver­ti­se­ment 0 Wird von Routern verwendet, um sich den ver­schie­de­nen Netzwerk-Clients mit­zu­tei­len
11 3 Time Exceeded 0 oder 1 Sta­tus­be­richt, der entweder angibt, dass die Le­bens­dau­er (Time to Live, TTL) eines Pakets (0) oder die Wartezeit für den Zu­sam­men­bau frag­men­tier­ter IP-Pakete (1) ab­ge­lau­fen ist
13 13 Timestamp 0 Versieht das ent­spre­chen­de IP-Paket mit einem Zeit­stem­pel, der dem Ver­sand­zeit­punkt ent­spricht und der Syn­chro­ni­sa­ti­on zweier Rechner dient
14 - Timestamp Reply 0 Ant­wort­nach­richt auf einen ICMP-Timestamp, die der Adressat nach dem Erhalt eines solchen ver­schickt
30 - Tra­ce­rou­te 0 Ver­al­te­ter ICMP-Nach­rich­ten­typ, der dazu genutzt wurde, den Weg eines Da­ten­pa­kets im Netzwerk nach­zu­ver­fol­gen; heute sind zu diesem Zweck in erster Linie Echo-Requests und -Replys im Einsatz

Hier kommen ICMP und ICMPv6 zum Einsatz

ICMP ist für die Kom­mu­ni­ka­ti­on in IP-Netz­wer­ken von ent­schei­den­der Bedeutung, wobei das Protokoll – wie bereits erwähnt – ins­be­son­de­re von Routern ein­ge­setzt wird. Server und Clients machen aber ebenso von den Mög­lich­kei­ten der an das Internet Protocol ge­kop­pel­ten Nach­rich­ten Gebrauch und erhalten auf diese Weise wichtige Netz­werk­in­for­ma­tio­nen.

Ein weit ver­brei­te­tes Ein­satz­sze­na­rio ist der so­ge­nann­te Netzwerk-Ping, der mithilfe gleich­na­mi­ger An­wen­dun­gen über die Kom­man­do­zei­le des je­wei­li­gen Be­triebs­sys­tems aus­ge­führt werden kann. Das simple, aber nützliche Dia­gno­se­werk­zeug stellt die ein­fachs­te Lösung dar, um die Er­reich­bar­keit eines be­stimm­ten Hosts im Netzwerk zu über­prü­fen. Zu diesem Zweck versendet Ping ein IP-Paket inklusive ICMP(v6)-„Echo Request“ (Typ 8 bzw. 128), auf das der Empfänger sei­ner­seits nach dem Erhalt mit einem Da­ten­pa­ket be­ant­wor­tet, das den ICMP-Eintrag „Echo Reply“ (Typ 0 bzw. 129) enthält. Wird das System, an das der Ping gesendet wurde, nicht erreicht, ver­schickt die letzte, noch er­reich­ba­re Netz­werk­sta­tion ein Ant­wort­pa­ket. Dieses ist ebenfalls um eine ICMP-Kom­po­nen­te erweitert: Typ 3 bzw. 1 „De­sti­na­ti­on Un­re­acha­ble“ („Ziel nicht er­reich­bar“).

Router wiederum nutzen ICMP für ver­schie­de­ne Zwecke: Per Router Ad­ver­ti­se­ment (ICMP-Typ 9; ICMPv6-Typ 134) setzen sie z. B. alle aktiven Netz­werk­teil­neh­mer in re­gel­mä­ßi­gem Abstand über ihre An­we­sen­heit und ver­schie­de­ne Netz­werk­in­for­ma­tio­nen in Kenntnis. Diese speichern die er­hal­te­nen Daten in ihrem Cache und machen den Router wahlweise zum Standard-Gateway. Ferner versuchen Router den Weg von Da­ten­pa­ke­ten im Netzwerk durch ICMP-Redirects (Typ 5 bzw. 137) zu op­ti­mie­ren. Mithilfe dieses Nach­rich­ten­typs weisen die Netz­werk­schnitt­stel­len einen Host auf die Existenz eines besseren, ersten Hops (Zwi­schen­sta­ti­on) für den Versand von IP-Paketen hin.

Zum Hauptmenü