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 extends the 16-bit window field by a shift factor, allowing windows up to 1 GiB. Without it, a single TCP flow cannot fully use a fast long-distance link.
What window size do I need for 1 Gbps at 100 ms RTT?
BDP = 125 MB / s × 0.1 s ≈ 12.5 MB. You need a window of about 12.5 MB to saturate a 1 Gbps link at 100 ms RTT.