Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Señalizadores de pings de UDP de Amazon GameLift Servers
Los señalizadores de pings de UDP proporcionan una forma de medir la latencia de la red entre los dispositivos de los jugadores y las ubicaciones de alojamiento de Amazon GameLift Servers. Los señalizadores de pings le permiten recopilar datos de latencia precisos para tomar decisiones informadas sobre la ubicación de los servidores de juegos y mejorar el emparejamiento de jugadores en función de los requisitos de latencia.
Cómo funcionan los señalizadores de pings de UDP
Amazon GameLift Servers proporciona puntos de conexión de UDP fijos (señalizadores de pings) en cada ubicación de alojamiento en la que puede implementar servidores de juegos. Dado que la mayoría de los servidores de juegos se comunican mediante UDP, medir la latencia con señalizadores de pings de UDP ofrece resultados más precisos que cuando se utilizan pings de ICMP. Los dispositivos de red suelen gestionar los paquetes ICMP de forma diferente a los paquetes UDP, lo que puede provocar que las mediciones de latencia no reflejen el rendimiento real que experimentarán los jugadores.
Con los señalizadores de pings de UDP, el cliente de juego puede enviar mensajes UDP a estos puntos de conexión y recibir respuestas asíncronas, lo que le proporcionará mediciones de latencia que representen mejor las condiciones reales de tráfico del juego entre el dispositivo del jugador y las posibles ubicaciones de alojamiento. Los puntos de conexión son permanentes y siguen disponibles mientras Amazon GameLift Servers admita el alojamiento de juegos en esa ubicación.
Casos de uso habituales de los señalizadores de pings de UDP
Puede utilizar señalizadores de pings de UDP de diversas formas para optimizar la experiencia en red del juego.
Selección de ubicaciones de alojamiento óptimas
Recopile datos de latencia de diferentes regiones geográficas para identificar las mejores ubicaciones principales y de respaldo para alojar los servidores de juegos para su base de jugadores.
Ubicación de las sesiones de juego en función de la latencia de los jugadores
Incluya datos de latencia de los jugadores cuando solicite nuevas sesiones de juego para ayudar a elegir las ubicaciones que ofrezcan la experiencia con la latencia más baja.
Optimización del emparejamiento basada en la latencia
Proporcione los datos de latencia de los jugadores cuando solicite el emparejamiento para favorecer el emparejamiento de jugadores con perfiles de latencia similares y colocar las sesiones de juego en ubicaciones óptimas para los jugadores emparejados.
nota
Al crear solicitudes de emparejamiento, no debe proporcionar información de latencia a ubicaciones en las que no tenga flotas. Si lo hace, Amazon GameLift Servers podría intentar colocar la sesión de juego en ubicaciones donde no haya capacidad de flota, lo que provocará errores en las solicitudes de emparejamiento.
Obtención de puntos de conexión de señalizador
Para recuperar la información de dominio y puerto de señalizadores de pings para las ubicaciones de Amazon GameLift Servers, utilice la operación de la API ListLocations. El conjunto de ubicaciones que devuelve esta API depende de la Región de AWS que especifique al llamarla (o, si no especifica ninguna, de su región predeterminada). Llamada desde:
-
Una región de origen de una flota que admite múltiples ubicaciones: la API devuelve información de todas las ubicaciones de alojamiento.
-
Una región de origen de una flota que admite una única ubicación: la API devuelve la información de esa ubicación.
Tenga en cuenta que si llama a esta API desde una ubicación que solo pueda ser una ubicación remota de una flota con múltiples ubicaciones, la API devolverá un error porque ese tipo de ubicación no tiene un punto de conexión de servicio.
Consulte la tabla de ubicaciones compatibles en AWS Ubicaciones compatibles para identificar las regiones de origen que admiten flotas con una o múltiples ubicaciones.
Ejemplo
aws gamelift list-locations --region ap-northeast-2
Esta Región de AWS admite flotas con múltiples ubicaciones, por lo que se devolverán varias ubicaciones. En este ejemplo se muestra uno de los valores devueltos:
[...]
{
"LocationName": "ap-northeast-1",
"PingBeacon": {
"UDPEndpoint": {
"Domain": "gamelift-ping.ap-northeast-1.api.aws",
"Port": 7770
}
}
}
importante
Almacene en caché la información de señalizadores de pings en lugar llamar a ListLocations antes de cada medición de latencia. La información de dominio y puerto es estática y la API no está diseñada para solicitudes de gran volumen.
Implementación de mediciones de latencia
Siga estas prácticas recomendadas cuando implemente mediciones de latencia utilizando señalizadores de pings de UDP:
-
Almacene la información de los señalizadores de pings utilizando uno de estos métodos:
-
Codifique los puntos de conexión en el cliente de juego.
-
Guarde en caché la información en el backend del juego.
-
Implemente un mecanismo de actualización periódica (diaria/semanal) para actualizar la información.
-
-
Envíe mensajes de ping de UDP:
-
Incluya la información que desee en el cuerpo del mensaje (pero no puede estar vacío) y asegúrese de que el tamaño de los mensajes no supere los 300 bytes.
-
Respete los siguientes límites de velocidad para cada ubicación:
-
3 transacciones por segundo (TPS) por combinación única de puerto y dirección IP de remitente
-
1000 TPS por dirección IP de remitente única
-
-
-
Calcule la latencia:
-
Envíe varios pings a cada ubicación para calcular la latencia media.
-
Considere la posibilidad de enviar pings simultáneos a varias ubicaciones para obtener resultados más rápidos.
-
Utilice una lógica de reintento según sea necesario para enviar nuevos paquetes para cualquier paquete que no se haya devuelto en poco tiempo (normalmente de 1 a 3 segundos), ya que UDP no garantiza la entrega al 100%.
-
Calcula la diferencia de tiempo entre el envío de un mensaje y la recepción de la respuesta.
-
Si una gran parte de los envíos de mensajes UDP a una ubicación no obtienen una respuesta constante, calcula la latencia utilizando los pings ICMP a nuestros puntos de conexión de servicio de Amazon GameLift Servers estándar como alternativa.
-
sugerencia
Te recomendamos que incluyas el puerto 7770 siempre que documentes la lista de puertos que tus jugadores deben tener abiertos en su red local. Esta es otra razón por la que deberías disponer de una alternativa para medir la latencia (mediante ICMP, por ejemplo) en caso de que este puerto esté bloqueado.
Ejemplos de código
Estos son algunos ejemplos sencillos que muestran cómo enviar pings UDP y calcular la latencia.