管道粗细表示链路带宽,长度表示 RTT。发送窗口内的数据包流动,接收侧 ACK 返回后发送下一个窗口。如果窗口小于 BDP,管道会出现间隙。
$$\text{BDP} = \text{Bandwidth} \times \text{RTT}$$
带宽延迟积。链路上同时可传输的比特数上限。RTT 单位为秒。
$$\text{Throughput}_{\text{Mathis}} \approx \frac{\text{MSS}}{\text{RTT}} \cdot \frac{1}{\sqrt{p}}$$
Mathis 公式的吞吐量上限。p 为数据包丢失率(小数)。丢失率的平方根倒数起效,微小丢失也会大幅降低上限。
$$\text{Throughput} \le \min(\text{Bandwidth},\ \tfrac{W}{\text{RTT}},\ \tfrac{\text{MSS}}{\text{RTT}\sqrt{p}})$$
有效吞吐量由「物理带宽·窗口律速·丢失律速」的最小值决定。W 为 TCP 窗口大小(字节)。