Bean Network Tester

Добавьте задержку и джиттер приложению

На быстром локальном соединении всё работает. Дайте приложению 300 мс пинга, и вы узнаете, какие экраны написаны так, будто ответ приходит мгновенно.

Три разные вещи

НастройкаЧто делаетОткуда берётся в жизни
LatencyДобавляет одинаковую задержку каждому пакету, в миллисекундах.Расстояние. Сервер на другом континенте или спутник.
JitterДобавляет сверху случайную величину, так что задержка постоянно меняется.Общий Wi-Fi, мобильные сети, всё, что перегружено.
Всплески задержкиРедкие долгие зависания, заданные частотой и длительностью.Передача между сотовыми вышками, перегруженный маршрутизатор.

Все три значения задаются в миллисекундах и могут работать вместе. Оба значения задержки принимают любое число от 0, так что можно перейти от правдоподобных 40 мс к абсурдным 60 секундам.

Из командной строки

Стабильные 200 мс с джиттером 80 мс для одного приложения:

BeanNetworkTester.exe --latency 200 --jitter 80 --target myapp.exe --duration 60

А теперь редкие долгие зависания: примерно один пакет из двадцати ждёт лишнюю секунду:

BeanNetworkTester.exe --spike-prob 5 --spike-ms 1000 --target myapp.exe

Значения, которые стоит попробовать

Готовые профили содержат измеренные значения: «Distant server (another continent)», «Satellite (low orbit)», «Satellite (geostationary)», «In-flight Wi-Fi», «LTE / 4G».

Как измерять: смотрите на худший случай, а не на среднее

Джиттер почти не сдвигает среднее и почти не сдвигает медиану. Запуск с джиттером 30 мс и запуск без него могут показать почти одинаковый «типичный» пинг, хотя ощущения будут совершенно разными.

Сравнивайте вместо этого 95-й перцентиль с медианой. Разница между ними и есть джиттер, и именно она делает звонок рваным, а игру неиграбельной, хотя среднее выглядит нормально.

Что дальше

Готовы намеренно сломать собственную сеть?

Скачать для Windows