View a markdown version of this page

Cara kerja gateway pemain - Amazon GameLift Servers

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Cara kerja gateway pemain

Gateway pemain menggunakan jaringan relay untuk merutekan lalu lintas UDP antara klien game dan server game. Ini melindungi terhadap serangan DDo S dengan memvalidasi lalu lintas sebelum mencapai server game, membatasi lalu lintas pemain, menyembunyikan alamat IP server game dari publik, dan menyediakan titik akhir yang diperbarui ketika titik akhir relay menjadi tidak sehat.

Arus lalu lintas

Saat pemain terhubung ke sesi permainan, backend game Anda mengambil titik akhir relai dan token gateway pemain dari GetPlayerConnectionDetails API dan mengirimkannya ke klien game. Klien game menambahkan token gateway pemain ke paket UDP dan mengirim paket ke titik akhir relai. Jaringan relay memvalidasi token dan merutekan lalu lintas yang sah ke server game. Sebelum pengiriman, jaringan relai menghapus token gateway pemain sehingga server game menerima muatan klien game mentah dan tidak memerlukan perubahan kode. Komunikasi dari server game kembali ke klien game kembali melalui jaringan relai tanpa modifikasi.

Diagram arsitektur yang menunjukkan klien game yang terhubung melalui jaringan relai ke server game

Konsep inti

Titik akhir relai

Relay endpoint adalah alamat IP dan kombinasi port yang digunakan klien game untuk mengirim lalu lintas melalui gateway pemain. Setiap pemain menerima beberapa titik akhir yang bervariasi antar pemain untuk mendistribusikan lalu lintas dan mengurangi dampak serangan pada pemain lain dalam sesi permainan yang sama.

Diagram yang menunjukkan beberapa pemain menerima titik akhir relay yang berbeda untuk sesi permainan yang sama

Token gateway pemain

Token gateway pemain adalah array byte terenkripsi yang mengizinkan pemain untuk mengirim lalu lintas ke sesi permainan melalui gateway pemain. GetPlayerConnectionDetailsAPI mengembalikan token sebagai string yang dikodekan base64. Klien game harus menambahkan token gateway pemain ke setiap paket UDP. Jaringan relay memvalidasi token dan menolak paket dengan token yang tidak valid atau hilang.

penting

Token gateway pemain tidak boleh dienkripsi dan harus muncul di awal setiap paket UDP yang dikirim oleh klien game. Jika game Anda mengenkripsi muatan, tambahkan token gateway pemain yang tidak dimodifikasi setelah mengenkripsi data game.

Token gateway pemain tetap berlaku setidaknya selama 3 menit. Kami merekomendasikan penyegaran token setiap 60 detik untuk memastikan pemain menerima titik akhir yang diperbarui saat titik akhir relay menjadi tidak sehat.

GetPlayerConnectionDetails API

Backend game Anda memanggil GetPlayerConnectionDetails API untuk mengambil detail koneksi bagi pemain dalam sesi game. API mengembalikan titik akhir relay dan token gateway pemain, atau kembali ke alamat IP server game dan port untuk koneksi langsung. Klien game Anda harus dirancang untuk menangani kedua jenis koneksi. Untuk menerima titik akhir yang diperbarui saat titik akhir relai menjadi tidak sehat, panggil API ini secara berkala selama sesi game (disarankan setiap 60 detik).

Untuk informasi selengkapnya, lihat GetPlayerConnectionDetails API.

Memantau gateway pemain

Gateway pemain menerbitkan metrik CloudWatch ke Amazon untuk membantu Anda memantau pola lalu lintas jaringan, mengidentifikasi potensi serangan DDo S, dan melacak kinerja relai. Metrik termasuk paket dan byte in/out, lalu lintas terbatas, dan sesi pemain. Untuk daftar lengkap metrik gateway pemain, lihatDDoMetrik perlindungan S (gateway pemain).

IPv4 dan IPv6 kompatibilitas

Klien game berkomunikasi menggunakan IPv4. Gateway pemain digunakan IPv6 untuk berkomunikasi dengan server game. Amazon GameLift Serverssecara otomatis menangani terjemahan antara IPv4 dan IPv6 berdasarkan konfigurasi armada Anda.

Untuk informasi selengkapnya tentang mengonfigurasi gateway pemain di armada Anda, lihat CreateFleetatau CreateContainerFleet. Untuk informasi lebih lanjut tentang IPv4 dan IPv6 dukungan, lihatIPv4 dan IPv6 kompatibilitas.