Я заметил, что когда я загружаю несколько файлов за раз, и один из них заканчивается, пропускная способность, которую он потреблял, не распределяется сразу между другими. Например, если у меня есть два файла, загружаемых со скоростью 100 Кбит / с каждый, и один из них завершается, другой не сразу достигает 200 Кбит / с. Он действительно ускоряется, но довольно медленно, может быть, несколько Кб / с каждые несколько секунд.
Точно так же, когда я загружаю один файл со скоростью 200 Кбит / с, а затем начинаю загружать другой, первый не сразу замедляется, чтобы предоставить другому равную полосу пропускания.
Это крошечные загрузки по сравнению с емкостью сервера и сети, поэтому это не может быть проблемой с емкостью. Почему мой компьютер или сервер так медленно распределяют полосу пропускания между загрузками?
Обратите внимание, что я не спрашиваю, почему моя загрузка медленная. Я спрашиваю, почему перераспределение пропускной способности среди одновременных загрузок идет медленно.
Как вы измеряете скорость каждой загрузки? Если вы просто посмотрите на номер, отображаемый клиентом загрузки, то, вероятно, это средняя скорость, рассчитанная за длительный период времени, то есть если вы загружали что-то в течение 10 минут со скоростью 100 КБ / с, а затем скорость подскочила до 200 КБ / с. с и продолжается с этой скоростью еще одну минуту, среднее значение за все время по-прежнему составляет ~ 109 КБ / с. Если вы хотите отслеживать скорость соединений в режиме реального времени, вы можете использовать такие инструменты, как iftop
или iptraf-ng
в Linux и, вероятно, есть аналогичные инструменты и в Windows.
Вы загружаете через TCP, и TCP имеет функцию, позволяющую избежать перегрузки ваших ссылок. Перегрузка может вызвать перегрузку и отбрасывание пакетов. Стекам TCP с обеих сторон требуется несколько секунд, чтобы заметить, что пакеты прибывают быстрее, поэтому они могут постепенно увеличиваться до новой максимальной скорости.
Это теоретический ответ. На практике @ Jakub-Pasoń, вероятно, также имеет смысл, когда отмечает, что показанные скорости загрузки, вероятно, являются средними, которые не показывают изменения сразу.
Предполагая, что загрузка осуществляется через TCP, ответ зависит от https://en.wikipedia.org/wiki/TCP_congestion-avoidance_algorithm клиента и серверов. Для более окончательного ответа потребуется дополнительная информация, но, возможно, этот ответ удовлетворит ваше любопытство.