MCPで接続 →

計算を入力してください

公式

広告

結果

最大TCPスループット
10.49
Mbps
スループット(Kbps) 10,485.76 Kbps
スループット(bps) 10,485,760 bps

TCPスループット計算ツールとは?

このツールは、TCPの受信ウィンドウサイズとネットワークのラウンドトリップタイム(RTT)をもとに、1本のTCPコネクションが理論上出せる最大スループットを試算します。TCPは「確認応答(ACK)がまだ返ってきていないデータ」を、一度にウィンドウサイズ分しか送信できません。そのため、回線そのものの帯域幅がどれだけ大きくても、ウィンドウサイズとRTTの組み合わせが転送速度の上限を決めてしまいます。これがよく知られた帯域幅遅延積(bandwidth-delay product)による制約です。

使い方

TCPウィンドウサイズをキロバイト(KB)で、ラウンドトリップタイムをミリ秒(ms)で入力してください。ツールはウィンドウサイズをビットに、RTTを秒に変換したうえで割り算を行い、スループットをMbps・Kbps・bpsで表示します。ウィンドウを大きくする、あるいはRTTを小さくすると、到達できるスループットはどちらの場合も上がります。

計算式の仕組み

基本となる式はとてもシンプルで、スループット = ウィンドウサイズ ÷ RTT です。単位をそろえるために、次のように換算します。1 KB = 1024 バイト = 8192 ビット。RTTはミリ秒を1000で割って秒に変換します。したがって1秒あたりのビット数(bps)は、次の式で求められます。

$$\text{スループット (Mbps)} = \frac{\text{ウィンドウ (KB)} \times 1024 \times 8}{\text{RTT (ms)} / 1000} \times \frac{1}{10^{6}}$$

これを1,000,000で割ればMbpsになります。

広告
ネットワークリンクを通じて送信されるTCPウィンドウのデータと、1往復時間後に返ってくる確認応答を示す図
TCPのスループットは、1往復時間(RTT)あたりにどれだけのデータ(ウィンドウサイズ)を送れるかで決まります。

計算例

たとえばTCPウィンドウが64 KB、RTTが50 msだとします。ウィンドウをビットに直すと \(64 \times 1024 \times 8 = 524{,}288\) ビット。RTTを秒に直すと \(50 / 1000 = 0.05\) 秒です。スループットは次のようになります。

$$524{,}288 \div 0.05 = 10{,}485{,}760 \text{ bps} \approx 10.49 \text{ Mbps}$$

より高速な回線をフルに使い切るには、ウィンドウをさらに大きくする必要があります(TCPウィンドウスケーリング)。

スループット、ビット単位のウィンドウサイズ、往復時間の関係を示す公式の三角形
スループットは、ビット単位のウィンドウサイズを秒単位のRTTで割った値に等しい。

よくある質問

なぜスループットが回線速度と一致しないの? RTTが大きい経路で小さなウィンドウを使うと、同時に転送できるデータ量が制限されてしまうためです。長距離回線でウィンドウスケーリングが欠かせないのは、まさにこの理由からです。

目標速度を出すにはどれくらいのウィンドウサイズが必要? 式を変形して、\(\text{ウィンドウ (ビット)} = \text{スループット} \times \text{RTT}\) で求められます。この積が帯域幅遅延積であり、理想的なバッファサイズの目安になります。

パケットロスは考慮されている? いいえ。これはロスのない状態での理論上の最大値です。実際のロスを伴う回線ではスループットはこれより低くなり、Mathis(マシス)の式を使うほうが現実に近いモデル化ができます。

最終更新: