ゲームラグ白書 › L3 家庭内ネットワーク
バッファブロート(ルーターのキュー) Bufferbloat
原因ID hn-bufferbloat · 主担当 外部・外部 · 副担当 ゲーム開発チーム・クライアント開発
図と実験のあるメインページでこのカードを開く →
家族の誰かが動画をアップロードしたり大きなファイルをダウンロードしたりすると、ルーターのキューに数百ms分のパケットがたまり、ゲームのパケットもその後ろで待たされます。
なぜ 家族の動画アップロード・クラウドバックアップ、自分の配信、大容量ダウンロードで回線がいっぱいになる → すると ルーターやモデムが、あふれたパケットを大きなキューにためておく → 画面では ゲームのパケットもキューの後ろで待たされ、Pingが数百msまで急上昇
- 症状
- 入力遅延, 早送り, ワープ
- 要因
- 遅延, ジッター
- 誰に起きるか
- 同じ家, 自分だけ
- いつ
- ときどきランダムに, 夜のピーク時間帯
- 担当
- 主担当 外部・外部 · 副担当 ゲーム開発チーム・クライアント開発
- ゲーム開発チームの対応
- Pingが急に数百msまで上がったら画面にネットワーク状態を表示(同じ回線で大容量の転送をしている可能性を案内)。
- 外部の対応
- ユーザーに、SQM(fq_codel、CAKE)やQoSのあるルーターの使用、SQMの速度を回線速度の90〜95%に設定すること(こうするとキューがルーターの中にでき、効果が出る)、上りの速度制限を案内。
- 数値の目安
- 上り10Mbpsの回線に1MBのバッファがあると、キューは800ms分まで長くなります。
- グラフでは
- 人数・負荷に連動して上昇 · RTT、回線の上り・下りの使用量
- 確認箇所
- Pingを実行したまま速度テストで回線をいっぱいにしてみるか、負荷中の遅延を測るWebテストを使う(Bufferbloat.netの案内)。ルーターの管理画面にある上り・下りの使用量とあわせて確認
- 該当する場合
- 上りか下りが回線を埋めている間、Pingが数百msまで上がり、転送が終わると戻る(負荷中の遅延が50msを超えたら疑う)。SQMを有効にすると消える
- 該当しない場合
- 回線が空いているのにPingが跳ねるなら「Wi-Fiの干渉・電波の弱さ」か「回線品質の不良」
- 確認手段
- ユーザー側の環境で確認
- もっと詳しく
- 特に詰まりやすいのは上り側です。ケーブル回線やモバイル回線は、上りが下りよりずっと細いことが多いためです。光回線に余裕のある家では、Wi-Fi区間がボトルネックになり、ルーターの無線キューで同じことが起きます。ゲームのパケットは小さいので帯域幅はほとんど使いませんが、キューで待たされる点は同じです。上り方向だけが詰まると、自分の入力だけが遅れ、他人の動きは正常です。スマホでは、同じスマホの写真バックアップやアプリの更新がスマホのモデムと基地局のキューを埋め、同じことが起きます。
出典
- Setting up SQM for CeroWrt 3.10 Bufferbloat.net
SQMの速度を実測速度の95%(公称速度を基準にするなら85%)に下げ、ボトルネックを通信事業者の機器からルーターの中に移さないと効果が出ない - SQM (Smart Queue Management) OpenWrt
下り・上りの速度を実測値の90%で入力、キューイング方式はcakeを推奨(CPUが弱ければfq_codel) - Ending the Anomaly: Achieving Low Latency and Airtime Fairness in WiFi (USENIX ATC 2017) USENIX
Wi-Fi区間がいっぱいになると、ルーターの無線キューで数百msの遅延が生じる。無線キューを改善すると、負荷中の遅延が約10分の1に減る - Tests for Bufferbloat Bufferbloat.net
Pingを実行したまま速度テストで回線を埋め、Pingが上がればバッファブロート。負荷中の遅延が50ms超(またはB評価未満)なら対策を推奨
あわせて読みたい原因
同じ層:L3 家庭内ネットワーク
同じ症状(入力遅延)を起こすほかの層の原因
図と実験のあるメインページでこのカードを見る