如何估算文件下载速度

之前做生信的时候,经常要下载各种公开的原始数据,批量的下载十几个GB的数据是经常遇到的。结合之前的经验,在开始下载任务前,最好估算在当前网络环境下载数据的速度。比如,大约多长时间可以下载完所有的数据。虽然现在的下载工具都有下载进度条和预计完成时间的提示,但通过估算可以在开始任务前做到心中有数。

Bit(比特)和Byte(字节)

在开始估算之前,先要搞清楚两个重要的概念,Bit(比特)和Byte(字节)。

在计算机科学中,比特(bit,简称b)是表示信息的最小单位,叫做二进制位,用0或1表示。但比特(bit)的信息量太小,很少直接描述数据大小。一般以字节(Byte)为单位描述信息量。当今的标准是8个bit组成一个字节(Byte,简称B),即1B = 8b。比如,在UTF-8编码规则下,表示一个英文字符需要一个字节,中文则需要三个字节。

下载软件的时候经常会看到下载32位(32bit)和64位(64bit)的选择,32bit和64bit代表了计算机CPU一次能够处理的最大位数(通常寄存器和CPU的处理效率是匹配的,但也不一定)。

如下图所示,$1B = 2^3$。之后都是以Byte为基本单位表示数据量。1KB 并不是一千字节(1000KB),因为计算机只认识二进制,所以在这里的KB是$2^{10}$字节(Byte),也就是1024个字节(Byte)。$1KB = 2^10Byte,1MB = 2^{10}KB = 2^{20}B, 1GB = 2^{10}MB = 2^{30}KB…$ 不难看出,更高的Byte量级就上一个Byte量级的$2^{10}$(1024)倍。

带宽

网络带宽(Network Bandwidth),简称带宽,是指在单位时间内能传输的最大数据量,基本单位为bits per second,简写为bps或b/s。网络和高速公路类似,带宽越大,就类似高速公路的车道越多,其通行能力越强。网络带宽作为衡量网络特征的一个重要指标。

假如你单位已经安装了宽带业务,或小区宽带已经连到你家,你准备下载一个程序、一个网页或一部电影。也许你认为正在使用服务商声称的全部带宽,其实不然,这就不得不涉及到另一个概念——吞吐量

吞吐量是指在规定时间、空间及数据在网络中所走的路径(网络路径)的前提下,下载文件时实际获得的带宽值。由于多方面的原因,实际上吞吐量往往比传输介质所标称的最大带宽小得多。

举个例子,如果已知当前的网络带宽是2M,这里的2M表示的是所能达到的最大理论速率值,即2Mb/s=2×1024=2048Kb/s。在实际应用中,时常看到下载速度显示为KBps(KB/s),KB/s等宽带速率,但要注意的是,这里的大写字母B并不是字节(Byte)而是比特(bit)。所以要通过换算,才能得以字节(Byte)为单位的实际值。上面的例子,换算成字节为2048Kb/s÷8b=256KB/s。但吞吐量要小于这个理论值,实际网络带宽可能在100KB/s到200KB/s之间。如果你要下载1G的文件。$1G = 2^{10}MB = 2^{20}KB,2^{20}KB÷200KB/s÷60$最快大约需要87.4min才能下载完成。在下载完这个文件之前,可以继续进行后面的工作,一个半小时后再查看一下是否完成下载,使用下载的文件进行后面的任务。

参考文献: