In einem Multiplayer -Gaming -Setup können benutzerdefinierte Routing -Beschleuniger verwendet werden, um die Player -Verbindungen zu optimieren, indem der Datenverkehr direkt auf bestimmte Spielserverinstanzen basierend auf Anwendungslogik wie Matchmaking -Ergebnissen weiterleitet. Dieser Ansatz verbessert die Latenz, reduziert Jitter und verbessert die Spielererfahrung, indem sie das private Netzwerk- und statische IP -Adressen von AWS Global Accelerator nutzen.
Beispiel für die Verwendung benutzerdefinierter Routing -Beschleuniger im Multiplayer -Spielen
1. Setup von Wildservern und Subnetzen
Angenommen, Sie haben eine Flotte von Wildservern, die in Amazon EC2 -Instanzen innerhalb eines oder mehrerer VPC -Subnetze laufen. In jeder Instanz veranstaltet mehrere Spielsitzungen, die jeweils an verschiedenen Ports hören. Beispielsweise können zwei EC2 -Instanzen im selben Subnetz mit privaten IPS 10.1.1.1 und 10.1.1.2 ausgeführt werden, wobei jeweils Spielsitzungen der TCP -Ports 80, 81 und 82 serviert werden.
2. Erstellen Sie einen benutzerdefinierten Routing -Beschleuniger
Sie erstellen einen benutzerdefinierten Routing Accelerator in AWS Global Accelerator und fügen die entsprechenden VPC -Subnetze als Endpunkte hinzu. Sie definieren einen Hörer -Portbereich (z. B. 1001 bis 1050) am Gaspedal und ordnen diese dem Zielportbereich (z. B. 80 bis 82) in Ihren EC2 -Instanzen ab. Mit dieser Zuordnung können eingehende Verkehr auf Ports 1001-1050 an bestimmte IP: Portkombinationen auf den Backend-Servern weitergeleitet werden.
3. Port -Mapping und Verkehrskontrolle
Der Beschleuniger generiert eine Port -Mapping -Tabelle, in der jeder Beschleunigerport auf eine bestimmte IP -Adresse und Port und Port von EC2 -Instanz abgebildet wird. Zum Beispiel karten Port 1001 auf den Gaspedalators bis 10.1.1.1:80, Port 1002 bis 10.1.1.1:81 usw. Sie können den Datenverkehr zu bestimmten Instanzen oder Ports zulassen oder verweigern, um sicherzustellen, dass nur aktive Spielerverkehr den Datenverkehr erhalten.
4. Matchmaking- und Routing -Logik
Wenn ein Spieler eine Verbindung herstellt, bestimmt Ihr Matchmaking -Service, welche Spielsitzung (und somit EC2 -Instanz und Port) sich dem Spieler anhand von Kriterien wie Standort, Skill -Level oder Sitzungsverfügbarkeit anschließen sollte. Die Matchmaking -Logik fragt die Global Accelerator -API zum Abrufen des Beschleunigerports ab, der der ausgewählten Spielserversitzung entspricht.
5. Spielerverbindung über Gaspedalator
Der Spieler erhält die statische IP -Adresse des Gaspedalators und den zugeordneten Port (z. B. Port 1003). Wenn der Spieler eine Verbindung herstellt, leitet Global Accelerator den Datenverkehr über das AWS Global Network mit der genauen EC2 -Instanz und Port -Hosting der Spielsitzung (z. B. 10.1.1.1:82) weiter. Dies verringert die Latenz, indem das öffentliche Internet vermieden und die optimierten Netzwerkpfade von AWS verwendet werden.
6. Vorteile
-Niedrige Latenz und reduzierter Jitter: Der Verkehr wird über AWS-Hochgeschwindigkeitsnetzwerk überflutet.
- Skalierbarkeit: Sie können Tausende von Spielsitzungen in mehreren Regionen mit einem einzigen Beschleuniger verwalten.
- Fehlertoleranz: Wenn ein Spielserver oder ein Subnetzendpunkt ungesund wird, kann der Datenverkehr ohne Störung des Spielers umgeleitet werden.
- Protokollflexibilität: Unterstützt TCP, UDP oder beides, wobei verschiedene Anforderungen an das Spielnetzwerk gerecht werden.
Zusammenfassung
Mithilfe von AWS Global Accelerator Custom Routing kann ein Mehrspieler -Spiel die Spieler zu bestimmten Spielserverinstanzen leiten, indem sie Beschleunigerports in private IP -Adressen und -Ports von EC2 -Instanzen in VPC -Subnetzen abbilden. Der Matchmaking-Service steuert, welcher Spieler mit dem entsprechenden Beschleunigungsanschluss verbunden wird, wodurch eine deterministische Routing mit geringer Latenz ermöglicht wird, ohne dass Client-Änderungen erforderlich sind. Dieses Setup ist ideal für großflächige, globale Multiplayer-Spiele, die eine feinkörnige Kontrolle über Aufgaben und Leistungsoptimierung von Spielern zu Server benötigen [2] [6] [7] [9].
Zitate:
[1] https://docs.amazon.com/global-accelerator/latest/dg/about-custom-routing-how-it-works.html
[2] https://aws.amazon.com/blogs/gametech/deploy-game-servers-amazon-gamelift-fleetiq-and-integrate-with-custom-routing-aws-global-accelerator/
[3] https://www.youtube.com/watch?v=yxqjyly80pc
[4] https://pages.awscloud.com/rs/112-tzm-766/images/2023_ott-od-0502-ngi_slide-deck.pdf
[5] https://coda.io/@kirtanc25/aws-r53-cf-ga/aws-global-accelerator-14
[6] https://pages.awscloud.com/rs/112-tzm-766/images/ptnr-aws-amd-gamelift-gameservers.pdf
[7] https://www.alibabacloud.com/help/en/ga/user-guide/how-custom-routing-listeners-work
[8] https://www.youtube.com/watch?v=qlaauf_zq4i
[9] https://aws.amazon.com/blogs/networking-and-content-delivery/introducing-aws-global-accelerator-custom-routing-accelerators/
[10] https://mas-bandwidth.com/the-case-for-network-acceleration-for-multiplayer-names/
[11] https://aws.amazon.com/blogs/gametech/moderniz----Backend-services-with-aws-global-accelerator/