We are trying to decrease the initial latency on TCP connections to our servers. In some test we found that when we download a file below 15587 bytes the total downloading time (apache benchmark total) is 52ms. But, when we add an extra byte, this time is increased until 77 ms. After some test and further investigations we have found that the problem is that our AWS Linux server has 10 as default value for the TCP Initial Congestion Window. When we increase this value, we are able to send files below 28969 bytes with 52ms, which is good.

Now the problem is that, even though we increase the initcwnd to high values, we are not able to overcome this limit.

Does it exist any other extra parameter, apart from the initcwnd, that could help us to overtake this limit? Does somebody have a similar scenario or a suitable solution?

Many thanks in advance,


  • What is the round-trip time between where you are testing from and where your server is located? – Michael - sqlbot May 15 '17 at 0:09
  • The "client's" Receive Window will ultimately decide the maximum amount of data that can be in-flight at any time. You should make sure that the client side rwin is not limiting the throughput. – Mark Riddell May 15 '17 at 6:51
  • @Michael-sqlbot: I'm testing from a server in Germany to a Server on AWS (Ireland). The RTT is 25ms. – Joan Tomàs May 15 '17 at 14:25
  • @MarkoPolo: If we increase the client rwnd, the limit increases but not at same speed. That is, I expect that the number increases linearly on the MSS but its increment is really lower. Even though, this is not a parameter that we can consider due to this will imply to modify the setup of our users and it is not an option ;-) – Joan Tomàs May 15 '17 at 14:29
  • Thanks, that makes perfect sense, since >> SYN << SYN+ACK >> ACK + GET ... << HTTP/1.1... needs ~50ms, and then another 25ms for more data to be released. It wasn't clear where the 52ms and 77 ms were coming from, but this lines up pretty much perfectly with 25ms RTT. – Michael - sqlbot May 15 '17 at 14:48

Your Answer

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

Browse other questions tagged or ask your own question.