Internet Control Message Protocol ICMP (Internet Control Message Protocol) ist ein Fehlermeldemechanismus, ein wichtiges Subprotokoll im TCP/IP-Protokollcluster, das üblicherweise von IP-Schicht- oder höheren Schichtprotokollen (TCP oder UDP) verwendet wird, zum Netzwerkprotokoll gehört und hauptsächlich zur Übertragung von Kontrollnachrichten zwischen IP-Hosts und Routern verwendet wird, um zu melden, ob der Host erreichbar ist, ob die Route verfügbar ist usw. Obwohl diese Steuernachrichten keine Benutzerdaten übertragen, spielen sie eine entscheidende Rolle bei der Erfassung verschiedener Netzwerkinformationen, der Diagnose und Fehlerbehebung verschiedener Netzwerkfehler sowie der Übertragung von Benutzerdaten.
Warum brauchst du ICMP?
Im Prozess der Datenübertragung bietet IP einen Best-Effort-Service, der darauf hindeutet, Datenpakete an die Zieladresse zu senden. Es überprüft nicht, ob der Zielhost das Paket empfängt oder nicht, und kann keine Fluss- und Fehlerkontrolle durchführen. Daher sind während des Paketübertragungsprozesses verschiedene Fehler unvermeidlich. ICMP wurde entwickelt, um IP-Pakete effizienter weiterzuleiten und die Chancen auf den Erfolg der Paketzustellung zu verbessern. Bei ICMP meldet der Host oder das Gerät bei einem Problem mit der Paketübertragung im Netzwerk die Fehlersituation an das obere Protokoll und liefert einen Bericht über die abnormale Situation, damit das obere Protokoll anhand seines eigenen Fehlerkontrollprogramms für Verkehrs- und Fehlerkontrolle beurteilen kann, ob die Kommunikation korrekt ist.
Wie sind die Anwendungsszenarien von ICMP?
Fehlermeldung
ICMP-Fehlermeldungen melden Netzwerkfehler wie unerreichbares Ziel, Zeitunterbrechungen oder Segmentierungsprobleme. Diese Nachrichten sind besonders wichtig für das User Datagram Protocol (UDP) mit einem verbindungslosen Kommunikationsmodell.
UDP bietet keine zuverlässige, geordnete Paketübertragung. Beim Senden von UDP-Paketen können Pakete verloren gehen oder ausfallen, wie etwa Prüfsummenfehler während der Übertragung. In diesem Fall sendet der Empfänger eine ICMP-Fehlermeldung an den Absender, um das Problem zu benachrichtigen.
Diagnose
Man kann ICMP für Netzwerkdiagnostik verwenden. Sie wird am häufigsten für Ping- und Traceroute-Befehle verwendet.
Der Ping-Befehl testet die Zugänglichkeit von Netzwerkgeräten, indem er ICMP-Echo-Anfragepakete an das Zielgerät sendet. Wenn das Gerät zugänglich ist, wird eine ICMP-Echo-Antwort zurückgegeben. Es überprüft zuverlässig die Netzwerklatenz und stellt die Verfügbarkeit der Geräte sicher.
Der Traceroute-Befehl verfolgt den Pfad, den das Paket von seiner Quelle bis zum Ziel zurückgelegt hat. Dazu sendet der Befehl die Echo-Anfrage und die Echo-Antwort-Nachricht an das vorgesehene Ziel.
Echo-Anfragen enthalten einen Time-to-Live-Wert (TTL), der für jeden Router, durch den das Paket geht, um 1 reduziert wird. Wenn ein Paket einen Router mit null TTL erreicht, sendet der Router eine ICMP-Nachricht an das Quellende.
Die Nachricht enthält Informationen über die vom Paket genommene Route. Traceroute zeigt den genauen Pfad des Pakets an und kann Ihnen Details zu Ihrer Netzwerkleistung liefern.
Cybersicherheit
Man kann ICMP nutzen, um unbefugten Netzwerkverkehr zu erkennen und nur legitimen Datenverkehr durch das Netzwerk zu lassen. Firewalls nutzen ICMP, um bestimmte Arten von Datenverkehr zuzulassen oder zu blockieren. Netzwerkadministratoren nutzen außerdem ICMP-Überwachungstools, um den Status und die Konnektivität von Netzwerkgeräten zu verfolgen und unbekannte Geräte zu erkennen.
Sie können es auch nutzen, um ungewöhnliche Verkehrsmuster zu erkennen, die auf unbefugte Aktivitäten hindeuten könnten.
ICMP-Protokollnachrichtenformat
Das ICMP-Paketformat ist in der Abbildung dargestellt, und jede ICMP-Nachricht enthält den vollständigen IP-Header des Pakets, das die ICMP-Nachricht ursprünglich erzeugt hat; das ICMP-Paket ist als Teil des IP-Pakets im IP-Paket gekapselt. Die drei festen Felder, die im ICMP-Header enthalten sind, sind die Hauptbasis für das Quellgerät, um die Art des auftretenden Fehlers zu bestimmen.
Das Typfeld gibt den Typ der ICMP-Nachricht an; Das Code-Feld stellt einen Untertyp des ICMP-Nachrichtentypsegments dar; Das Prüfsummenfeld stellt die Prüfsumme der ICMP-Pakete dar.
Verschiedene Arten von ICMP-Paketen werden in zwei Typen unterteilt: Fehlerpakete und Abfragepakete, wie in der ICMP-Paketklassifikationstabelle gezeigt.
ICMP-Paketklassifikation
Typ | | | | 0-Echo-Antwort | 0 | Echo antwortet auf die Nachricht | Sich erkundigen | 3- Das Ziel ist unerreichbar | 0 | Das Zielnetzwerk kann das Paket nicht erreichen | Fehler | 1 | Der Zielwirt kann das Paket nicht erreichen | Fehler | 2 | Die Zielvereinbarung kann das Paket nicht erreichen | Fehler | 3 | Der Zielport kann das Paket nicht erreichen | Fehler | 4 | Segmentierungs- und DF-Flag-Nachrichten | Fehler | 5 | Quellrouten-fehlgeschlagene Pakete | Fehler | 6 | Unbekannte Zielnetzwerkpakete | Fehler | 7 | Unbekannte Zielhostpakete | Fehler | 8 | Der Quellhost isoliert Pakete | Fehler | 9 | Netzwerkpakete, auf die der Zugriff verboten ist | Fehler | 10 | Host-Nachrichten, denen der Zugriff verboten ist | Fehler | 11 | Pakete sind für ein bestimmtes TOS-Netzwerk nicht erreichbar | Fehler | 12 | Pakete sind für einen bestimmten TOS-Host nicht erreichbar | Fehler | 13 | Pakete werden aufgrund von Filterverkehr im Netzwerk unterdrückt | Fehler | 14 | Host-Überschritt-Autoritäts-Nachricht | Fehler | 15 | Prioritätsbeendigungs-Wirksamkeitsnachricht | Fehler | 5- Weiterleitung | 0 | Netzwerkpakete umleiten | Fehler | 1 | Hostpakete umleiten | Fehler | 2 | TOS-basierte Netzwerkumleitungspakete | Fehler | 3 | TOS-basierte Host-Redirect-Pakete | Fehler | 8- Echo-Anfrage | 0 | Echo fordert Pakete an | Sich erkundigen | 9 - Router-Ankündigung | 0 | Routing-Ankündigungsnachrichten | Sich erkundigen | 10 - Router-Anfrage | 0 | Entdecken/auswählen/anfordern von Paketen für Router | Sich erkundigen | 11 - ICMP-Auszeit | 0 | TTL-Timeout-Nachricht | Fehler | 1 | Sharding und Neuorganisation von Timeout-Paketen | Fehler | 12- Parameterprobleme | 0 | Die erste Parameter-Fehlermeldung des IP-Berichts | Fehler | 1 | Fehlen der erforderlichen Optionspakete | Fehler | 2 | Nicht unterstützte Längenpakete | Fehler | 13 - Zeitstempel-Anfrage | 0 | Zeitstempel-Anfragepakete | Sich erkundigen | 14-Zeitstempel-Antwort | 0 | Zeitgestempelte Antwortpakete | Sich erkundigen | 15- Anfrage nach Informationen | 0 | Informationsanforderungspakete | Sich erkundigen | 16- Informationsantwort | 0 | Nachrichtenantwortpakete | Sich erkundigen |
Unterschied zwischen ICMP und TCP
TCP ist ein verbindungsorientiertes Protokoll für zuverlässige, fehlergeprüfte Datenübertragung. Es wird häufig für Websurfen, E-Mails, Fernanmeldungen und Dateiübertragungsanwendungen verwendet. TCP erfordert einen Handschlag, eine Reihe von Nachrichten, die Vertrauen und Authentifizierung zwischen Sender und Empfänger herstellen. TCP garantiert die Nachrichtenzustellung.
Im Gegensatz dazu ist das Internet Control Message Protocol (ICMP) ein verbindungsloses Protokoll. Es garantiert keine Nachrichtenzustellung. Da ICMP nur zur Fehlermeldung verwendet wird, sind ICMP-Nachrichten ebenfalls kleiner als TCP-Pakete.
ICMP und TCP werden zusammen verwendet, um die Ursache eines TCP-Übertragungsfehlers zu bestimmen. |