802.11速率详解
0、序
802.11协议发展过程中定义了很多种速率,比如1mbps/65mbps等等,不同协议版本的速率都有差异,这些速率数值都是怎么计算出来的?芯片在发送数据的时候到底该选择什么速率来发送呢?本次先探讨前半部分,下一次再探讨后半部分。
1、802.11/802.11b的速率
802.11/802.11b定义了两种物理层标准,分别是FHSS( Frequency-Hopping SpreadSpectrum,跳频扩频技术)和DSSS( Direct Sequence Spread Spectrum,直接序列扩频技术)。
1.1、FHSS
FHSS定义了1mbps和2mbps两个物理层速率,目前该技术已经被IEEE802.11废弃,标准文档里面早已看不到它的身影了。FHSS采用伪随机跳频序列在发送的过程中不停地变换通信频率,收发双方遵守相同的跳频规则跳到相同的频率上进行数据的收发。跳频不仅可以提升自身的抗干扰性,同时对周围环境也不会产生持续的干扰。但是每个事物都有双面性,跳频也存在不足之处,虽然跳频使用的带宽很大,但是在任意时刻发送数据所使用的带宽却很小,因此限制了无线通信的吞吐量。
虽然在IEEE802.11里面已经不再使用跳频技术了,但是跳频技术依然是蓝牙物理层的技术,蓝牙未来的发展趋势是低功耗但对带宽要求却相对不高。
1.2、DSSS
扩频是指将发送的信号用伪随即编码进行调制并最终扩展到更大的带宽上进行传输。最开始DSSS采用Barker码,速率也只有1mbps和2mbps。802.11b对DSSS-Barker进行了增强,提出了HR-DSSS(High Rate - Direct Sequence Spread Spectrum)采用CCK编码方式,速率达到了5.5mbps和11mbps。
优势是自身抗干扰性强容易被接收,但是不足之处是发送效率较低。
目前Beacon帧速率都采用1mbps速率发送,原因就是Beacon帧是个非常重要广播帧,要同时保证抗干扰和版本兼容性。
DSSS的基本单位是chip,DSSS和HR-DSSS的chip速率都是11MHz。DSSS采用11-chip Barker码,一个符号是11 chips默认发送1bit,调制方式有DBPSK和DQPSK,速率分别是1mbps和2mbps。HR-DSSS的一个符号是8chips,均采用DQPSK调制,一个符号可以传输4bits和8bits,速率分别是5.5mbps和11mbps。
物理层技术 | chip rate | 每个符号长度 | 每个符号发送bit数 | 调制方式 | 速率 |
---|---|---|---|---|---|
DSSS-Barker | 11MHz | 11chips | 1 | DBPSK | 1mbps |
DSSS-Barker | 11MHz | 11chips | 2 | DQPSK | 2mbps |
HR-DSSS-CCK | 11MHz | 8chips | 4 | DQPSK | 5.5mbps |
HR-DSSS-CCK | 11MHz | 8chips | 8 | DQPSK | 11mbps |
2、802.11a/g的速率
从802.11a就已经开始使用 OFDM(Orthogonal Frequency Division Multiplexing,正交频分复用),OFDM的基本原理是把无线信道划分成若干个正交的子信道,在每个子信道上使用一个正交的子载波进行传输,各个子信道的传输可以并行进行。这钟方式提升了频谱利用率,同时也能够实现多用户同时接入。由于把高速数据流分散到各个子信道上进行传输,这样每个子信道就变成低速数据流,提升了系统健壮性。
802.11a/g新增以下几种速率:6mbps/9mbps/12mbps/18mbps/24mbps/36mbps/48mbps/54mbps,其中6mbps/12mbps/24mbps是需要强制支持的。这些速率都是怎么得来的?先看看跟OFDM相关的几个概念:
Symbol | Explanation | 解释 |
---|---|---|
R | Coding Rate | 码率 |
NSS | Number of spatial streams | 空间流数 |
NSD | Number of complex data numbers per spatial stream per OFDM symbol | 数据子载波个数 |
NSP | Number of pilot values per OFDM symbol | pilot子载波个数 |
NBPSCS(iSS) | Number of coded bits per single carrier for each spatial stream, iSS = 1,…,NSS | 每个空间流中每个单载波的编码比特数 |
NCBPS | Number of coded bits per OFDM symbol | 每个OFDM符号中的编码比特数 |
NDBPS | Number of data bits per OFDM symbol | 每个OFDM符号中的编码数据比特数 |
每个OFDM符号分成了数据子载波和pilot子载波,每个子载波上会编码一定的比特数,那么每个OFDM符号一共编码的数据比特数为:
NDBPS = NCBPS x R = NSD x NBPSCS x R
802.11a/g中每个OFDM符号一共有52个子载波,其中48个数据子载波,4个pilot子载波。
每个OFDM符号持续的时长TSIGNAL为4us(3.2us符号时长,0.8us的GI),那么最终计算出来的速率为:
DataRate = NDBPS / TSIGNAL
802.11a/g速率参考如下表格:
Modulation | Coding rate ( R ) | Coded bits per subcarrier (NBPSC) | subcarriers per OFDM symbol (NSD) | Coded bits per OFDM symbol (NCBPS) | Data bits per OFDM symbol (NDBPS) | Data rate (Mb/s) (20 MHz channel spacing) |
---|---|---|---|---|---|---|
BPSK | 1/2 | 1 | 48 | 48 | 24 | 6 |
BPSK | 3/4 | 1 | 48 | 48 | 36 | 9 |
QPSK | 1/2 | 2 | 48 | 96 | 48 | 12 |
QPSK | 3/4 | 2 | 48 | 96 | 72 | 18 |
16QAM | 1/2 | 4 | 48 | 192 | 96 | 24 |
16QAM | 3/4 | 4 | 48 | 192 | 144 | 36 |
64QAM | 2/3 | 6 | 48 | 288 | 192 | 48 |
64QAM | 3/4 | 6 | 48 | 288 | 216 | 54 |
3、802.11n/ac的速率
802.11n/ac在子载波数目上多了4个,达到了56个子载波,其中52个数据子载波,4个pilot子载波,同时支持5/6码率,速率要比802.11a/g高一些,MCS的概念就是从这里开始使用。
下面是802.11n的MCS,摘选自802.11-2020
下面是802.11ac的部分MCS,摘选自802.11-2020
从上表发现MCS9显示“Not valid”,可以从前一节给出的计算速率的公式中发现原因,MCS9的码率®是5/6,这样算出来NDBPS不是一个整数。
4、802.11ax的速率
802.11ax引入了OFDMA导致复杂度有了一定的提升,先看速率相关的变化。子载波间隔变小使子载波数量进一步提升,进而使每个OFDM符号的时长变长。具体如下表格,摘选自802.11ax
子载波间隔由312.5KHz减小到78.125KHz,OFDM符号数据时长由3.2us变成12.8us,同时支持三种GI,相应地OFDM符号长度也有三种:13.6us/14.4us/16us。
下图摘自802.11ax,20MHz的总子载波达到了242个,其中pilot子载波8个,数据子载波234个,但是由于802.11ax引入了DCM机制导致实际的数据子载波个数不一样,DCM打开的话会使实际数据子载波变为原来的一半。
部分MCS信息,摘自802.11ax
802.11速率详解相关推荐
- 802.11 wireless 详解
wireless 是个广义的概念 这个 空气波形传播写以在1991年时就标准化了在后来一步步补充完善, 它包含短波传输 bluetooth nfc ,中场波wlan 和 zigbee . 下来我们讲一 ...
- RAD Studio 11.2详解其务实改进(Delphi C++ Builder)-Alexandria
RAD Studio 11.2详解其务实改进(Delphi & C++ Builder)-Alexandria 目录 RAD Studio 11.2详解其务实改进(Delphi & C ...
- 我的世界connect指令php,我的世界1.11指令大全 1.11指令详解
我的世界1.11指令大全 1.11指令详解.那下面给大家分享的则是1.11版本中的一些指令哦~那不知道我的世界1.11版本有哪些指令的玩家不妨进来看看下面的介绍吧! 游戏园我的世界官方群:325049 ...
- 【小白学PyTorch】11.MobileNet详解及PyTorch实现
<<小白学PyTorch>> 小白学PyTorch | 10 pytorch常见运算详解 小白学PyTorch | 9 tensor数据结构与存储结构 小白学PyTorch | ...
- 802.11ax TWT详解2
参考文献 802.11ax Draft 8.0 TBTT(Target Beacon Transmission Time):信标预定传送时间,类始于现在是几点,实际上这个是一个定时后的发送/接收bea ...
- 黑客攻击我们的11步详解及防御建议
安全公司Aorato的一项新研究显示,个人可识别信息(PII)和信用卡及借记卡数据在今年年初的Target数据泄露实践中遭到大规模偷窃后,该公司的PCI合规新计划已经大幅降低了损害的范围. 利用所有可 ...
- AAA之802.1x认证详解(一)
ACS上的配置:System Configuration 打开ACS的配置界面,点Network Configuration,在AAA Servers里点击Add Entry配置AAA服务器. 配置A ...
- Linux 内核0.11 系统调用详解(下)
备注:上讲中,博猪讲到了操作系统是如何让用户程序调用系统函数的,这讲继续接上讲的话题,从一个系统内核系统函数创建的小实验来学习系统内核具体做了些什么.理清下系统调用的整体过程. 实验:在Linux 0 ...
- 极力推荐自由飞鸽的电子书《linux 0.11内核详解》,我传至纳米盘,也可到oldlinux.org 去下载
2007修订版: http://d.namipan.com/d/6834dabccb51dcfd6112ce54e47c87aa5f7fdb1ec7e96400 2002经典版: http://d.n ...
- WiFi、WLAN的区别以及深入探索理解802.11协议
1. WiFi.WLAN与802.11相关背景知识 1.1 WiFi.WLAN与802.11相互之间的关系 1.1.1 定义 WLAN(wireless local network)无线局域网,是一种 ...
最新文章
- C# BeginInvoke与EndInvoke的使用
- MySQL二进制日志文件过期天数设置说明
- HDOJ 4704 Sum 规律 欧拉定理
- Touch Diamond Remote —— 世界就在指尖
- 交换机工作原理_什么是POE交换机,它有什么好处?
- 五十八、如何对一个数进行分解质因数
- Bootstrap Well 组件
- 程序员放弃月薪2W的工作,改行做销售,结果垫底,网友:瞎折腾
- spark学习-76-目标:如何成为大数据Spark高手
- bzoj 3196二逼平衡树 线段树套平衡树
- 【数据采集与数据清洗】课堂笔记
- cdr添加节点快捷键_常用CDR快捷键
- u盘linux运行速度慢,linux准确测量U盘读写速度
- How to install VIB on VMware ESXi
- Proteus和Keil两个软件的联合使用
- 春晚宫女唐奕霖被爆背景深厚 可携助手出入央视排练场享有特权
- 【C语言】易错题 and 易混淆知识
- uniapp获取手机可接收的所有的WiFi名称与信号强度
- 咋把计算机程序固定到任务栏中,win10我的电脑固定到任务栏如何操作_win10怎么把我的电脑放到任务栏...
- JS 测试网络速度与网络延迟
热门文章
- 第7-9节项目2-歌手大奖赛计分系列(1)
- SOT-223 封装尺寸图
- 摇筛子动画 android,摇骰子动画
- 直接管理和维护计算机系统的程序称为,全国2008年4月自考计算机原理试题
- android画布橡皮,Android 图片涂鸦橡皮擦功能
- python字典概述
- 网络层—简单的arp断网
- 谷物割捆一体农用车系统整体设计
- centos离线安装(升级)nvidia显卡驱动及cuda10.2
- python请输入一个三位数输出该三位数的逆序数_编写程序,从键盘输入一个三位数,求出其逆序数并输出,例如输入123,输出321。...