netem und Network Link Conditioner unter Windows
Unter Linux gibt es tc netem, auf dem Mac den Network Link Conditioner. Windows hat nichts eingebaut, das Verzögerung und Verlust hinzufügt. Diese Seite überträgt, was du schon kennst, auf Bean Network Tester und zeigt, wo sich die Zahlen nicht übertragen lassen.
Die netem-Optionen, eine nach der anderen
Hänge an jeden Befehl hier --target und --duration an, sonst wirkt er auf den ganzen Computer.
| netem | Einstellung im Fenster | 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 |
- Verlust in Serien. Der Korrelationswert in netem ist keine Seriellänge. Losses in a row (burst) ist die durchschnittliche Zahl hintereinander verlorener Pakete und kommt dem am nächsten.
- Umsortieren. Es gibt keinen Prozentwert fürs Umsortieren. Ein Spike verzögert ein einzelnes Paket, sodass die danach gesendeten es überholen, und der Zähler für umsortierte Pakete auf der Seite Statistics zeigt, ob das wirklich passiert ist.
- Warteschlangengröße. Das limit von netem zählt Pakete. Buffer ist eine Zeit in Millisekunden.
Drei Unterschiede, die man kennen sollte
Richtung. netem verzögert, was eine Schnittstelle verlässt, und die Antwort kommt unberührt zurück. Dieses Werkzeug erfasst beide Richtungen, daher fügt --latency 100 einem Ping etwa 200 ms hinzu: 100 hin und 100 zurück. Um das Verhalten von netem zu bekommen, erfasse nur ausgehenden Verkehr:
BeanNetworkTester.exe --filter out --latency 100 --jitter 20 --target myapp.exe --duration 120
Einheiten. Eine netem-Rate steht in Bit pro Sekunde. Die Felder für das Tempolimit sind in KB/s, mit K = 1024. Umrechnung von Megabit:
| netem-Rate | Feld für das Tempolimit, in KB/s |
|---|---|
1mbit | 122 |
5mbit | 610 |
10mbit | 1221 |
50mbit | 6104 |
100mbit | 12207 |
Reichweite. tc formt eine ganze Netzwerkschnittstelle und braucht root. Dieses Werkzeug zielt mit --target auf ein Programm und braucht Administratorrechte.
Wenn du den Network Link Conditioner kennst
Apples Werkzeug arbeitet mit benannten Profilen. Die nächsten hier:
| Network Link Conditioner | Am nächsten hier |
|---|---|
| 100% Loss | Loss auf 100 gesetzt |
| 3G | 3G network |
| DSL | Home DSL (VDSL) |
| LTE | LTE / 4G |
| WiFi | Good WiFi |
| Very Bad Network | Terrible network |
| Edge | Dafür gibt es kein Profil. Gib Tempolimit und Latenz selbst ein und speichere sie mit der Schaltfläche Save... als eigenes Profil. |
Die Zahlen stammen nicht von Apple, nimm ein Profil also als Ausgangspunkt. Jeder Wert, den ein Profil setzt, steht auf der Referenzseite.
Was du unter Windows dazubekommst
- Ein Programm, nicht der ganze Computer. Ziele mit der Störung auf eine einzelne App, während der Rest der Maschine normal bleibt.
- Eine Zeitleiste statt eines Shell-Skripts. Zeitgesteuerte Szenarien ändern die Einstellungen zu festgelegten Sekunden, so wie ein Skript aus
tcundsleepunter Linux. - Eine Pipeline kann es ausführen. Dieselbe ausführbare Datei läuft in CI und meldet über Exit-Codes.
Unter Linux oder macOS nimm die Originale. Dieses Werkzeug läuft nur unter Windows.