Aggiungere latenza e jitter a un’app
Su una connessione locale veloce tutto funziona. Dai all’app 300 ms di ping e scoprirai quali schermate sono state scritte come se la risposta arrivasse all’istante.
Tre cose diverse
| Impostazione | Cosa fa | Da dove viene nella vita reale |
|---|---|---|
| Latency | Aggiunge lo stesso ritardo a ogni pacchetto, in millisecondi. | La distanza. Un server su un altro continente, o un satellite. |
| Jitter | Aggiunge sopra una quantità casuale, così il ritardo cambia di continuo. | Wi-Fi condiviso, reti mobili, tutto ciò che è congestionato. |
| Picchi di latenza | Blocchi lunghi occasionali, definiti da quanto spesso e quanto a lungo. | Un passaggio tra celle radio, un router sotto carico. |
Tutti e tre sono in millisecondi e possono funzionare insieme. Entrambi i valori di ritardo accettano qualsiasi cifra da 0 in su, quindi puoi passare da 40 ms credibili a 60 secondi assurdi.
Dalla riga di comando
Un ritardo costante di 200 ms con 80 ms di jitter, su un’applicazione:
BeanNetworkTester.exe --latency 200 --jitter 80 --target myapp.exe --duration 60
Invece blocchi rari e lunghi: circa un pacchetto su venti aspetta un secondo in più:
BeanNetworkTester.exe --spike-prob 5 --spike-ms 1000 --target myapp.exe
Valori che vale la pena provare
- 40 ms: un server nello stesso paese. Non dovrebbe cambiare nulla.
- 150 ms: un altro continente. Tutto ciò che scambia molti messaggi inizia a sembrare lento, perché ogni andata e ritorno costa.
- 600 ms e oltre: satellite geostazionario o Wi-Fi in volo. Qui le barre di avanzamento si bloccano e la logica dei nuovi tentativi finalmente entra in gioco.
I profili pronti contengono valori misurati: «Distant server (another continent)», «Satellite (low orbit)», «Satellite (geostationary)», «In-flight Wi-Fi», «LTE / 4G».
Misurare: guarda il caso peggiore, non la media
Il jitter sposta appena una media, e sposta appena una mediana. Un’esecuzione con 30 ms di jitter e una senza possono riportare quasi lo stesso ping «tipico» pur dando una sensazione completamente diversa.
Confronta invece il 95º percentile con la mediana. La distanza tra i due è il jitter, ed è quella distanza che rende una chiamata a scatti o un gioco ingiocabile mentre la media sembra ancora buona.