Si el juego está ocupado y saca tarde los paquetes del socket (la interfaz de red para enviar y recibir que ofrece el SO), el búfer del SO se desborda.
Por qué Los frames se atrasan y el juego lee el socket tarde → Efecto El búfer de recepción del SO se llena: en UDP se descartan paquetes, y en TCP se reduce la ventana de recepción para que el emisor deje de enviar → En pantalla Teletransporte (UDP) o cámara rápida (TCP)
Responsable principal Desarrollo de cliente (Equipo de desarrollo)
Tareas (Equipo de desarrollo)
Usar un hilo dedicado a la recepción, ajustar el tamaño del búfer (SO_RCVBUF).
Cifras de referencia
El búfer de recepción predeterminado es de decenas a cientos de KB según el SO y la configuración. Las actualizaciones en un sitio con mucha gente pueden llegar a cientos de KB por segundo.
En el gráfico
Sube con la carga · Descartes en el búfer de recepción UDP, tiempo de frame
Dónde mirar
Registrar Microsoft Winsock BSP\Dropped Datagrams (UDP descartados por falta de espacio en el búfer de recepción del socket) y UDPv4\Datagrams Received Errors del Monitor de rendimiento de Windows junto con el tiempo de frame; en el juego, contar los huecos en los números de secuencia de los paquetes recibidos
Se confirma si
Dropped Datagrams aumenta en sitios con mucha gente o justo después de un frame largo, y en ese mismo instante aparecen huecos en la secuencia del juego. A esa hora no hay pérdida en la conexión
Se descarta si
Si Dropped Datagrams no cambia y solo faltan números de secuencia, la pérdida está en la ruta
Se verifica con
En el entorno del jugador
Fuentes
socket(7) — Linux manual pageLinux man-pages SO_RCVBUF es el tamaño máximo del búfer de recepción del socket; el valor predeterminado lo fija rmem_default y el máximo, rmem_max (Android también usa el kernel de Linux)
RFC 9293: Transmission Control Protocol (TCP)IETF El campo de ventana de TCP indica cuántos bytes más puede recibir el receptor; si es 0, el emisor espera enviando solo sondas de ventana cero
Low Latency Workloads Management and OperationsMicrosoft Dropped Datagrams y Dropped Datagrams/sec del conjunto de contadores Microsoft Winsock BSP: datagramas UDP descartados porque llegan más rápido de lo que la app los procesa o porque falta espacio en el búfer de recepción del socket