What is the bandwidth-delay product (BDP)?
BDP = bandwidth × round-trip time. It is the minimum amount of data 'in flight' needed to keep a link saturated. If the TCP window is smaller than BDP, throughput is capped.
Why does high RTT cap TCP throughput on big links?
TCP waits for ACKs every RTT. A small window means few unacknowledged segments at once, so a long RTT leaves the link idle. Window scaling fixes this on 'long fat networks'.
How does TCP window scaling help long-fat networks?
RFC 1323 window scaling lets you extend that cramped 16-bit window field with a shift factor. The payoff: windows that climb all the way to 1 GiB. Skip it, and a single TCP flow chokes on fast long-distance links—you're leaving bandwidth on the table.
What window size do I need for 1 Gbps at 100 ms RTT?
To saturate a 1 Gbps link at 100 ms RTT, you need a window of about 12.5 MB. Here's the math: BDP = 125 MB / s × 0.1 s ≈ 12.5 MB.