网络基础之网口速率单位
背景
今天在写一个监控网络出口流量的监控脚本时,通过ifconfig查到网络接收到的字节数都是300M左右,内网带宽是千兆,查询后得知运营商的宽带速率单位是bps,ifconfig查出来的是byte,通过计算发现已经超过了千兆带宽,那么肯定是哪里不对,通过查询换算单位以及相关说明,现将学习到的内容记录在此,以下内容来自多个博客
一、bps、Bps、pps的区别
在计算机科学中,bit是表示信息的最小单位,叫做二进制位;一般用0和1表示。Byte叫做字节,由8个位(8bit)组成一个字节(1Byte),用于表示计算机中的一个字符。bit(比特)与Byte(字节)之间可以进行换算,其换算关系为:1Byte=8bit(或简写为:1B=8b);在实际应用中一般用简称,即1bit简写为1b(注意是小写英文字母b),1Byte简写为1B(注意是大写英文字母B)。
在计算机网络或者是网络运营商中,一般,宽带速率的单位用bps(或b/s)表示;bps表示比特每秒即表示每秒钟传输多少位信息,是bit per second的缩写。在实际所说的1M带宽的意思是1Mbps(是兆比特每秒Mbps不是兆字节每秒MBps)。
所以:
1B=8b 1B/s=8b/s(或1Bps=8bps)
1KB=1024B 1KB/s=1024B/s
1MB=1024KB 1MB/s=1024KB/s
64KB/s=64×8(Kb/s)=512Kb/s=0.5Mb/s即64KB/s=0.5Mb/s
128KB/s=128×8(Kb/s)=1024Kb/s=1Mb/s即128KB/s=1Mb/s
千兆以太网传输速率1Gbps=1024Mbps 注释:bps是数据传输速率的常用单位。表示为: 比特/秒。
二、ifconfig
通过上图可看到:RX bytes是381.5MiB,MiB是MB吗?如果是MB,如果是MB,那么381.5MB已经超过千兆带宽了,这咋可能呢
三、KiB、MiB与KB、MB的区别
MB等单位以10为底数的指数,MiB是以2为底数的指数,如:1KB=10^3=1000, 1MB=10^6=1000000=1000KB,1GB=10^9=1000000000=1000MB,而 1KiB=2^10=1024,1MiB=2^20=1048576=1024KiB。
与我们密切相关的是我们在买硬盘的时候,操作系统报的数量要比产品标出或商家号称的小一些,主要原因是标出的是以MB、GB为单位的,1GB就是1,000,000,000 Byte,而操作系统是以2进制为处理单位的,因此检查硬盘容量时是以MiB、GiB为单位,
1GB=2^30=1,073,741,824,相比较而言,1GiB要比1GB多出1,073,741,824-1,000,000,000=73,741,824,所以检测实际结果要比标出的少一些。具体如下
Mbit/s的意思是每秒中传输10^6 bit的数据,也写成Mbps
MB/s的意思是每秒中传输10^6 byte的数据
MiB/s的意思是每秒中传输2^20 byte的数据,不太常用
所以如果一个运营商声称自己的传输带宽是1 Mbps的话,
按照MB/s来算的话,它只有0.125 MB/s (megabyte per second);
按照MiB/s来算的话,它更是只有0.1192 MiB/s (mebibyte per second)
因为:
Mbit/s = 10^6 bit/s
MiB/s = 2^20 * 8 bit/s
所以:
Mbit/s = MiB/s * 0.1192
Mebibyte (Mega binary byte的缩写) 是信息或计算机存储的一个单位,简称MiB
那么上面ifconfig查询的381.5MiB应该是45.5Mb/s,由此可看出该设备流量占用带宽并不多
参考:
https://blog.csdn.net/miaomiaodmiaomiao/article/details/87899940
https://blog.csdn.net/starshine/article/details/8226320
单位转换:https://toolstud.io/data/bandwidth.php?compare=network&speed=1&speed_unit=Gbps