Der Kampf um Millisekunden. So wählen Sie den Server mit dem geringsten Ping aus

Bei vielen Aufgaben sind Verzögerungen zwischen Client und Server von entscheidender Bedeutung, z. B. bei Online-Spielen, Video- / Sprachkonferenzen, IP-Telefonie, VPN usw. Wenn der Server auf IP-Netzwerkebene zu weit vom Client entfernt ist, beeinträchtigen Verzögerungen (im Volksmund als „Ping“, „Lag“ bezeichnet) die Arbeit.

Die geografische Nähe des Servers entspricht nicht immer der Nähe auf IP-Routing-Ebene. So kann beispielsweise ein Server in einem anderen Land „näher“ an Ihnen sein als ein Server in Ihrer Stadt. Alles wegen der Funktionen von Routing und Netzwerk. Wie wählt man einen Server so nah wie möglich an allen potenziellen Kunden? Was ist IP-Netzwerkkonnektivität? Wie leite ich den Client zum nächsten Server? Schauen wir uns den Artikel an.





Wir messen Verzögerungen


Erfahren Sie zunächst, wie Sie die Latenz messen. Diese Aufgabe ist nicht so einfach, wie es scheint, da bei verschiedenen Protokollen und Paketgrößen die Verzögerungen variieren können. Sie können auch kurzfristige Phänomene wie mehrere Millisekunden dauernde Ausfälle nicht bemerken.

ICMP - regelmäßiger Ping


Wir werden das Unix-Ping-Dienstprogramm verwenden, mit dem Sie die Intervalle zwischen Paketen manuell festlegen können, die die Ping-Version für Windows nicht kennt. Dies ist wichtig, denn wenn die Pausen zwischen den Paketen lang sind, können Sie einfach nicht sehen, was zwischen ihnen passiert.

Paketgröße (Option -s) - Standardmäßig sendet Ping Pakete mit einer Größe von 64 Byte. Bei solch kleinen Paketen sind Phänomene, die bei großen Paketen auftreten, möglicherweise nicht erkennbar. Daher setzen wir die Paketgröße auf 1300 Byte.

Das Intervall zwischen Paketen (Option -i) - die Zeit zwischen dem Senden von Daten. Standardmäßig werden Pakete einmal pro Sekunde gesendet, es dauert sehr lange, echte Programme senden Hunderte und Tausende von Paketen pro Sekunde, daher setzen wir das Intervall auf 0,1 Sekunden. Das Programm erlaubt einfach nicht weniger.

Infolgedessen sieht der Befehl folgendermaßen aus:

ping -s 1300 -i 0.1 yandex.ru

Mit diesem Design können Sie ein realistischeres Bild von Verzögerungen sehen.

Ping über UDP und TCP


In einigen Fällen werden TCP-Verbindungen nicht wie ICMP-Pakete behandelt. Aus diesem Grund können die Messungen je nach Protokoll unterschiedlich sein. Es kommt auch häufig vor, dass der Host einfach nicht auf ICMP reagiert und regulärer Ping nicht funktioniert. So macht zum Beispiel der Host microsoft.com ein Leben lang .

Das Dienstprogramm nping der Entwickler des berühmten nmap-Scanners kann beliebige Pakete generieren. Es kann auch zur Messung von Verzögerungen verwendet werden.
Da UDP und TCP an bestimmten arbeiten, müssen wir einen bestimmten Port "pingen". Versuchen wir, TCP 80, dh den Webserver-Port, zu pingen:

$ sudo nping --tcp -p 80 --delay 0.1 -c 0 microsoft.com

Starting Nping 0.7.80 ( https://nmap.org/nping ) at 2020-04-30 13:07 MSK
SENT (0.0078s) TCP 10.0.0.1:63236 > 13.77.161.179:80 S ttl=64 id=49156 iplen=40  seq=3401731188 win=1480
SENT (0.1099s) TCP 10.0.0.1:63236 > 13.77.161.179:80 S ttl=64 id=49156 iplen=40  seq=3401731188 win=1480
RCVD (0.2068s) TCP 13.77.161.179:80 > 10.0.0.1:63236 SA ttl=43 id=0 iplen=44  seq=1480267007 win=64240 <mss 1440>
SENT (0.2107s) TCP 10.0.0.1:63236 > 13.77.161.179:80 S ttl=64 id=49156 iplen=40  seq=3401731188 win=1480
RCVD (0.3046s) TCP 13.77.161.179:80 > 10.0.0.1:63236 SA ttl=43 id=0 iplen=44  seq=1480267007 win=64240 <mss 1440>
SENT (0.3122s) TCP 10.0.0.1:63236 > 13.77.161.179:80 S ttl=64 id=49156 iplen=40  seq=3401731188 win=1480
RCVD (0.4247s) TCP 13.77.161.179:80 > 10.0.0.1:63236 SA ttl=42 id=0 iplen=44  seq=2876862274 win=64240 <mss 1398>

Max rtt: 112.572ms | Min rtt: 93.866ms | Avg rtt: 101.093ms
Raw packets sent: 4 (160B) | Rcvd: 3 (132B) | Lost: 1 (25.00%)
Nping done: 1 IP address pinged in 0.43 seconds

Standardmäßig sendet nping 4 Pakete und stoppt. Die Option -c 0 ermöglicht das unendliche Senden von Paketen. Um das Programm zu stoppen, drücken Sie Strg + C. Am Ende werden Statistiken angezeigt. Wir sehen, dass die durchschnittliche RTT (Hin- und Rückfahrt) 101 ms beträgt.

MTR - Traceroute auf Steroiden


Das MTR- Programm (English My Traceroute) ist ein erweitertes Dienstprogramm zum Verfolgen von Routen zu einem Remote-Host. Im Gegensatz zum üblichen Systemdienstprogramm traceroute (in Windows ist es das Dienstprogramm tracert) kann es Verzögerungen für jeden Host in der Paketkette anzeigen. Kann auch Routen nicht nur über ICMP, sondern auch über UDP und TCP verfolgen.

$ sudo mtr microsoft.com


(Klickbar) Die Schnittstelle des MTR-Programms. Es wurde eine Routenverfolgung zu microsoft.com gestartet.

MTR zeigt sofort Ping für jeden Host in der Kette an. Außerdem werden die Daten während der Ausführung des Programms ständig aktualisiert und Sie können kurzfristige Änderungen sehen.
Der Screenshot zeigt, dass es auf dem Knoten Nr. 6 Paketverluste gibt. In Wirklichkeit ist dies jedoch nicht ganz der Fall, da einige Router Pakete mit abgelaufener TTL einfach verwerfen und keine Fehlerantwort zurückgeben können, sodass Daten zu Paketverlusten hier ignoriert werden können.

WiFi vs Kabel



Dieses Thema ist für den Artikel nicht ganz relevant, aber meiner Meinung nach ist es im Zusammenhang mit Verzögerungen sehr wichtig. Ich mag WiFi wirklich, aber wenn ich auch nur die geringste Gelegenheit habe, ein Kabel mit dem Internet zu verbinden, werde ich es verwenden. Außerdem rate ich Menschen immer davon ab, WiFi-Kameras zu verwenden.
Wenn Sie ernsthafte Online-Shooter spielen, Video-Streaming senden oder an der Börse handeln: Bitte nutzen Sie das Internet über Kabel.

Hier ist ein visueller Test zum Vergleich der WLAN- und Kabelverbindung. Dies ist ein Ping an einen WLAN-Router, dh nicht einmal an das Internet. (Klickbar) Vergleich des Pings mit einem WLAN-Router über Kabel und WLAN Es ist ersichtlich, dass die WLAN-Verzögerungen um 1 ms länger sind und manchmal Pakete mit zehnmal längeren Verzögerungen vorliegen! Und das ist nur eine kurze Zeit. In diesem Fall erzeugt derselbe Router stabile Verzögerungen <1 ms.

Bild




Im obigen Beispiel wird WiFi 802.11n mit 2,4 GHz verwendet. Nur ein Laptop und ein Telefon sind über WiFi mit dem Access Point verbunden. Wenn sich mehr Kunden auf dem Zugangspunkt befinden würden, wären die Ergebnisse viel schlechter. Deshalb bin ich so gegen die Übertragung aller Bürocomputer auf WiFi, wenn die Möglichkeit besteht, sie mit einem Kabel zu erreichen.

IP-Konnektivität


Wir haben also gelernt, wie man die Verzögerung zum Server misst und versucht, den nächstgelegenen Server zu finden. Dazu können wir sehen, wie das Routing unseres Providers angeordnet ist. Hierzu ist es zweckmäßig, den Dienst bgp.he.net zu verwenden .



Beim Betreten der Site sehen wir, dass unsere IP-Adresse zum autonomen System AS42610 gehört .

Wenn wir uns das Konnektivitätsdiagramm autonomer Systeme ansehen, können wir sehen, über welche überlegenen Anbieter unser Anbieter mit dem Rest der Welt verbunden ist. Jeder der Punkte ist anklickbar. Sie können nachlesen, um welche Art von Anbieter es sich handelt.


Provider-Konnektivitätsdiagramm

Mit diesem Tool können Sie lernen, wie die Kanäle eines Anbieters angeordnet sind, einschließlich Hosting. Sehen Sie, mit welchen Anbietern es direkt verbunden ist. Führen Sie dazu die Server-IP in die Suche von bgp.he.net ein und sehen Sie sich das Diagramm des autonomen Systems an. Sie können auch verstehen, wie ein Rechenzentrum oder Hosting-Anbieter mit einem anderen verbunden ist.

Die meisten Verkehrsknotenpunkte bieten ein spezielles Tool namens Spiegel, mit dem Sie von einem bestimmten Router am Vermittlungspunkt aus einen Ping-Befehl und eine Traceroute durchführen können.

Zum Beispiel sucht Glas von MGTS

Wenn wir also einen Server auswählen, können wir im Voraus sehen, wie er von verschiedenen Punkten des Datenaustauschs aus aussehen wird. Und wenn sich unsere potenziellen Kunden in einem bestimmten geografischen Gebiet befinden, können wir den optimalen Standort für den Server finden.

Wählen Sie den nächsten Server


Wir haben uns entschlossen, den Prozess der Suche nach dem optimalen Server für unsere Kunden zu vereinfachen, und eine Seite mit einem automatischen Test der nächstgelegenen Standorte erstellt: RUVDS-Rechenzentren .
Wenn Sie die Seite aufrufen, misst das Skript die Verzögerungen von Ihrem Browser zu jedem Server und zeigt sie auf einer interaktiven Karte an. Wenn Sie auf ein Rechenzentrum klicken, werden Informationen mit Testergebnissen angezeigt. Die Schaltfläche führt zur Verzögerungstestseite zu allen unseren Rechenzentren. Um die Testergebnisse anzuzeigen, klicken Sie auf den Rechenzentrumspunkt auf der Karte








All Articles