Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have noticed that when I am downloading several files at a time, and one of them finishes, the bandwidth that it was consuming is not immediately apportioned to the others. For example, if I have two files being downloaded at 100 Kb/s each, and one finishes, the other does not immediately go up to 200 Kb/s. It does speed up but rather slowly, maybe a few Kb/s every few seconds.

Similarly, when I am downloading one file at 200 Kb/s and then start downloading another one, the first one does not immediately slow down to allow the other one an equal amount of bandwidth.

These are tiny downloads compared to the server and network capacity, so it can't be a capacity issue. Why is my computer, or the server, so slow to distribute the bandwidth equally among the downloads?

Note that I am not asking why my download is slow. I am asking why the redistribution of bandwidth among concurrent downloads is slow.

share|improve this question

closed as too broad by Greg Askew, joeqwerty, RobM, Iain, Ward Mar 27 at 6:06

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.If this question can be reworded to fit the rules in the help center, please edit the question.

How do you measure speed of each download ? If you just look at the number the download client displays, then it's probably an average speed calculated over long period of time, i.e. if you've been downloading something for 10 minutes at 100 KB/s and then the speed jumps to 200 KB/s and continues at that rate for another minute, the average over the whole time is still ~109 KB/s. If you want to track speed of connections in real-time, you can use tools like iftop or iptraf-ng on Linux and there are probably similar tools on Windows too.

share|improve this answer

You download over TCP, and TCP has a feature to avoid overloading your links. Overloading would cause congestion and packet drops. It takes several seconds for the TCP stacks on both sides to notice that packets are arriving quicker, so they can ramp up gradually to the new maximum speed.

That is the theoretical answer. In practice, @Jakub-Pasoń probably also has a point when he notes that the download speeds shown are probably averages that do not show changes immediately.

share|improve this answer

Assuming the downloads are over TCP, the answer depends on the https://en.wikipedia.org/wiki/TCP_congestion-avoidance_algorithm of the client and servers. More info would be needed for a more definitive answer, but perhaps this one will satisfy your curiosity.

share|improve this answer

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