リレーサーバーを介したピアツーピア入門
注釈:本資料はAI技術を用いて翻訳されています。
概要
AccelByte Gaming Services (AGS) Peer-to-Peer (P2P) は、WebRTC プロトコルに基づいて安全なピアツーピア通信を実装するための、ゲーム向けの低レベルネットワーキング機能を提供します。
AGS P2P を実現するコンポーネントは以下のとおりです。
- AGS Lobby: シグナリングサーバーとして機能します
- TURN サーバー: AccelByte Multiplayer Servers (AMS) でホストされます
- AGS Session: プレイヤーセッションを管理し、追跡します
- TURN マネージャーサービス: 複数のリージョンにデプロイされているすべての TURN サーバーを管理・追跡します(リージョン選択については AccelByte にお問い合わせください)
- ネットワーキングユーティリティライブラリ(現在は Unreal と Unity をサポート)
AGS P2P ネットワーキングライブラリを使用すると、ゲームクライアントは他のゲームクライアント(ピア)との安全な接続を確立できます。バックエンドでは、AGS がハンドシェイクのネゴシエーション、安全なアドレス交換 (STUN)、NAT トラバーサルを処理し、直接接続ができない場合はリレーサーバー (TURN) を使用するフォールバックを行います。
P2P ネットワーキングライブラリの一般的な用途は、専用サーバー を使用せずにピアホスト型のマルチプレイヤーセッションを実装するゲームです。AGS P2P ネットワーキングライブラリは、Unreal の Replication システムと Unity の GameObjects の両方と組み合わせて使用できます。
主要な概念
WebRTC、ICE、STUN、TURN の各技術が AGS P2P の基盤となっています。
WebRTC は、インターネット上でアプリケーション間のリアルタイム通信を実現するためのオープンなプロトコル標準です。WebRTC は複数のプロトコルと技術を採用しています。
-
Interactive Connectivity Establishment (ICE): 2 台のコンピュータ同士を通信させ、ネットワークアドレス変換 (NAT)、ファイアウォール、その他のネットワーク障壁に対応するための技術です。
-
ICE は、STUN(Session Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs))サーバーを介してネットワーク接続情報を交換する手法や、TURN(Traversal Using Relays around NAT)サーバーを介してネットワークトラフィックをリレーする手法など、さまざまな技術を使用します。
AGS はこれらの STUN および TURN サーバーをホストしており、いずれも Google の COTURN プロジェクトをベースにしています。
詳細情報:
セキュリティ
あるピアが別のピアへの接続を試みる際、AGS Lobby 内に実装されたシグナリングサーバーを介してハンドシェイクが実行されます。セキュリティ上の理由から、ピア間でパブリック IP アドレスが公開・交換されることはありません。
次のステップ
AGS ネットワーキングユーティリティのソース:
P2P ネットワーキングライブラリの活用方法を示すサンプルプロジェクト: