Why is Windows Explorer a lot slower than FileZilla when doing FTP transfers?

I created an FTP mapped drive on Windows 7 "add network location". It works fine except for one problem. The file transfer rate is way slower than FileZilla. Same local machine, same remote server, 45MB takes 5 minutes with the Win7 Network Place and 1:20 with FileZilla. I repeated the test 5 times over a couple of hours to rule out variations in network. Each test was to transfer with Network Location, then immediately after transfer with FileZilla. Each time the difference was huge, and the times were just about the same for each test pair.

Does anyone know why this is (apart from "Microsoft is stupid" or something like that)? I mean, is there something I need to do to my system to get the performance I should be getting? This is Windows 7 Professional 64bit, Xeon 4-core 2.53GHz, 6Gb RAM, 8 Mb/s outbound net speed (measured with SpeedTest.net).


Solution 1:

You can't do this, it has to do with very low buffer sizes that you can't change.

Internet Explorer and Windows Explorer have a static buffer size of 4096 bytes that can't be changed, in comparison to that Filezilla has a buffer size of 256 KB. The buffer size of Filezilla is thus 64 times biffer than that of Windows Explorer, and that explains why it capable of doing much faster transfers.

When this buffer gets filled, which goes very fast for 4096 bytes, it starts delaying loading additional data. So rather than loading a full 256 KB and sending that it only loads up to 4 KB. This takes down the upload speed as some delay is introduced.

You can change a thousand network and I/O settings but it will likely not have much effect. FTP programs have way better support as well as features such as simultaneous transfers and resuming a failed transfer, which makes Windows Explorer the wrong tool to be used in this case. So, Windows Explorer isn't really made to do FTP transfers. On the other hand, one could assume a widely used file manager to be capable of doing FTP transfers, but they haven't came around to implement better behavior...

Not really legal, one could reverse engineer and try to patch the value! But why if one has Filezilla? :)

Solution 2:

Some ideas :

  1. Disable IPv6
  2. Disable Remote Differential Compression
  3. Disable Task Offload settings and several possible other settings

This Microsoft article recommends :

  1. Enable flow control in the transmit (Tx) and receive (Rx) directions :
    In the Properties of your network adapter, Advanced tab,and enable Flow control in the Tx and Rx directions (select the Rx & Tx Enabled option if it is available).
  2. Change the link speed to 100 Mbps Full Duplex :
    Same as above, for the 100 Mbps Full Duplex setting.