TCPウィンドウサイズと帯域利用効率(BDP)

TCPウィンドウサイズと帯域利用効率|BDP(帯域遅延積)の考え方

ネットワークの通信速度を最大限に引き出すためには、単に回線帯域が広いだけでは不十分です。 TCP通信では「どれだけのデータを一度に送信できるか」を決める ウィンドウサイズが重要な役割を果たします。

特に高速回線や長距離通信では、 ウィンドウサイズが小さいと帯域を使い切れず、 大幅なスループット低下が発生します。

本記事では、TCPウィンドウサイズと帯域利用効率の関係を、 BDP(帯域遅延積)という概念を中心に、 エンジニア向けに詳しく解説します。

TCPウィンドウサイズとは

TCPウィンドウサイズとは、 ACK(確認応答)を待たずに送信できるデータ量の上限を示す値です。

TCPは信頼性を確保するため、 送信したデータに対して受信側からのACKを待ちながら通信します。


送信 → ACK待ち → 次の送信

このとき、ウィンドウサイズが大きいほど、 一度に多くのデータを送信できます。

通信速度とウィンドウサイズの関係

TCPのスループットは、 ウィンドウサイズとRTT(往復遅延時間)によって決まります。


スループット ≒ ウィンドウサイズ / RTT

つまり、RTTが大きい場合、 ウィンドウサイズが小さいと通信速度は大きく制限されます。

BDP(帯域遅延積)とは

BDP(Bandwidth Delay Product)は、 ネットワーク回線上に「同時に存在できるデータ量」を示す重要な指標です。


BDP = 帯域(bps) × RTT(秒)

この値は、回線をフルに使うために必要なウィンドウサイズの目安になります。

BDPの具体例

例1:1Gbps回線・RTT 10ms


1Gbps × 0.01秒 = 10Mb = 約1.25MB

→ ウィンドウサイズが1.25MB以上必要

例2:10Gbps回線・RTT 50ms


10Gbps × 0.05秒 = 500Mb = 約62.5MB

→ 非常に大きなウィンドウが必要

このように、高速かつ長距離になるほど、 必要なウィンドウサイズは大きくなります。

ウィンドウサイズ不足の影響

ウィンドウサイズがBDPより小さい場合、 回線を十分に活用できません。


ウィンドウ:1MB
RTT:50ms

→ スループット ≒ 1MB / 0.05 = 約20MB/s ≒ 160Mbps

10Gbps回線でも、実際には160Mbpsしか出ないという状況になります。

TCPウィンドウスケーリング

従来のTCPでは、ウィンドウサイズは最大65535バイト(約64KB)でした。

これでは現代の高速ネットワークでは不十分なため、 TCPウィンドウスケーリングという拡張が導入されています。


ウィンドウサイズ × 2^スケール値

これにより、数MB〜数百MBのウィンドウサイズが利用可能になります。

輻輳ウィンドウ(cwnd)との関係

実際の送信量は、 受信ウィンドウ(rwnd)と輻輳ウィンドウ(cwnd)の小さい方で決まります。


送信量 = min(rwnd, cwnd)

つまり、ウィンドウサイズを大きくしても、 輻輳制御によって制限される場合があります。

高遅延ネットワークでの問題

海外通信や衛星通信ではRTTが大きくなります。

  • 国内通信:10ms
  • 海外通信:100ms以上

RTTが大きいほど、 同じウィンドウサイズでもスループットは低下します。

このため、高遅延環境では大きなウィンドウサイズが不可欠です。

実務での最適化ポイント

  • ウィンドウスケーリングを有効にする
  • RTTを短縮する(CDN・近距離サーバ)
  • パケットロスを減らす
  • QoSで輻輳を制御
  • 高速NIC・OS設定の最適化

よくある誤解

帯域が広ければ速い

→ ウィンドウサイズが不足すると速度は出ません。

MTUだけ調整すれば良い

→ ウィンドウサイズも重要です。

遅延は関係ない

→ RTTはスループットに直結します。

まとめ

TCPの通信速度は、 ウィンドウサイズとRTTによって大きく左右されます。

BDP(帯域遅延積)は、 回線をフル活用するために必要なウィンドウサイズの指標です。

高速・長距離通信では、 ウィンドウサイズが不足すると帯域を使い切れません。

TCPウィンドウスケーリングや適切な設定により、 ネットワーク性能を最大限に引き出すことが可能です。

ネットワーク設計やトラブルシュートにおいては、 帯域だけでなく「遅延とウィンドウ」の関係を理解することが重要です。