バッファブロートとは
バッファブロートは、機器の大きな送信待ち行列にデータがたまり、混雑時の遅延が大幅に増える現象です。英語はbufferbloat(バッファーブロート)で、バッファーが過度に膨らむ状態を表します。
ルーターやモデムは、出口からすぐ送れないパケットをバッファーへ一時保存します。短い突発を吸収する役割は必要ですが、容量より多い流入が続くと、古いパケットが長時間並んだままになります。
バッファブロートではパケット損失が少なく速度テストも高く見える一方、通話・ゲーム・Web操作の小さなパケットが大容量転送の後ろで待ち、応答だけが数百ms以上遅れることがあります。

三つの状態を、速度と遅延の両方で測る
大容量転送を止め、近い測定先への最小・中央値RTTを記録する
受信中も小さな試験通信を送り、WAN・LAN・無線の待ち増加を見る
送信中のRTTを測り、家庭ルーターのWAN出口キューを確認する
ゲートウェイと外部宛を同時測定し、Wi‑Fiと回線出口を分ける
ルーターの待ち行列遅延、破棄、ECN、利用率を同じ時刻で記録する
通話、ゲーム、DNSなど小さな対話通信の遅れ・途切れを確認する
損失を遅らせる大きなFIFOが、混雑の合図も遅らせる
単純なFIFOキューは到着順に保存し、満杯になるまで廃棄しません。容量が大きいと短時間の損失率は下がりますが、TCPが損失を混雑の合図として受けるまで多量のデータが並びます。
送信側は空きがあると考えて増やし続け、キューは常に深いままになります。「破棄が少ない=よいキュー」とせず、パケットが入ってから出るまでの滞在時間を測ることが重要です。
回線が遅いことと、バッファブロートは同じではない
低速回線でも、負荷に合わせた短いキューと公平な送信なら対話通信の待ちを抑えられます。高速回線でも巨大なキューへ長時間分がたまればバッファブロートになります。
無負荷時からRTTが大きいなら距離や基礎経路、負荷時だけ急増するならキュー待ちが主因の候補です。容量不足、基礎レイテンシ、キュー管理を別に評価します。
AQMは満杯になる前に、遅延を見て混雑信号を出す
AQM(Active Queue Management/アクティブ・キュー・マネジメント)は、キューが完全に埋まる前にパケットを廃棄またはECNでマークし、送信側へ減速を促します。
CoDelはキュー長のパケット数だけでなく、パケットがキューに滞在した時間を観測します。短い突発は通しながら、持続的な過大遅延へ対応します。設定なしで万能ではなく、実装・リンク特性を確認します。
FQ-CoDelはフローを分け、一つの大転送が全員を待たせにくくする
FQ-CoDelは流れキュー制御とCoDelを組み合わせます。複数フローを異なるキューへ分けて順番に処理し、大容量転送の長い列と小さな対話フローを分離します。
暗号化やNATがあっても通常はアドレス・ポート等の流れハッシュで分類できますが、分類衝突や単一フロー内の遅れは残ります。優先度固定だけでなく公平性と滞在時間を併用します。
シェーピングは、本当のボトルネックより少し手前で行う
管理できないモデムや事業者側に大きなキューがある場合、自宅ルーターで実回線能力より少し低くトラフィックシェーピングすると、待ち行列を制御可能な場所へ移せます。
値を低くしすぎると利用可能帯域を捨て、高すぎると下流キューへあふれます。回線速度が時間変動するモバイル・Wi‑Fiでは固定値が合わないため、方向別の実測と適応制御を検討します。
Wi‑Fiでは、APのキューだけでなく電波待ちと再送も加わる
Wi‑Fiは同じチャンネルを共有し、送信前競合、低いPHY比率、リンク層再送が通信時間を消費します。ドライバーやAP内部に複数のキューがあり、有線WANだけ整えても無線側が詰まる場合があります。
有線と無線、ゲートウェイと外部宛、上りと下りを組み合わせ、負荷時RTT・損失・再送率・スループットを同じ時間軸で比較して発生区間を絞ります。
確認資料:RFC 7567「Active Queue Management Recommendations」、RFC 8289「Controlled Delay Active Queue Management」、RFC 8290「FQ-CoDel」