Skip to main content

网速

hiSPEEDTEST FOR ANDROID.png

在线测速点击

 

在 iOS、iPadOS 和 macOS 上通过 802.11k、802.11r 和 802.11v 实现无线局域网漫游

image-1649948886196.png

image-1649949694464.png

放大的光盘表面是这个样子的

image-1649950330203.png

MB,Mb 等 Byte 和 Bit 的区别。

另一个大家经常弄混,也经常有人解释的问题就是 bit 比特和 Byte 字节的区别

很多人经常傻傻分不清这两个单位的区别,比如我们常说 100M 宽带,很多人就认为每一秒钟就能下 100MB 的文件,但其实 100M 宽带的理论下载速度只有 12.5MB/s;还有5G时代,各家运营商纷纷宣布自己的网络能够达到几百 Mbps 甚至 1G+Mbps,大家就把它当成真实下载速度了。加上 MBps 和 Mbps 还有 MB/s 和 mb/s 经常会被混用,搞的大家就更混乱了。

网络测试可以切换不同的速度单位

那么为什么要用两个单位呢?这是因为数据传输的最小单位是 bit,也就是二进制中的 0 或者 1,而文件储存的最低单位是 Byte,由 8 个 bit 组成,1Byte 的数据根据排列不同有 2 的 8 次方即 256 种排列方法,可以代表数字,大小写字母和常用字符。(这也是为啥 1Byte=8bit,同理一个中文字占 2 byte,因为 2 的 16 次方等于 65536,16bit 才足够覆盖常见中文字符)

IBM 最早的电脑上采用的 EBCDIC 编码表就是 8bit,很多人认为这也是 1Byte=8bit 的重要原因

所以数据传输领域经常用 bit 做单位(传输的是 0/1),下载和上传速度用 Byte 做单位(因为下载或上传 1Byte 以上的数据才有意义)。

机械硬盘的接口和协议

接口和协议也是储存设备另外一个比较重要的组成部分,不同的接口和协议能对储存设备的读写速度 IO 请求等产生较大的影响。接口和协议的兼容性也决定了储存设备能不能够在特定的设备上使用。

在讲之前,我还是先给大家捋捋物理接口,协议,还有最终读写速度的关系。大家都知道计算机或者手机的设备里面会有很多个不同的部件,比如处理器、显卡、运行内存、储存硬盘、网卡等等,各部件和处理器,或者各部件互相都要不断传递数据。

它们传输数据的物理通道就叫总线,用来走实际上的电信号。我们常听见的 SATA,PCIe 这种就是不同类型的总线通道,它们通常和北桥南桥直通。

北桥可以理解为处理高速信号的芯片,可以说是直连 CPU,PCIe 一般就是连它;南桥可以理解为处理低速信号的芯片,比如 SATA 和 USB 都是连它,不过现在 Intel 和 AMD 都把它们整合进 CPU 里面了。

新的 CPU 芯片里面已经包含了北桥和南桥,图片来源:AnandTech

总线可以有很多条通道,具体取决于主板和处理器能够支持多少通道。每个通道能传输多少数据量就叫做带宽,每个通道的带宽乘以接口占用通道数,就是这个接口能够传输的速度理论上限,不过实际上速度要比理论上会低不少。

常见的总线速率,维基百科

比如我们用来插显卡的那个接口就是 PCIe 16X,下面通常会有的短短的接口是 PCIe 8X,有的主板会把它们做成同样长的,注意观察,里面有一半没有针角的就是 8X,主板上面也会有标注。

不同的 PCIe 插槽,图片来源:Trenton Systems

按照上面的算法 PCIe3.0 16X 单通道的插槽速度能达到 16Gb/s,而 8X 只有 8Gb/s,所以把显卡等需要高带宽的设备插上去前,要先确定接口是多少通道的,不然插错了高端显卡性能减半就血亏。

另外还有一些主板是共享通道,也就是说主板上所有插槽合起来就这么多个通道,比如主板宣称 16 条共享通道却有 16X 和 8X 两个插槽,那么当第 2 个插槽插东西时,第 1 个插槽也会变成 8X,这就是所谓的抢速度,有时候明明你把一个固态硬盘直接插到主板上对应的插槽,速度还是上不去,可能就是因为其它设备在抢 PCIe 通道,所以还蛮需要注意主板参数说明的。

物理接口就是提供两个设备之间的一种连接方式而已。比如主板和硬盘通过 SATA 接口来连接,那么实际的电信号则是从接口那里通过不同总线来传输到处理器的。而规定数据如何传输,如何沟通,每次传输多少数据,怎么打包等等我们就叫他协议。

简单理解版本:总线就像管子,它只提供一个通道,多通道就是很多根管子,不管里面是水还是油还是其它什么都可以传输。不同的公司就能用这些管道来运送自家的商品,比如矿泉水公司就可以将矿泉水打包成小瓶,大瓶,一箱等等方式通过管子来运;食用油公司也可以将油打包成不同大小的瓶子,通过管道来运,这些公司就是接口,他们规定的打包方式外包装要用什么车或者飞机运,要运多快等等就是协议。

可以看到,其实物理接口并不能决定最终数据是怎么传输的,协议才能决定最终数据传输的方式,这也是为什么我们能够用转接线把一个接口转成另一个接口,还能够正常使用,因为转接口中间通常会有一个芯片,来将数据从一个协议的形式转换成另一个协议的形式。

五花八门的转接线

我们现在已经没有在使用的机械硬盘接口有 ATA,SAS,SCSI,光纤口(FC)等,我们现在在使用的机械硬盘接口基本上就 SATA 了,不过注意只有中间 L 型的这块才是 SATA 的数据接口。

不同的硬盘接口
SATA 数据接口

不同协议接口对速度的影响

总线规定死了数据传输速度的物理上限,SATA 接口使用的是 SATA(AHCI) 协议走的也是 SATA 总线(是不是有点套娃),按照 SATA3.0 总线,传输上限就是 700MB/s,还是能满足机械硬盘需求的,不过即使你把一个高速固态硬盘插到 SATA 接口上,撑死也能跑 700MB/s 而已,这就是物理的上限。

而协议也决定了速度的上限,有两种方式,一个是就是同样的接口,但更新协议版本开放更高的速度上限。这和处理器的处理性能有关,也就是说物理接口和总线能够传输更高的速率,但是处理器处理不过来,就会通过协议来控制速度传输的速度。另一种情况是协议随接口更新,比如 USB3.0 接口推出之后用的是 USB3.0 协议,所以 USB3.0 接口和 USB2.0 接口是不一样的东西,只是为了保证兼容性,把它们做成一样的而已。通常新接口为了兼容都是会把旧接口作为它的子集,在旧接口的基础上加两个针脚或者改改电路等,这样子新接口的物理传输速度是提高的,所以需要新的协议充分地利用这个接口。

机械硬盘速度和寻道时间比较慢,所以对接口要求也不高。现在高速固态硬盘通常都是另外的走 PCIe 的接口,而不继续使用 SATA 也就是这个原因。

数据通过不同的接口走不同的协议,最后通过不同总线到处理器的过程,实际的速度取决于这其中最慢的那部分。另外一些奇奇怪怪的接口,混插兼容等等的内容,我们会在下一章介绍完固态硬盘之后一起来讲。