[转帖]超能课堂(323) 为什么WiFi实际速率只有标称速率的一半?
超能课堂(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无线网络则胜在部署方便,而且在大部分应用场合中都可以提供足够的效能来满足用户的使用,因此对于多数家庭用户来说无线网络会是一个“真香”的存在。而且从目前的技术发展来看,无线网络显然更有未来的气息,其与有线网络更多地会是一种互补、相辅相成的存在,而并不是“谁取代谁”的关系,已经在无线网络中有较好体验的用户,大可不必为了追寻“测试结果上的数字差异”,而花大价钱去做有线网络的改造。
[转帖]超能课堂(323) 为什么WiFi实际速率只有标称速率的一半?的更多相关文章
- [转帖]超能课堂(210) 笔记本中常说的PL1、PL2到底如何影响CPU性能?
超能课堂(210)笔记本中常说的PL1.PL2到底如何影响CPU性能? https://www.expreview.com/71943.html 本文约 4070 字,需 7 分钟阅读 (切换至标准版 ...
- [转帖]超能课堂(207) SD卡标准错综复杂,到底该认哪一个?
超能课堂(207)SD卡标准错综复杂,到底该认哪一个? https://www.expreview.com/71505.html 开始的地方 SD容量等级 SD标准(SDSC) SDHC SDXC S ...
- [转帖]超能课堂 CPU制作过程
http://www.expreview.com/50814.html 一般来说,我们对IC芯片的了解仅限于它概念,但是对于已经应用到各式各样的数码产品中IC芯片是怎么来的?大家可能只知道制作IC芯片 ...
- [转帖]超能课堂(199) 接口渐趋统一,USB4又如何能引领变革?
https://www.expreview.com/70414.html 接口协议真复杂.. 9月3日,USB IF正式公布了USB4(你没看错,就是USB4,没有空格)的技术规格.USB-IF表示, ...
- [转帖]超能课堂:Intel平台芯片组变迁史
https://www.expreview.com/69419.html 现在我们在购买电脑时一个最重要的硬件就是主板了.作为承载CPU等主要硬件的平台,其最重要的功能就是连接外围设备,扩展计算机.但 ...
- 【转帖】超能课堂(186) CPU中的那些指令集都有什么用?
超能课堂(186)CPU中的那些指令集都有什么用? https://www.expreview.com/68615.html 不明觉厉 开始的地方 第一大类:基础运算类x86.x86-64及EM64T ...
- [硬件]超能课堂(181):我们为什么需要4+8pin CPU供电接口?
超能课堂(181):我们为什么需要4+8pin CPU供电接口? https://www.expreview.com/68008.html 之前算过TDP 来计算机器的功耗 发现自己 理解的还是有偏差 ...
- 【转帖】超能课堂(188) WiFi 6凭什么可以如此“六”?
https://www.expreview.com/69155.html 不明觉厉 这些东西 自己理解的还是少呢 电脑硬件可能一年甚至不到一年就会开始更新换代,但是路由器就不一样,它们的更新换代往往是 ...
- 超简单让ubuntu开启wifi热点(亲测16.04与14.04可用)
今天教大家一个简单方法让ubuntu发散wifi热点给手机或者其他设备使用. 首先,创建一个普通的热点,点击右上角的网络,然后选择下拉菜单中的编辑连接,然后出现以下界面. 然后点击增加,连接类型选接W ...
- [转帖]超详细的PostgreSQL体系结构总结,值得收藏
超详细的PostgreSQL体系结构总结,值得收藏 https://www.toutiao.com/i6715390855772897800/ 原创 波波说运维 2019-07-26 00:03:00 ...
随机推荐
- vue音频(监听播放完成)
<template> <div> <audio ref="audio" :src="audioSrc"></audio ...
- JQuery中美元符号$
目录 1. 概述 2. 详论 2.1. 加载脚本 2.2. 选择器 2.2.1. 元素选择器 2.2.2. ID选择器 2.2.3. 类选择器 2.3. 引入方法 3. 参考 1. 概述 前端技术得更 ...
- Llama2-Chinese项目:5-推理加速
随着大模型参数规模的不断增长,在有限的算力资源下,提升模型的推理速度逐渐变为一个重要的研究方向.常用的推理加速框架包含lmdeploy.FasterTransformer和vLLM等. 一.lmd ...
- 知道Python中的字符串是什么吗?
摘要:本文将告诉您Python中的字符串是什么,并向您简要介绍有关该概念的所有知识. 本文将介绍以下内容: 如何创建一个字符串? 如何从字符串访问字符? 格式化字符串 因此,让我们开始吧. 什么是Py ...
- LiteOS内核源码分析:消息队列Queue
摘要:本文通过分析LiteOS队列模块的源码,掌握队列使用上的差异. 队列(Queue)是一种常用于任务间通信的数据结构.任务能够从队列里面读取消息,当队列中的消息为空时,挂起读取任务:当队列中有新消 ...
- target.closest妙用:UI(click/mousemove/drag/drop)事件元素查找捷径
首先看下MDN:https://developer.mozilla.org/en-US/docs/Web/API/Element/closest 在jQuery时代,这个非常常见 $( documen ...
- Docker cp 将宿主机上的文件复制到容器中
[root@localhost ~]# docker cp /opt/web/docker_cp.txt tomcat9093:/usr/local/apache-tomcat-9.0.31/ [ro ...
- python 搭建HTTP服务器
WSGI(Web Server Gateway Interface,web服务器网关接口)主要规定了服务器端和应用程序之间的接口,即规定了请求的URL到后台处理函数之间的映射该如何实现.wsgiref ...
- python版本升级到3.8以及安装虚拟环境
linux系统升级python版本看起来复杂,如果知道其中步骤也不会觉得很困难.下面记录在deepin系统 15.11和ubuntu16.04系统下将python从2.7升级到3.8过程 升级pyth ...
- VF01/VF11 创建和冲销开票凭证
1.创建开票凭证 1.1.前台 VF01创建开票凭证 1.2.源代码 "--------------------@斌将军--------------------DATA:lt_billing ...