15

I have my suspicions as to why, but I want someone with a stronger background in networking to explain.

Why is it that when downloading from multiple different locations, certain connections saturate the bandwidth, leaving other connections almost idle until the dominant connection is finished?

2 Answers 2

26

Generally, the fastest connection wins. However, before Windows 7 networking was a mess and performance was awful all around. Try to get more than 20mb/s from XP good luck with that.

http://research.microsoft.com/pubs/70189/tr-2005-86.pdf

The standard TCP congestion avoidance algorithm employs an additive increase and multiplicative decrease (AIMD) scheme. When there is no packet loss detected (by means of three duplicate-ACKs or retransmission timeout), the congestion window (cwnd) is increased by one Maximum Segment Size (MSS) every RTT. Otherwise, if a packet loss is detected, the TCP sender decreases cwnd by half. In a high-speed and long delay network, it requires a very large window, e.g. thousands of packets, to fully utilize the link capacity. Therefore, it will take the standard TCP many RTTs to recover the sending rate upon a single loss event. Moreover, it is well-known now that the average TCP congestion window is inversely proportional to the square root of the packet loss rate.

A faster connection has more successful packets and therefore its cwnd/mss is increased and it gets even more of the total connection.

4
  • That was in line with what I was thinking, albeit more technical.
    – Keltari
    Commented Feb 18, 2016 at 3:18
  • 23
    20 millibits per second is pretty low, even for Windows XP. :P Commented Feb 18, 2016 at 12:22
  • @codesinchaos where's a pedant badge when you need one...
    – Ashley
    Commented Feb 23, 2016 at 19:41
  • 1
    @CodesInChaos I think there isn't really an ambiguity, since you can't split a bit, but Mb/s would probably read nicer ;-) A bigger issue is when people confuse "Megabit" with "Megabyte"..
    – comfreak
    Commented Feb 24, 2016 at 17:01
-1

An active open TCP will test the network conditions by measuring the responses from the server. If the routers buffers are saturated by another connection and causing high delay, the client will tune its send window accordingly. If a classic congestion control method is in play the client will continuously increase its send rate until a drop occurs. So it is possible for a new comer to muscle its way in if the device that is saturating the router begins experiencing severe drops while the new comer does not.

There are now experimental and more intelligent congestion control methods that use delay as a metric as opposed to simply using drops to gauge network conditions. However, these new methods have a bad habit of being bullied by the more tenacious classic methods that take as much bandwidth as they can.

Also with UDP connections if en masse, will dominate any network because of the careless spraying of bits it does. Depending on the application, it will recklessly saturate a routers buffers with no regard for network conditions.

You must log in to answer this question.

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