Dodawanie opóźnienia i jittera
Na szybkim lokalnym łączu działa wszystko. Daj aplikacji 300 ms pingu i okaże się, które ekrany napisano tak, jakby odpowiedź przychodziła natychmiast.
Trzy różne rzeczy
| Ustawienie | Co robi | Skąd się bierze w realu |
|---|---|---|
| Latencja | Dokłada to samo opóźnienie każdemu pakietowi, w milisekundach. | Odległość. Serwer na innym kontynencie albo satelita. |
| Jitter | Dokłada losową wartość na wierzchu, więc opóźnienie cały czas się zmienia. | Współdzielone WiFi, sieci mobilne, wszystko przeciążone. |
| Skoki | Sporadyczne długie zacięcia, ustawiane przez to, jak często i jak długo. | Przełączenie między nadajnikami, router pod obciążeniem. |
Wszystkie trzy są w milisekundach i mogą działać razem. Obie wartości opóźnienia przyjmują cokolwiek od 0 w górę, więc możesz zejść od wiarygodnych 40 ms do absurdalnych 60 sekund.
Z linii komend
Stałe 200 ms z 80 ms jittera, na jednej aplikacji:
BeanNetworkTester.exe --latency 200 --jitter 80 --target myapp.exe --duration 60
Albo rzadkie, długie zacięcia - mniej więcej co dwudziesty pakiet czeka dodatkową sekundę:
BeanNetworkTester.exe --spike-prob 5 --spike-ms 1000 --target myapp.exe
Wartości warte wypróbowania
- 40 ms - serwer w tym samym kraju. Nic nie powinno się zmienić.
- 150 ms - inny kontynent. Wszystko, co gada z serwerem często, zaczyna być ślamazarne, bo każda podróż w obie strony kosztuje.
- 600 ms i więcej - satelita geostacjonarny albo WiFi w samolocie. Tu paski postępu stają, a logika ponawiania wreszcie się uruchamia.
Gotowe profile mają wpisane zmierzone wartości: "Odległy serwer (inny kontynent)", "Satelita niskoorbitalny", "Satelita geostacjonarny", "Wi-Fi w samolocie", "Sieć LTE / 4G".
Jak to mierzyć: patrz na najgorszy przypadek, nie na średnią
Jitter prawie nie rusza średniej i prawie nie rusza mediany. Przebieg z 30 ms jittera i przebieg bez niego mogą pokazać niemal ten sam "typowy" ping, a odczucie będzie zupełnie inne.
Porównuj zamiast tego 95. percentyl z medianą. Różnica między nimi to właśnie jitter, i to ona sprawia, że rozmowa się rwie albo gra staje się niegrywalna, gdy średnia dalej wygląda dobrze.