Simulation D'Une Connexion Internet Lente
je sais que c'est une question étrange. Puisque je développe habituellement des applications basées sur "l'hypothèse" que tous les utilisateurs ont une connexion Internet lente. Mais, est-ce que quelqu'un pense qu'il y a un moyen de simuler programmatiquement une connexion Internet lente, pour que je puisse "voir" comment une application fonctionne sous diverses "vitesses de connexion"?
Je ne m'inquiète pas de la langue utilisée. Et je ne suis pas à la recherche d'échantillons de code ou quoi que ce soit, juste intéressé par la logique derrière elle.
13 réponses
si vous utilisez windows, fiddler est un excellent outil. Il a un réglage pour simuler la vitesse du modem, et pour quelqu'un qui veut plus de contrôle a un plugin pour ajouter la latence à chaque requête .
je préfère utiliser un outil comme celui-ci à mettre du code de latence dans mon application car il s'agit d'une simulation beaucoup plus réaliste, ainsi que de ne pas me faire concevoir ou coder les bits réels. Le meilleur code est le code je n'ai pas à écrire.
ajouté : cet article sur le blog de Pavel Donchev sur les Technologies logicielles montre comment créer des vitesses simulées personnalisées: limiter votre vitesse de connexion Internet avec Fiddler .
à partir de Chrome 38 vous pouvez le faire sans plugins. Cliquez simplement sur Inspecter l'élément (ou F12 hotkey), puis cliquez sur "toggle device mod" et vous verrez quelque chose comme ceci:
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, il n'est pas possible.
P.S. 2 maintenant, vous n'avez plus besoin de basculer quoi que ce soit. Le panneau d'étranglement est disponible directement depuis le panneau réseau.
notez qu'en cliquant sur le no throttling vous pouvez créer vos options personnalisées d'étranglement.
- Liaison au Réseau Conditionneur sur OSX
- maladroit sous Windows
- alors dummynet à la Linux
j'utilisais http://www.netlimiter.com / et ça marche très bien. Non seulement limite la vitesse pour les processus simples, mais montre également les taux de transfert réels.
sur les machines Linux u peut utiliser wondershaper
apt-get install wondershaper
$ sudo wondershaper {interface} {down} {up}
{down} et {up} sont de la bande passante dans kpbs
par exemple, si vous voulez limiter la largeur de bande de l'interface eth1 à 256kbps en liaison montante et 128kbps en liaison descendante,
$ sudo wondershaper eth1 256 128
pour supprimer la limite,
$ sudo wondershaper clear eth1
il y a des processeurs TCP, comme iprelay et Sloppy, qui font de la formation de bande passante pour simuler des connexions lentes. Vous pouvez également former la bande passante et simuler la perte de paquets en utilisant des outils de filtrage IP comme ipfw et iptables.
aussi, pour simuler une connexion lente sur certains *nixes, vous pouvez essayer d'utiliser ipfw . Plus d'informations sont fournies par la réponse de Ben Newman sur cette Quora question
Mac OSX depuis 10.10 a une application appelée Murus Firewall , qui agit comme une GUI à pf, le remplacement pour ipfw.
il fonctionne très bien pour le système-large ou domaine-spécifique étranglement. J'ai juste pu l'utiliser pour faire glisser ma vitesse de téléchargement entre 300kbit / s et 30mbit / s pour tester comment un lecteur vidéo en continu s'ajuste.
il y a aussi un autre outil appelé WIPFW - http://wipfw.sourceforge.net/
c'est un peu vieux jeu, mais vous pouvez l'utiliser pour simuler une connexion plus lente. Il est basé sur Windows, et l'outil permet à l'administrateur de surveiller combien de trafic le routeur reçoit d'une certaine machine, ou combien de trafic WWW il transmet, par exemple.
vous pouvez utiliser NetEm (Network Emulation) comme un serveur mandataire pour émuler de nombreuses caractéristiques du réseau (vitesse, retard, perte de paquets, etc.). Il contrôle le réseau en utilisant le paquet iproute2 et il est activé dans le noyau de la plupart des distributions Linux.
il est contrôlé par l'application en ligne de commande tc
(du paquet iproute2 ), mais il y a aussi quelques interfaces web GUI pour NetEm, par exemple PHPnetemGUI2 .
l'avantage est que, comme je l'ai écrit, il peut émuler non seulement des vitesses réseau différentes, mais aussi, par exemple, la perte de paquets, la duplication et/ou la corruption, le délai aléatoire ou défini, etc., de sorte que vous pouvez imiter divers réseaux peu performants.
pour votre application c'est absolument transparent, vous pouvez configurer le système d'exploitation pour utiliser le NetEm serveur proxy, donc toutes les connexions de cette machine passent par NetEm. Ou vous pouvez uniquement configurer votre application pour l'utiliser comme un proxy.
je l'ai utilisé pour tester les performances d'une application Android sur divers émulé pauvres performances des réseaux.