TCP window size and throughput
January 26, 2010 04:41:31 Last update: January 26, 2010 04:41:31
If no packets are dropped, TCP throughput can be calculated from the TCP window size and network latency:
Assume that the TCP window size is 64KB and the RTT is 40ms, the throughput is:
Note that the throughput has nothing to do with the bandwidth, which is the result of assuming that no packets are dropped, basically assuming that the bandwidth is infinite. Therefore, the bandwidth shown above is the maximum possible bandwidth given TCP window size and latency.
But in reality the bandwidth is limited and throughput won't grow infinitely with the TCP window size - it can only grow to as big as the bandwidth allows. So what's the optimal TCP window size for a given bandwidth?
With optimal window size, assuming that no packets are dropped, the throughput equals the bandwidth.
Resources:
throughput = TCP window size / RTT (roud trip time)
Assume that the TCP window size is 64KB and the RTT is 40ms, the throughput is:
65936 Bytes / 40 ms = 1.6 MBytes/s = 13 Mbits/s
Note that the throughput has nothing to do with the bandwidth, which is the result of assuming that no packets are dropped, basically assuming that the bandwidth is infinite. Therefore, the bandwidth shown above is the maximum possible bandwidth given TCP window size and latency.
But in reality the bandwidth is limited and throughput won't grow infinitely with the TCP window size - it can only grow to as big as the bandwidth allows. So what's the optimal TCP window size for a given bandwidth?
optimal window size = RTT * bandwidth
With optimal window size, assuming that no packets are dropped, the throughput equals the bandwidth.
Resources: