Имитация потери пакетов в Windows
Потеря пакетов: сбой, который пользователи описывают словами «оно просто зависает». Вы задаёте процент, программа выбрасывает такую долю пакетов, а приложению приходится с этим справляться.
В окне
- Заполните Process, чтобы затрагивалось только ваше приложение, а не весь компьютер.
- Задайте Loss в виде процента от 0 до 100. Начните с 5.
- Нажмите START и пользуйтесь приложением.
Строка вверху окна кратко показывает, что запущено, а вкладка Statistics считает отброшенные пакеты.
Из командной строки
Тот же исполняемый файл работает и без окна. Пять процентов потерь для одного браузера на две минуты, а затем всё само возвращается в норму:
BeanNetworkTester.exe --loss 5 --target chrome.exe --duration 120
Добавьте --simulate, чтобы прорепетировать команду, не трогая реальный трафик.
Какой процент выбрать
| Потери | Как это ощущается |
|---|---|
| 1 % | Хорошее соединение, у которого выдалась плохая минута. Большинство приложений это скрывают. |
| 5 % | Слабый Wi-Fi. Страницы грузятся медленно, качество видео падает. |
| 20 % | Хотспот переполненного кафе или тоннель в поезде. Начинают появляться таймауты. |
| 60 % и больше | Почти непригодно. Хорошо подходит, чтобы найти сообщение об ошибке, которое никто никогда не проверял. |
Готовые профили задают это за вас. «Weak WiFi», «Cafe (crowded WiFi)» и «3G network» содержат значение потерь, а также задержку и ограничение скорости.
Две вещи, которые удивляют
На TCP вы можете вообще ничего не увидеть. TCP повторно передаёт потерянное, поэтому загрузка по HTTPS просто становится медленнее, а не завершается ошибкой. Если хотите увидеть потери как потери, проверяйте то, что работает по UDP: голосовой звонок, игру, видеопоток или DNS.
Потери случайны, поэтому два запуска отличаются. Задайте seed, и тот же запуск повторится точь-в-точь, а именно это превращает «сломалось один раз» в отчёт об ошибке, который кто-то другой может воспроизвести:
BeanNetworkTester.exe --loss 20 --target myapp.exe --seed 42 --duration 60
Что дальше
Одни лишь потери встречаются редко. Реальные плохие соединения теряют пакеты, и добавляют задержку, и упираются в скорость, а именно это и воспроизводят профили.