Днешната сесия за въпроси и отговори ни идва с любезното съдействие на SuperUser - подразделение на Stack Exchange - обединяване на уеб сайтове с въпроси и отговори.
Снимката е предоставена от Армандо Сотока (Flickr).
Въпроса
Четецът на SuperUser Keltari иска да разбере защо някои връзки за изтегляне (мрежа) доминират други:
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?
Защо някои връзки за изтегляне (мрежа) доминират другите?
Отговорът
Сътрудникът на SuperUser cybernard има отговорът за нас:
Generally, the fastest connection wins. However, before Windows 7, networking was a mess and performance was awful all around. Trying to get more than 20mb/s from Windows XP, for example? Good luck with that.
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.
Source: A Compound TCP Approach for High-speed and Long Distance Networks [Microsoft]
A faster connection has more successful packets, therefore its cwnd/MSS is increased and it gets even more of the total connection.
Имате ли нещо, което да добавите към обяснението? Звучи в коментарите. Искате ли да прочетете повече отговори от други потребители на Stack Exchange? Вижте цялата тема на дискусията тук.