

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 玩家閘道的運作方式
<a name="ddos-protection-howitworks"></a>

玩家閘道使用轉送網路，在遊戲用戶端和遊戲伺服器之間路由 UDP 流量。這可透過在流量到達遊戲伺服器之前驗證流量、對玩家流量進行速率限制、隱藏來自公有的遊戲伺服器 IP 地址，以及在轉送端點運作狀態不佳時提供更新的端點，來防範 DDoS 攻擊。

## 流量
<a name="ddos-protection-howitworks-traffic-flow"></a>

當玩家連線到遊戲工作階段時，您的遊戲後端會從 `GetPlayerConnectionDetails` API 擷取轉送端點和玩家閘道字符，並將其傳送至遊戲用戶端。遊戲用戶端會在玩家閘道字符前面加上 UDP 封包，並將封包傳送至轉送端點。轉送網路會驗證字符，並將合法流量路由到遊戲伺服器。在交付之前，轉送網路會分割玩家閘道字符，讓遊戲伺服器接收原始遊戲用戶端承載，且不需要變更程式碼。從遊戲伺服器返回遊戲用戶端的通訊會透過轉送網路傳回，無需修改。

![架構圖顯示透過轉送網路連線至遊戲伺服器的遊戲用戶端](http://docs.aws.amazon.com/zh_tw/gameliftservers/latest/developerguide/images/player_gateway_architecture.png)


## 核心概念
<a name="ddos-protection-howitworks-components"></a>

### 轉送端點
<a name="ddos-protection-howitworks-endpoints"></a>

轉送端點是遊戲用戶端用來透過玩家閘道傳送流量的 IP 地址和連接埠組合。每個玩家都會收到不同玩家的多個端點，以分配流量並減少攻擊對相同遊戲工作階段中其他玩家的影響。

![顯示多個玩家接收相同遊戲工作階段不同轉送端點的圖表](http://docs.aws.amazon.com/zh_tw/gameliftservers/latest/developerguide/images/player_gateway_relay_endpoints.png)


### 玩家閘道字符
<a name="ddos-protection-howitworks-tokens"></a>

玩家閘道字符是加密的位元組陣列，可授權玩家透過玩家閘道將流量傳送至遊戲工作階段。`GetPlayerConnectionDetails` API 會以 base64 編碼字串傳回字符。遊戲用戶端必須在每個 UDP 封包的玩家閘道字符前面加上。轉送網路會驗證權杖，並拒絕具有無效或遺失權杖的封包。

**重要**  
玩家閘道字符不得加密，且必須出現在遊戲用戶端傳送的每個 UDP 封包的開頭。如果您的遊戲加密承載，請在加密遊戲資料後加上未修改的玩家閘道字符。

玩家閘道字符的有效期至少為 3 分鐘。我們建議每 60 秒重新整理權杖，以確保當轉送端點運作狀態不佳時，玩家會收到更新的端點。

### GetPlayerConnectionDetails API
<a name="ddos-protection-howitworks-api"></a>

您的遊戲後端會呼叫 `GetPlayerConnectionDetails` API，以擷取遊戲工作階段中玩家的連線詳細資訊。API 會傳回轉送端點和玩家閘道字符，或落回遊戲伺服器的 IP 地址和連接埠以進行直接連線。您的遊戲用戶端應設計為處理這兩種連線類型。若要在轉送端點運作狀態不佳時接收更新的端點，請在整個遊戲工作階段中定期呼叫此 API （建議每 60 秒）。

如需詳細資訊，請參閱[GetPlayerConnectionDetails API](ddos-protection-integrate.md#ddos-protection-integrate-backend-api)。

## 監控玩家閘道
<a name="ddos-protection-howitworks-monitoring"></a>

玩家閘道會將指標發佈至 Amazon CloudWatch，協助您監控網路流量模式、識別潛在的 DDoS 攻擊，以及追蹤轉送效能。指標包括封包和位元組輸入/輸出、限流流量和玩家工作階段。如需玩家閘道指標的完整清單，請參閱 [DDoS 保護 （玩家閘道） 指標](monitoring-cloudwatch.md#gamelift-metrics-fleet-playergateway)。

## IPv4 和 IPv6 相容性
<a name="ddos-protection-howitworks-ipv4-ipv6"></a>

遊戲用戶端使用 IPv4 進行通訊。玩家閘道使用 IPv6 與遊戲伺服器通訊。 會根據機群組態Amazon GameLift Servers自動處理 IPv4 和 IPv6 之間的轉譯。

如需在機群上設定玩家閘道的詳細資訊，請參閱 [CreateFleet](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_CreateFleet.html#gameliftservers-CreateFleet-request-PlayerGatewayMode) 或 [CreateContainerFleet](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_CreateContainerFleet.html#gameliftservers-CreateContainerFleet-request-PlayerGatewayMode)。如需 IPv4 和 IPv6 支援的詳細資訊，請參閱 [IPv4 和 IPv6 相容性](ddos-protection-enable.md#ddos-protection-enable-ip-protocol)。