![为什么我从 MFT 服务器下载 1 KB 文件时,速度并没有加快(100 毫秒)](https://linux22.com/image/1592231/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E4%BB%8E%20MFT%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8B%E8%BD%BD%201%20KB%20%E6%96%87%E4%BB%B6%E6%97%B6%EF%BC%8C%E9%80%9F%E5%BA%A6%E5%B9%B6%E6%B2%A1%E6%9C%89%E5%8A%A0%E5%BF%AB%EF%BC%88100%20%E6%AF%AB%E7%A7%92%EF%BC%89.png)
我希望通过 SFTP 以最低的下载时间下载发布在 MFT 服务器上的单个 1KB 文件。目前,我正在运行 Windows 8 计算机 RC2 DL360 G8 和 libSSH,但我发现下载时间为 100ms,我想知道如何缩短下载时间。
答案1
限制 1KB 文件下载时间的唯一方法是降低延迟并提高存储设备的速度。
其原因在于 TCP 连接的建立方式的本质。
它连接后首先会获得一个数据包。如果该数据包成功,则获得两个数据包,如果成功,则获得四个数据包。它每次都会增加该值,直到数据包停止到达(阅读更多)。这就是确定下载速度的方法。假设您只有 1KB 的文件,它永远不会达到完全下载速度,但这个过程需要一点时间才能完成。
文件距离越远,完成此初始过程所需的时间就越长,因为每次下载一个数据包或一组数据包时,都会发回一个确认数据包。距离越远,所需的时间就越长。对于大文件,您会在确认已下载文件之前一次性下载大量文件,这就是为什么在连接达到全速后,文件传输速度会很快。
对于您来说,如果有 1KB 的数据,您永远无法达到这一点。
如果您可以从离您较近的地方下载文件,那么可以提高感知速度,如果您的存储介质也很快,也会有所帮助。对于小文件,您基本上可以做到这些。
如果您有很多小文件,获取包含所有文件的压缩版本将会更快。