Estoy desarrollando un juego multijugador en línea. Funciona bien cuando lo pruebo en la red de área local, pero antes de lanzarlo, me gustaría probar cómo funciona la experiencia del usuario para alguien que no tiene una conexión tan buena con el servidor. ¿Cómo puedo simular una mala conexión a Internet con alta latencia, bajo ancho de banda, jitter y pérdida ocasional de paquetes en un entorno local?
networking
testing
Philipp
fuente
fuente
Respuestas:
Creo que Dummynet es lo que estás buscando. Dummynet es una herramienta de emulación de red que puede simular limitaciones de ancho de banda, demoras, pérdidas de paquetes y mucho más. Puede elegir fácilmente qué tráfico desea interceptar y configurar las limitaciones, por ejemplo, para limitar todo el tráfico TCP entrante a 2Mbit / s que haga
Verá que la selección de tráfico se realiza mediante el firewall ipfw conocido y las tuberías proporcionan las características de limitación.
Está disponible para FreeBSD, Linux y Windows.
fuente
Acondicionador de enlace de red
Si estás en una Mac, puedes usar Network Link Conditioner.
Puede simular varios casos de malas conexiones a Internet, incluidos Edge y 3G.
Además, puede crear sus propios perfiles con su propia configuración:
Es una descarga gratuita en Xcode (vaya a Xcode → Abrir herramienta de desarrollador → Más herramientas de desarrollador ... y descargue las herramientas de hardware IO para Xcode ).
fuente
Si está en Linux, puede usar Netem para simular todos los posibles problemas con la red, como alta latencia, bajo ancho de banda, pérdida de paquetes y muchos otros.
Hay una opción para Windows llamada NetLimiter, pero no la he usado, así que no puedo responder.
Acabo de encontrar una aplicación para Mac llamada SlowlyApp .
fuente
Torpe , para Windows Vista y 7.
fuente
Si estás en Windows, puedes probar SoftPerfect Connection Emulator . Básicamente es un controlador que se inyecta entre su aplicación y la capa de red (similar a Wireshark / WinPCAP) para la NIC seleccionada y puede simular ancho de banda limitado, latencia, pérdida de paquetes y otras cosas. La interfaz de usuario es simple y directa.
Es un producto comercial, pero el juicio le permite hacer estallidos de "interferencia" de 30 segundos que deberían ser lo suficientemente buenos para que usted juzgue si esta herramienta hace lo que desea.
Otra opción multiplataforma es DummyNet , que se comporta de manera similar (a través de ipfw) pero es un poco menos fácil de usar.
Creo que esta parte de la pregunta podría reformularse como "¿cómo trato con la latencia de red en mi aplicación?" Una técnica de uso común y efectiva es Dead Reckoning . El artículo vinculado lo explica mejor que yo, pero la idea básica es que sus clientes "simulen" dónde debería estar cada entidad y qué debería hacer mediante un algoritmo. Siempre que una entidad se desvía de este algoritmo (es decir, entrada del jugador, evento del lado del servidor, etc.), envía una actualización a cada cliente.
fuente
No lo he usado en mucho tiempo, pero he usado a Charles para probar esto. Es una aplicación con varias herramientas de diagnóstico de red, incluida la simulación de los problemas que mencionó: "una mala conexión a Internet con alta latencia, bajo ancho de banda, jitter y pérdida ocasional de paquetes"
fuente
Si eres experto con Fiddler y solo estás interesado en HTTP / 1, puedes escribir esto.
Fiddler no es compatible con HTTP / 2, interceptar con él hará que todo el tráfico HTTP descienda a HTTP / 1.
fuente