Je développe un jeu multijoueur en ligne. Cela fonctionne bien lorsque je le teste sur le réseau local, mais avant de le publier, j'aimerais tester le fonctionnement de l'expérience utilisateur pour une personne qui n'a pas une aussi bonne connexion au serveur. Comment puis-je simuler une mauvaise connexion Internet avec une latence élevée, une faible bande passante, une gigue et des pertes de paquets occasionnelles dans un environnement local?
networking
testing
Philipp
la source
la source
Réponses:
Je pense que Dummynet est ce que vous recherchez. Dummynet est un outil d’émulation de réseau capable de simuler les limitations de bande passante, les retards, les pertes de paquets, etc. Vous pouvez facilement choisir le trafic que vous voulez intercepter et configurer les limitations, par exemple pour limiter tout le trafic TCP entrant à 2 Mbit / s
Vous voyez que la sélection du trafic est effectuée par le pare-feu ipfw connu et que les canaux fournissent les fonctionnalités de limitation.
Il est disponible pour FreeBSD, Linux et Windows.
la source
Conditionneur de liaison réseau
Si vous utilisez un Mac, vous pouvez utiliser le conditionneur de liaison réseau.
Vous pouvez simuler divers cas de mauvaises connexions Internet, notamment Edge et 3G.
De plus, vous pouvez créer vos propres profils avec vos propres paramètres:
Il est téléchargeable gratuitement dans Xcode (allez à Xcode → Ouvrir l’outil pour les développeurs → Plus d’outils pour les développeurs… et téléchargez le logiciel Hardware IO Tools pour Xcode ).
la source
Si vous êtes sur Linux, vous pouvez utiliser netem pour simuler tous les problèmes possibles liés au réseau, comme une latence élevée, une bande passante réduite, des pertes de paquets, etc.
Il existe une option pour les fenêtres appelée NetLimiter mais je ne l’ai pas utilisée, je ne peux donc pas en témoigner.
Je viens de trouver un Mac App appelé SlowlyApp .
la source
Maladroit , pour Windows Vista et 7.
la source
Si vous utilisez Windows, vous pouvez essayer SoftPerfect Connection Emulator . Il s'agit essentiellement d'un pilote qui s'injecte entre votre application et la couche réseau (similaire à Wireshark / WinPCAP) pour la carte réseau sélectionnée et peut simuler une bande passante limitée, une latence, une perte de paquet, etc. L'interface utilisateur est simple et directe.
C'est un produit commercial, mais le procès vous laisse faire des "interférences" de 30 secondes qui devraient vous suffire pour juger si cet outil fait ce que vous voulez.
Une autre option multiplateforme est DummyNet , qui se comporte de la même manière (via ipfw) mais est un peu moins facile à utiliser.
Je pense que cette partie de la question pourrait être reformulée comme suit: "comment gérer la latence du réseau dans mon application?" Dead Reckoning est une technique couramment utilisée et efficace . L'article lié l'explique mieux que moi, mais l'idée de base est que vos clients "simulent" en quelque sorte l'emplacement de chaque entité et son rôle dans un algorithme. Chaque fois qu'une entité s’écarte de cet algorithme (entrée du joueur, événement côté serveur, etc.), elle envoie une mise à jour à chaque client.
la source
Je ne l'ai pas utilisé depuis un moment, mais j'ai utilisé Charles pour tester cela. Il s’agit d’une application avec divers outils de diagnostic réseau, dont la simulation des problèmes évoqués: "une mauvaise connexion Internet avec une latence élevée, une bande passante réduite, une gigue et des pertes de paquets occasionnelles".
la source
Si vous êtes avertis avec Fiddler , et vous êtes uniquement intéressé par HTTP / 1 vous pouvez alors ce script.
Fiddler ne prend pas en charge HTTP / 2, son interception entraînant la rétrogradation de tout le trafic HTTP en HTTP / 1.
la source