1

I see many questions regarding copying large files over a network, for example How to better copy&paste big files over RDP?, but I'm asking a slightly different thing. Also, not involving remote desktop.

My work colleague and I are on the same domain, same network, and perhaps same subnet (don't know much about networking, but he's a few cubicles away from me, if that helps) We are transferring a large folder (about 20GB total, largest file size is 16GB) from him to me.

For the purposes of this question, let's assume:

  • We have identical hardware, running Win7 64-bit
  • Our PCs are essentially idle during transfer
  • We are using Windows' native Copy/Paste (no 3rd party tools)

Now, which is faster:

  • I 'pull' the folder from his shared folder into my local folder, or
  • He 'pushes' the folder from his local folder into my shared folder, or
  • Both options are actually the same?
0

In theory, they should be identical as they are using the same protocol (SMB) to send the data.

However, in reality, there are a lot of factors that can affect network transfers, especially when it comes to lots of files, or very large files (or both).

At the lowest level, the hard disk, reading is always faster than writing. So by pulling the data, you are will be waiting less for the remote hard disk to send the data. The remote hard disk will be reading the data into cache and waiting for your machine to retrieve the data.

SMB can cause slowdowns as well. Slow SMB performance may occur if a delayed TCP/IP acknowledgement (also known as a TCP ACK) occurs in a "SMB: C NT transact - Notify Change" packet. By default, this behavior occurs as soon as SMB is using security signatures. If security signatures are configured, SMB must be processed synchronously by the redirector. The redirector has to wait until the current SMB command is fully processed before it continues with the next one. The redirector waits until it receives the TCP/IP acknowledgement from server.

So you would think pulling is better. However, this isnt always the case. In some instances, especially on unreliable networks, pushing can actually yield better performance.

To add to the confusion, other factors like total RAM, virus scanners, buffer sizes, backup programs, etc, will all have an effect on the transfer speed.

In the end, the only way to determine which is faster is to test it on your machines.

|improve this answer|||||

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.