超能课堂(323) 为什么WiFi实际速率只有标称速率的一半?
在我们的实际测试中,标称速率为1000Mbps的有线网卡往往可以轻松跑出900Mbps或更高水平的平均速率,但标称速率为1200Mbps的WiFi 6无线网卡,实际测试下来的平均速率大都是800Mbps以内的水准。因此时至今日,千兆级有线网络的实际使用体验,相比标称速率更高的WiFi 6甚至WiFi 6E无线网络,很多时候反而能略胜一筹。那为什么会出现这样的状况呢?这就要从数据是如何在网络上传递说起了。
我们在操作系统直接看到的网络连接速率其实是“标称速率”,又名为“协议速率”,可以简单地理解为理论上可以达到的最大速率。我们在实际应用中体现出来的网络速率是无法超过协议速率的,因为数据在网络上的传输是以数据封包,也可以称为数据帧的形式进行。
顾名思义,数据封包就是将很多不同的数据打包成一个固定格式包裹,就像我们发快递一样,发往同一个地址的不同货物,是可以打包在一个快递箱里面的。一个数据封包就是一个数据帧, 以千兆有线网络为例,其单个数据帧包括有18字节分别为目的地址(6字节)、源地址(6字节)、类型(2字节)、标签(4字节),而且在数据帧传输之时,前部还有再加上7个字节的前导码和1个字节的开始符,另有4字节的冗余检验和12字节的帧间距,因此有线网络里每传输一个数据帧,实际传输的信息容量就是88字节到1542字节,而当中只有46字节到1500字节是我们需要的数据。
无线网络的工作方式也是类似的,只是传输数据帧的载体从电缆变成了电磁波,封包的结构也稍有变化,其每一个数据帧中,储存有效数据空间为最大2312字节,而用来控制帧、管理帧、地址帧、校验帧等非有效数据的组成,需要总计34字节,也就是说每个数据帧最大容量为2346字节。由于在实际应用中展现出来的网络速率,往往只会统计数据帧当中的有效数据,而不会统计额外加入的封包信息,因此无论是有线网络又或者是无线网络,其实际网络速率都是不会超过协议速率的。
然而从封包信息以及有效数据的容量比例来看,无线网络的数据帧中,有效数据的比例并不比有线网络的要低,很显然单单依靠“封包信息”的说法,还是无法解释为何无线网络的实际速率与协议速率相差很大的状况。这时我们就需要说到两个专有名词,那就是“全双工”与“半双工”。
如果我们把一条数据通道当成一条连接A与B的道路,那么“全双工”就代表着这条道路可以同时实现A-B与B-A的通行,而“半双工”则代表着这条道路虽然可以实现A-B或B-A的通行,但同一时刻只能让其中一个方向通行,另一个方向必须等待。与“全双工”以及“半双工”对应的自然就是“单工”,即道路只能单向通行,A-B或B-A二选一,因此“半双工”也就相当于“可切换方向的单工”。
目前 千兆级的有线网络基本上都是运用全双工的工作模式,而WiFi无线网络则都是使用半双工的工作模式,因此对于有线网络来说,其在发送数据的同时也能接受数据,两个方向的数据包几乎不会干扰对方的工作。得意于此,如果有线网络需要双向传输数据时,那两个方向的传输都能同时进行且均能达到千兆级的速率,实际吞吐量就相当于是两个千兆网络叠加,相当于2000Mbps的水准。
而采用半双工模式的WiFi无线网络则做不到这一点,由于其在同一时间只能接受数据或发送数据, 因此当其两个方向同时传输数据的时候,网卡实际上是在“接受模式”和“发送模式”之间反复切换,实际吞吐量就不会超过协议速率,而且为了确保无线网卡能够正确地切换模式,数据帧的传输时会增加帧间隔时间,这就意味着在单位时间里传输的有效数据实际上会更低。
当然从 理论上说,如果网络可以一直维持单向传输,那么半双工是可以没有帧间隔,实际速率上的表现会更接近协议速率。但实际情况是,即便在表面上看只需要单向传输数据,例如我们通过网络进行下载操作,那系统在接受到数据包后,也是需要给出相应的反馈信号,更别说此时网络中可能还存在别的进程需要上传数据。因此半双工的WiFi网络 在实际应用中必须按照协议的安排来发送或接受数据包,帧间隔不可避免,而且发送与接受的数据帧也会存在各种差异,这就进一步拉大了有线网络实际速率与协议速率之间的距离。
除了全双工与半双工带来的实际速率差异外,有线网络与无线网络的载体也对两者的实际性能带来了明显的影响。目前千兆有线网络的载体是双绞线,比较常见的是Cat.5E也就超五类线以及Cat.6也就是六类线,两种线材在基本结构上是接近的,只是后者带有金属箔屏蔽层以及线内支架,能更好地降低内部与外部的干扰,有利于实现更高的传输速率。但无论是超五类线还是六类线,在我们的日常使用环境中,外界是几乎无法在不接触线材的情况下,直接干扰其内部的数据传输,因此只要路由器与网卡之间的网线是正常的,那基本上无论什么时候都能提供最佳的传输速率。
而无线网络使用的是电磁波作为载体,其“特点”就是很容易受到外接的干扰,包括传输路径是否有障碍物,外接是否存在频率接近的其他电磁波等等,而且传输距离也是明显受制于发射功率。这就使得无线网络在传输数据的时候,很容会因为外界的干扰而影响了数据帧的完整性。当客户端接收到不完整的数据时,其将返回一个重发数据帧的信号,路由器便需要重发数据,这就相当于是降低有效数据的比例,表现出来就是实际速率远低于协议速率了。
另外我们在连接WiFi无线网络的时候,往往还需要输入密码,这就意味着WiFi无线网络是经过加密的,因此设备与路由器在发送和接受数据的时候,将需要对相应的数据帧进行加密和解密,一定程度上也会影响数据的传输速率。当然相比于此前提到的因素,加密带来的影响实际上市比较小的,考虑到安全方面的需求,这点速率牺牲还是很有必要的。
虽然WiFi无线网络的实际速率往往只有协议速率的50%左右,但随着技术的发展,目前已经逐步普及的WiFi 6以及WiFi 6E实际上已经给用户带去了接近于千兆级有线网络使用体验。只是有线网络与无线网络毕竟存在着明显的差异,前者在当前依然具有网络延迟上的优势,在各种场合下的稳定性也要有更好的表现,而且随着2.5Gbps、5Gbps、10Gbps有线网络的逐步普及,速率上的优势也是也来越明显,使得有线网络依然是很多对网络性能有较高要求的发烧级用户的首选。
而WiFi无线网络则胜在部署方便,而且在大部分应用场合中都可以提供足够的效能来满足用户的使用,因此对于多数家庭用户来说无线网络会是一个“真香”的存在。而且从目前的技术发展来看,无线网络显然更有未来的气息,其与有线网络更多地会是一种互补、相辅相成的存在,而并不是“谁取代谁”的关系,已经在无线网络中有较好体验的用户,大可不必为了追寻“测试结果上的数字差异”,而花大价钱去做有线网络的改造。