網路量測、管理與效能

頻寬延遲乘積(bandwidth-delay product)

把一條網路路徑想成一根輸水的管子。管子的寬度是它的頻寬——每秒能流過多少。它以時間計的長度是延遲——水從一端流到另一端要多久。當管子完全裝滿時所容納的水量,是這兩者的乘積:寬度乘以長度。頻寬延遲乘積(bandwidth-delay product)正是這個——一條路徑裡同時能有多少位元「在途中」、已上路但尚未交付。

算式就是頻寬乘以往返時間。取一條 100 Mbps、往返時間 40 ms 的連結:每秒 100,000,000 位元乘以 0.040 秒等於 4,000,000 位元,約 500 KB。那就是必須在路徑中行進、尚未被確認、才能讓管子保持裝滿且忙碌的資料量。送得比那少,管子就有一部分是空的——傳送端會不斷停下來,在被允許送更多之前等待確認,於是它永遠達不到連結的全速。頻寬延遲乘積就是滑動視窗(sliding window)為了有效率地使用路徑而必須達到的目標。

這就是為什麼傳送端的視窗如此重要,也是為什麼這不只關乎頻寬。TCP 能送出的未確認位元組數只到它的視窗允許的量;如果那個視窗小於頻寬延遲乘積,那麼無論連結多粗,吞吐量都會被壓在遠低於連結速度之處。這就是衛星或洲際連結這類高速、高延遲路徑上經典的「長肥管」(long fat pipe)問題,也是 TCP 需要視窗縮放(window scaling)選項、以允許視窗超過舊有 64 KB 上限的原因。關鍵在於,增加頻寬會抬高這個乘積,所以一條延遲相同但更快的連結需要更大的視窗——更多容量並不減少延遲,它只是要求更多資料在途中才能填滿。

一條衛星路徑提供 50 Mbps,但往返時間是 600 ms。它的頻寬延遲乘積是 50,000,000 × 0.6 = 30,000,000 位元,約 3.75 MB。如果你的 TCP 視窗只有 1 MB,你在停下來等確認之前永遠送不出超過 1 MB,於是被壓在約 13 Mbps——連結速度的四分之一——直到視窗被加大為止。

頻寬乘以往返時間,得到路徑裝滿時容納的位元數;小於這個值的視窗會把吞吐量壓在遠低於連結速度之處。

增加頻寬會抬高這個乘積,所以一條延遲相同但更快的連結需要更大的視窗才能填滿——更多容量並不減少延遲,而傳播延遲快不過光速。

又称
BDPthe pipe sizein-flight capacity管道容量