Libro blanco del lag en juegos › Buscar por síntoma
Desconexión: 51 causas y sus responsables
También se dice: me echa del juego, me saca del servidor, se cae la conexión, “Se perdió la conexión con el servidor”
Abrir en la guía de síntomas interactiva →
En plena partida se corta la conexión y vuelves a la pantalla de inicio de sesión o a la ventana de reconexión.
Unos segundos de congelamiento y luego el aviso “Se perdió la conexión”. Si se desconectan muchos a la vez, el problema está del lado del servidor.
No llegó ningún paquete dentro del timeout. Hay que revisar cortes largos de la conexión, timeouts por inactividad, crashes o reinicios del servidor, y que el servidor o tu PC se hayan detenido más tiempo que el timeout (una carga larga). Si el juego se cerró sin ningún aviso, primero hay que sospechar de un cierre forzado del cliente (crash, falta de memoria) y después de la conexión.
Causas de este síntoma
L1 Proceso del juego en el cliente
- Fuga de memoria en el cliente: Cuanto más tiempo lleva encendido, más memoria usa: el juego va cada vez más lento y al final se cierra a la fuerza. (Desarrollo de cliente (Equipo de desarrollo))
- Crash del cliente: Un error no controlado cierra el juego. El jugador lo percibe como una desconexión, pero el servidor está bien. (Desarrollo de cliente (Equipo de desarrollo))
- Escaneos del módulo anti-cheat: El módulo de seguridad que se ejecuta junto al juego para impedir los hacks hace escaneos periódicos. Si el escaneo es pesado o si el heartbeat (señal periódica que confirma que el cliente sigue activo) que intercambia con el servidor de seguridad llega tarde, hay tirones o desconexiones. (Desarrollo de cliente (Equipo de desarrollo))
L2 SO y dispositivo del cliente
- Aplicación móvil enviada a segundo plano: Si sales un momento de la app para ver una notificación, el SO la suspende (suspend) a los pocos segundos y, mientras tanto, el servidor te desconecta. (Desarrollo de cliente (Equipo de desarrollo))
- Cambio Wi-Fi ↔ LTE/5G: Al salir de casa, el Wi-Fi se corta y el dispositivo pasa a LTE o 5G; tu dirección IP cambia y la conexión existente deja de valer. (Desarrollo de servidor (Equipo de desarrollo))
- Procesamiento limitado con la ventana minimizada o sin foco: Si miras otra ventana o minimizas el juego, el juego y Windows lo ralentizan para ahorrar energía. Al volver, los paquetes atrasados llegan de golpe o la conexión ya se cortó. (Desarrollo de cliente (Equipo de desarrollo))
- Interferencias de programas de overlay: Los programas de mensajería, los launchers, los grabadores y los contadores de FPS se meten en el proceso de renderizado del juego (hooking) para dibujar su propia UI encima de la imagen. Añaden trabajo en cada frame y, a veces, chocan con el juego y provocan un tirón o un cierre forzado. (Externo (Externo))
L3 Red doméstica
- Expiración del mapeo NAT: El router borra de la tabla NAT las conexiones inactivas por las que no pasa ningún paquete durante un tiempo. Es una causa habitual de desconexión justo cuando el jugador vuelve a moverse tras un rato quieto. (Desarrollo de cliente (Equipo de desarrollo))
- Router poco potente o sobrecalentado: Cuando un router barato tiene decenas de dispositivos y miles de conexiones, el propio router no da abasto. (Externo (Externo))
- Handover entre estaciones base (en movimiento): Al viajar en autobús o en metro, la comunicación se corta mientras el teléfono cambia de estación base. (Externo (Externo))
- Señal móvil débil y zonas sin cobertura: En ascensores, sótanos o el interior de los edificios aumentan las retransmisiones, baja la velocidad y al final se cae la conexión. (Externo (Externo))
L4 Ruta por internet
- Restricciones de UDP e inspección de paquetes por país o ISP: Algunas redes bloquean ciertas direcciones y puertos UDP o limitan la velocidad del UDP, y sus dispositivos de inspección de paquetes filtran los protocolos que no reconocen. En esas redes, los juegos que se comunican por UDP no conectan o se desconectan a menudo. (Externo (Externo))
- Mala calidad de la conexión: Un conector flojo, un cableado viejo o un módem averiado provocan pérdida de paquetes constante y cortes periódicos de la conexión. (Externo (Externo))
- Enlaces compartidos saturados por un DDoS: Un ataque masivo dirigido a la empresa del juego, o a otro destino de la misma red, llena los enlaces compartidos. (Infraestructura de red (Equipo de infraestructura))
- IP compartida del ISP (CGNAT): En las redes móviles y en algunos ISP, varios abonados comparten una misma IP, y el mapeo de las conexiones inactivas se borra al poco tiempo. (Desarrollo de cliente (Equipo de desarrollo))
L5 Equipos de red del centro de datos
- Tabla de sesiones del firewall llena: El firewall registra en la tabla de sesiones cada conexión que deja pasar para hacerle seguimiento. Cuando la tabla se llena, ya no puede aceptar conexiones nuevas. (Infraestructura de red (Equipo de infraestructura))
- Timeout por inactividad del balanceador de carga: El balanceador de carga borra las conexiones inactivas después de cierto tiempo. El juego cree que la conexión sigue abierta, hasta que el jugador sufre una desconexión. (Infraestructura de red (Equipo de infraestructura))
- Expiración del seguimiento de conexiones en grupos de seguridad de la nube: El firewall asociado a un servidor en la nube (grupo de seguridad) también hace seguimiento de las conexiones, y la entrada de seguimiento de una conexión inactiva expira pasado cierto tiempo. Incluso en servidores a los que se conecta directamente, sin balanceador de carga, un jugador que estuvo quieto puede sufrir una desconexión. (Infraestructura de servidores (Equipo de infraestructura))
- Failover de equipos de red: Cuando falla un router o un firewall y el tráfico pasa al dispositivo de reserva (failover), todos se quedan congelados durante unos segundos. (Infraestructura de red (Equipo de infraestructura))
- Desajuste de MTU (solo desaparecen los paquetes grandes): Si la MTU (el tamaño máximo que se puede enviar de una vez) se reduce en un tramo intermedio y los avisos de tamaño excedido están bloqueados, solo los paquetes grandes desaparecen una y otra vez. (Infraestructura de red (Equipo de infraestructura))
L6 Tarjeta de red del servidor
- Mantenimiento del host en la nube y migración en vivo: Cuando el proveedor de nube hace mantenimiento de un servidor físico (host), mueve las máquinas virtuales a otro host (migración en vivo) o las pausa un momento. Mientras tanto, todo el servidor se detiene y, si la pausa es larga, las conexiones se cortan. (Infraestructura de servidores (Equipo de infraestructura))
- Problemas de driver y firmware de la NIC: Cuando un bug del driver o una función que falla deja colgada la tarjeta, se corta todo el envío y la recepción mientras se reinicia. (Infraestructura de servidores (Equipo de infraestructura))
L7 SO del servidor (kernel)
- OOM killer: Cuando Linux se queda sin memoria, elige el proceso que más memoria usa y lo mata a la fuerza. Casi siempre es el servidor del juego. (Desarrollo de servidor (Equipo de desarrollo))
- Salto del reloj del sistema (step de NTP): Si el reloj del servidor se adelanta o se atrasa varios segundos de golpe, los temporizadores que dependen del reloj del sistema se disparan todos a la vez o se detienen. (Desarrollo de servidor (Equipo de desarrollo))
L8 Sockets y protocolos
- RTO de TCP y backoff exponencial: Cada vez que una retransmisión vuelve a fallar, la espera se duplica, así que un corte breve de la conexión se convierte en una detención larga. (Desarrollo de servidor (Equipo de desarrollo))
- Política para clientes lentos (slow consumer): Cuando a un cliente se le siguen acumulando datos pendientes de envío, el servidor descarta las actualizaciones viejas o corta la conexión. (Desarrollo de servidor (Equipo de desarrollo))
- Pérdida de los últimos datos por un cierre forzado con RST: Si el servidor corta una conexión de forma brusca, se pierden el último aviso o la confirmación de guardado que envió. (Desarrollo de servidor (Equipo de desarrollo))
- Reparto desigual con SO_REUSEPORT: Cuando varios procesos reciben en el mismo puerto, el kernel asigna cada conexión a un proceso según un hash de la dirección y no cambia esa asignación. Si ese proceso se detiene, solo esperan los jugadores asignados a él. (Desarrollo de servidor (Equipo de desarrollo))
- Error WSAECONNRESET en sockets UDP de Windows: Cuando un servidor Windows envía UDP a un cliente que ya se fue, vuelve un aviso de “puerto inalcanzable” (ICMP). Ese aviso hace que la siguiente llamada de recepción termine con error, y si el código del servidor lo trata como una avería del propio socket, todos los que usan ese socket se ven afectados. (Desarrollo de servidor (Equipo de desarrollo))
L9 Proceso del juego en el servidor
- Deadlock: Si dos hilos esperan cada uno el lock que tiene el otro, se quedan detenidos para siempre. (Desarrollo de servidor (Equipo de desarrollo))
- Crash del servidor: Si el proceso del servidor muere por un error no controlado, todos los jugadores de ese servidor se desconectan a la vez. (Desarrollo de servidor (Equipo de desarrollo))
- Bucles infinitos y lógica desbocada: Si por un bug un tick no termina nunca, el servidor se detiene y el watchdog lo reinicia a la fuerza. (Desarrollo de servidor (Equipo de desarrollo))
L10 Memoria
- Fuga de memoria: La memoria que no se libera se acumula poco a poco y, al cabo de unos días, termina en un GC excesivo, swap o un cierre forzado. (Desarrollo de servidor (Equipo de desarrollo))
- Thrashing del GC (heap casi lleno): Cuando los datos vivos se acercan al límite del heap, el GC casi no encuentra nada que liberar y se repite sin parar. (Desarrollo de servidor (Equipo de desarrollo))
- Fragmentación de memoria: Si al asignar y liberar memoria una y otra vez el espacio libre queda partido en trozos pequeños, el proceso ocupa mucha más memoria de la que realmente usa. (Desarrollo de servidor (Equipo de desarrollo))
L11 Disco
- Disco lleno: Si los logs y los volcados se acumulan hasta llenar el disco, las escrituras fallan y, si no hay nada previsto, el servidor se cae. (Infraestructura de servidores (Equipo de infraestructura))
L12 Base de datos
- Failover de la BD: Cuando la BD principal cae, no se puede escribir mientras se cambia a la de respaldo, y los últimos datos que no llegaron a replicarse pueden perderse. (Infraestructura de BD (Equipo de infraestructura))
L13 Arquitectura y operación de servidores
- Paso por un gateway o proxy: Si se pone un servidor intermedio entre el cliente y el servidor del juego, cada paso por él suma tiempo de procesamiento y ese servidor se convierte en un punto único de fallo. (Desarrollo de servidor (Equipo de desarrollo))
- Cambio de zona (traspaso entre servidores): Al entrar en otra zona o mazmorra, los datos del personaje se traspasan a otro servidor, y en ese proceso surgen retrasos y fallos. (Desarrollo de servidor (Equipo de desarrollo))
- Despliegues y reinicios: Si al reiniciar un servidor para actualizarlo no se trasladan sus conexiones, los jugadores que estaban en él se desconectan, y los guardados justo antes del cierre y las reconexiones llegan todos de golpe. (Desarrollo de servidor (Equipo de desarrollo))
- Tope de la cola de inicio de sesión y periodo de gracia para reconectar demasiado corto: Cuando la gente entra en masa justo después de un lanzamiento o un mantenimiento, la cola de inicio de sesión llega a su tope y rechaza nuevas entradas, y quien estaba esperando pierde su lugar si se desconecta un momento y vuelve al final de la cola. (Desarrollo de servidor (Equipo de desarrollo))
Diseño del netcode
- Arquitectura de anfitrión (host): Cuando la computadora de un jugador hace de servidor, su conexión y el rendimiento de su PC determinan lo que perciben todos. (Desarrollo de servidor (Equipo de desarrollo))
Problemas que solo afectan a algunos
- Falsos positivos de validación concentrados en un ISP: Los inputs de quienes usan conexiones con mucho jitter llegan a ráfagas, así que caen a menudo en las comprobaciones de velocidad y cooldown del servidor. (Desarrollo de servidor (Equipo de desarrollo))
- Colisión de puertos UDP fijos: Si el cliente está hecho para usar un puerto local fijo, el segundo cliente de la misma computadora no puede usar ese puerto o se reparte los paquetes con el primero. (Desarrollo de cliente (Equipo de desarrollo))
- Bug de sesiones identificadas por IP o dispositivo: Si el servidor o un servidor intermedio distingue las conexiones por IP o por ID de dispositivo, toma los dos clientes de la misma computadora (la misma IP pública) por una sola persona. (Desarrollo de servidor (Equipo de desarrollo))
- Restricciones al multicliente: Si el módulo de seguridad o una política del servidor limitan los clientes de una misma computadora, el segundo cliente no puede abrirse o conectarse, o se desconecta el que se abrió primero. Algunos juegos solo bloquean funciones del cliente adicional. (Desarrollo de cliente (Equipo de desarrollo))
- Procesamiento limitado de las ventanas en segundo plano: Cuando la ventana del cliente está en segundo plano, el juego, el motor y el SO reducen sus frames y su procesamiento. Los paquetes recibidos no se procesan a tiempo y se acumulan o desbordan. (Desarrollo de cliente (Equipo de desarrollo))
Causas raíz de la retransmisión TCP
- Descartes del firewall o del seguimiento de conexiones: Los firewalls y el seguimiento de conexiones de Linux (conntrack, la función que registra en una tabla las conexiones que pasan) descartan paquetes cuando la tabla se llena o cuando consideran que no encajan con el estado de la conexión. (Infraestructura de red (Equipo de infraestructura))
- Límite de procesamiento superado en dispositivos intermedios (firewall, IPS, protección DDoS): Los firewalls, los sistemas de prevención de intrusiones (IPS) y los dispositivos de protección DDoS inspeccionan uno a uno los paquetes que pasan. En cuanto se supera su capacidad de inspección, descartan los paquetes que no alcanzan a procesar. (Infraestructura de red (Equipo de infraestructura))
- Agujero negro de MTU (solo los paquetes grandes se pierden una y otra vez): Si un tramo intermedio pasa a aceptar paquetes más pequeños y el aviso de “demasiado grande” (ICMP) está bloqueado, los paquetes grandes siguen desapareciendo por muchas veces que se reenvíen. (Infraestructura de red (Equipo de infraestructura))
- Expiración del mapeo NAT o del balanceador de carga en mitad de la conexión: Si un dispositivo intermedio borra el mapeo de una conexión inactiva (la entrada que indica a dónde reenviar esa conexión), el siguiente paquete que se envía no llega a su destino. O bien se repiten las retransmisiones hasta que la conexión se corta, o bien el dispositivo devuelve un rechazo de conexión (RST) y se corta al momento. (Desarrollo de cliente (Equipo de desarrollo))
Ver la guía de síntomas interactiva