Estou desenvolvendo um jogo multiplayer online. Funciona bem quando eu o testo na rede local, mas antes de liberá-lo, gostaria de testar como a experiência do usuário funciona para alguém que não tem uma conexão tão boa com o servidor. Como posso simular uma conexão de Internet ruim com alta latência, baixa largura de banda, instabilidade e perda ocasional de pacotes em um ambiente local?
networking
testing
Philipp
fonte
fonte
Respostas:
Eu acho que Dummynet é o que você está procurando. O Dummynet é uma ferramenta de emulação de rede que pode simular limitações de largura de banda, atrasos, perdas de pacotes e muito mais. Você pode escolher facilmente qual tráfego deseja interceptar e configurar as limitações, por exemplo, limitar todo o tráfego TCP recebido a 2 Mbits / s.
Você vê que a seleção de tráfego é feita pelo firewall ipfw conhecido e os pipes fornecem os recursos de limitação.
Está disponível para FreeBSD, Linux e Windows.
fonte
Condicionador de Link de Rede
Se você estiver em um Mac, poderá usar o Condicionador de Link de Rede.
Você pode simular vários casos de conexões ruins à Internet, incluindo Edge e 3G.
Além disso, você pode criar seus próprios perfis com suas próprias configurações:
É um download gratuito no Xcode (vá para Xcode → Abrir ferramenta de desenvolvedor → Mais ferramentas de desenvolvedor ... e faça o download das Ferramentas de IO de hardware para Xcode ).
fonte
Se você estiver no Linux, poderá usar o netem para simular todos os possíveis problemas com a rede, como alta latência, baixa largura de banda, perda de pacotes e muitos outros.
Existe uma opção para o Windows chamada NetLimiter, mas eu não a usei, portanto não posso atestar isso.
Acabei de encontrar um aplicativo para Mac chamado SlowlyApp .
fonte
Desajeitado , para Windows Vista e 7.
fonte
Se você estiver no Windows, tente o SoftPerfect Connection Emulator . É basicamente um driver que se injeta entre o aplicativo e a camada de rede (semelhante ao Wireshark / WinPCAP) para a NIC selecionada e pode simular largura de banda, latência, perda de pacotes e outras coisas limitadas. A interface do usuário é simples e direta.
É um produto comercial, mas o teste permite que você faça rajadas de 30 segundos de "interferência" que devem ser boas o suficiente para você julgar se essa ferramenta faz o que você deseja.
Outra opção de plataforma cruzada é o DummyNet , que se comporta de maneira semelhante (via ipfw), mas é um pouco menos fácil de usar.
Eu acho que essa parte da pergunta pode ser reapresentada como "como eu lido com a latência da rede no meu aplicativo?" Uma técnica comumente usada e eficaz é o Dead Reckoning . O artigo vinculado explica melhor do que eu posso, mas a idéia básica é que seus clientes "simulem" onde cada entidade deve estar e o que deve estar fazendo por um algoritmo. Sempre que uma entidade se desvia desse algoritmo (por exemplo, entrada do jogador, evento do servidor etc.), ela envia uma atualização para cada cliente.
fonte
Não uso há algum tempo, mas usei Charles para testar isso. É um aplicativo com várias ferramentas de diagnóstico de rede, incluindo a simulação dos problemas mencionados: "uma conexão ruim à Internet com alta latência, baixa largura de banda, tremulação e perda ocasional de pacotes"
fonte
Se você é conhecedor do Fiddler e só está interessado no HTTP / 1, pode criar um script para isso.
O Fiddler não suporta HTTP / 2, a interceptação fará com que todo o tráfego HTTP faça o downgrade para HTTP / 1.
fonte