Ich erhalte eine erhöhte Latenz und StDev aufgrund von Überlastung der Routen und Paketverlust , aber die Vorwärts- und Rückwärtspfade verlaufen über unterschiedliche Netzwerke (z. B. einer ist init7.net, der andere ist he.net), daher ist es sehr schwer zu verstehen Welches Netzwerk oder welcher Host ist für die Überlastung, den Paketverlust, den Jitter und die erhöhte Latenz verantwortlich?
Gibt es eine Möglichkeit, die Schuld einzugrenzen, nachdem das Vorwärts- und Rückwärtsfahren mtr
den genauen Schuldigen nicht genau bestimmt hat und die NOC @ -Kontakte entweder nicht antworten oder behaupten, auf dem fraglichen Pfad keinen Verlust zu erleiden? (Ich benutze OpenBSD.)
Ich habe sogar versucht mtr
, einige Kunden beider Netzwerke, die möglicherweise überlastet sind, direkt anzusprechen, konnte aber auf diese Weise keine wirklichen Probleme feststellen, zumal he.net beispielsweise häufig über viele POPs verfügt Zwischen einem bestimmten Eingangs- und Ausgangs-POP werden unterschiedliche Routen verwendet. Wenn ich also versuche, mtr
ihre Hosts (wie den tserv) direkt am Ausgangs-POP zu erreichen, an den ich möglicherweise Pakete in ihrem Netzwerk verliere, wird ein anderer he.net-Pfad verwendet, um zu erreichen Dieselbe POP, und es tritt kein Paketverlust auf, was nichts Interessantes beweist (abgesehen von einem möglichen Vorschlag, dass einige Routen tatsächlich überlastet werden könnten, während sichergestellt wird, dass andere nicht überlastet bleiben, während NOC @ -Anfragen von Nicht-Kunden ignoriert werden).
quelle
Antworten:
Eine Möglichkeit hierfür ist der ICMP-Zeitstempel, der Millisekunden ab Mitternacht UTC liegt. Es hat den zusätzlichen Vorteil, dass Sie nicht unbedingt beide Enden steuern müssen, solange das ferne Ende nicht durch eine Firewall geschützt ist, besteht eine gute Chance, dass es funktioniert.
Für zuverlässige Einwegmessungen benötigen Sie jedoch an beiden Enden zuverlässig dieselbe Zeit. Da der ICMP-Zeitstempel nur eine Genauigkeit von 1 ms hat (was für viele Anwendungen bei weitem nicht ausreicht, aber dafür ausreicht), ist es relativ einfach, auch nicht kooperierende Hosts zu finden, auf denen der ICMP-Zeitstempel nützliche Daten liefert.
Wenn Sie beide Enden steuern, stellen Sie sicher, dass Sie NTP nur mit 1 Server und demselben Server synchronisieren. Die absolute Uhr ist nicht sehr wichtig, es ist nur wichtig, dass Sie so genau wie möglich die gleiche Zeit erleben.
Wenn der ICMP-Zeitstempel nicht ausreicht, ist es sehr einfach, 10 Zeilen Ruby / Perl / Python oder sogar C zu schreiben, um Messungen durchzuführen, wenn Sie beide Enden steuern.
Ich kann keine Software für die unidirektionale Durchführung von ICMP-Zeitstempelmessungen vorschlagen. Hping2 unterstützt das Senden von ICMP-Zeitstempeln, gibt jedoch aus irgendeinem Grund keine unidirektionalen Werte aus. Ich habe einen Patch für hping2 geschrieben, um Einweg-Latenzen anzuzeigen.
quelle
hping --icmp-ts
zusätzliche Arithmetik ist so verdammt großartig! Zu faul, um die Quellen abzurufen und die Binärdatei neu zu kompilieren, habe ich mir eine Shell-Version Ihres Hping-Patches ( stackoverflow.com/q/20172028/1122270 ) besorgt , die über den init7-Pfad zu hetzner eine ziemlich konstante Zeit anzeigt All-over-the-Map-Varianz mit dem he.net-Pfad von hetzner! Ich habe endlich den endgültigen Beweis, dass init7 die Wahrheit sagt! Obwohl ich nur aus diesem Grund gegen die Verwendung desselben NTP-Servers argumentieren würde: Stellen Sie einfach sicher, dass ein NTPD-Server aktiv ist (ich musste überhaupt keine Einstellungen ändern, aber die Werte sehen vernünftig aus).