Bean Network Tester

為應用增加延遲和抖動

在快速的本地連線上一切都正常。給應用 300 ms 的 ping,你就會發現哪些畫面是按「回應瞬間到達」來寫的。

三種不同的東西

設定作用現實中的來源
Latency為每個封包增加相同的延遲,單位為毫秒。距離。位於另一個大洲的伺服器,或者衛星。
Jitter在此基礎上再疊加一個隨機量,讓延遲不斷變化。共享 Wi-Fi、行動網路,以及任何壅塞的網路。
延遲尖峰偶爾出現的長時間停頓,由發生頻率和持續時間決定。基站之間的切換,負載過高的路由器。

三者的單位都是毫秒,可以同時使用。兩個延遲數值都接受從 0 起的任意值,所以你可以從合理的 40 ms 一路調到離譜的 60 秒。

從命令列執行

對一個應用施加穩定的 200 ms 延遲和 80 ms 抖動:

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 ms 抖動的執行和一次沒有抖動的執行,可能報告出幾乎相同的「典型」ping,體驗卻完全不同。

改為比較第 95 百分位和中位數。兩者之間的差距就是抖動,而正是這個差距讓語音通話斷斷續續、讓遊戲無法遊玩,儘管平均值看起來一切正常。

接下來

準備好故意搞壞自己的網路了嗎?

下載 Windows 版