37 votes

Simuler une mauvaise connexion internet

Je développe un dispositif embarqué qui a accès à l'Internet via un réseau local. Je suis maintenant dans la phase de test, et je voudrais tester comment le dispositif se comporte lorsque la connexion à l'Internet est faible. Actuellement, le dispositif est connecté à un routeur par le biais d'un hub, que j'utilise pour surveiller les paquets avec Wireshark. Quelle est la meilleure façon de réduire la vitesse d'Internet de l'appareil pour imiter un scénario qui pourrait se produire ?

Puis-je le faire via un PC ? Dois-je avoir accès au routeur ? Si oui, est-il possible de limiter la vitesse de chaque IP dans l'interface du routeur ?

En fait, un ami m'a suggéré d'acheter une carte ethernet usb2lan, et de relier la connexion lan du PC à l'appareil embarqué, puis d'utiliser un logiciel limiteur de QoS. Pensez-vous que cela fonctionnera ?

24voto

Spiff Points 391

Si vous avez un Mac sous la main, les Macs ont une fonction de noyau appelée dummynet intégré, que vous contrôlez via ipfw . Il vous permet de simuler une connexion lente, d'abandonner des paquets de manière aléatoire avec certaines probabilités, et plus encore.

La même facilité existe dans Linux et d'autres systèmes d'exploitation.

De la page d'accueil dummynet :

En février 2010, nous avons publié la troisième version majeure de dummynet, qui fonctionne maintenant sur toutes les principales plateformes : FreeBSD, Mac OS X dans le cadre des distributions natives, et vous pouvez trouver les versions Linux, OpenWRT et Windows ici.

Il peut faire beaucoup pour vous :

limiter le trafic total entrant TCP à 2Mbit/s, et UDP à 300Kbit/s

ipfw add pipe 2 in proto tcp
ipfw add pipe 3 in proto udp
ipfw pipe 2 config bw 2Mbit/s
ipfw pipe 3 config bw 300Kbit/s

limiter le trafic entrant à 300Kbit/s pour chaque hôte du réseau 10.1.2.0/24.

ipfw add pipe 4 src-ip 10.1.2.0/24 in
ipfw pipe 4 config bw 300Kbit/s queue 20 mask dst-ip 0x000000ff

simuler une liaison ADSL avec la lune :

ipfw add pipe 3 out
ipfw add pipe 4 in
ipfw pipe 3 config bw 128Kbit/s queue 10 delay 1000ms
ipfw pipe 4 config bw 640Kbit/s queue 30 delay 1000ms

17voto

Pouki Points 1061

Vous pouvez essayer d'utiliser " Fiddler "

Vous avez des options pour simuler un mauvais réseau (comme les vieux modems 33k ou 56k).

Vous devez brancher votre appareil à votre PC et activer le proxy (chaque requête sera transférée par Fiddler).

Vous pourriez alors tester votre code avec un mauvais réseau et voir ce qui se passe ;)

13voto

mrówa Points 1731

Vous pouvez utiliser (presque) n'importe quelle distribution linux de liveCd (comme ubuntu, mandriva, d'autres) pour l'exécuter sur le matériel de votre choix, et utiliser l'outil basé sur le noyau. netem alias "Network Emulation" avec les outils du paquet "iproute2". Il vous permet de contrôler les délais, la perte de paquets, la corruption, la duplication et d'autres problèmes possibles du réseau étendu.

Il y a une liste des simulations les plus utilisées, comme :

  • Contrôle du débit à l'aide de Token Bucket Filter :

    tc qdisc add dev eth0 root handle 1:0 netem delay 100ms
    tc qdisc add dev eth0 parent 1:1 handle 10: tbf rate 256kbit buffer 1600 limit 3000
  • Retarder tous les paquets d'un temps fixe : tc qdisc add dev eth0 root netem delay 100ms

  • Perte du paquet : tc qdisc change dev eth0 root netem loss 0.1%

5voto

Ardesco Points 2169

Il s'agit d'une autre solution OSX, consultez le conditionneur de lien réseau.

La citation suivante est extraite du blog suivant (tout le crédit pour le texte ci-dessous doit être attribué à Matt Gemmell) :

http://mattgemmell.com/2011/07/25/network-link-conditioner-in-lion/

Obtenez les Hardware IO Tools pour Xcode. Pour ce faire, allez dans le menu Xcode puis choisissez "Open Developer Tool" et enfin "More Developer Tools ". Vous serez dirigé vers le site de téléchargement pour développeurs d'Apple. Vous devez télécharger "Hardware IO Tools for Xcode".

L'image disque résultante contiendra (entre autres) une volet de préférences pour les Préférences Système, appelé "Network Link Conditionneur". Double-cliquez sur le fichier du panneau de préférences et authentifiez-vous pour permettre son installation. l'installer. Vous verrez alors le volet dans les Préférences Système.

Vous pouvez choisir parmi différents types de conditions de réseau à l'aide du menu déroulant Profil.

Vous pouvez également ajouter vos propres profils en cliquant sur Gérer les profils, soit en partant de zéro, soit en dupliquant un profil existant.

Extrêmement pratique pour simuler des conditions de réseau non optimales. tout en testant une application. N'oubliez pas de l'éteindre par la suite !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X