Are we still limited by TCP Window Size when we want to fully utilize bandwidth from far away servers? [closed]

According to this website, as soon as round-trip time is increased, we lose a bit of our real-time capacity throughput to distant servers using default TCP Window size of 64KB.

My network bandwidth is 240mb/60mb down/up. I live in a third-world country where all CDN servers available is 2000-4000km away from me, and my round-trip time to the closest CDN server is 82ms which means my maximum attainable speed due to distance is just around ~6Mbit/s assuming the server is using default 64KB TCP window size.

I understand that opening multi download streams to certain server can help achieve max bandwidth, but sadly even with having simultaneous 32 streams at once, my download speed is still not able to reach max potential speed to the distant server.

So what can I do in this case to achieve full speeds to those servers assuming no local server is available?

Answer

TCP uses window size and it’s built-in ramp-up process, and increasing the window size is the first step to send bigger packets on the same path and thus have bigger and more packets “on-the-wire” and not having to wait for them to be received and then acknowledged. Another way to not have to worry about the ramp-up and other TCP mechanisms is to tunnel your traffic over a more effective protocol like UDP (as long as you don’t suffer from transmission errors like drops etc), and therefor optimize the traffic by using a tunnel that is already running “optimally” with full performance and no handshaking needed.

In Linux you can increase the memory for the send buffers, start by looking at net.core.rmem_max/wmem. It could be worth to look at other guides around performance optimisation, if you are indeed running Linux: Sane value for net.ipv4.tcp_max_syn_backlog in sysctl.conf or search for “tune linux for high latency connections”.

I don’t have much experience with windows, so if that is what you are using then you are on your own, but I assume there are loads of information regarding the network stack optimisation there as well, I just can’t point to them.

Attribution
Source : Link , Question Author : Matuji , Answer Author : Fredrik

Leave a Comment