Ftp slows down when using proxy

0 votes
asked Nov 26, 2013 by muzikpeter (180 points)
edited Nov 26, 2013

I'm testing Ftp with Rebex.net with VisualStudio 2013 .net version v4.0.30319.

Without proxy the same ftp site works fine, but when I have to use proxy it slows down. The time for connection takes 50 seconds, the upload takes another 50-60 seconds, and is nearly independent of the size of uploaded file: 10 KB upolad = 50 seconds, 2 MB upload = 60 seconds. The ftp site and the proxy are o.k. , with TotalCommander the upload speed is normal.

My code:

client.Proxy.Host = "proxy.*.de";

           client.Proxy.Port = 8080;
           client.Proxy.ProxyType = Rebex.Net.FtpProxyType.HttpConnect;
           client.Proxy.AuthenticationMethod = Rebex.Net.FtpProxyAuthentication.Ntlm;
           client.Passive = true;

//for speed and success of transfer these settings seems indifferent:

           client.TransferType = Rebex.Net.FtpTransferType.Ascii;
           client.MaxUploadSpeed = 0;
           client.Options = Rebex.Net.FtpOptions.ConnectPassiveLater;

////////////////////////////////////////////////////////////////////////////

           client.Proxy.UserName = "ProxyUser";
           client.Proxy.Password = "ProxyPassword";
           client.Connect("ftp.***.hu", 21);
           client.Login("FtpUser", "FtpPassword");
           client.Upload("anyfile.txt", "In");
           client.Disconnect();

Thanks

Peter Muzik Pharmasoft Bt

Applies to: Rebex FTP/SSL

3 Answers

0 votes
answered Nov 26, 2013 by Tomas Knopp (58,890 points)
edited Nov 26, 2013

Please try enabling the UseLargeBuffers property like this:

Ftp client = new Ftp();
client.Settings.UseLargeBuffers = true;

Is the speed ok now?

0 votes
answered Nov 26, 2013 by muzikpeter (180 points)
edited Nov 26, 2013

Still slow :( MP

0 votes
answered Nov 26, 2013 by Tomas Knopp (58,890 points)
edited Nov 26, 2013

Hello,

could you try to experiment with the Ftp.UploadBufferLength property? Default is 16KB (i.e. 16*1024). Could you try to increase and decrease the property from the minimum value of 2KB (2*1024) up to the maximum of 16MB (16*1024*1024)?

It would also be useful to experiment one time with the UseLargeBuffers property enabled and second time with the option disabled.

Rebex FTP does the actual data transfer the same whether or not a proxy is used. So we think that Total Commander is able to perform better due to better 'guessing' the right buffer length.

If changing the UploadBufferLength does not help, please create a WireShark log of the actual TCP/IP packets from the TotalCommander transfer and another log from the Rebex transfer and send it to us for analysis.

...