Warum summieren sich Tracert-Latenzen nicht zur Ping-Latenz?


8

Man könnte erwarten, dass die Summe der tracertLatenzen 267 ms beträgt:

pingrt


Ich habe das nie bemerkt oder darüber nachgedacht. Ich würde vermuten, dass ein Hop mehr Zeit benötigt, um festzustellen, ob die TTL abgelaufen ist, und eine ICMP-Antwort zurücksendet, als nur ein ICMP-Paket an das Ziel weiterzuleiten. Darüber hinaus sollten die im Tracert angegebenen Latenzen nicht zu einer Gesamtsumme addiert werden. Die Latenz des letzten Hops sollte ungefähr zum gleichen Zeitpunkt wie ein Ping liegen. Vielleicht möchten Sie tracert -d ausprobieren, um zu verhindern, dass der Hostname jedes Hops auf dem Weg aufgelöst wird, und prüfen, ob sich dies auf die Zeit auswirkt.
Adam Thompson

Antworten:


13

Traceroute beinhaltet das Senden von UDP-Paketen an jeden Knoten auf dem Weg und das Warten auf seine Timeout-Antwort (dann Weitergehen zum nächsten Knoten), während ein Ping nur weitergeleitet wird. Was Sie sehen, ist die Zeit, die jeder Knoten benötigt, um auf die Anfrage zu antworten, anstatt nur ein kleines Paket weiterzuleiten.

Dies ist eine ziemlich schöne Erklärung des gesamten Prozesses und der Unterschiede.

http://www.cisco.com/c/en/us/support/docs/ios-nx-os-software/ios-software-releases-121-mainline/12778-ping-traceroute.html

Schauen Sie sich den Abschnitt zur Leistung an, in dem auch erklärt wird, warum Ping keine besonders genaue Methode zur Bestimmung der Latenz ist.


Eine andere Sache, die berücksichtigt werden muss, ist, dass ICMP-Anforderungen häufig an die Steuerebene des Routers weitergeleitet werden und als solche von der relativen CPU-Auslastung des Routers abhängig sind. "Normale" geroutete Pakete werden in Hardware weitergeleitet, wo um Größenordnungen mehr Kapazität verfügbar ist.
EEAA

Ja, sie werden beide auf der Steuerebene behandelt, aber ein Ping wird nur von einem behandelt, während Traceroute dies auf jedem einzelnen Router auf dem Weg dorthin erledigt. Der Leistungsabschnitt dieses Cisco-Dokuments enthält eine ziemlich gute Beschreibung, warum es kein guter Indikator für die Latenz ist (hauptsächlich, weil es sich um eine "Out-of-Band" -Arbeit handelt, die erledigt wird, wenn der Router Zeit hat).
NickW

Wie die EEAA feststellt, tracertwird ICMP verwendet, nicht UDP.
Gabe


Das habe ich erwartet. Vielen Dank für die Bestätigung und den maßgeblichen Link.
verbumSapienti

0

Router neigen dazu, Zeitüberschreitungen und die Behandlung von Echoantworten eine niedrigere Priorität zu geben als die Paketweiterleitung. Dadurch kann der Switch effizienter arbeiten, da die Weiterleitung viel einfacher zu verarbeiten ist als das Generieren einer neuen ICMP-Antwort. Infolgedessen dauert es länger, bis geschäftigere Switches die Antwort generieren.

Bei einigen Switches ist möglicherweise die ICMP-Generierung deaktiviert, was die Diagnose von Netzwerkproblemen schwierig macht. Andere können gelegentlich so beschäftigt sein, dass sie nicht reagieren.

Wenn Sie ein Tool verwenden, das die IP-Adresse der Router auf dem Weg anzeigt, sehen Sie normalerweise, dass die langsameren Switches Kern-Switches in Großstädten sind. Ich bevorzuge es mtr, alle 15 bis 60 Sekunden zu laufen.


0

Was bedeuten die Zahlen?

Die Zeiten bei jedem Sprung einer Trace-Route sind die Round Trip Time (RTT) . In Ihrem pingTest vier Echo fordert jeder nahm 267ms ein empfangen Echo antwortet von 220.181.111.85 . Im tracertTest brauchten drei Echoanfragen 292 ms , um eine Antwort zu erhalten.

Warum der Unterschied von 25 ms ?

  1. Die Stichprobengröße ist klein. Weitere Tests sollten durchgeführt werden, um die Genauigkeit der gemessenen Differenz zu verbessern.

  2. tracert(oder traceroute -I) hat Nutzlasten unterschiedlicher Größe als ping. Verwenden Sie einen Paket-Sniffer, um die Größe der von Ihrem Trace-Programm verwendeten Nutzdaten zu überprüfen. Stellen Sie die Größe der pingNutzdaten mit ping -l <size>oder ping -s <size>abhängig von Ihrem Ping-Programm auf diesen Wert ein .

  3. Eine Echoantwort erfordert die Verwendung der CPU, sodass eine ausgelastete Maschine eine große RTT-Standardabweichung im Vergleich zu einer Maschine im Leerlauf aufweisen kann.

Was soll ich noch wissen?

Domänennamen können in mehrere IP-Adressen aufgelöst werden. Verwenden Sie die IP-Adresse im Befehl, um sicherzustellen, dass die Tests denselben Pfad zurücklegen.

mtroder WinMTRist ein anderes Programm zum Verfolgen eines Pfads, das auch die RTT-Standardabweichung, den Verlust und andere Statistiken berechnet.

Wireshark ist ein beliebter Paketanalysator zum Anzeigen des Inhalts von gesendeten und empfangenen Paketen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.