I have 2 machines connected to a switch via 1Gb Ethernet cables. I am sending TCP traffic from one host to another. I wanted to see how many re-transmitted packets are there from sender side using netstats. to my chagrin, there was not any re-transmission. Should not the cwnd grow too large and packet loss should occur, resulting in re-transmission. Need expaination.

  • Where retransmission should be taken from? Where do you see the source for packet loss in your scheme? – Akina Aug 9 '19 at 8:55
  • I have not seen any packet loss. But considering the way TCP congestion algorithm work, should not cwnd at some point grow too large that packet loss at the switch occur? I don't understand no packet loss in this case. – Ramzah Rehman Aug 9 '19 at 8:58
  • Why would it grow too large? – Seth Aug 9 '19 at 9:14
  • Because cwnd increases every rtt, and tcp sends at cwnd/ rtt rate. The rate would eventually exceed the network bandwidth of 1Gbps. (I have run the TCP flow for a fairly long time). – Ramzah Rehman Aug 9 '19 at 9:33

It doesn't work as you are expecting.
The cwnd/rtt rate does increase but it can't get any further than the physical transmision speed on the underlying interface can process.
Your expected re-transmissions never show because the output queue throttles itself before that point is reached. The data-delay caused by the throttling happens in the application output buffer which is not visible in the information netstat shows.

  • Thank you so much for the explanation! – Ramzah Rehman Aug 9 '19 at 10:29

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.