Limite a velocidade de download e upload
Limite um aplicativo a um número fixo de quilobytes por segundo e ele não passa disso. Os dois sentidos são separados, então você pode dar a ele um download rápido e um upload sem esperança, que é exatamente a cara da maioria das conexões domésticas e móveis.
Na janela
- Defina Process como o seu aplicativo.
- Preencha Download, Upload ou os dois, em KB/s. Deixe um campo em 0 para não mexer naquele sentido.
- Pressione START.
BeanNetworkTester.exe --down 128 --up 32 --target myapp.exe --duration 120
O que os números significam
| KB/s | Aproximadamente | O que é |
|---|---|---|
| 6 | 56 kbit/s | Um modem discado. O perfil “56k modem”. |
| 128 | 1 Mbit/s | Wi-Fi de avião, um hotel cheio, um sinal móvel ruim. |
| 1024 | 8 Mbit/s | Uma linha doméstica modesta. Suficiente para uma transmissão de vídeo. |
| 12800 | 100 Mbit/s | Uma conexão fixa normal hoje em dia. |
Quilobytes, não quilobits: multiplique por oito para comparar com o que o provedor anuncia. Limitar os dois sentidos ao mesmo tempo é o que faz uma conexão parecer um hotspot ruim, e não apenas um download lento.
A fila importa tanto quanto o limite
Um limite de velocidade precisa de um lugar para pôr os pacotes que ainda não cabem. Essa é a configuração Buffer, em milissegundos, e ela se comporta como a fila do caixa do supermercado:
- Uma fila curta significa que os pacotes são jogados fora assim que a linha enche. O seu aplicativo vê perda e reage rápido.
- Uma fila longa significa que nada é jogado fora, mas tudo espera. O seu aplicativo vê a conexão ficando cada vez mais lenta em vez de falhar, o efeito de uma linha doméstica congestionada e o motivo de uma chamada de vídeo piorar enquanto um download continua.
O perfil “Congested home link (bufferbloat)” é exatamente isso: um limite com uma fila longa. Teste a mesma velocidade com uma fila curta e uma longa e observe como o aplicativo se comporta de forma diferente.
O que esperar
Com um limite em execução, o contador de pacotes descartados pode ficar em zero. Isso não é um bug: um limite primeiro faz os pacotes esperarem e só os descarta quando a fila está realmente cheia. Dê a ele um buffer pequeno e os descartes aparecem.