Temos um switch de rede aqui e podemos facilmente solicitar que ele limite a largura de banda permitida, o que é bom. Seria ótimo se pudéssemos também pedir que ele gerasse perdas de pacotes para nós - fazer isso com WANem é possível, mas adiciona latências e estamos lidando com aplicações em tempo real, então qualquer latência que adicionarmos é ruim para nós. Alguém conhece um switch de rede ou roteador que permite isso ou pode ser hackeado para acomodar isso?
Responder1
Todos os switches que possuem limitação de taxa na porta ou na vlan devem permitir "simular" a perda de pacotes. Se o seu aplicativo precisar de 1 MB de tráfego, defina o limite logo abaixo disso e o switch deverá descartar pacotes.
Lembre-se que todos os switches que possuem essa funcionalidade precisam ser amostrados para poder limitar. Por exemplo: a porta 1 está definida para o limite de 1 MB. A porta 1 envia tráfego de 2 MB por uma fração de segundo. A maior parte provavelmente sobreviverá. Isso ocorre porque até que o switch consiga detectar e medir a quantidade de tráfego que passa, ele não saberá o que descartar. Dependendo do seu fornecedor, isso pode ser implementado de várias maneiras, alguns buffers e, em seguida, descartarão pacotes do buffer, e alguns apenas permitirão o momento de entrada e saída e depois limitarão.
Se você está procurando exatamente como seu aplicativo responderá, sugiro configurar uma caixa BSD bem na frente do computador em que você está testando o aplicativo. BSD (só porque eu os uso em meus firewalls) tem um comando chamadoipfwisso permitirá que você controle diretamente uma conexão. Então, vamos supor que o seguinte seja o seu cenário atual:
+--------------------+ +----------------+ | Servidor de aplicativos | ---> | Máquina Cliente | +--------------------+ +----------------+
Entendo que isso seria uma simplificação excessiva, mas ilustra o conceito. O que você pode fazer é configurar um nat no meio e ter limite de taxa
+--------------------+ +-----------------------+ +-- --------------+ | Servidor de aplicativos | ---> | Caixa de limite de taxa | ---> | Máquina Cliente | | 10.0.0.5 | | 10.0.0.6 192.168.1.1 | | 192.168.1.2 | +--------------------+ +-----------------------+ +-- --------------+
Mais uma vez sei que isto é uma simplificação excessiva. Adicionei IP's para poder mostrar quais seriam os comandos no BSD no Rate Limit Box. Primeiro configure o BSD para funcionar como um roteador normal, você pode usar o PF Sense etc. Então você pode adicionar os seguintes comandos no prompt.
configuração do tubo ipfw 1 bw 101Kbit ipfw adicione 1 pipe 1 ip de 10.0.0.5 a 192.168.1.2 ipfw adicione 2 tubos 1 ip de 192.168.1.2 a 10.0.0.5
Isso simularia uma conexão de 101kb de e para o cliente para o servidor. Você pode então alterar o valor 101 para qualquer coisa para poder ver o que acontece em vários limites. A verdadeira vantagem que isso tem sobre um switch que suporta os recursos limitantes é que ele é barato (um computador simples com algumas interfaces) e que você pode usar o wireshark para capturar o tráfego, se necessário, para ver exatamente o que está sendo descartado e quanto. Esta informação pode ser muito útil no design de uma aplicação melhor.
Na minha humilde opinião