Σε μια ρύθμιση παιχνιδιών για πολλούς παίκτες, οι επιταχυντές προσαρμοσμένης δρομολόγησης μπορούν να χρησιμοποιηθούν για τη βελτιστοποίηση των συνδέσεων του παίκτη με δρομολόγηση της επισκεψιμότητας απευθείας σε συγκεκριμένες παρουσίες διακομιστή παιχνιδιών με βάση τη λογική εφαρμογής, όπως τα αποτελέσματα της αντιστοίχισης. Αυτή η προσέγγιση βελτιώνει την καθυστέρηση, μειώνει το jitter και ενισχύει την εμπειρία του παίκτη αξιοποιώντας το ιδιωτικό δίκτυο του AWS Global Accelerator και τις στατικές διευθύνσεις IP.
Παράδειγμα χρήσης προσαρμοσμένων επιταχυντών δρομολόγησης σε τυχερά παιχνίδια για πολλούς παίκτες
1. Ρύθμιση διακομιστών παιχνιδιών και υποδικτύων
Ας υποθέσουμε ότι έχετε ένα στόλο διακομιστών παιχνιδιών που τρέχουν σε περιπτώσεις Amazon EC2 μέσα σε ένα ή περισσότερα υποδίκτυα VPC. Κάθε περίπτωση φιλοξενεί πολλαπλές συνεδρίες παιχνιδιών, κάθε ακρόαση σε διαφορετικές θύρες. Για παράδειγμα, δύο περιπτώσεις EC2 ενδέχεται να εκτελούνται στο ίδιο υποδίκτυο με ιδιωτικό IPS 10.1.1.1 και 10.1.1.2, κάθε μία σερβιρισμένες συνεδρίες παιχνιδιών στις θύρες TCP 80, 81 και 82.
2. Δημιουργήστε έναν προσαρμοσμένο επιταχυντή δρομολόγησης
Δημιουργείτε ένα προσαρμοσμένο επιταχυντή δρομολόγησης στο AWS Global Accelerator και προσθέστε τα σχετικά υποδίκτυα VPC ως τελικά σημεία. Ορίζετε ένα εύρος θύρας ακροατή (π.χ., 1001 έως 1050) στον επιταχυντή και χαρτογραφήστε αυτά στο εύρος θύρας προορισμού (π.χ. 80 έως 82) στις περιπτώσεις σας EC2. Αυτή η χαρτογράφηση επιτρέπει την εισερχόμενη κυκλοφορία στις θύρες 1001-1050 να δρομολογηθεί σε συγκεκριμένους συνδυασμούς IP: θύρας στους διακομιστές backend.
3. Χαρτογράφηση θυρών και έλεγχος κυκλοφορίας
Ο επιταχυντής δημιουργεί έναν πίνακα χαρτογράφησης θύρας που χαρτογραφεί στατικά κάθε θύρα επιταχυντή σε μια συγκεκριμένη διεύθυνση IP και θύρα IP του EC2. Για παράδειγμα, η θύρα 1001 στους χάρτες επιταχυντών σε 10.1.1.1:80, θύρα 1002 έως 10.1.1.1:81, και ούτω καθεξής. Μπορείτε να επιτρέψετε ή να αρνηθείτε την κυκλοφορία σε συγκεκριμένες περιπτώσεις ή λιμένες, εξασφαλίζοντας ότι μόνο οι ενεργοί διακομιστές παιχνιδιών λαμβάνουν κυκλοφορία.
4.
Όταν ένας παίκτης συνδέεται, η υπηρεσία αντιστοίχισης καθορίζει ποια συνεδρία παιχνιδιού (και επομένως ποια παρουσία και λιμάνι EC2) ο παίκτης θα πρέπει να συμμετάσχει με βάση τα κριτήρια όπως η τοποθεσία, το επίπεδο δεξιοτήτων ή η διαθεσιμότητα συνεδρίας. Η λογική Matchmaking ερωτά το API Global Accelerator για την ανάκτηση της θύρας επιταχυντής που αντιστοιχεί στην επιλεγμένη περίοδο λειτουργίας του διακομιστή παιχνιδιών.
5. Σύνδεση αναπαραγωγής μέσω επιταχυντών
Ο παίκτης λαμβάνει τη στατική διεύθυνση IP του επιταχυντή και τη θύρα χαρτογράφησης (π.χ. θύρα 1003). Όταν ο παίκτης συνδέεται, ο Global Accelerator δρομολογεί την κυκλοφορία μέσω του παγκόσμιου δικτύου AWS στην ακριβή παρουσία EC2 και στο λιμάνι που φιλοξενεί τη συνεδρία παιχνιδιού (π.χ. 10.1.1.1:82). Αυτό μειώνει την καθυστέρηση αποφεύγοντας το δημόσιο διαδίκτυο και χρησιμοποιώντας τις βελτιστοποιημένες διαδρομές δικτύου AWS.
6. Οφέλη
-Χαμηλή λανθάνουσα κατάσταση και μειωμένη jitter: Η κυκλοφορία δρομολογείται πάνω από το δίκτυο υψηλής ταχύτητας, χωρίς συμφόρηση.
- Εκτιμήσεις: Μπορείτε να διαχειριστείτε χιλιάδες συνεδρίες παιχνιδιών σε πολλές περιοχές με έναν μόνο επιταχυντή.
- Ανοχή σφάλματος: Εάν ένας διακομιστής παιχνιδιών ή ένα τελικό σημείο υποδικτύου γίνεται ανθυγιεινό, η κυκλοφορία μπορεί να επαναπροσδιοριστεί χωρίς διαταραχή του παίκτη.
- Ευελιξία πρωτοκόλλου: Υποστηρίζει TCP, UDP ή και τα δύο, φιλοξενώντας διαφορετικές απαιτήσεις δικτύωσης παιχνιδιών.
Περίληψη
Χρησιμοποιώντας την προσαρμοσμένη δρομολόγηση AWS Global Accelerator, ένα παιχνίδι για πολλούς παίκτες μπορεί να κατευθύνει τους παίκτες σε συγκεκριμένες περιπτώσεις διακομιστή παιχνιδιών με τη χαρτογράφηση θυρών επιταχυντών σε ιδιωτικές διευθύνσεις IP και θύρες των περιπτώσεων EC2 σε υποδίκτυα VPC. Η υπηρεσία Matchmaking ελέγχει τον παίκτη που συνδέει όπου αναθέτοντας την κατάλληλη θύρα επιταχυντής, επιτρέποντας τη ντετερμινιστική δρομολόγηση χαμηλής καθυστέρησης χωρίς να απαιτείται αλλαγές πελάτη. Αυτή η ρύθμιση είναι ιδανική για παιχνίδια μεγάλης κλίμακας, παγκόσμιων παιχνιδιών για πολλούς παίκτες που χρειάζονται λεπτόκοκκο έλεγχο σε αναθέσεις παικτών σε διακομιστή και βελτιστοποίηση απόδοσης [2] [6] [7] [9].
Αναφορές:
[1] https://docs.aws.amazon.com/global-accelerator/latest/dg/about-custom-routing-how-it-works.html
[2] https://aws.amazon.com/blogs/gametech/deploy-game-servers-with-amazon-gamelift-fleetiq-and-tegrate-with-custom-routing-aws-global-ccelerator/
[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-cceleration-for-multiplayer-games/
[11] https://aws.amazon.com/blogs/gametech/modernize-game-backend-services-with-aws-global-accelerator/