netem e Network Link Conditioner no Windows
No Linux existe o tc netem, e no Mac existe o Network Link Conditioner. O Windows não tem nada embutido que adicione atraso e perda. Esta página leva o que você já conhece para o Bean Network Tester e aponta onde os números não se transferem.
As opções do netem, uma a uma
Acrescente --target e --duration a cada comando daqui, ou ele afetará o computador inteiro.
| netem | Configuração na janela | Flag |
|---|---|---|
delay 100ms | Latency | --latency 100 |
delay 100ms 20ms | Latency, Jitter | --latency 100 --jitter 20 |
loss 5% | Loss | --loss 5 |
loss 5% 25% | Loss, Losses in a row (burst) | --loss 5 --loss-burst 4 |
duplicate 1% | Duplication | --dup 1 |
corrupt 0.1% | Corruption | --corrupt 0.1 |
reorder 25% | Spike chance, Spike size | --spike-prob 5 --spike-ms 200 |
rate 1mbit | Download, Upload | --down 122 --up 122 |
limit 1000 | Buffer | --buffer 1000 |
- Perda em rajadas. O valor de correlação do netem não é um comprimento de rajada. Losses in a row (burst) é a média de pacotes perdidos em sequência, o equivalente mais próximo.
- Reordenação. Não há porcentagem de reordenação. Um pico atrasa um único pacote para que os enviados depois o ultrapassem, e o contador de reordenados na página Statistics mostra se isso realmente aconteceu.
- Tamanho da fila. O limit do netem conta pacotes. Buffer é um tempo em milissegundos.
Três diferenças que vale conhecer
Direção. O netem atrasa o que sai de uma interface, e a resposta volta intacta. Esta ferramenta captura as duas direções, então --latency 100 soma cerca de 200 ms a um ping: 100 na ida e 100 na volta. Para obter o que o netem faz, capture apenas o tráfego de saída:
BeanNetworkTester.exe --filter out --latency 100 --jitter 20 --target myapp.exe --duration 120
Unidades. Uma taxa do netem é em bits por segundo. Os campos de limite de velocidade são em KB/s, com K = 1024. Conversão de megabits:
| taxa do netem | Campo de limite de velocidade, em KB/s |
|---|---|
1mbit | 122 |
5mbit | 610 |
10mbit | 1221 |
50mbit | 6104 |
100mbit | 12207 |
Alcance. O tc modela uma interface de rede inteira e exige root. Esta ferramenta mira um único programa com --target e exige direitos de administrador.
Se você conhece o Network Link Conditioner
A ferramenta da Apple trabalha com perfis nomeados. Os mais próximos aqui:
| Network Link Conditioner | Mais próximo aqui |
|---|---|
| 100% Loss | Loss definido como 100 |
| 3G | 3G network |
| DSL | Home DSL (VDSL) |
| LTE | LTE / 4G |
| WiFi | Good WiFi |
| Very Bad Network | Terrible network |
| Edge | Não há perfil equivalente. Digite você mesmo o limite de velocidade e a latência e guarde-os como perfil próprio com o botão Save.... |
Os números não são os da Apple, então trate um perfil como ponto de partida. Cada valor que um perfil define está na página de referência.
O que você ganha no Windows
- Um programa, não o computador inteiro. Mire a degradação em um único app enquanto o resto da máquina continua normal.
- Uma linha do tempo em vez de um script de shell. Os cenários temporizados mudam as configurações em segundos definidos, o que um script de
tcesleepfaz no Linux. - Um pipeline pode executá-lo. O mesmo executável roda em CI e informa por códigos de saída.
No Linux ou no macOS, use os originais. Esta ferramenta roda apenas no Windows.