1

Let's say I have several files with different sizes (10KB, 100KB, 1MB, 10MB, 100MB). Starting individual transfer of those files over 2MB per second network will return different final throughput based on start and stop timestamp of download or upload that particular file. Naturally, the larger files will get final throughput very close to 2MB, however 10KB, 100KB, and 1MB might be much less.

So final throughputs might become something like: 0.2MB/s 0.5MB/s 1.2MB/s 1.95MB/s.

I know there is an initial connection delay. For example, if I am using scp, it can take somewhere around 0.2-0.3 seconds to send an empty file. Subtracting initial delay from total time to calculate throughput doesn't produce equal throughput for all files (I can't get delay-free throughput to equal to 2.0MB/s for all files).

Is there anything else that affects this? Does network speed gradually ramps up to 2MB, resulting in smaller files (10KB, 100KB, 1MB) to appear to have smaller final throughput (since data is already sent before fastest rate is available)?

1 Answer 1

1

This is more complicated then subtracting the connection delay. There is visible the function of TCP window adjustment and buffers, which is adjusted on the fly and for larger files it is visible since the speed is increasing from really low to the network throughput limit.

More info can be found here:

https://en.wikipedia.org/wiki/TCP_tuning#Window_size

Or the image that describes more than 1000 words:

http://www.linuxfoundation.org/collaborate/workgroups/networking/tcp_testing

1
  • There are many other factors involved: DNS, congestion notifications, plain congestion, traffic shaping, changing routes, etc.
    – lcd047
    Jul 14, 2015 at 12:08

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .