Почему некоторые сетевые подключения доминируют над другими?

15

У меня есть подозрения о том, почему, но я хочу, чтобы кто-то с большим опытом работы в сети объяснил.

Почему при загрузке из нескольких разных мест определенные соединения насыщают полосу пропускания, оставляя другие соединения почти незанятыми, пока не будет установлено доминирующее соединение?

Keltari
источник

Ответы:

26

Как правило, выигрывает самое быстрое соединение. Тем не менее, до того, как работа в сети Windows 7 была беспорядочной, производительность была ужасной. Попробуйте получить больше, чем 20 Мб / с от XP, удачи с этим.

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

Стандартный алгоритм предотвращения перегрузки TCP использует схему аддитивного увеличения и мультипликативного уменьшения (AIMD). Когда потеря пакета не обнаружена (посредством трех дублированных ACK или тайм-аута повторной передачи), окно перегрузки (cwnd) увеличивается на один максимальный размер сегмента (MSS) на каждый RTT. В противном случае, если обнаружена потеря пакета, отправитель TCP уменьшает cwnd наполовину. В высокоскоростной сети с большой задержкой требуется очень большое окно, например, тысячи пакетов, чтобы полностью использовать пропускную способность канала. Следовательно, стандартному TCP потребуется много RTT для восстановления скорости отправки при одном событии потери. Кроме того, теперь хорошо известно, что среднее окно перегрузки TCP обратно пропорционально квадратному корню из скорости потери пакетов.

Более быстрое соединение имеет более успешные пакеты, и поэтому его cwnd / mss увеличивается, и оно получает еще больше от общего соединения.

cybernard
источник
Это соответствовало тому, о чем я думал, хотя и более технически.
Келтари
23
20 миллибит в секунду - это довольно мало, даже для Windows XP. : P
CodesInChaos
@codesinchaos, где значок педанта, когда он тебе нужен ...
Эшли,
1
@CodesInChaos Я думаю, что на самом деле не существует двусмысленности, так как вы не можете немного разделить, но Мбит / с, вероятно, показались бы лучше ;-) Большая проблема, когда люди путают «Мегабит» с «Мегабайтом» ..
comfreak
-1

Активный открытый TCP проверит состояние сети путем измерения ответов от сервера. Если буферы маршрутизаторов насыщаются другим соединением и вызывают высокую задержку, клиент соответствующим образом настроит свое окно отправки. Если в игре используется классический метод управления перегрузкой, клиент будет непрерывно увеличивать скорость отправки, пока не произойдет сбой. Таким образом, для новичка вполне возможно нарастить свой потенциал, если устройство, которое насыщает маршрутизатор, начинает испытывать сильные падения, а новичок - нет.

В настоящее время существуют экспериментальные и более интеллектуальные методы контроля перегрузок, которые используют задержку в качестве метрики, а не просто используют капли для оценки состояния сети. Тем не менее, эти новые методы имеют плохую привычку запугивать более упорные классические методы, которые занимают как можно большую полосу пропускания.

Также с UDP-соединениями, если они массово, будут доминировать в любой сети из-за небрежного распыления битов. В зависимости от приложения, он будет безрассудно насыщать буферы маршрутизатора без учета условий сети.

Джефф Плиска
источник