Genaue Bedeutung des ICMP-Protokolls 1 Port xxx nicht erreichbar in einem Ping-Austausch

Genaue Bedeutung des ICMP-Protokolls 1 Port xxx nicht erreichbar in einem Ping-Austausch

Ein TCPdump einer Ping-Sitzung zeigt die folgenden zwei Zeilen:

IP gateway.comp.com > somehost.comp.com: ICMP redirect 10.8.0.10 to host othergateway.comp.com, length 68
IP gateway.comp.com > somehost.comp.com: ICMP 10.8.0.10 protocol 1 port 21475 unreachable, length 68

Ich verstehe die erste Nachricht. Sie besagt lediglich, somehostdass das Hauptnetzwerk nicht gatewaymit Paketen an 10.8.0.10 belästigt werden soll, sondern dass diese direkt durchgeleitet werden sollen othergateway.

Aber was bedeutet die zweite Meldung? Sie kommt 17 ms später und scheint damit zusammenzuhängen. Was ist protocol 1 port XXXin diesem Zusammenhang zu verstehen? Was genau ist nicht erreichbar? ICMP (=Protokoll 1) hat meines Wissens nach keine Ports, was bedeutet das also?

Antwort1

Das ist wahrscheinlichICMP-Steuernachricht Typ 3 (Ziel nicht erreichbar) Code 3 (Port nicht erreichbar)

Dies bedeutet, dass mit diesem TCP- oder UDP-Port am Ziel kein Serverprozess verknüpft ist.

„Eine Regel von UDP besteht darin, dass, wenn ein UDP-Datagramm empfangen wird und der Zielport nicht mit einem Port übereinstimmt, den ein anderer Prozess verwendet, UDP mit „ICMP-Port nicht erreichbar“ antwortet.“- ausTCP/IP Illustrated, Stevens.

Warum UDP? Der pingBefehl wird traditionell mit ICMP-Echoanforderungen implementiert, aber auf einigen Plattformen können einige Tools andere Protokolle verwenden. Ein Beispiel wärenmap -sU

Antwort2

Was ist protocol 1 port XXXin diesem Zusammenhang zu beachten?

Protokoll Nummer 1 ist ICMP. ICMP verwendet keine Ports, sondern einen 16-Bit-Bezeichner, der der portEinfachheit halber hier als bezeichnet wird. (Vielleicht hat sich der Programmierer nicht die Mühe gemacht, die Unterscheidung vorzunehmen, oder die Benutzer wären durch eine Bezeichnung noch mehr verwirrt identifier.)

Das Identifikationsfeld wird auch von NAT-Routern verwendet, um Antworten der ursprünglichen NAT-Sitzung zuzuordnen, und natürlich vom lokalen IP-Stapel selbst, um eine Echo-Antwort zurück an den Prozess zu leiten, der die Anforderung gesendet hat – ganz ähnlich einer Portnummer der Transportschicht.

verwandte Informationen