Если вы часто загружаете несколько элементов одновременно, то вы, вероятно, заметили, что одно соединение для загрузки имеет тенденцию преобладать над другими, пока оно не будет завершено. Это почему? В сегодняшнем посте SuperUser Q&A есть ответ на любопытный вопрос читателя.
Сегодняшняя сессия вопросов и ответов проходит благодаря SuperUser - подразделению Stack Exchange, группы веб-сайтов вопросов и ответов, управляемой сообществом.
Фото любезно предоставлено Армандо Сотока (Flickr) .
Вопрос
Читатель SuperUser Келтари хочет знать, почему одни загрузочные (сетевые) соединения доминируют над другими:
У меня есть подозрения относительно того, почему, но я хочу, чтобы мне объяснил кто-то с более сильным опытом работы в сети.
Почему при загрузке из нескольких (разных) мест определенные соединения загружают полосу пропускания, оставляя другие соединения почти незанятыми, пока не завершится доминирующее соединение?
Почему одни загрузочные (сетевые) подключения преобладают над другими?
Ответ
У кибернарда есть ответ для нас:
Как правило, выигрывает самое быстрое соединение. Однако до Windows 7 в сети был беспорядок, а производительность была ужасной. Например, пытаетесь получить более 20 МБ / с из Windows XP? Удачи с этим.
- Стандартный алгоритм предотвращения перегрузки TCP использует схему аддитивного увеличения и мультипликативного уменьшения (AIMD). Когда потеря пакетов не обнаружена (посредством трех дублированных ACK или тайм-аута повторной передачи), окно перегрузки (cwnd) увеличивается на один максимальный размер сегмента (MSS) каждый RTT. В противном случае, если обнаружена потеря пакета, отправитель TCP уменьшает cwnd наполовину. В высокоскоростной сети с большой задержкой требуется очень большое окно, например тысячи пакетов, чтобы полностью использовать пропускную способность канала. Следовательно, стандартному TCP потребуется много RTT, чтобы восстановить скорость отправки после одного события потери. Более того, сейчас хорошо известно, что среднее окно перегрузки TCP обратно пропорционально квадратному корню из скорости потери пакетов.
Источник: Комплексный подход TCP для высокоскоростных и междугородных сетей [Microsoft]
Более быстрое соединение имеет больше успешных пакетов, поэтому его cwnd / MSS увеличивается, и оно получает еще больше от общего соединения.
Есть что добавить к объяснению? Отключить звук в комментариях. Хотите узнать больше ответов от других технически подкованных пользователей Stack Exchange? Ознакомьтесь с полной веткой обсуждения здесь .