当前位置: 华文问答 > 数码

为什么我们提到的网速在上传、下载时要除以8?

2013-06-30数码

这个问题的深层关系是:计算机和通信是两个不同行业,有不同的关注点。

在通信业,我们关心的是数据如何从A传到B。那么,作为二进制数据,只能表达1和0的bit是天然的基础单位。而且这个bit,刚好还能和物理层面的脉冲信号相互对应(严格来说,脉冲信号是和码元才是一一对应,和bit是成比例对应。不过为了不过多引入其他诸如编码、码元进制等概念,就先这么说吧)。接下来做什么信号衰减、信号干扰、信噪比、信号转发之类的东西,都很方便。所以,通信行业拿着一个设备说我这台设备收发速率是「100bps」,实际上它想说的是:说这台设备一秒钟能收发/处理「100个信号」——当然,我们从计算机的角度来说,就是它一秒钟收发/处理「100个bit」——但这两种说法虽然意思相近,但实质内涵是有不同的。

但是在计算机业,虽然我们关注的也是1和0组成的二进制数据,但我们其实关心的是这些1和0所表达的含义。那么,一般情况下,只能存1和0的一个bit是表达不了什么特别有意义的内容的。所以,一般都用8个bit捆成一个byte来作为基础单位——好歹一个byte,存字符能放得下一个ascii字符,存数值能存0-255。甚至很多时候,我们还觉得一个byte也不够用,就继续捆成2byte、4byte、8byte来用。

所以,isp运营商,作为通信业中的一员,他们在采购设备、设计规划通信网络等等时候,自然使用的是通信业的概念和指标。

而你在计算机里看到的和显示的数据,自然又是按照计算机习惯的标准来。

看了不少其他回答,好像还是有不少觉得就是个除八乘八的单位转换问题。

那我就补充一下一些不被人注意到的小历史吧。

其实bit这个概念,要远远早于计算机出现的年代。大家看过谍战片,都应该对特工们偷偷发电报的那个滴滴答答的情节有印象吧?那里的每个滴答,就是一个bit,分别代表1和0(专业称谓是:dit和dah——不要问他们两和1/0到底谁代表谁,因为那个年代,人们不习惯用数字来代表二进制)。

而实际上,bit的出现,就是跟随远程电报业而出现的。最早的电报,大约在鸦片战争年代,大约在洋务运动年间传入了中国。到了甲午年代,我们看历史书上常见的什么「xxx通电下野」之类的「通电」,其实就是「通过电报广而告之」的操作——也就是说在那个年代,中国也已经有了完善的(有线)电报网络了。

而在那个年代,因为都是人工按出来的滴答,业内关注的速率其实不是bps,而是bpm(每分钟多少bit)。我的某位长辈,建国初期先是当通信兵,后来进入邮电。他们当年的职业技能大赛的永远不变的一个项目,就是比谁的bpm更高(包括发报和听报)。

说完了bit的起源,那就说说编码——因为大家都关心的是内容,而不是bit:

在电报盛行的那个年代,国际上最通行的字符编码就是摩尔斯码——大家熟知的代表紧急情况的SOS就是。但应该极少人留意到,摩尔斯码它就不是8bit代表一个字符的。它甚至已经极为超前的使用上了变长编码——英文字符1-4bit,数字统一是5bit。说来有意思,我当年宿舍有个哥们,在研究透彻了unicode编码后,顿悟,大赞这种变长编码乃前无古人后无来者的登峰造极之作。然后,捉狭的我就打印了份摩尔斯码表给他……

而另一个我们熟知的编码:ASCII码,有两点冷知识:首先是它不是一个8bit编码,而是一个7bit编码。其次就是,它的出现同样早于计算机。所以,是的,它最早也是用于电报业的。它之所以能替代摩尔斯码,主要是那个年代电报公司已经基本不再用人工按出滴答了,已经是按键盘上的字母,然后机器自动转换为滴答编码发送,所以定长(便于机器处理)且能容纳更多字符的编码自然就更受欢迎。

那么,到了计算机出现后,就终于出现1byte=8bit了吗?不好意思,还是没有。早期计算机,1byte=Nbit的N的范围,从7-10都有——应该不会有比7小的(毕竟连ascii码都放不下的,造出来也不大可能受欢迎),但可能有更冷门的会超过10也说不定。而受此影响。在早期就出现的计算机编程语言:C和C++的标准文件中,同样明确说了这是留给各厂商自行决定的:A byte is composed of a contiguous sequence of bits, the number of which is implementation defined. ——这个规定至今尚存。

而我所知道最早的,明确规定了8bit为基础单位的,应该是互联网协议规范里(记得它用的还不是byte这个词,而是octet——而octet这个词,本身就来源于拉丁文的8)。自那以后,为了便捷的接入互联网,以及便捷的处理互联网报文,大家才逐步开始逐步把软硬件设计统一到1byte=8bit这个关系上——具体时间点应该不早于80年代早期。

所以,8这个比例关系,实际上出现得非常非常非常晚(和通信业相比),只不过因为互联网大流行以及之后的兼容性处理,导致人们对它极为熟悉而已。

总之,在通信业看起来,你们多少个bit捆起来,那都是你们的事——当年摩尔斯码一统天下的时候,老子就是按bit来算的。现在互联网席卷一切,老子当然还是按bit算。说得难听点,莫尔斯码一统天下的时间,可比互联网长多了。所以,城头变幻大王旗,谁知道以后会不会又有个什么大流行的编码变成100bit呢?不过就算真的有那么一天,我相信通信业的兄弟还是会给我们一句话: 老子还是按bit算