Ping-Ergebnisse interpretieren

11

Ich pinge yahoo.com und bin verwirrt über das Ergebnis.

C:\Users\jon>ping -t yahoo.com

Pinging yahoo.com [98.138.253.109] with 32 bytes of data:
Reply from 98.138.253.109: bytes=32 time=195ms TTL=46
Reply from 98.138.253.109: bytes=32 time=230ms TTL=44
Reply from 98.138.253.109: bytes=32 time=175ms TTL=45
Reply from 98.138.253.109: bytes=32 time=208ms TTL=44
Reply from 98.138.253.109: bytes=32 time=180ms TTL=46
Reply from 98.138.253.109: bytes=32 time=206ms TTL=44
Reply from 98.138.253.109: bytes=32 time=209ms TTL=44
Reply from 98.138.253.109: bytes=32 time=173ms TTL=46
Reply from 98.138.253.109: bytes=32 time=170ms TTL=46
Reply from 98.138.253.109: bytes=32 time=224ms TTL=45
Reply from 98.138.253.109: bytes=32 time=200ms TTL=45
Reply from 98.138.253.109: bytes=32 time=172ms TTL=46
Reply from 98.138.253.109: bytes=32 time=258ms TTL=44

Ich verstehe den TTL-Wert vage als die Anzahl der Sprünge, die das Paket durchläuft, um sein Ziel zu erreichen, aber ich verstehe nicht, wie TTL in so kurzer Zeit eine so dramatische +/- 1-Varianz aufweisen kann.

Außerdem scheint Yahoo eine Art Ratenbegrenzung implementiert zu haben, da ein anhaltender Ping nach etwa 20 Paketen eine Zeitüberschreitung aufweist. Ist das normal? bing.com antwortet mir nicht einmal!

Beim Pingen von google.com sind die TTLs konsistent.

Beim Pingen von Twitter.com erhalte ich manchmal TTL = 249, aber normalerweise TTL-58.

Was ist los? Hat mein ISP nichts Gutes vor oder gibt es eine weniger finstere Erklärung?

jon
quelle
1
Der ibgp-Lastausgleich durch einen Ihrer Upstreams ist eine mögliche Ursache, aber wir haben nicht genügend Informationen, um dies zu wissen. Sie können dies herausfinden, indem Sie ... pls google for mtr und etwas mehr erkunden
Mike Pennington
Wenn Sie Ihre Quell-IP (curl my.ip.fi ) angeben können, kann ich verschiedene Aussichtspunkte ausprobieren, um die Optionen für den Rückweg
anzuzeigen

Antworten:

14

Dies wird höchstwahrscheinlich durch einen Lastausgleich über mehrere Netzwerke verursacht. Jeder Ping nimmt einen anderen Pfad und hat dementsprechend einen unterschiedlichen TTL-Wert.

Ich habe auch über Suchmaschinenanbieter gelesen, die seltsame Dinge mit TTL tun, aber es geht einfach so oder so.

TTL-Werte unterscheiden sich, wenn sie von verschiedenen Betriebssystemen bezogen werden:

  • Windows: 128
  • Linux: 64
  • Cisco: 255
  • Solaris: 255

Und ja, einige Websites reagieren nach einer bestimmten Zeit oder wenn ein Ratenlimit erreicht wird, nicht mehr auf ICMP. Ich glaube, Googles DNS auf 8.8.8.8 hört nach einer Weile auf.

Artanix
quelle
6

Andere haben das Mehrwegeszenario erwähnt, um die Variation der Verzögerungszeit zu erklären. Mit ECMP-Links (Equal Cost Multi Path) können Sie ein Szenario gemäß der Ausgabe erstellen, die Sie im Ping an Yahoo bereitgestellt haben, bei dem sich die Verzögerung zwischen den Ergebnissen ändert, jedoch einigermaßen konsistent. Es sieht also so aus, als würde Ihr Datenverkehr über dieselben zwei oder drei Pfade mit unterschiedlichen Längen (Verzögerungen) gehasht (obwohl dies nur Spekulation ist, kann ich mit den angegebenen Informationen niemand mit Sicherheit sagen).

Außerdem scheint Yahoo eine Art Ratenbegrenzung implementiert zu haben, da ein anhaltender Ping nach etwa 20 Paketen eine Zeitüberschreitung aufweist. Ist das normal? bing.com antwortet mir nicht einmal!

Einige Netzwerke filtern ICMP-Verkehr, was ich sehr ärgerlich finde! Das könnte also das Szenario "überhaupt keine Pings" erklären. In Szenarien, in denen Sie einige oder nur begrenzte Antworten haben, implementiert das Netzwerk möglicherweise eine Technologie wie die Control Plan Policing von Cisco (oder deren Herstelleräquivalent).

Beim Pingen von Twitter.com erhalte ich manchmal TTL = 249, aber normalerweise TTL-58.

Wenn Sie weniger stabile Ergebnisvariationen haben, können ungleiche Multi-Path-Routen vorhanden sein oder eine Änderung des Verkehrsingenieurs aufgrund eines Verbindungsproblems, das sich an einer bestimmten Stelle im Pfad befindet. Auch hier kann man mit den gegebenen Informationen nichts sagen.

jwbensley
quelle
3

Die Varianz der TTL bei diesen Paketen könnte durch einen oder mehrere Router erklärt werden, deren Verarbeitung der Pakete lange dauert. TTL wird nach jedem Hop um eins dekrementiert, wenn die Zeit durch den Router weniger als eine Sekunde beträgt. Wenn die durch den Router benötigte Zeit länger als eine Sekunde ist, wird die TTL um zwei anstatt um eins dekrementiert.

Siehe RFC791 Seite 29:

Zeit zu leben

The time to live is set by the sender to the maximum time the
datagram is allowed to be in the internet system.  If the datagram
is in the internet system longer than the time to live, then the
datagram must be destroyed.

This field must be decreased at each point that the internet header
is processed to reflect the time spent processing the datagram.
Even if no local information is available on the time actually
spent, the field must be decremented by 1.  The time is measured in
units of seconds (i.e. the value 1 means one second).  Thus, the
maximum time to live is 255 seconds or 4.25 minutes.  Since every
module that processes a datagram must decrease the TTL by at least
one even if it process the datagram in less than a second, the TTL
must be thought of only as an upper bound on the time a datagram may
exist.  The intention is to cause undeliverable datagrams to be
discarded, and to bound the maximum datagram lifetime.

Some higher level reliable connection protocols are based on
assumptions that old duplicate datagrams will not arrive after a
certain time elapses.  The TTL is a way for such protocols to have
an assurance that their assumption is met.
GerryEgan
quelle
2
Bei Ping-Zeiten unter 300 ms ist dies in diesem Fall wahrscheinlich kein Faktor, obwohl es gut ist, zu verstehen, dass dies auch eine Funktion von TTL ist.
YLearn
Ich wäre sehr besorgt, wenn ein Hop länger als 1 Sekunde dauern würde, um ein Paket zu verarbeiten. Aber ich war mir dessen nicht bewusst, ich dachte, das Feld wurde geändert, als es durch einen Prozessor ging, schöner Fund!
Artanix
3
TTL wird im wirklichen Leben nicht vorübergehend dekrementiert, wie es der RFC vorschlägt. Es handelt sich ausschließlich um "Hop Count" und wird in IPv6 als solches bezeichnet.
Ytti
@ytti, stimmt, so sollte es sein, aber einige Geräte entsprechen diesem Abschnitt des RFC. Während die meisten Mainstream-Geräte dies nicht tun, habe ich diesen Eckkoffer bei "Off-Brand" -Geräten gesehen.
YLearn
Ich habe es auch tatsächlich gesehen ... so wusste ich davon.
GerryEgan