netem і Network Link Conditioner у Windows
У Linux є tc netem, а на Mac є Network Link Conditioner. У Windows немає нічого вбудованого, що додає затримку й втрати. Ця сторінка переносить те, що ви вже знаєте, на Bean Network Tester і показує, де числа не переносяться.
Опції netem по одній
Додавайте --target і --duration до кожної команди тут, інакше вона зачепить увесь комп'ютер.
| netem | Налаштування у вікні | Прапорець |
|---|---|---|
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 |
- Втрати серіями. Значення кореляції в netem - це не довжина серії. Losses in a row (burst) - середня кількість пакетів, утрачених поспіль, найближчий аналог.
- Переставлення. Відсотка переставлення немає. Сплеск затримує один пакет, і надіслані після нього його випереджають, а лічильник переставлених пакетів на сторінці Statistics показує, чи це справді сталося.
- Розмір черги. Параметр limit у netem рахується в пакетах. Buffer - це час у мілісекундах.
Три відмінності, про які варто знати
Напрямок. netem затримує те, що залишає інтерфейс, а відповідь повертається недоторканою. Цей інструмент захоплює обидва напрямки, тому --latency 100 додає до пінгу близько 200 мс: 100 туди й 100 назад. Щоб отримати те, що робить netem, захоплюйте лише вихідний трафік:
BeanNetworkTester.exe --filter out --latency 100 --jitter 20 --target myapp.exe --duration 120
Одиниці. Швидкість у netem задається в бітах за секунду. Поля обмеження швидкості - у KB/s, де K = 1024. Переведення мегабітів:
| швидкість у netem | Поле обмеження швидкості, у KB/s |
|---|---|
1mbit | 122 |
5mbit | 610 |
10mbit | 1221 |
50mbit | 6104 |
100mbit | 12207 |
Охоплення. tc формує весь мережевий інтерфейс і вимагає root. Цей інструмент націлюється на одну програму через --target і вимагає прав адміністратора.
Якщо ви знаєте Network Link Conditioner
Інструмент Apple працює з іменованими профілями. Найближчі з них тут:
| Network Link Conditioner | Найближче тут |
|---|---|
| 100% Loss | Loss, рівне 100 |
| 3G | 3G network |
| DSL | Home DSL (VDSL) |
| LTE | LTE / 4G |
| WiFi | Good WiFi |
| Very Bad Network | Terrible network |
| Edge | Для нього профілю немає. Введіть обмеження швидкості й затримку самі, а потім збережіть їх як власний профіль кнопкою Save.... |
Числа не від Apple, тому сприймайте профіль як відправну точку. Усі значення, які задає профіль, перелічено на довідковій сторінці.
Що ви отримуєте у Windows
- Одна програма, а не весь комп'ютер. Спрямуйте завади на один застосунок, поки решта машини працює як звичайно.
- Часова шкала замість shell-скрипту. Сценарії за часом змінюють налаштування в задані секунди, як у Linux скрипт із
tcіsleep. - Конвеєр може його запустити. Той самий виконуваний файл працює в CI і повідомляє результат кодами завершення.
У Linux або macOS використовуйте оригінали. Цей інструмент працює лише у Windows.