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, somehost
dass das Hauptnetzwerk nicht gateway
mit 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 XXX
in 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 ping
Befehl 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 XXX
in diesem Zusammenhang zu beachten?
Protokoll Nummer 1 ist ICMP. ICMP verwendet keine Ports, sondern einen 16-Bit-Bezeichner, der der port
Einfachheit 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.