Microsoft Game Development Kit のサービスの品質の測定
このトピックを使用すると、GDK タイトルでサービスの品質 (QoS) を測定する方法を理解することができます。 マルチプレイヤー タイトルにおいて、QoS レイテンシの測定は重要です。 ピア ツー ピア接続では、別のクライアントとのゲームプレイが可能であるかどうかを判断するために QoS レイテンシの測定値を使用します。 クライアント/サーバー接続の場合、QoS レイテンシ測定を使用して、ゲームプレイに最適なデータセンターの場所を決定できます。
Xbox One ERA タイトルの場合、セキュア ソケットには、レイテンシおよび帯域幅の測定用の QoS API が含まれます。 GDK タイトルは、次のセクションで説明する機能と同じ機能を実現できます。
ピア ツー ピア
ピア ツー ピア通信を使うタイトルは、タイトル コード、ゲーム エンジン、またはミドルウェアのカスタム QoS 実装を使用できます。
すべての実装で、タイトルが次のガイドラインを満たしていることを確認する必要があります。
- 通信を保護するためのベスト プラクティス。 タイトルには、コンテンツに関係なく、すべてのネットワーク通信を保護するベスト プラクティスに従う必要があります。 この機能は、ピア ツー ピア UDP QoS プローブにも適用する必要があります。 これらのプローブは、安全なプロトコル接続を通して実行する必要があります。 プロトコルを保護するためのベスト プラクティスに関する詳細については、「Microsoft Game Development Kit タイトル向け Game Mesh 通信の保護 (NDA トピック)認可が必須です」を参照してください。
- ユーザー データグラム プロトコル (UDP) のパケット サイズ。 UDP 通信タイトルの場合、プラットフォームの最大転送単位 (MTU) の最大値を超えないようにする必要があります。 Xbox 本体および Windows 10 の Microsoft Game Development Kit (GDK) タイトルの場合、パケットあたりの既定の最大 UDP ペイロードは 1,384 バイトです。 MTU を超えるパケットは断片化している可能性が高く、レイテンシの増加やパケットの破棄につながる可能性があります。
- プロトコルと通信チャネルの一致。 ピア ツー ピア QoS は、常に、ゲームプレイのトラフィックに使用されているものと同じ通信チャネルとプロトコルを介して実行する必要があります。 これにより、すべての測定に、遅延や帯域幅などのゲームプレイ トラフィックの動作が反映されるようになります。
- セッション参照 QoS の動作。 セッション参照リストの一部として QoS を使うタイトルは、人気のホストで誤って QoS フラッディングを引き起こす可能性があります。 これは、セッション参照リストがすべてのユーザーで同一で、自動 QoS テストが含まれている場合に発生します。 このシナリオでは、セッション参照リストを表示するすべてのユーザーが、リストの上位のホストに対して QoS テストを実行します。 これにより、負荷が高くなり、ホストやサーバーでフラッディングを起こす可能性があります。 この問題を削減するために、タイトルでは、セッション参照リストの一部をランダム化することをお勧めします。
- その他のタイトル帯域幅の使用状況。 すべての QoS 測定は、他のローカルまたはリモートのネットワークの動作の影響を受けます。 タイトルは、他のプラットフォームやサブネットのトラフィックの動作に影響を与えることはありません。 ただし、内部的なタイトル トラフィックの制御は引き続き可能です。 タイトルは、QoS 測定の実行時に、タイトルのダウンロードや、その他のネットワークの使用を最小限に抑える必要があります。 これは、複数の並列 QoS 測定の場合も同様です。
クライアント/サーバー
クライアント/サーバー通信を使うタイトルは、タイトル コード、ゲーム エンジン、またはミドルウェアでカスタム QoS 実装を使用できます。 ピア ツー ピアの QoS 測定値とは異なり、クライアント/サーバーの QoS 測定の一般的な目標は、特定のデータセンターへのレイテンシを決定することです。 このシナリオのタイトルは、ピア ツー ピアの QoS 測定値と同じガイドラインに準拠する必要があります。
Azure PlayFab マルチプレイヤー サーバーを使用するタイトルは、常に QoS の測定用途で提供された API を使用する必要があります。 詳細については、「サービスの品質 (QoS) ビーコンを使用した Azure に対するプレイヤーの遅延の測定」を参照してください。
QoS メトリックの考慮事項
接続品質を決定する最も一般的な QoS メトリックは、パケット レイテンシと利用可能なリンク帯域幅です。
レイテンシ テスト。 レイテンシは、通常、2 つのエンドポイント間でパケットごとにテストされます。 ベスト プラクティスとしては、ローカルの MTU サイズを下回る少数のパケットを、パケットがローカル デバイスにエコー バックされているリモート エンドポイントに送信することです。 これにより、パケットのラウンド トリップ時間が判断されます。 測定では、複数のパケットの平均を取る必要があります。 レイテンシの測定はすばやく実行できます。
帯域幅テスト。 一般的に、帯域幅はローカル リンクを飽和させるために、大容量のデータを周波数を上げて別のエンドポイントに送信することでテストされます。 リンク帯域幅は、ローカルの送受信バッファーの状態に基づいて推測できます。 バッファー使用量の増加は、リンクが飽和していることを示します。 帯域幅の測定には、より長いテスト時間が必要であり、ローカル リンクの品質に影響を与える可能性があります。
一般的に、レイテンシと帯域幅は強く関連しています。 帯域幅が限られていると、ネットワークの混雑時にはパケットがローカルに保持されるため、パケットのレイテンシは高くなります。 またレイテンシが低い場合は、パケットがローカルに保持されていないことを示しているため、利用可能な帯域幅が多いことを意味します。 その結果、タイトルはゲームプレイのトラフィックの QoS の目的でのみレイテンシ測定を行なう必要があります。 通常、ゲームプレイのトラフィックには、帯域幅テストは必要ありません。
QoS テスト
Xbox One 開発キットを使用してネットワーク シミュレーションを実行すると、限られた帯域幅、パケット ロス、レイテンシをシミュレートできます。 カスタム QoS 実装テストおよびすべての QoS 機能のエンド ツー エンドのテストでこの機能を使用することを強くお勧めします。 詳細については、「Xbox One のネットワーク負荷」を参照してください。