web-dev-qa-db-fra.com

Simulation d'une connexion Internet lente

Je sais que c'est une sorte de question étrange. Depuis que je développe habituellement des applications basées sur "l'hypothèse" que tous les utilisateurs ont une connexion Internet lente. Mais, y a-t-il quelqu'un qui pense qu'il existe un moyen de simuler par programmation une connexion Internet lente, pour que je puisse "voir" comment une application fonctionne à différentes "vitesses de connexion"?

Je ne m'inquiète pas de la langue utilisée. Et je ne cherche pas d'échantillons de code ou quoi que ce soit, je m'intéresse simplement à la logique derrière cela.

167
anon271334

Si vous utilisez Windows, fiddler est un excellent outil. Il a un paramètre pour simuler la vitesse du modem, et pour quelqu'un qui veut plus de contrôle, un plug-in ajoute de la latence à chaque requête .

Je préfère utiliser un outil comme celui-ci pour insérer du code de latence dans mon application car il s'agit d'une simulation beaucoup plus réaliste et éviter de me faire concevoir ou coder les bits réels. Le meilleur code est le code que je n'ai pas à écrire.

AJOUTÉ: Cet article du blog de Pavel Donchev sur les technologies logicielles explique comment créer des vitesses simulées sur mesure: Limiter la vitesse de votre connexion Internet avec Fiddler .

102
Philip Rieck

À partir de Chrome 38 , vous pouvez le faire sans plug-ins. Cliquez simplement sur l'élément à inspecter (ou F12 touche de raccourci), puis cliquez sur "bascule mod périphérique"enter image description here et vous verrez quelque chose comme ça:

enter image description here

Parmi de nombreuses autres fonctionnalités, il vous permet de simuler une connexion Internet spécifique (3G, GPRS)

P.S. pour les personnes qui tentent de limiter la vitesse de téléchargement. Malheureusement, à l'heure actuelle, ce n'est pas possible.

P.S.2 vous n'avez maintenant plus besoin de basculer. Le panneau de régulation est disponible directement à partir du panneau de réseau. enter image description here

Notez qu'en cliquant sur Pas de limitation , vous pouvez créer vos options de limitation personnalisées.

enter image description here

148
Salvador Dali
38
Stin

J'utilisais http://www.netlimiter.com/ et cela fonctionne très bien. Limitez non seulement la vitesse pour des processus uniques, mais affiche également les taux de transfert réels.

11
Piotr Müller

Sur les machines Linux, vous pouvez utiliser wondershaper 

apt-get install wondershaper

$ Sudo wondershaper {interface} {down} {up}

les {down} et {up} sont en bande passante en kpbs

Ainsi, par exemple, si vous souhaitez limiter la bande passante de l'interface eth1 à 256 kbps en liaison montante et à 128 kbps en liaison descendante,

$ Sudo wondershaper eth1 256 128

Pour effacer la limite,

$ Sudo wondershaper clear eth1 
8

Il existe TCP des mandataires, tels que iprelay et Sloppy, qui modifient la bande passante pour simuler des connexions lentes. Vous pouvez également définir la largeur de bande et simuler la perte de paquets à l’aide d’outils de filtrage IP tels que ipfw et iptables.

6
hobbs

En outre, pour simuler une connexion lente sur certains * nix, vous pouvez essayer d’utiliser ipfw . Plus d'informations sont fournies par la réponse de Ben Newman à cette Quora question

4
Ehtesh Choudhury

Vous pouvez essayer Dummynet , il peut simuler les limitations de la file d’attente et de la bande passante, les retards, les pertes de paquets et les effets de trajets multiples.

4
tszming

Utilisez un proxy de débogage Web avec des fonctionnalités de limitation, comme Charles ou Fiddler .

Vous les trouverez utiles au développement Web en général. La différence majeure est que Charles est un partagiciel, alors que Fiddler est gratuit.

3
Ben M

Utilisez un outil tel que TCPMon . Il peut simuler une connexion lente.

Fondamentalement, vous lui demandez exactement la même chose et il transmet simplement la même demande au serveur réel, puis retarde la réponse avec uniquement le nombre d'octets défini.

2
pickypg

Mac OSX depuis 10.10 a une application appelée Murus Firewall , qui sert d’interface graphique à pf, qui remplace ipfw.

Cela fonctionne très bien pour la régulation à l’échelle du système ou spécifique à un domaine. Je venais juste de l'utiliser pour faire glisser ma vitesse de téléchargement entre 300Kbps et 30Mbps afin de tester la manière dont un lecteur de vidéo en continu s'adapte.

1
Ben Wheeler

Mise à jour (9 ans après la demande), la réponse que je cherchais n’était pas mentionnée:

Firefox a également des préréglages pour limiter les vitesses de connexion. Trouvez-les dans l'onglet du Moniteur réseau des outils de développement. La valeur par défaut est 'No throttling'.

Le plus lent est GPRS () vitesse de téléchargement: 50 Kbps, vitesse de chargement: 20 Kbps, latence minimale (ms): 500 ), en passant par "bon" et "normal" 2G, 3G et 4G vers DSL et WiFi ( Vitesse de téléchargement: 30Mbps, Vitesse de téléversement: 15Mbps, Latence minimale (ms): 2 ).

Plus dans le docs Outils de développement .

0
lazysoundsystem

Vous pouvez utiliser NetEm (Network Emulation) en tant que serveur proxy pour émuler de nombreuses caractéristiques réseau (vitesse, délai, perte de paquets, etc.). Il contrôle la mise en réseau à l'aide de iproute2 package et est activé dans le noyau de la plupart des distributions Linux.

Il est contrôlé par l’application en ligne de commande tc (du package iproute2), mais il existe également des interfaces utilisateur graphiques pour NetEm, par exemple PHPnetemGUI2 .

L’avantage est que, comme je l’ai écrit, il peut émuler non seulement différentes vitesses de réseau, mais également, par exemple, la perte, la duplication et/ou la corruption de paquets, un délai aléatoire ou défini, etc.

Pour votre application, elle est absolument transparente. Vous pouvez configurer le système d’exploitation pour utiliser le serveur proxy NetEm, de sorte que toutes les connexions de cette machine passent par NetEm. Ou vous pouvez configurer uniquement votre application pour l'utiliser comme proxy.

Je l'ai utilisé pour tester les performances d'une application Android sur différents réseaux émulés de performances médiocres.

0
Dawid Ferenczy

Il existe également un autre outil appelé WIPFW - http://wipfw.sourceforge.net/

C'est un peu la vieille école, mais vous pouvez l'utiliser pour simuler une connexion plus lente. Il est basé sur Windows et l'outil permet à l'administrateur de contrôler le volume de trafic généré par le routeur par une machine donnée ou le volume de trafic WWW qu'il transfère, par exemple.

0
Deano