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.
Por qué El router registra la conexión “dispositivo interno ↔ servidor externo” en la tabla NAT (tabla de traducción de direcciones) → Efecto Si no hay paquetes durante un tiempo, la entrada se borra de la tabla (en UDP, normalmente 30–120 s) → En pantalla Los paquetes del servidor ya no pueden entrar en la casa y se produce la desconexión
Responsable principal Desarrollo de cliente (Equipo de desarrollo) · También Desarrollo de servidor (Equipo de desarrollo)
Tareas (Equipo de desarrollo)
Cliente: enviar heartbeats a un intervalo igual o inferior a la mitad del timeout por inactividad más corto (el mapeo UDP solo se renueva con seguridad con los paquetes que salen de la casa, así que los envía el cliente), reconectar automáticamente si se corta. Servidor: responder a los heartbeats y, si deja de recibirlos durante un tiempo, cerrar primero la conexión; si se borra el mapeo y cambian la dirección y el puerto externos, confirmar con el token de sesión (el código de verificación que se recibe al conectar) que es el mismo jugador y retomar la sesión.
En el gráfico
Desconexión masiva · Desconexiones (timeout de heartbeat), tiempo de inactividad previo a la desconexión
Dónde mirar
Reunir el motivo de desconexión en el servidor y el tiempo transcurrido desde el último paquete de esa conexión antes del corte (tiempo de inactividad), y ver su distribución. Para probarlo, alargar el intervalo entre paquetes UDP a 30, 60 y 120 s y medir a partir de qué intervalo dejan de llegar respuestas
Se confirma si
Solo se cortan las conexiones que estaban inactivas, y el tiempo de inactividad se concentra justo después de un valor concreto, entre 30 y 120 s. Con un intervalo de heartbeat más corto que ese valor, desaparece
Se descarta si
Si también se corta durante el movimiento, apunta a la conexión o a la ruta. Si solo se concentra en valores cortos con un operador móvil concreto: “IP compartida del ISP (CGNAT)”
Se verifica con
Requiere logs y métricas del servidor o el cliente del juego