Howdy,
I’m very close (probably a few days to a week away) from posting a detailed likely solution to your problem.
First step is to verify that your network issues are network loss related. I’ve been looking around for tools, so far the best I’ve found is to use ntop, run it from a command line, then open a webpage
http://hostname:3000
You can use “localhost” for the above URL if monitoring from the same machine and you don’t have to install a full-blown webserver, ntop should launch an HTTP stub.
If you’ve verified packet losses (or maybe you just want to just go make changes)
I’m preparing a more complete update, comments and analysis but the first step is to increase the TCP socket buffers, particularly the send buffers in your case. Older info can be found here
Linux Tune Network Stack (Buffers Size) To Increase Networking Performance
As noted in that article and elsewhere, the default buffer sizes in today’s Linux kernels are very tiny, only appropriate for “typical” use. Your attempts to transfer a very large file and especially over a very long distance is not “typical” use.
The next step is to make your use of the buffers more efficient, the default Congestion Control algorithm in today’s Linux kernels is cubic which by reputation is “very conservative” and assumes transferring relatively small files over excellent network links.
For now until I can post updated info, you can change the Congestion Control algorithm to one that’s more appropriate to the size of file, your available theoretical bandwith and link quality
TCP and Linux’ Pluggable Congestion Control Algorithms LG #135
If you run the command to list available algorithms, you’ll find the list of algorithms on that page are mostly but not completely current, but I’ve found that choosing just based on the general description may not work as expected… Unless you dig into exactly what each algorithm does, trial and error is probably best.
Also, you’ll find that while modifying the TCP buffer sizes is persistent across reboots, the Congestion Control algorithm is not. You may want to follow my current thread in this newsgroup on my attempt to find a persistent solution:
How to Persist TCP Congestion Control algorithm change?
Keep tuned for my updated info which will attempt to be more complete than what’s scattered across the web and may be a bit dated…
HTH,
Tony