enter image description here

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?

  • 1
    Don't you think bandwidth would have some effect on throughput? – Ron Trunk Nov 2 '15 at 16:45
  • Is bandwidth only used in calculating the throughput efficiency...? – Casper Nov 2 '15 at 16:49
  • Latency will affect throughput if you are using TCP and needing to wait for ACK. – Ron Maupin Nov 2 '15 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? – Ron Trunk Nov 2 '15 at 16:50
  • Yes, that's true. can you further elaborate? – Casper Nov 2 '15 at 16:55

Yes, this is completely normal. And you use the minimum value of the calculations that you have done above. Think about how long it would take to move a box of paper down the hall - now imagine that you had to do it one page at a time. However, increasing the receive window is not always the answer. Sometimes the client makes small layer 7 requests (SMB does this a lot). So, a 64K TCP window won't help if client is only asking for 4KB blocks waiting for it to arrive then asking for the next one. You may also need to consider TCP slow-start in the equation.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.