0

我想下载一个大小约为 60GB 的文件。

我的网速是 100mbps,但下载速度并没有利用我的全部带宽。

如果我使用 aria2c 下载这个单个文件,我可以利用增加的“每台服务器的连接数”吗?似乎 aria2c 让我最多使用 16 个连接。这个选项甚至适用于下载单个文件吗?

我想象下载如何进行的方式就像 1 个连接尝试从文件的 1 个扇区下载,而另一个连接尝试从不同的扇区下载。基本上,并发下载的最佳数量是直到达到主机带宽限制(我的是 100mbps)。当两个连接在他们正在下载的扇区中发生冲突时,aria2c 会立即看到该特定扇区已经下载并跳到另一个扇区。这是对单个文件使用多个连接时的结果吗?

4

1 回答 1

0

这是对单个文件使用多个连接时的结果吗?

HTTP 标准提供Range请求标头,例如:我想要文件的一部分,从字节 X 开始,到字节 Y 结束。如果服务器确实支持这个噱头,那么它会以206 Partial Content. 因此,知道文件的长度(大小)(参见Content-Length),就可以放置部分,使它们不相交并覆盖整个文件。

请注意,并非所有服务器都支持这种噱头。您需要检查您要下载的服务器托管文件是否这样做。这可以使用HEAD请求来完成,HTTP 范围请求提供了使用示例curl

curl -I http://i.imgur.com/z4d4kWk.jpg

HTTP/1.1 200 OK
...
Accept-Ranges: bytes
Content-Length: 146515

如果你有bytesAccept-Ranges意味着服务器确实有支持。如果您希望任何其他工具能够发送HEAD请求并向您提供响应标头。

于 2021-12-23T10:48:24.757 回答