한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

Libro blanco del lag en juegos › L3 Red doméstica

Expiración del mapeo NAT NAT mapping timeout

ID de la causa hn-nat · Responsable principal Desarrollo de cliente (Equipo de desarrollo) · También Desarrollo de servidor (Equipo de desarrollo)

Abrir la ficha interactiva con gráficos y simulaciones →

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

Síntomas
Desconexión
Factores
Pérdida de paquetes
A quién afecta
Solo yo, Misma casa
Cuándo
Tras un rato inactivo
Responsable
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

Fuentes

  1. RFC 4787: Network Address Translation (NAT) Behavioral Requirements for Unicast UDP IETF
    El temporizador del mapeo UDP no debe expirar antes de 2 minutos y se recomienda 5 minutos o más por defecto; la renovación con paquetes salientes es obligatoria y con paquetes entrantes, opcional
  2. An Experimental Study of Home Gateway Characteristics (IMC 2010) ACM
    Medición en 34 routers domésticos: el mapeo UDP dura 30–691 s, con una mediana de 90 s, y en más de la mitad dura menos de 2 minutos; en TCP la mediana es de unos 60 minutos
  3. RFC 9308: Applicability of the QUIC Transport Protocol IETF
    En internet, con NAT en la ruta, un keep-alive cada 30 segundos aproximadamente es razonable; más frecuente desperdicia tráfico y energía

Ver también

Misma capa: L3 Red doméstica

Causas de otras capas con el mismo síntoma (Desconexión)

Ver la ficha interactiva con gráficos y simulaciones