Я хочу достичь минимально возможного времени загрузки через SFTP для одного файла размером 1 КБ, размещенного на сервере MFT. В настоящее время я работаю на машине Windows 8 RC2 DL360 G8 и libSSH, но я вижу время загрузки 100 мс и хотел бы узнать, как его уменьшить.
решение1
Единственный способ ограничить время загрузки файла размером 1 КБ — это уменьшить задержку и увеличить скорость вашего устройства хранения данных.
Причина этого кроется в природе установления TCP-соединения.
Он подключается и сначала получает один пакет. Если этот пакет успешен, он получает два, если тот успешен, он получает 4. Он будет увеличивать это каждый раз, пока пакеты не перестанут приходить (читать далее). Вот как определяется возможная скорость загрузки. Учитывая, что у вас всего 1 КБ файл, он никогда не достигнет полной скорости загрузки, но этот процесс просто займет немного времени.
Чем дальше файл, тем больше времени требуется для завершения этого начального процесса, потому что каждый раз, когда загружается пакет или кластер пакетов, обратно отправляется пакет подтверждения. Чем дальше, тем больше времени это занимает. С большими файлами вы загружаете огромный кусок файла сразу, прежде чем подтверждаете, что вы его получили, и именно поэтому после того, как соединение достигает полной скорости, передача файла происходит быстро.
В вашем случае, с 1 КБ данных, вы никогда не достигнете этой точки.
Если вы можете загрузить файл из близкого к вам места, это улучшит воспринимаемую скорость, и если ваш носитель тоже быстрый, это также поможет. Это все, что вы можете сделать в основном для небольших файлов.
Если у вас много маленьких файлов, быстрее будет получить сжатую версию, содержащую все файлы.