Ich habe kürzlich ein Netzwerkkonnektivitäts-Metaproblem behoben, indem ich wusste, dass ein bestimmtes Ziel erreichbar ist, aber ich konnte dies nicht nachweisen, traceroute
da der Pfad nach einer bestimmten Anzahl von Sprüngen kalt wurde. Angesichts der Tatsache, dass sich der letzte beobachtete Hop direkt vor dem Knoten von Interesse befand, nahm ich am Datenverkehr teil und erwartete, zu bestätigen, dass die Sonden ihn erreichten, und zu erfahren, welche Filterregel sie blockierte. Klar, ich habe erfahren, dass es sich bei den Tests um UDP-Datagramme handelt, die für einen hohen (und variierenden) Port bestimmt sind, den ich natürlich für eingehenden Datenverkehr gesperrt hatte.
Dies überrascht mich, da ich davon ausgegangen bin, dass alle traceroute
Sonden standardmäßig ICMP verwenden würden, da die Antworten ICMP sind. Ich habe eine Dokumentationsumfrage durchgeführt und festgestellt, dass verschiedene Implementierungen unterschiedliche Entscheidungen treffen und einige dem Benutzer nicht erlauben, eine nicht standardmäßige Auswahl zu treffen.
Die Zusammenfassung der Traceroute-Sondenmethode und der Weiterleitung der IP-Pfad-Inferenz stützt meine Vorstellung, dass ICMP-Sonden das Ziel häufiger erreichen können.
Es scheint eine gute Idee zu sein, verschiedene Prüfmethoden zuzulassen, aber es scheint eine schlechte Idee zu sein, standardmäßig etwas anderes als ICMP zu verwenden. Könnte jemand die Gründe beschreiben, warum es besser ist, standardmäßig UDP zu verwenden?