Reducing requests when making multiple connections to the same FTP site.

0 votes
asked Oct 5 by lanopk (1,070 points)


I use multiple FTP connections to one FTP site.
So, from the second FTP connection, I wanted to complete the connection quickly by not sending the FEAT command.

I used "DoNotDetectFeatures=true" on the connection except the first connection.
However, with this setting, "SupportedExtensions" will be 0 and settings such as UTF-8 Encoding will not work.

This seems to be normal behavior.

If I make multiple connections to the same server,
Can I reduce unnecessary requests like FEAT and enable fast connections?
For example, setting "ftp.SupportedExtensions = oldftp.SupportedExtension".

Also, in FTPS, TLS connection takes a lot of time, so if I use multiple connections, is there a way to reduce this time?

Thank you.

Applies to: Rebex FTP/SSL

1 Answer

0 votes
answered Oct 5 by Lukas Pokorny (115,410 points)
selected Oct 5 by lanopk
Best answer


DoNotDetectFeatures was intended as a workaround for broken FTP servers where feature detection triggers various bugs. Disabling it might cause undesirable behavior with common FTP servers and we advice against - the increased likelihood of unforeseen compatibility issues is not usually worth the small speedup.

Setting SupportedExtensions is not currently supported, and if added, it would open a whole new category of compatibility issues caused by mismatches between the custom-set value and the actual feature set of an FTP server. Again, this does not seem to be worth the small speedup.

However, UTF-8 can be enabled with feature detection disabled. Call ftp.SendCommand("OPTS UTF8 ON") followed by ftp.ReadResponse(), and if it indicates successful, set ftp.Encoding to Encoding.UTF8.

Setting ftp.Settings.ReuseControlConnectionSession to true will speed up the first data connection a bit, and disabling classic Diffie-Hellman ciphers might speed up the control connection TLS negotiation slightly. If this is not sufficient, we would need to know what you precisely mean by a "lot of time", and a communication log at debug level showing the slowness.

commented Oct 5 by lanopk (1,070 points)
Thank you for the detailed answer.