我注意到当我一次下载多个文件并且其中一个文件完成时,它消耗的带宽不会立即分配给其他文件。例如,如果我有两个文件以 100 Kb/s 的速度下载,并且一个完成,另一个不会立即上升到 200 Kb/s。它确实加快了速度,但速度很慢,可能每隔几秒钟就几 Kb/s。
同样,当我以 200 Kb/s 的速度下载一个文件然后开始下载另一个文件时,第一个文件不会立即减慢速度以允许另一个文件具有相同的带宽。
与服务器和网络容量相比,这些下载量很小,因此不可能是容量问题。为什么我的计算机或服务器在下载之间平均分配带宽时如此缓慢?
请注意,我不是在问为什么我的下载速度很慢。我在问为什么并发下载之间的带宽重新分配很慢。
小智 13
你如何衡量每次下载的速度?如果您只看下载客户端显示的数字,那么它可能是长时间计算的平均速度,即如果您以 100 KB/s 的速度下载了 10 分钟,然后速度跃升至 200 KB/ s 并以该速率再继续一分钟,整个时间的平均值仍然约为 109 KB/s。如果您想实时跟踪连接速度,您可以使用Linuxiftop
或iptraf-ng
Linux 上的工具,Windows 上也可能有类似的工具。
您通过 TCP 下载,TCP 具有避免链接过载的功能。过载会导致拥塞和丢包。双方的 TCP 堆栈需要几秒钟才能注意到数据包到达的速度更快,因此它们可以逐渐增加到新的最大速度。
这就是理论上的答案。在实践中,@Jakub-Paso?可能还有一点他指出,显示的下载速度可能是平均值,不会立即显示变化。