为什么我的下载有“心跳”?

为什么我的下载有“心跳”?

我有时会下载大文件,当我这样做时,我总是会在下载速度中看到这种“心跳”:

在此处输入图片描述

虽然这对我来说并不重要,但我只是想知道是什么导致了这种行为?是 Ubuntu 本身,还是我的路由器,还是我的 ISP,或者可能是其他什么?

[编辑] 只是为了澄清;这种情况发生在任何下载中,无论是通过 http、ftp,还是当我使用 torrents 时。

答案1

最有可能的是,源服务器在循环,因为它预先缓存了下一个请求的文件段。您展示的示例实际上非常好,因为下载速度保持不变,并且下降幅度不大。如果您尝试从非常繁忙的服务器下载,您可能会看到完全不同的结果,当服务器尝试处理 I/O 请求时,下降幅度会更大,甚至会停滞。

答案2

另一种可能性,虽然不一定是肯定的,是你在观察一个TCP 拥塞避免算法实际操作。发送主机事先并不知道您和它之间的网络的全部容量或延迟(或当前利用率),因此为了最大化吞吐量并尽量减少数据丢失,TCP(通常是 http、ftp 和 torrents 下面的一层)会逐渐增加每毫秒发送的数据量,直到最后连接堵塞,发送方停止接收它期望的所有确认,此时它会稍微降低速率并从较低点再次恢复逐渐上升。按照这种解释,这些周期性的“下降”是指服务器尝试每秒发送的数据量超过其能够发送的数据量,然后速度会稍微减慢。

我在图片搜索中找到了几个这样的图表,但它们看起来更像是锯齿状,而不是心跳。不过,我想这可能是由于发送者和接收者的视角不同造成的。

答案3

在得出任何结论之前,我们需要知道这是如何测量的。我的直觉告诉我,心跳是你用来测量结果的工具的函数。物理学家说,你不可能在不影响结果的情况下观察某样东西。因此,必须以多种方式进行测量才能确保万无一失。

相关内容