masneyb / gftp

gFTP is a free multithreaded file transfer client for *NIX based machines. 56 language translations available.
http://www.gftp.org
MIT License
116 stars 21 forks source link

Slow upload. #148

Open MartinX3 opened 2 years ago

MartinX3 commented 2 years ago

My upload is 0.5MB/s regardless of the server. Even to a local computer via (w)lan.

But my internet speed test tells me 45 mb/s upload (and 100mb/s download)

I sadly don't know how to debug it.

wdlkmpx commented 2 years ago

One problem I had while performing tests with a local server is that FTP transfers happened too fast, so I went to gFTP menu -> Preferences -> Network -> Max KB/S and set a value higher than 0.00, that effectively sets a speed limit, you might also want to change Transfer block size and see what happens...

Other than that, SFTP transfers are always somewhat slow, when I upload files to sourceforge I see my upload speed is 100 kb/s, with firefox I don't see my upload speed but transfers happen like 5x-10x faster, so there's something going on that needs fixing

One protocol that is slow by design is FSP (Flaky Stream Protocol), I think I'll just remove my FSP repos (forks) and remove FSP support from gFTP again, I have other things to do

MartinX3 commented 2 years ago

I tried sftp in filezilla.

gFTP -> 700kb/s filezilla -> 5mb/s

my max upload is 40mbit/s so the 5mb/s are my max upload speed and filezilla has not this bug.

The max transfer speed didn't change it.

I sadly can't see what transfer block size filezilla uses. Probably some hardcoded value in the code or maybe it communicates with the server to get the right size.

And I can't remember if gFTP was fast in the past. I thought until today I had some network issues on my computer.

wdlkmpx commented 2 years ago

SFTP support is stuck in the past, it's not directly supported. gftp execs ssh and then performs operations to display stuff in the interface,

That's why it works even when SSL is disabled (this is good and bad at the same time), I think it's quite possible to implement a native SSH support now that SSL stuff apparently works fine with as many connections as needed

The SSL layer is not supported in SFTP mode, but the answer is in the FTP implementation, some code examples. I'm not sure what is exactly slowing down SSH transfers but I'll take a closer look to see if something is obviously wrong

So overall, some stuff can happen but requires a certain level of expertise since we're not using an external lib like lib libcurl, but developing the whole thing (this is good and bad at the same time)