最近在算报文传输的各种速率的时候,被各种单位搞得比较混乱。这里重新梳理一下。最重要的是,计算机存储单位我们通常习惯以字节(Byte)来计算,而网络传输中,运营商等的几M宽带习惯以位(bit)来计算。
计算机存储单位
计算机中最小的存储单元是位(bit)也有记为B的,为了避免混淆,我一律记为bit。
而最常用的,也是我们最习惯的存储单位是字节(Byte),1Byte=8bit
为什么说我们最习惯的是字节而不是位呢,应为我们日常用的KB,MB,GB中大写的B都是Byte。其中关系为
1KB = 2^10Byte
1MB = 2^20Byte
1GB = 2^30Byte
这也是我不把bit记为B的原因,因为往往我们看到的大写的B都是Byte,而小写的b是bit。
网络中的传输单位
网络中的传输单位则通常习惯是以位来表示的,1M的宽带实际上是1Mb的宽带,通常会写为1Mbps,表示1Mbit/s。这个速度换算成我们认知的下载速度(我们还是习惯以计算机存储单位来计算)实际上就是1/8MByte/s = 0.125MB/s。
计算报文发出时间也是一样的,一封报文通过百兆口(100Mbit/s)发出的时间及为报文长度(Byte)/(8*100M)
题外话
对于计算机存储,除了上面的内容外,通常还会纠结关于“字符”这个单位。字其实不是计算机存储的单位,而是不同语言表现出来的单位。即对于英文来说,一个英文字母就是一个字符,对于中文来说,一个汉字就是一个字符。而一个字符可以换算成多少个字节,则取决于编码。这也很好理解,编码就是把不同的人类字符转化成计算机能识别的字节或位的。对于ASCII码,一个英文字母占一个字节,一个汉字占两个字节。对于UTF-8,一个英文字母占一个字节,一个汉字占三个字节。