Apache's `FTPClient` fails to download a file which is perfectly downloaded by FileZilla.

Basically, what I'm trying to do after a successfull login and listing is to download one specific file:

```
FTPClient client = new FTPClient();
client.setDataTimeout(20000);
client.setConnectTimeout(20000);
client.setBufferSize(65536);
//...
client.connect(host);
client.login(user, pswd);
// response validation
client.enterLocalPassiveMode();
// some listings with validations

InputStream in = new BufferedInputStream(client.retrieveFileStream(ftpFilePath), 16384);
// ...
byte[] buffer = new byte[8192];
while ((rd = in.read(buffer)) > 0) {
// .. reading the file and updating download progress

```

The last lines could be easily replaced with `FTPClient`'s file download with virtually the same result, but then we can't track the download progress:

```
client.setControlKeepAliveTimeout(30);
client.retrieveFile(ftpFilePath, new org.apache.commons.io.output.NullOutputStream());

```

As a result of all those actions I can see the file is downloading until something very close to 100% and then the exception occurs:

```
java.net.SocketTimeoutException: Read timed out
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.socketRead(Unknown Source)
        at java.net.SocketInputStream.read(Unknown Source)
        at java.net.SocketInputStream.read(Unknown Source)
        at java.io.FilterInputStream.read(Unknown Source)
        at java.io.BufferedInputStream.fill(Unknown Source)
        at java.io.BufferedInputStream.read1(Unknown Source)
        at java.io.BufferedInputStream.read(Unknown Source)
        at java.io.FilterInputStream.read(Unknown Source)
        at <my code from here on>

```

There seems to be no firewall, but when the internet connection speed is better the download succedes (probably, some sort of timeout is hit). I would think that the problem is with the connection, but the thing is FileZilla succedes to download the same file.

So, I can reformulate my question like this: how do I make my `FTPClient` behave like FileZilla when downloading a file. Probably, there's some complicated retry on ping logic that I'm not aware of.

Commons Net: commons-net-3.6

FTP Server: proftpd-1.3.3g-6.el5 on CentOS 5.8 with a default configuration, does not support FTP over TLS.