"The network with an effective 40% loss rate is quite unusable. The network with an effective (round-trip) 5% loss rate is, perhaps somewhat surprisingly, still effectively unusable for any interactive app. Consider an HTTP request that gets 20kB of data. Without loss and without cached ssthresh, this will take five RTTs not counting the FIN exchange. (One for SYN/SYNACK, and then four for the 14 data packets, with slow start doubling the window at every RTT and sending an incomplete last window.) Consider a web page. A very minimalistic one might take 25 RTTs (include some DNS and a picture or two and maybe a stylesheet). With objects this short, fast retransmit can't work. (HTTP/1.1 running over TCP with real SACK support could help a bit here, but let's get back to this universe.) Assuming uncorrelated loss, that's 72% probability of going into timeouts, which will dominate the total user-experienced delay. You want 99th or 99.9th percentile for what you're trying to do, unless the..."
- Stanislav Shalunov