Physics dictates that you cannot fill a pipe if you can't push data fast enough before waiting for an acknowledgement. This is the Bandwidth-Delay Product.
1. The Formula
BDP (bits) = Bandwidth (bits/sec) ร Round Trip Time (sec)
If you have a 1 Gbps link to a server with 200ms RTT: 25 MB of data is "in flight" at any moment.
2. The Solution: TCP Window Scaling
Modern OSs handle this with "Auto-Tuning." On high-latency links, manually enabling TCP Window Scaling (RFC 1323) ensures the window can grow large enough to fill the pipe.