我想了解诸如 wget 之类的实用程序如何通过仅消耗最多提供的速率来限制文件的下载速率。
它是否使用 QoS 网络功能?或者它是否有处理 TCP 套接字的特定策略?
答案1
我想了解 wget 等实用程序如何进行速率限制
wget
--limit-rate
使用命令行选项进行速率限制:
- Wget 通过在网络读取时间少于速率指定的时间后休眠适当的时间来实现限制。
最终,该策略会导致 TCP 传输速度减慢到大约指定的速率。
然而,达到这种平衡可能需要一些时间,因此如果限制速率对于非常小的文件不起作用,请不要感到惊讶。
–limit-rate =金额
将下载速度限制为每秒多少字节。数量可以用字节、带后缀的千字节
k
或带后缀的兆字节来表示m
。例如,--limit-rate=20k
将限制检索速率为 20KB/s。无论出于何种原因,当您不希望 Wget 消耗整个可用带宽时,这很有用。此选项允许使用十进制数,通常与幂后缀结合使用;例如,
--limit-rate=2.5k
是一个合法值。请注意,Wget 通过在网络读取时间少于速率指定时间后休眠适当的时间来实现限制。最终,此策略会导致 TCP 传输速度减慢到大约指定的速率。但是,实现这种平衡可能需要一些时间,因此如果限制速率对非常小的文件不起作用,请不要感到惊讶。