通过MCP连接 →

输入计算

数学公式

广告

结果

最大 TCP 吞吐量
10.49
Mbps
吞吐量(Kbps) 10,485.76 Kbps
吞吐量(bps) 10,485,760 bps

什么是 TCP 吞吐量计算器?

这款工具能根据 TCP 接收窗口大小和网络往返时延(RTT),估算单条 TCP 连接在理论上能达到的最大吞吐量。由于 TCP 在同一时刻只能让"一个窗口"的未确认数据处于"在途"状态,因此窗口大小与 RTT 共同决定了数据传输速度的上限——无论物理链路的带宽有多高。这一关系正是著名的带宽时延积(BDP)约束。

如何使用

输入以千字节(KB)为单位的 TCP 窗口大小,以及以毫秒(ms)为单位的往返时延。计算器会先把窗口换算成比特、把 RTT 换算成秒,再相除得出以 Mbps、Kbps 和 bps 表示的吞吐量。窗口越大或 RTT 越低,可达到的吞吐量就越高。

公式详解

核心公式非常简单:吞吐量 = 窗口大小 ÷ RTT。为了保证单位一致,需要先做换算:1 KB = 1024 字节 = 8192 比特,而毫秒级的 RTT 要除以 1000 换算成秒。因此,以比特每秒(bps)计的吞吐量 =(窗口 KB × 8192)÷(RTT ÷ 1000)。再除以 1,000,000 即可得到 Mbps。

$$\text{吞吐量 (Mbps)} = \frac{\text{窗口 (KB)} \times 1024 \times 8}{\text{RTT (ms)} / 1000} \times \frac{1}{10^{6}}$$
Advertisement
示意图展示通过网络链路发送的 TCP 数据窗口,以及经过一个往返时间后返回的确认
TCP 吞吐量取决于每个往返时间(RTT)内可以传输的数据量(窗口大小)。

实例演算

假设 TCP 窗口为 64 KB,RTT 为 50 ms。窗口比特数 = \(64 \times 1024 \times 8 = 524{,}288\) 比特。RTT 秒数 = \(50 \div 1000 = 0.05\) 秒。吞吐量 = \(524{,}288 \div 0.05 = 10{,}485{,}760\) bps ≈ 10.49 Mbps。若想充分利用更快的链路,就需要更大的窗口(即 TCP 窗口缩放)。

关联吞吐量、以比特为单位的窗口大小和往返时间的公式三角形
吞吐量等于以比特为单位的窗口大小除以以秒为单位的 RTT。

常见问题

为什么我的吞吐量达不到链路速率?因为在高 RTT 的路径上,较小的窗口限制了同时能处于传输状态的数据量。这正是长距离链路通常需要窗口缩放的原因。

要达到目标速率需要多大的窗口?把公式变形即可:窗口(比特)= 吞吐量 × RTT。这个乘积就是带宽时延积,也就是理想的缓冲区大小。

这个公式考虑了丢包吗?没有——这只是无丢包情况下的最大值。在有丢包的链路上,实际吞吐量会更低,用 Mathis 公式来建模更为准确。

最后更新: