Latentie en jitter toevoegen aan een app
Alles werkt op een snelle lokale verbinding. Geef de app 300 ms ping en je ontdekt welke schermen zijn geschreven alsof het antwoord direct komt.
Drie verschillende dingen
| Instelling | Wat het doet | Waar het in het echt vandaan komt |
|---|---|---|
| Latency | Voegt dezelfde vertraging toe aan elk pakket, in milliseconden. | Afstand. Een server op een ander continent, of een satelliet. |
| Jitter | Voegt er een willekeurige hoeveelheid bovenop toe, zodat de vertraging blijft veranderen. | Gedeelde wifi, mobiele netwerken, alles wat overbelast is. |
| Uitschieters | Af en toe lange stilstanden, ingesteld op hoe vaak en hoe lang. | Een overdracht tussen zendmasten, een router onder belasting. |
Alle drie zijn in milliseconden en kunnen samen draaien. Beide vertragingswaarden accepteren alles vanaf 0, dus je kunt van een geloofwaardige 40 ms naar een absurde 60 seconden gaan.
Vanaf de opdrachtregel
Een constante 200 ms met 80 ms jitter, op één applicatie:
BeanNetworkTester.exe --latency 200 --jitter 80 --target myapp.exe --duration 60
In plaats daarvan zeldzame, lange stilstanden: ongeveer één pakket op de twintig wacht een extra seconde:
BeanNetworkTester.exe --spike-prob 5 --spike-ms 1000 --target myapp.exe
Getallen die het proberen waard zijn
- 40 ms: een server in hetzelfde land. Er zou niets moeten veranderen.
- 150 ms: een ander continent. Alles wat veel heen en weer praat gaat traag aanvoelen, omdat elke rondreis iets kost.
- 600 ms en hoger: geostationaire satelliet of wifi in het vliegtuig. Hier lopen voortgangsbalken vast en draait de logica voor opnieuw proberen eindelijk.
De kant-en-klare profielen bevatten gemeten waarden: “Distant server (another continent)”, “Satellite (low orbit)”, “Satellite (geostationary)”, “In-flight Wi-Fi”, “LTE / 4G”.
Meten: kijk naar het slechtste geval, niet naar het gemiddelde
Jitter beweegt een gemiddelde nauwelijks, en ook een mediaan nauwelijks. Een run met 30 ms jitter en een run zonder kunnen bijna dezelfde “typische” ping melden terwijl ze compleet anders aanvoelen.
Vergelijk in plaats daarvan het 95e percentiel met de mediaan. Het verschil ertussen is de jitter, en dat verschil maakt een spraakgesprek hakkelig of een game onspeelbaar terwijl het gemiddelde nog prima lijkt.