本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
玩家閘道的運作方式
玩家閘道使用轉送網路,在遊戲用戶端和遊戲伺服器之間路由 UDP 流量。這可透過在流量到達遊戲伺服器之前驗證流量、對玩家流量進行速率限制、隱藏來自公有的遊戲伺服器 IP 地址,以及在轉送端點運作狀態不佳時提供更新的端點,來防範 DDoS 攻擊。
流量
當玩家連線到遊戲工作階段時,您的遊戲後端會從 GetPlayerConnectionDetails API 擷取轉送端點和玩家閘道字符,並將其傳送至遊戲用戶端。遊戲用戶端會在玩家閘道字符前面加上 UDP 封包,並將封包傳送至轉送端點。轉送網路會驗證字符,並將合法流量路由到遊戲伺服器。在交付之前,轉送網路會分割玩家閘道字符,讓遊戲伺服器接收原始遊戲用戶端承載,且不需要變更程式碼。從遊戲伺服器返回遊戲用戶端的通訊會透過轉送網路傳回,無需修改。
核心概念
轉送端點
轉送端點是遊戲用戶端用來透過玩家閘道傳送流量的 IP 地址和連接埠組合。每個玩家都會收到不同玩家的多個端點,以分配流量並減少攻擊對相同遊戲工作階段中其他玩家的影響。
玩家閘道字符
玩家閘道字符是加密的位元組陣列,可授權玩家透過玩家閘道將流量傳送至遊戲工作階段。GetPlayerConnectionDetails API 會以 base64 編碼字串傳回字符。遊戲用戶端必須在每個 UDP 封包的玩家閘道字符前面加上。轉送網路會驗證權杖,並拒絕具有無效或遺失權杖的封包。
重要
玩家閘道字符不得加密,且必須出現在遊戲用戶端傳送的每個 UDP 封包的開頭。如果您的遊戲加密承載,請在加密遊戲資料後加上未修改的玩家閘道字符。
玩家閘道字符的有效期至少為 3 分鐘。我們建議每 60 秒重新整理權杖,以確保當轉送端點運作狀態不佳時,玩家會收到更新的端點。
GetPlayerConnectionDetails API
您的遊戲後端會呼叫 GetPlayerConnectionDetails API,以擷取遊戲工作階段中玩家的連線詳細資訊。API 會傳回轉送端點和玩家閘道字符,或落回遊戲伺服器的 IP 地址和連接埠以進行直接連線。您的遊戲用戶端應設計為處理這兩種連線類型。若要在轉送端點運作狀態不佳時接收更新的端點,請在整個遊戲工作階段中定期呼叫此 API (建議每 60 秒)。
如需詳細資訊,請參閱GetPlayerConnectionDetails API。
監控玩家閘道
玩家閘道會將指標發佈至 Amazon CloudWatch,協助您監控網路流量模式、識別潛在的 DDoS 攻擊,以及追蹤轉送效能。指標包括封包和位元組輸入/輸出、限流流量和玩家工作階段。如需玩家閘道指標的完整清單,請參閱 DDoS 保護 (玩家閘道) 指標。
IPv4 和 IPv6 相容性
遊戲用戶端使用 IPv4 進行通訊。玩家閘道使用 IPv6 與遊戲伺服器通訊。 會根據機群組態Amazon GameLift Servers自動處理 IPv4 和 IPv6 之間的轉譯。
如需在機群上設定玩家閘道的詳細資訊,請參閱 CreateFleet 或 CreateContainerFleet。如需 IPv4 和 IPv6 支援的詳細資訊,請參閱 IPv4 和 IPv6 相容性。