web-dev-qa-db-fra.com

Calculer la vitesse d'envoi/téléchargement par ping

Comment calculer la vitesse d'une connexion Internet avec certains taux de ping moyens. Quels sont les calculs en jeu? Il est possible de calculer la limite de chargement/téléchargement par taux de ping

EDIT Si le ping n'est pas une solution, quoi d'autre?

22
Hulk

J'ai utilisé ping pour calculer la bande passante dans le réseau local. Je pense que c'est aussi précis que d'autres moyens de mesurer la bande passante (par exemple, le téléchargement d'un gros fichier). Vous pouvez également l’utiliser pour votre connexion Internet si vous avez un lien symétrique vers Internet (c’est-à-dire pas adsl).

Voici comment je le fais: J'ai un réseau local Ethernet gigabit et je souhaite mesurer la vitesse entre mon ordinateur et un hôte dans la salle des serveurs. Mon MTU étant de 1500, j'utilise donc la taille de paquet 1472. Juste au hasard, j'utilise 83 333 paquets dans ce test (environ 1 gigabit). Ensuite:

Sudo ping -f -c 83333 -s 1472 192.168.3.103

à la fin du résultat, j’obtiens: aller-retour min/moy/max/stddev = 0,174/0,219/2,078/0,020 ms

donc, en moyenne, il faut 0,219 ms pour envoyer 1500 octets et recevoir 1500 octets, soit 24 kb . 24 kb/0,219 ms = 110 Mb/s

Si vous souhaitez utiliser cela sur un serveur sur Internet, vous devez réduire la taille du paquet à 1464 (pour le MTU 1492), abandonnez l'option -f et réduisez le nombre pour éviter qu'il pour finir.

p.s. Je pense que cela devrait aller au superutilisateur, pas à stackoverflow.

23
imel96

La latence est distincte de la bande passante. Imaginez un camion chargé de DVD parcourant le pays. La bande passante est élevée, mais la latence est énorme .

10
Brian Agnew

Non ce n'est pas.

Un paquet ping est petit et sert simplement à vérifier la vitesse qu'il prend d'un point A à un point B (ou plus communément - si un chemin existe entre eux, IE si un ordinateur répond à tous)

Le processus d’un Ping (vers un Pong) consiste à envoyer un petit paquet de A à B Lorsque B reçoit le paquet, il répond par un Pong, qui est instantanément renvoyé à A . A obtient le Pong, le temps total (qui est exprimé en millisecondes, espérons-le) est enregistré, et vous avez votre Ping en ms.

Cela suppose bien entendu que B n’est pas configuré pour refuser les pings ou n’y parvient tout simplement pas, ou qu’il se trouve derrière un VPN ou une autre mesure qui ralentit la réponse.

En fin de compte, tout ce que vous obtenez est le temps qu’il faut à un ping pour aller de A à B et revenir à A.

Pour comparer, essayez de courir dans la rue et en arrière. Mesurer le temps. Et maintenant, trouvez un moyen de calculer votre poids.

2
Mantar

Un ping est un seul paquet envoyé sur le réseau via ICMP. En général, un paquet par seconde est envoyé pour envoyer une commande ping à une machine distante et la route peut différer de TCP et du protocole UDP habituellement utilisés pour les transferts de données. Les machines distantes peuvent refuser de répondre aux requêtes ping. Ainsi, mesurer le débit du réseau via des requêtes ping est peu fiable et probablement inutile.

1
damg

Faire un ping sur un hôte distant vous permettra de mesurer la latence du réseau (si l’hôte répond). Il ne vous donnera pas d'informations utiles sur la bande passante disponible sur cette connexion réseau.

1
Jonah

Comme d'autres l'ont déjà dit, ping vous indiquera la latence mais pas la bande passante.
Essayez netperf. http://www.netperf.org/netperf/ . Vous devrez peut-être donner des options spécifiques (comme TCP/UDP), etc.

0
Jack

C'est possible bien que peu pratique et peu fiable.

Cela fonctionnerait mieux sur votre réseau local (LAN).

Par défaut, ping envoie de petits paquets qui indiquent uniquement la latence. Cependant, la commande prend des arguments pour modifier la taille et le débit du paquet. La théorie est que vous pouvez augmenter la taille et le débit des paquets jusqu'au point où ils satureraient le lien. Vous pouvez ensuite utiliser les statistiques sur les paquets pour calculer la vitesse à laquelle cela se produit.

0
Rolf