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?