測定方法
測定方法
接続テストが何を測り、値をどう計算し、ブラウザでは原理的に測れないものが何かを説明します。
このページでは、接続テストが実際に何を測り、値をどう計算し、ブラウザでは原理的に測れないものが何かを説明します。英語の正式な方法論の要約で、技術的・法的な基準は英語版です。
テストの内容
- アイドル遅延: 自前のエンドポイントへ60ms間隔で50回リクエストし、PerformanceResourceTimingで往復時間を取得します。最初の5件はウォームアップとして破棄します。
- ティックループ: 30秒間、毎秒20個の小さなフレームをWebSocketで往復させます。一般的なシューターのサーバーティックと同じ速度です。
- 負荷時遅延: バックグラウンドで大きなダウンロードを走らせながら、400msごとに遅延を測定します。
値の計算方法
- パーセンタイルは線形補間で算出し、p50・p95・最悪値を併記します。平均だけは出しません。平均は突出した値を隠すためです。
- ジッターは連続する測定値の絶対差の平均で、95パーセンタイルも併記します。
- 応答が返らなかったフレームはタイムアウトと呼びます。TCPベースのため再送が起き、パケット損失とは意味が異なるからです。
- 有効な測定値が30件未満の場合は判定せず、分からないと表示します。
ブラウザでは測れないもの
- ゲーム内ping: ブラウザはゲームサーバーへ生ソケットを開けず、ゲームサーバーは通常ICMPに応答しません。
- 実際のUDPパケット損失: ブラウザはUDPパケットを直接送信できません。
- ゲームサーバーまでの経路: ゲームのリージョン内に測定点が必要です。
- FPS・ハードウェア・ゲームのネットコード: 意図的に対象外です。
完全な方法論は英語で公開しています。 英語の完全な方法論を読む (EN)