Internet Upload Speed
Nov. 29th, 2016 04:37 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)

About one week ago we noticed that upload from my computer to remote servers became quite slow.
Speed test indicates that while upload speed is good (80 - 90 Mbps), download speed is getting worse on remote servers.
My computer is in Jacksonville area and upload speed to Orlando servers is quite fast:
http://www.speedtest.net/my-result/5837858780
Orlando, FL
Ping: 21 ms
Download speed: 90.13 Mbps
Upload speed: 9.55 Mbps
That is close to 10 Mbps upload speed that Comcast claims to have for my account.
However the further away the server is - the longer is ping time and the worse is upload speed:
http://www.speedtest.net/my-result/5837865645
Dallas, TX
Ping: 47 ms
Download speed: 90.12 Mbps
Upload speed: 5.14 Mbps
http://www.speedtest.net/my-result/5837843259
Remote server: Seattle, WA
Ping: 83 ms
Download speed: 90.13 Mbps
Upload speed: 3.12 Mbps
http://www.speedtest.net/my-result/5837868925
London, UK
Ping: 115 ms
Download speed: 87.99 Mbps
Upload speed: 2.31 Mbps
http://www.speedtest.net/my-result/5837874972
Chelyabinsk, Russia
Ping: 188 ms
Download speed: 86.41 Mbps
Upload speed: 1.52 Mbps
Why does upload speed deteriorate proportionally to the ping to the remote server (but download speed stays the same)?
My hypothesis is that network protocol waits after every chunk of data for the response from the remote server (instead of continuing sending new chunks of data).
By why?
Comcast technician came today and found that there was some network issues with upload frequency. Lost packets during upload may initiate resynchronization waits that would drag upload speed down on connections with slower ping.
Comcast technician promised that within couple of days, Comcast network crew should fix the issues.
We'll see how that would change my upload speed.
Update (thanks to anspa recommendation):
PingPlotter shows a lot of Packet Loss with my Internet connection:

no subject
Date: 2016-11-29 10:55 pm (UTC)2) I actually tried to add DefaultReceiveWindow and DefaultSendWindow to registry:
http://www.miersengineering.com/2015/03/480/
It increased upload speed a little for connections with "nearby" servers.
But upload speed to remote servers is still slow.
no subject
Date: 2016-11-29 11:47 pm (UTC)On Windows the similar thing is called "Network Monitor" if I remember right, might be downloadable from MSDN. Or some 3rd-party tool like Wireshark.
Basically look at the dump of the TCP packets and see if the send window gets all used up. You'll also see the retransmits if the packets get lost. A lost packet resets the window size for this connection down to 0 if I remember right. but the modern TCP implementations might be smarter. Linux actually has the pluggable modules for retransmit policies and you can tune them in a very wide range.
2) The send window is the one you need for upload. I'm not sure about the exact settings but it might be also limited by the configuration of the network card driver. Try looking in the NIC device properties.
no subject
Date: 2016-11-30 05:19 am (UTC)I updated this posting with the graph from PingPlotter.
Is that kind of data that you are suggesting to extract using tcpdump/Network Monitor?
2) What "NIC device" do you mean? Cable modem?
no subject
Date: 2016-11-30 06:18 am (UTC)no subject
Date: 2016-11-30 07:40 pm (UTC)BTW, the easy way to see the retransmit is to use the plain old command-line FTP with the hash printing enabled (it will print "#" for each block of data sent). You'll see these hashes printed fast when the data flows nicely, and hiccuping when a packet gets lost.
But PingPlotter's data is useful too. Traceroute ("tracert" on Windows) would probably give the approximately same information. It looks like Comcast has some kind of issues where their network connects to another provider, with the delays and packet loss.
2) The network card in your computer. BTW, the other side also has its settings for the maximal windows sizes, and the smallest of the two gets actually used. So your increasing the setting on your side might not help at all if the other side already has the lower limits.
no subject
Date: 2016-11-30 06:26 am (UTC)