Añadir latencia y jitter a una aplicación
Todo funciona en una conexión local rápida. Dale a la aplicación 300 ms de ping y descubrirás qué pantallas se escribieron como si la respuesta llegara al instante.
Tres cosas distintas
| Ajuste | Qué hace | De dónde viene en la vida real |
|---|---|---|
| Latency | Añade el mismo retardo a cada paquete, en milisegundos. | La distancia. Un servidor en otro continente, o un satélite. |
| Jitter | Añade una cantidad aleatoria encima, de modo que el retardo cambia constantemente. | Wi-Fi compartido, redes móviles, cualquier cosa congestionada. |
| Picos de latencia | Paradas largas ocasionales, definidas por la frecuencia y la duración. | Un traspaso entre antenas, un router sometido a carga. |
Los tres se expresan en milisegundos y pueden funcionar a la vez. Ambos valores de retardo admiten cualquier cifra desde 0, así que puedes pasar de unos creíbles 40 ms a unos absurdos 60 segundos.
Desde la línea de comandos
Unos 200 ms estables con 80 ms de jitter, en una aplicación:
BeanNetworkTester.exe --latency 200 --jitter 80 --target myapp.exe --duration 60
En cambio, paradas raras y largas: aproximadamente uno de cada veinte paquetes espera un segundo más:
BeanNetworkTester.exe --spike-prob 5 --spike-ms 1000 --target myapp.exe
Valores que merece la pena probar
- 40 ms: un servidor del mismo país. No debería cambiar nada.
- 150 ms: otro continente. Todo lo que hace muchas idas y venidas empieza a sentirse lento, porque cada viaje de ida y vuelta cuesta.
- 600 ms o más: satélite geoestacionario o Wi-Fi en un avión. Aquí es donde las barras de progreso se detienen y la lógica de reintentos por fin se ejecuta.
Los perfiles listos para usar llevan cifras medidas: «Distant server (another continent)», «Satellite (low orbit)», «Satellite (geostationary)», «In-flight Wi-Fi», «LTE / 4G».
Cómo medirlo: mira el peor caso, no el promedio
El jitter apenas mueve un promedio, y apenas mueve una mediana. Una ejecución con 30 ms de jitter y otra sin él pueden mostrar casi el mismo ping «típico» y sentirse completamente distintas.
Compara en su lugar el percentil 95 con la mediana. La diferencia entre ambos es el jitter, y esa diferencia es lo que hace que una llamada se entrecorte o que un juego sea injugable mientras el promedio sigue pareciendo bueno.