Wenn wir die Konnektivität zwischen zwei Hosts testen möchten, verwenden wir zur Überprüfung häufig den Ping-Befehl. Aber kennen Sie den Zusammenhang zwischen diesem Befehl und dem ICMP-Protokoll?
ICMP ist das Internet Message Control Protocol, das zur Meldung von Fehlerbedingungen und zugehörigen Fehlerinformationen verwendet wird. Die ICMP-Datennachricht ist als Datenteil im IP-Datagramm gekapselt. Wie das IP-Protokoll ist ICMP jedoch auch ein Netzwerkschichtprotokoll. Das folgende Bild ist das ICMP-Nachrichtenformatdiagramm:
ICMP-Nachrichtentypen
ICMP-Nachrichten werden im Allgemeinen in zwei Kategorien unterteilt, nämlich Fehlerberichtsnachrichten und Anfragenachrichten.
Fehlerberichtsmeldungen umfassen hauptsächlich die folgenden Typen:
Ziel nicht erreichbar (Typwert ist 3): Wenn der Host oder Router keine Daten liefern kann, wird diese Nachricht an den Quellpunkt gesendet.
Timeout (Typwert ist 11): Wenn der TTL-Wert im IP-Datagramm 0 ist oder die Zustellung innerhalb der angegebenen Zeit nicht erfolgreich ist, wird eine Timeout-Nachricht an den Quellpunkt gesendet.
Parameterproblem (Typwert ist 12): Wenn der Header des empfangenen Datagramms falsche Felder enthält, wird das Datenpaket verworfen und eine Parameterproblemmeldung an die Quelle gesendet.
Umleiten (Typwert 5): Wenn der Router das Paket empfängt, ist es effizienter zu wissen, dass die Zieladresse von einem anderen Router weitergeleitet werden soll. Nachdem er das Paket weitergeleitet hat, sendet er auch eine Umleitung an den Quellpunkt . Nachricht. Dann wird das nächste Datagramm mit derselben Zieladresse von einem anderen Router gesendet.
Als nächstes schauen wir uns die Anfragenachricht an, die hauptsächlich in eine Kategorie fällt: Antwortanforderungsnachricht (Typwert ist 8) und Antwortnachricht (Typwert ist 0). Der Host, der die Antwortanforderungsnachricht empfängt, muss eine Antwortnachricht zurückgeben . .
Eine Anwendung von ICMP: Ping-Befehl
Nachdem wir uns mit ICMP vertraut gemacht haben, werfen wir einen Blick auf ein Beispiel für die Anwendung von ICMP – dem Ping-Befehl. Dieser Befehl ist nicht nur auf Linux-Systemen, sondern auch auf Windows-Systemen verfügbar
ping baidu.com 正在 Ping baidu.com [220.181.38.148] 具有 32 字节的数据: 来自 220.181.38.148 的回复: 字节=32 时间=32ms TTL=52 来自 220.181.38.148 的回复: 字节=32 时间=29ms TTL=52 来自 220.181.38.148 的回复: 字节=32 时间=27ms TTL=52 来自 220.181.38.148 的回复: 字节=32 时间=35ms TTL=52 220.181.38.148 的 Ping 统计信息: 数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失), 往返行程的估计时间(以毫秒为单位): 最短 = 27ms,最长 = 35ms,平均 = 30ms
Werfen wir einen Blick auf den Arbeitsablauf des Ping-Befehls: Zuerst generiert mein Host vier ICMP-Nachrichten, und diese vier ICMP-Nachrichten sind Antwortanforderungsnachrichten Senden Sie diese vier ICMP-Nachrichten an den Baidu-Server. Wenn der Baidu-Server diese vier ICMP-Nachrichten empfangen kann, sendet er auch vier ICMP-Antwortnachrichten an meinen Host. Daher kann mein Host die Paketverlustrate und die Umlaufzeit basierend auf der Anzahl der zurückgegebenen ICMP-Datagramme und der Rückgabezeit berechnen.
Empfohlen: „Linux-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonInternet Message Control Protocol ICMP: Ein Scout der Netzwerkzeit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!