ICMP, das „Internet Control Message Protocol“, zählt zu den unbekannteren Netzwerkprotokollen, obwohl es jeder täglich nutzt. Es ist ein wichtiger Teil aller IP-Netzwerke und verbessert die Übertragung zwischen Routern und anderen Clients. Wir erklären euch, wie das funktioniert.
Wie der volle Name „Internet Control Message Protocol“ schon andeutet, wird ICMP dazu genutzt, Kontrollnachrichten zu übertragen. Wenn ein Router Übertragungsfehler feststellt, benachrichtigt er über das ICMP die nachfolgenden Router und Clients. Es gibt übrigens zwei dieser Protokolle: Während ICMP für IPv4-Netze zuständig ist, kommt ICMPv6 dementsprechend in IPv6-Netzwerken zum Tragen.
Wer nutzt ICMP?
Die zwei bekanntesten Netzwerktools, die auf ICMP zurückgreifen, sind Ping und Traceroute. Sie sind dazu gedacht, das Internet Control Message Protocol zu nutzen, um Verbindungsfehler in TCP/IP-Netzen anzuzeigen.
Da es verschiedene ICMP-Typen gibt, wird das Protokoll von unterschiedlichen Geräten zur Kontrolle genutzt. Mit dem Ping wird etwa geprüft, ob die Gegenstelle existent und empfangsbereit ist. Der ICMP-Typ 5 informiert über die Umleitung von Datenpaketen und der Typ 11 ist ein Statusbericht für Zeitüberschreitungen. Traceroute entspricht dem ICMP-Typ 30.
Wie wird ICMP verwendet?
Vereinfacht gesagt, besteht das ICMP-Protokoll aus dem ICMP-Typ und dem festgelegten Code. Es gibt rund 256 Typen, von denen aber aktuell nicht alle verwendet werden. Einige davon sind bereits veraltet, während andere eher experimenteller Natur sind.
Der Typ der Kontrollnachricht legt fest, welcher Netzwerkzustand überhaupt untersucht wird, während der Code innerhalb der Nachricht dann das Ergebnis der Kontrolle festlegt.
Hier ein Beispiel:
- Der ICMP-Typ 3 trägt den Typnamen „Ziel nicht erreichbar“.
- Da es dafür aber mehrere Gründe geben kann, wird das durch den Code innerhalb des Typs 3 genauer spezifiziert.
Typ | Typname | Code | Antwort/Bedeutung |
3 | Ziel nicht erreichbar | 0 | Netzwerk nicht erreichbar |
1 | Host nicht erreichbar | ||
2 | Protokoll nicht erreichbar | ||
3 | Port nicht erreichbar | ||
4 | Fragmentierung nötig, Don’t Fragment aber gesetzt | ||
5 | Route nicht möglich | ||
13 | Paket wird von der Empfänger-Firewall geblockt |
Diese Nachrichten, also etwa Typ 3 – Code 1, sind erst einmal nur reine Informationen. Wie die unterschiedlichen Stationen darauf reagieren, ist Teil ihrer Programmierung. Die genannte Nachricht informiert darüber, dass der empfangende Host unerreichbar ist. Nun kann ein Router beispielsweise einfach immer wieder versuchen, die Daten zu senden oder er gibt nach einer eingestellten Zeit beziehungsweise Zahl an Versuchen auf.
Aus diesem Grund kann das Internet Control Message Protocol auch für Netzwerkangriffe genutzt werden. So werden beispielsweise bei einem DDoS-Angriff unendlich viele Pings von sehr vielen Rechnern gleichzeitig an das Ziel der Attacke gesendet. Dieses muss auf jeden einzelnen Ping mit einer Antwort reagieren, was seine Ressourcen schnell erschöpft und den Server in die Knie zwingt.
Da das ICMP-Protokoll von so grundlegender Wichtigkeit ist, kann man Teile – wie etwa Ping – nicht einfach deaktivieren und darum kann es für solche Angriffe eingesetzt werden.