it-swarm.com.de

Berechnen Sie die Upload-/Download-Geschwindigkeit mit Ping

Wie berechnet man die Geschwindigkeit einer Internetverbindung anhand einiger durchschnittlicher Ping-Raten? Welche Berechnungen sind damit verbunden?

EDIT Wenn Ping keine Lösung ist, was ist sonst noch?

22
Hulk

Ich habe Ping verwendet, um die Bandbreite im lokalen Netzwerk zu berechnen. Ich denke, es ist genauso genau wie andere Mittel zum Messen der Bandbreite (z. B. das Herunterladen einer großen Datei). Sie können es auch für Ihre Internetverbindung verwenden, wenn Sie eine symmetrische Verbindung zum Internet haben (d. H. Keine ADSL).

So mache ich es: Ich habe ein Gigabit-Ethernet-LAN ​​und möchte die Geschwindigkeit zwischen meinem Computer und einem Host im Serverraum messen. Meine MTU ist 1500, daher verwende ich die Paketgröße 1472. Zufällig verwende ich in diesem Test 83.333 Pakete (etwa 1 Gigabit). Dann:

Sudo ping -f -c 83333 -s 1472 192.168.3.103

am ende des ergebnisses erhalte ich: round-trip min/avg/max/stddev = 0,174/0,219/2,078/0,020 ms

im Durchschnitt sind also 0.219 ms erforderlich, um 1500 Bytes zu senden und 1500 Bytes zu empfangen. Das sind 24 kb 24 kb/0.219 ms = 110 Mb/s

Wenn Sie dies auf einem Server im Internet verwenden möchten, müssen Sie die Paketgröße auf etwa 1464 (für MTU 1492) verringern, die Option -f löschen und die Anzahl verringern, damit .__ nicht zu lange dauert beenden.

p.s. Ich denke, das sollte an den Superuser gehen, nicht an Stackoverflow.

23
imel96

Die Latenz unterscheidet sich von der Bandbreite. Stellen Sie sich eine Lastwagenladung von DVDs vor, die durch das Land gefahren wird. Die Bandbreite ist hoch, aber die Latenz ist enorm .

10
Brian Agnew

Es ist tatsächlich möglich, Bandbreitenschätzungen nur aus ping-ähnlichen Messungen abzuleiten.

Es dauert immer 12,3 us, um ein 1500-Byte-Paket auf einer GigE-Verbindung zu übertragen. Mit anderen Worten, wenn Sie in der Lage sind, zwei 1500-Byte-Pakete über eine nicht überlastete GigE-Verbindung so schnell wie möglich von einem Computer zu einem anderen zu senden, werden sie etwa 12,3 µs voneinander entfernt ankommen. Wenn Sie feststellen, dass Ihr GigE-Link nicht überlastet ist, wird dies bestätigt.

Nun ein einfaches Beispiel für die Messung über ein WAN (wieder angenommen, es ist nicht überlastet):

HostA -------- RouterA -------- RouterB -------- HostB
        GigE             OC-3             GigE

Host A sendet zwei 1500-Byte-Pakete in schneller Folge. Wenn Router A das erste Paket empfängt, beginnt er, es über die Verbindung OC-3 WAN (155 Mbit/s) weiterzuleiten. Das Weiterleiten eines 1500-Byte-Pakets an einen OC3 dauert 81,5 µs, sodass Router A gerade das erste Paket weiterleitet, wenn er das zweite Paket von Host A empfängt. Er muss dieses zweite Paket in eine Warteschlange stellen, bis die Übertragung des Pakets abgeschlossen ist zuerst.

Wenn Router B den Empfang des ersten Pakets beendet hat, leitet er es an Host B weiter, der nur 12,3 µs benötigt. Währenddessen beginnt Router B, das zweite Paket zu empfangen. Wenn Router B den Empfang des zweiten Pakets beendet hat, leitet er es an Host B weiter.

Host B sieht also einen Paketempfang von 12,3 µs, eine Stille von 69,2 µs und einen Paketempfang von 12,3 µs - mit anderen Worten, eine Zeit zwischen den Ankunftsterminen von 81,5 µs. Aus dieser Beobachtung kann Host B schließen, dass die Pfadbandbreite auf 155 Mbit/s begrenzt war.


In der Theorie ist das großartig, in der Praxis wird es jedoch komplizierter. Stauereignisse sind in der Regel überlastet, sodass die Warteschlangen eines Routers in einem Moment möglicherweise ziemlich voll und im nächsten leer sind. Viele Proben sind notwendig, um etwas aussagekräftiges zu erhalten. Präzise Messungen sind ebenfalls schwierig. Die End-to-End-Latenz beträgt möglicherweise einige zehn oder hundert Millisekunden, und Sie sehen Unterschiede von einigen Mikrosekunden. Wenn es mehrere Wege von A nach B gibt, viel Glück.

Es ist in der Regel einfacher, den Verkehr einfach zu sprengen und zu sehen, wie viel durchkommt. Dann wissen Sie genau, welche Bandbreite Ihnen zur Verfügung steht - null.

7
eater

Ein Ping ist ein einzelnes Paket, das über ICMP über das Netzwerk gesendet wird. Normalerweise wird ein Paket pro Sekunde an einen Remote-Computer gesendet, und die Route kann von der für Datenübertragungen normalerweise verwendeten Route TCP und UDP abweichen. Remote-Computer können die Beantwortung von Ping-Anfragen ablehnen. Daher ist die Messung des Netzwerkdurchsatzes über Ping-Anforderungen unzuverlässig und wahrscheinlich unbrauchbar.

2
damg

Nein, ist es nicht.

Ein Ping-Paket ist klein und wird nur verwendet, um die Geschwindigkeit zu überprüfen, die von Punkt A nach Punkt B benötigt wird (oder bei häufigerer Verwendung - WENN es überhaupt einen Pfad zwischen ihnen gibt, IE wenn ein Computer überhaupt antwortet) )

Der Vorgang eines Pings (zu einem Pong) besteht darin, dass ein kleines Paket von A nach B gesendet wird. Wenn B das Paket erhält, antwortet es mit einem Pong, das sofort zu A zurückgesendet wird Die Gesamtzeit (hoffentlich in Millisekunden) ist registriert, und dort haben Sie Ihren Ping in ms.

Dies setzt natürlich voraus, dass B Pings nicht ablehnt oder einfach nicht ankommt oder sich hinter einem VPN oder einer anderen Maßnahme befindet, die die Reaktion verlangsamt.

Am Ende erhalten Sie nur die Zeit, die ein Ping benötigt, um von A nach B und zurück zu A zu gelangen.

Versuchen Sie zum Vergleich, über die Straße und zurück zu rennen. Messen Sie die Zeit. Und jetzt finden Sie einen Weg, um zu berechnen, wie viel Sie wiegen.

2
Mantar

Wenn Sie einen Ping an einen entfernten Host senden, können Sie die Latenz des Netzwerks messen (dh, der Host antwortet). Sie erhalten keine nützlichen Informationen zur verfügbaren Bandbreite über diese Netzwerkverbindung.

1
Jonah

Wie andere schon gesagt haben, zeigt Ping die Latenz an, nicht aber die Bandbreite.
Versuchen Sie netperf. http://www.netperf.org/netperf/ . Möglicherweise müssen Sie bestimmte Optionen angeben (wie TCP/UDP) usw.

0
Jack

Es ist möglich, obwohl unpraktisch und unzuverlässig.

Am besten funktioniert es in Ihrem lokalen Netzwerk (LAN).

Standardmäßig sendet ping kleine Pakete, die nur die Latenzzeit angeben. Der Befehl benötigt jedoch Argumente, um die Paketgröße und -rate zu ändern. Die Theorie besagt, dass Sie die Größe und Rate der Pakete bis zu dem Punkt erhöhen können, an dem sie die Verbindung sättigen würden. Anschließend können Sie die Paketstatistik verwenden, um die Geschwindigkeit zu berechnen, mit der dies geschieht.

0
Rolf