Я думал о алгоритме медленного запуска tcp и об общей проблеме при передаче многих файлов по сети tcp/ip.Является ли алгоритмом медленного запуска TCP причиной медленной передачи многих отдельных файлов?
Если вы перенесите много небольших файлов (т. Е. Размер: 50kb, количество: 10 000), это займет гораздо больше времени, чем если вы перенесите один и тот же объем данных (50kb * 10,000 = 500 000 kb) сразу. И для меня это вероятная причина, что tcp slowstart - одна из причин этого (конечно, есть другие вещи, такие как накладные расходы, ...).
Если я правильно понял slowstart, то он увеличивает максимальный объем данных, которые могут быть переданы без подтверждения от получателя. Если мы установим новое соединение для каждого файла, slowstart вызывает низкую пропускную способность в начале каждой передачи, и поскольку алгоритм медленного запуска увеличил пропускную способность - наш файл переносится и запускаются новые подключения. И поэтому мы никогда не достигнем оптимизированной пропускной способности. С другой стороны, если мы переносим один большой файл, slowstart оптимизирует максимальный неподтвержденный объем данных и поэтому мы можем достичь гораздо более высокой пропускной способности.
Правильно ли это предположение? И еще вопрос: Является ли реализация slowstart одинаковой для c или C++ и .net?
И, пожалуйста, не см. Это дубликат «Почему мои передачи файлов медленные?», Я спрашиваю, является ли алгоритм медленного запуска причиной того, что перенос многих небольших файлов происходит медленно.
нормально звучит логично, повторно используя соединение. – whymatter
Возможно ли, что режим пассивного FTP медленнее, потому что он должен установить новое соединение для каждого файла? – whymatter
@whymatter, пассивный или активный режим FTP, как правило, медленнее, это правильное наблюдение. – SergeyA