TCP 帯域遅延積 (BDP) 計算機|ウィンドウサイズと回線上限の逆算
帯域幅と RTT から TCP の帯域遅延積 (BDP) を求め、バイト数・KiB・MiB・パケット数で表示する計算機。64 KiB 既定ウィンドウで頭打ちになるかを判定し、ウィンドウスケーリングの要否を可視化する。
💡 このツールについて
「回線は 1 Gbps なのに転送が数十 Mbps で止まる」——長距離リンクでこの症状に当たったことがあるネットワーク管理者は多い。原因はしばしば TCP のウィンドウサイズで、帯域遅延積 (BDP = 帯域 × RTT) が送信ウィンドウを超えると、相手の ACK を待つあいだ回線が遊んでしまう。
このツールは帯域幅 (Kbps / Mbps / Gbps) と RTT (ms) を入れるだけで、BDP をバイト・KiB・MiB で算出する。さらに MSS = 1460 バイト (IPv4 + Ethernet 想定) でパケット数に換算し、ウィンドウスケーリング (RFC 7323) なしの既定 64 KiB ウィンドウでは何 Mbps が上限になるかを併記する。LAN・メトロ回線・大陸間・太平洋越え・静止衛星・4G LTE の 6 プリセットを持つので、自分の環境に近い回線を選んで挙動の当たりをつけられる。サーバーやルーターの送受信バッファを BDP に合わせて調整する前段の、見積もり用途に向く。
🧐 よくある質問
Q. BDP は何に使う値ですか? A. TCP の送信ウィンドウ (受信バッファ) を BDP 以上に確保すれば、ACK 待ちで回線が止まらず帯域を使い切れます。BDP は「飛行中のデータ量」の目安です。
Q. なぜ 64 KiB が境界なのですか? A. TCP ヘッダの window フィールドは 16 ビットで、最大 65,535 バイト (約 64 KiB) しか表せません。これを超える BDP ではウィンドウスケーリング (RFC 7323) で window を左シフトして拡張する必要があります。
Q. RTT はどう測ればよいですか?
A. ping の往復時間が目安です。経路や輻輳で変動するため、ピーク時の値を入れると安全側の見積もりになります。
Q. パケット数の MSS=1460 はどこから来ますか? A. Ethernet の MTU 1500 から IPv4 ヘッダ 20 + TCP ヘッダ 20 を引いた値です。IPv6 や PPPoE、トンネルを使う環境では MSS が小さくなり、パケット数は増えます。
Q. ジャンボフレームや別の MSS には対応しますか? A. 本ツールは MSS 1460 固定です。ジャンボフレーム環境では実際のパケット数は表示値より少なくなりますが、BDP のバイト数自体は MSS に依存しないためそのまま使えます。
Q. 帯域に Kbps と Mbps があるのはなぜ? A. モバイルの一部は Kbps オーダー、データセンター内は Gbps オーダーと幅が広いためです。3 単位を切り替えれば桁を間違えずに入力できます。
📚 帯域遅延積と「長く太いパイプ」問題
ネットワークの世界では、帯域が大きく遅延も大きいリンクを LFN (Long Fat Network) と呼ぶ。RFC 1323 (現在は RFC 7323 に更新) はこの LFN を扱うために生まれた仕様で、ウィンドウスケーリングと TCP タイムスタンプを定義した。BDP が大きいほど、パイプを満たすために「飛行中」に保つべきデータ量が増える——水道管に喩えると、太くて長いホースほど、蛇口を開けてから出口に水が届くまでに大量の水が管内に必要になるのと同じ理屈である。国内の LAN なら RTT が 1 ms 未満で BDP は数十 KiB に収まるが、日本とブラジルを結ぶような経路では RTT が 250 ms を超え、1 Gbps だと BDP が 30 MB 級に膨らむ。この規模になると OS 既定のバッファでは足りず、チューニングが要る。