# How to determine the throughput of the TCP connection?

APP 1 sends data to APP 2 over a TCP connection through an IP network. The one-way delay is 10ms. The TCP connection bandwidth is 100 Mbps. The system starts up with a WINDOW set at 4,000 bytes.Thereafter, APP 2 will advertise to the sender APP 1 a WINDOW of 4,000 bytes on top of an acknowledge. APP 2 maintains a buffer of 16,000 bytes, and it can consume the received data at a rate of 200,000 bytes/sec. How do I calculate its throughput?

RCV buffer size / RTT = Max TCP throughput

RTT = 2 * 10ms = 20 * 10^-3

The WINDOW size can be increased to 16,000 bytes. So 16,000 bytes is the RCV buffer size?

Therefore, throughput = (16,000 * 8)/(20 * 10^-3) / 8 = 800,000 bytes/sec.

However, this result is larger than the consumption rate of APP 2. It seems so odd. If 16,000 is replaced by 4,000, the answer is 200,000. Does this seem normal?

• Don't you think bandwidth would have some effect on throughput? Nov 2, 2015 at 16:45
• Is bandwidth only used in calculating the throughput efficiency...? Nov 2, 2015 at 16:49
• Latency will affect throughput if you are using TCP and needing to wait for ACK. Nov 2, 2015 at 16:49
• No, but you didn't include it in your formula for throughput. Don't you think a high bandwidth link would have more throughput than a low bandwidth link? Nov 2, 2015 at 16:50
• Yes, that's true. can you further elaborate? Nov 2, 2015 at 16:55