Plano de fundo
Um de nossos clientes sofre de um problema intermitente com sua internet, onde ele solta os pacotes quando um usuário faz o download de um arquivo grande (sua TI está investigando o problema).
Eu tenho um aplicativo que consiste em um servidor Web executando o Windows 2008 R2 IIS7.5 e um cliente executando o Windows 7, Chrome, que usa um XMlHttpRequest de longa duração para transferir "mensagens" do servidor para o cliente.
O problema.
Meu aplicativo deve ser bastante imune a essas perdas de pacotes, mas na prática não é.
Eu quero testar o aplicativo em vários cenários de problemas de rede diferentes, por exemplo, perda aleatória de pacotes em 1% e perda de pacotes em rajadas - por exemplo, perda total de pacotes por 4.000 ms e assim por diante.
Estou procurando uma solução que me permita "reproduzir" um cenário e testar meu aplicativo. Eu poderia usar 3G, ou desconectar e desconectar o cabo de rede, mas os efeitos não são muito reprodutíveis.
A questão.
Existe um aplicativo / driver que eu possa instalar na minha máquina para simular conexões de internet "desonestas"? Ou talvez um appliance ou servidor proxy que eu possa usar na rede para burlar esses cenários?
Eu estou supondo que não é muito fácil de fazer em um computador moderno, porque eu espero que a maior parte da pilha TCP seja descarregada na placa de rede, mas eu teria pensado que isso era uma coisa razoavelmente popular para tentar fazer, no entanto eu não tive sorte no google. Sou mais proficiente no Windows, mas uma solução que usa o Linux, seja como cliente ou proxy, seria bem-vinda.