netem et Network Link Conditioner sous Windows
Sous Linux, il y a tc netem, et sur Mac, le Network Link Conditioner. Windows n'a rien d'intégré qui ajoute du délai et des pertes. Cette page transpose ce que vous connaissez dans Bean Network Tester et indique où les chiffres ne se transposent pas.
Les options de netem, une par une
Ajoutez --target et --duration à chaque commande ci-dessous, sinon elle touche tout l'ordinateur.
| netem | Réglage dans la fenêtre | Option |
|---|---|---|
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 |
- Pertes en rafale. La valeur de corrélation de netem n'est pas une longueur de rafale. Losses in a row (burst) est le nombre moyen de paquets perdus d'affilée, l'équivalent le plus proche.
- Réordonnancement. Il n'y a pas de pourcentage de réordonnancement. Un pic retarde un seul paquet, que ceux envoyés après lui dépassent, et le compteur de paquets réordonnés de la page Statistics indique si cela s'est vraiment produit.
- Taille de la file. La limite de netem compte des paquets. Buffer est une durée en millisecondes.
Trois différences à connaître
Sens. netem retarde ce qui quitte une interface, et la réponse revient intacte. Cet outil capture les deux sens, donc --latency 100 ajoute environ 200 ms à un ping : 100 à l'aller et 100 au retour. Pour obtenir ce que fait netem, ne capturez que le trafic sortant :
BeanNetworkTester.exe --filter out --latency 100 --jitter 20 --target myapp.exe --duration 120
Unités. Un débit netem s'exprime en bits par seconde. Les champs de limite de vitesse sont en KB/s, avec K = 1024. Conversion des mégabits :
| débit netem | Champ de limite de vitesse, en KB/s |
|---|---|
1mbit | 122 |
5mbit | 610 |
10mbit | 1221 |
50mbit | 6104 |
100mbit | 12207 |
Portée. tc façonne toute une interface réseau et exige root. Cet outil vise un seul programme avec --target et exige les droits d'administrateur.
Si vous connaissez Network Link Conditioner
L'outil d'Apple fonctionne avec des profils nommés. Les plus proches ici :
| Network Link Conditioner | Le plus proche ici |
|---|---|
| 100% Loss | Loss réglé sur 100 |
| 3G | 3G network |
| DSL | Home DSL (VDSL) |
| LTE | LTE / 4G |
| WiFi | Good WiFi |
| Very Bad Network | Terrible network |
| Edge | Pas de profil équivalent. Saisissez vous-même la limite de vitesse et la latence, puis gardez-les comme profil personnel avec le bouton Save.... |
Les chiffres ne sont pas ceux d'Apple : prenez un profil comme point de départ. Chaque valeur qu'un profil définit figure sur la page de référence.
Ce que vous gagnez sous Windows
- Un programme, pas tout l'ordinateur. Visez une seule application avec la dégradation pendant que le reste de la machine reste normal.
- Une chronologie au lieu d'un script shell. Les scénarios chronométrés changent les réglages à des secondes précises, ce que fait sous Linux un script de
tcet desleep. - Un pipeline peut le lancer. Le même exécutable tourne en CI et rend compte par codes de sortie.
Sous Linux ou macOS, utilisez les originaux. Cet outil ne fonctionne que sous Windows.