I try to emulate a network comprised of 2 host and 1 switch using Mininet. One host is a sender, sending packets continuously to the other host (receiver) by using iperf tool.
H1----------------------------Switch--------------------------H2
-------100Mbps|0.125ms-----------100Mbps|0.125ms------
The link between host and switch has bandwidth of 100Mbps and delay of 0.125ms.
Each packets sent has size of 1.5KB and Switch has buffer of 400 packets.
Delay of each link is 0.125ms so the RTT between H1, H2 is 4*0.125=0.5ms
CWND (congestion window) is the number of packets that sender send in one RTT, so the throughput is computed as: throughput = CWND/RTT.
Because MAX(througput) < bandwidth so CWND < RTT*bandwidth=0.5*10^(-3)*100*10^6=50000b~6KB = 4packets
But when I monitor CWND using tcp_probe tool, it surprisingly display with CWND always bigger than 200KB (~120packets), much bigger than what I expected.
Even the buffer is 400 packets, but It cannot has CWND so large like that.
Please explain it for me, I'm really stuck at this problem. Thank you!