2013-10-13 40 views
1

我正在查看文件/ proc/net/dev并想知道接收字节值的单位转换。/proc/net/dev单位转换

这里是我考虑的文件的一部分:

Inter-| Receive 
face |bytes 
    eth0: 7060880392 

ifconfig使用的/ proc /净/ dev的生成以下:

eth0  Link encap:Ethernet 
      ... 
      RX bytes:7060880392 (7.0 GB) 

这就是我不明白。假定值的单位是以字节为单位(而不是位),我预计会通过1024的分区转换为GB。7060880392/1024/1024/1024 = 6.6GB。但很明显,ifconfig已经使用1000的分区从B转换为GB。

有人可以解释他们为什么这么做吗?我知道带宽通常用比特表示;也许在/ proc/net/dev中的标签在将字节的单位称为字节时不正确?我检查了proc的manpage,但是这个文件没有太多的细节。

+0

有没有任何理由认为这个决定不是任意的? –

+1

在计算中,前缀_G_不一致地用于10^9和2^30。然而,前者实际上是正确的,而对于网络流量来说后者是没有意义的。另见:http://en.wikipedia.org/wiki/Binary_prefix – nosid

+0

我可以任意决定如何使用这些信息。鉴于它是一个卷带宽,通常以位为单位进行度量,并且ifconfig以1000的分区执行单位转换,我倾向于这样做。 我想我应该澄清一下:在问为什么时,我试图了解我应该如何准确地执行这些转换,而不是随意进行。 – Secesh

回答

0

术语GB代表10个碱基,而GiB代表2个碱基(1024)。阅读更多关于维基百科:Binary prefix.

我会做一个有根据的猜测,实施者选择使用GB而不是GiB,因为相关信息是多少个字节被发送/接收,而不是他们的部门,以适应“电脑化”计算。

+0

考虑位与字节时,经常使用GB/Gb/gB/GiB不一致。更重要的是,该文件清楚地表示字节。我不想猜测;我想找到解释我认为是差异的文档。 – Secesh

+0

讨论存储空间时,计算GiB是必要的,而不是数量。存储空间由扇区(大小基数为2,例如512B HDD扇区,FS群集/块的4096B)测量。将硬盘空间量化为一个数据流使用GB(基数为10)来完成,为此您可以计算驱动器上可用的总字节数。在计算网络字节数时,您需要对流大小(或数量)进行计数,而不是将其存储为文件所需的空间。我找不到任何文章支持我,但我想不出任何使用GiB的地方,这不是存储/文件相关的。 – micromoses