802.11abgn协议学习总结-阿里云开发者社区

开发者社区> 平头哥芯片开放社区> 正文

802.11abgn协议学习总结

简介: 本文介绍 802.11abgn协议学习总结

1 .提笔

自己从事WiFi行业多年,说来惭愧,竟然没有静下心来给个总结。最近由于工作关系,又再次涉及WiFi相关内容,故而花了些时间总结出此文档。分享给同学们,同时也算是给自己一个交代。一杯敬明天,一杯敬过往?哈!

当然,还是那句话,如有不准确之处,还望各位同学批评指正。

2. 802.11家族演进史

IEEE 802.11是现今无线局域网通用的标准,它是由电气和电子工程师协会(IEEE)所定义的无线网络通信的标准。从1997最初版发展到现在,历经20多年,俨然已是一个庞大的协议家族。从命名上就可以看出:a一直到z,单字母用完,aa一直到目前的ax,双字母继续发展。所以个人认为802.11是迄今为止局域网领域最为复杂的数据链路层协议,没有之一。

如此庞大的协议家族,每个都可以拿出来细谈,本文主要集中在802.11a/b/g/n上,也就是重要的几个milestone,WiFi5(11ac)和WiFi6(11ax)会后续另论。

协议重要的几个版本演进史

image.png

802.11版本演进

那大家可能会问,发展的幕后推手是什么呢?答案是速度。对,就是为了满足人类不断对速度的追求。这算不算是一种欲望呢?哈!不扯淡,看图,看看速度是怎么变快的。

image.png

802.11物理层技术演进

上面这张图很重要,下面很大篇幅其实都是来解释这张图。

对了,有个小概念澄清下。虽然经常将Wi-Fi与802.11混为一谈,但两者并不等同。1999年工业界成立了Wi-Fi联盟,致力解决匹配802.11标准的产品的生产和设备兼容性问题。

3. 802.11abgn物理层

我的经验是,要学习掌握某一数据通信协议,先找出其OSI模型,然后从底层(物理层)向上层层剥离。对于802.11来说,就2层:物理层和MAC层。

3.1 最初的802.11(July 1997)

主要提供三种物理层:红外技术,跳频扩频和直接序列扩频

  1. 红外技术,没有实际使用,不在讨论范围内
  2. FHSS+GFSK,得到1Mbps和2Mbps速率
  3. DSSS+BPSK/QPSK,得到1Mbps和2Mbps速率

3.1.1 FHSS和GFSK

何为FHSS跳频扩频呢?看如下图:

image.png

跳频为啥得到1Mbps和2Mbps数据速率呢?原因是GFSK调制解调技术。GFSK是调频,也就是说依靠不同频率的载波来传递二进制1和0。分为二阶式和4阶式:

1M的符号symbol率(每秒传输1M个symbol),采用二阶GFSK调制,每个symbol携带一个bit信息,对应就是1Mbps

采用四阶GFSK,每个symbol可以携带2个bit信息,对应就是2Mbps

image.png
图表4 二阶式GFSK

image.png
图表5 二阶式GFSK频域图

image.png
图表6 四阶式GFSK

image.png
图表7 四阶式GFSK频域图

3.1.2 DSSS和BPSK/QPSK

802.11最初版也定义了另外一种物理层DSSS,速率也可以达到1Mbps和2Mbps。同时定义了2.4G频段的频道分布。如图:

image.png
图表8 2.4GHz频谱图

那么何为DSSS直接序列扩频?如下图:

image.png
图表9 Barker码扩频原理1

image.png
图表10 Barker码扩频原理2

可以看出,DSSS就是利用扩频码(图中是11位的Barker码)承载要传输的二进制信息。这样做的目的其实就是把窄带信号分布在较宽的频带上,提高抗干扰能力。

编码好了,那就开始载波调制,空中传输了。DSSS采用PSK调相技术,即用载波的不同相位来传输二进制0和1. 具体又分为BPSK和QPSK。如下图:

image.png
图表11 BPSK

image.png
图表12 QPSK

可以看出,同样的载波,同样的周期里BPSK能携带1bit信息,QPSK能携带2bit信息。

那么 ==速率=符号速率x 单个符号编码位数/扩频码位数==

符号率固定为11M。

单个符号编码位数,BPSK=1,QPSK=2。

Barker码为11位。

至此,==BPSK 速率=11x1/11=1Mbps== ==QPSK 速率=11x2/11=2Mbps==

3.2 802.11b物理层

提供4种物理层:

  1. DSSS+BPSK/QPSK+Barker,没有变化,继续提供1Mbps和2Mbps物理层
  2. DSSS+QPSK+4-Bits CCK,引进5.5Mbps物理层
  3. DSSS+QPSK+8-Bits CCK,引进11Mbps物理层

可以看出,新增了5.5Mbps和11Mbps物理层。那怎么实现的呢?这就要谈到CCK扩频,区别于Barker 11位扩频,CCK采用8位扩频,配合QPSK调制,可以做到每个symbol携带4bit和8bit信息。

Again, 依然是这个公式:速率=符号速率x 单个符号编码位数/扩频码位数

不难得出,==4 bit CCK对应的速率=11MHz x 4 bit / 8 = 5.5Mbps==​ ==8 bit CCK对应的速率=11MHz x 8 bit / 8 = 11Mbps==

3.3 802.11a物理层

工作在5GHz,速率最高达到54Mbps,划重点:

开辟了新的频段5G

采用了OFDM

更高阶的QAM编码

我们来一一介绍。首先是频谱发生了变化。如下图:

image.png

802.11a频谱与频道

OFDM,正交频分复用。基本原理:

将信号分割为N个子信号,然后用N个子信号分别调制N个相互正交的子载波。OFDM 物理层将每个频宽20MHz 的频道划分52个子载波。其中有4 个子载波充当导波(pilot carrier),用以监控路径偏移与 ICI。至于其余 48 个子载波则是用来传递数据。子载波之问彼此相距0.3125MHz ,频道编号从-26 至 26。这就好比同样宽的马路,以前是单车道,现在变成了48个车道,马路没变,但通行能力增大了。

image.png
图表14 频域中的正交性

QAM,正交幅度调制。也就是同时利用了载波的振幅和相位来传递信息。如下图:

image.png
图表15 16 QAM和64 QAM

可以看出,16 QAM可以做到每个符号symbol携带4位二进制信息;64 QAM可以携带6位二进制信息。

至此,我们来算笔账,看看11a速率的组成和由来。

==物理层速率Mbps=子载波数x调制阶数x编码效率/OFDM符号发送间隔==

image.png
图表16 802.11a速率表

==举个栗子,对应调制方式16-QAM,编码效率为1/2。速率怎么算呢?在802.11a中,数据子载波是48个,16QAM调制对应的每个symbol可以携带4位信息,R=1/2是编码率(为了能抗干扰增加纠错能力,就要增加冗余度,即1/2可以理解为1个bit用2个bit来传输),一个OFDM symbol的传输时间是4us(可以理解为每秒传输0.25M个OFDM symbol)。即48x4x(1/2)x0.25M=24Mbps。==

讲到这儿,歇会儿,喝口水,让我们在54Mbps的速率上躺会儿。

3.4 802.11g物理层

与11a的技术相同,区别是工作在2.4GHz频段。==故最高速率也是54Mbps==。

但有一点要注意,11b也工作在2.4G频段,那11g就要兼容11b(CCK DSSS)。 如何做到呢?方法有二:

  1. 类似隐藏节点的解决办法 RTS/CTS机制
  2. CTS to Self机制

关于这两点,涉及到MAC层,在此先记住就行了,后面MAC章节会讲到。

3.5 802.11n物理层

革命尚未成功,同志还需努力,让我们继续攀升速率。802.11n关键技术:

  1. MIMO
  2. 40MHz信道
  3. Short Guard Interval
  4. OFDM改进
  5. 编码率的改进

啥?这么多新名词!淡定,让我们一个个来讲。

============================================================================

MIMO,多输入多输出。**MIMO是802.11n物理层的核心,指的是一个系统采用多个天线进行无线信号的收发。它是当今无线最热门的技术,无论是3G、IEEE 802.16e WIMAX,还是802.11n,都把MIMO列入射频的关键技术。MIMO主要有以下典型作用:

  1. 提高吞吐量
    通过多条通道,并发传递多条空间流,可以成倍提高系统吞吐。如图17.
  2. 提高无线链路的健壮性和改善SNR
    通过多条通道,无线信号通过多条路径从发射端到达接收端多个接收天线。由于经过多条路径传播,每条路径一般不会同时衰减严重,采用某种算法把这些多个信号进行综合计算,可以改善接收端的SNR。需要注意的是,这里是同一条流在多个路径上传递了多份,并不能够提高吞吐。如图18.

image.png
图表17 并发2条空间流

image.png
图表18 MIMO利用多径传输数据

===========================================================================

OFDM 改进。OFDM在802.11a/g时代已经成熟使用,到了802.11n时代,它将MIMO支持的子载体从52个提高到56个。需要注意的是,无论802.11a/g,还是802.11n,它们都使用了4个子载体作为pilot子载体,而这些子载体并不用于数据的传递。所以802.11n MIMO将物理速率从传统的 ==54Mbps提高到了58.5 Mbps(即54*52/48)==。

===========================================================================

编码率的改进

按照无线通信的基本原理,为了使信息适合在无线信道这样不可靠的媒介中传递,发射端将把信息进行编码并携带冗余信息,以提高系统的纠错能力,使接收端能够恢复原始信息。802.11n所采用的QAM-64的编码机制可以将编码率(有效信息和整个编码的比率)从3/4 提高到5/6。所以,对于一条空间流,在MIMO-OFDM基础之上,==物理速率从58.5提高到了65Mbps(即58.5乘5/6除以3/4)==。

===========================================================================

Short Guard Interval

由于多径效应的影响,信息符号(Information Symbol)将通过多条路径传递,可能会发生彼此碰撞,导致ISI干扰。为此,802.11a/g标准要求在发送信息符号时,必须保证在信息符号之间存在800 ns的时间间隔,这个间隔被称为Guard Interval (GI)。802.11n仍然使用缺省使用800 ns GI。当多径效应不是很严重时,用户可以将该间隔配置为400ns,即每个OFDM符号连续时间从4us缩短为3.6u。对于一条空间流,可以将吞吐提高近10%,即从 ==65Mbps提高到72.2 Mbps==。对于多径效应较明显的环境,不建议使用Short Guard Interval (GI)。

image.png
图表19 SGI减小帧间距

==========================================================================

40MHz 信道

这个比较好理解,对于无线技术,提高所用频谱的宽度,可以最为直接地提高吞吐。就好比马路拓宽了,车辆同行能力自然提高。传统的802.11a/g使用的频宽是20MHz,而802.11n支持将相邻两个频道绑定为40MHz来使用,所以可以最直接地提高吞吐。

image.png
图表20 40MHz信道

需要注意的是:对于一条空间流,并不是仅仅将吞吐从72.2 Mbps提高到144.4(即72.2×2 )Mbps。对于20MHz频宽,为了减少相邻信道的干扰,在其两侧预留了一小部分的带宽边界。而通过40MHz绑定技术,这些预留的带宽也可以用来通讯,可以将子载体从104(52×2)提高到108。按照 ==72.2x2x108/104进行计算,所得到的吞吐能力达到了150Mbps==。

总之,11n的速率就是这样一步步提上来的。汇总如下图:
image.png

速率攀升图

同样,那我们总结下11n的速率如何计算。

==速率=子载波数目子载波携带的数据位码率/每个OFDM符号持续时间*空间流数==

image.png
图表22 802.11n MCS速率表

==举个栗子,MCS 31,600Mbps怎么算出来的。套用上面公式,子载波数目为108,子载波携带的数据位为6(64QAM携带6位信息),编码率为5/6,每个OFDM符号持续时间3.6us,MIMO空间流为4. (108 x 6 x (5/6)/3.6) x 4 = 600Mbps==.

4 802.11 MAC层

802.11 MAC层协议涉及的东西特别多,在这我就主要介绍以下几点,以求能让大家了解MAC层基本的工作原理:

  1. DCF/PCF
  2. CSMA/CA工作机制
  3. RTS/CTS解决隐藏节点的问题
  4. 802.11 MAC层帧格式

=============================================================================

DCF(Distributed Coordination Function):广泛使用的模式,主流模式,也就是AP和Station的通信模式。

image.png
图表23 DCF通信模式

PCF(Point Coordination Function): 很少应用,也就是Station和Station直接wifi连接进行通信。

image.png
图表24 PCF通信模式

=============================================================================

CSMA/CA:

何为CSMA/CA?见下图:

image.png
图表25 CSMA/CA解决的问题

CSMA/CA工作原理:

image.png
图表26 CSMA/CA工作机制

==============================================================================

RTS/CTS解决隐藏节点的问题:

image.png
图表27 隐藏节点问题

解决办法:
image.png

图表28 RTS/CTS机制解决隐藏节点问题

===============================================================================

802.11 MAC帧格式:

image.png
图表29 802.11帧格式

继续分解Type和Sub Type字段:

image.png
图表30 Type和Sub Type字段分解

image.png
图表31 802.11 Frame Control字段分解

image.png
图表32 802.11 Duration字段解释

802.11帧有4个地址,如何应用呢?且听我分解:

image.png

image.png
image.png
image.png
图表33 802.11帧寻址机制

image.png
802.11帧Sequence和FCS字段

讲到这里,是不是感觉自己的脑力算力不够了呢?:) 没关系,那我们就举个栗子,讲一个完整的802.11通信过程。

5 完整的一个802.11WPA/WPA2-PSK通信过程

假如你有一个AP,一个Station,AP上配了一个SSID,启用了WPA2-PSK加密。这时候你在Station上点击连接无线名字为SSID的网络。之后发生了什么呢?如下:

image.png

连接AP
image.png

握手
image.png

握手续
image.png
图表37 上网冲浪

Over,是不是感觉很high?很high就对了,快乐工作,认真生活!!!

6 End

WiFi还在继续,因为人类对速度的追求是没有止境的,11ac已经达到1Gbps,11ax还在标准化中,有望到达11Gbps。。。

关于11ac和11ax,且听下回分解。。。

欢迎同学们批评指正,随时拍砖!

文章来源:芯片开放社区
文章链接:https://occ.t-head.cn/community/post/detail?spm=a2cl5.14300636.0.0.1b87180flWxVN5&id=679091636659027968

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
平头哥芯片开放社区
使用钉钉扫一扫加入圈子
+ 订阅

芯片开放社区(Open Chip Community 简称OCC),是平头哥芯片基础设施的云端载体,提供开发中心、创芯空间、技术部落等互动版块,汇聚海量应用资源,助力芯片合作伙伴构建软硬融合的芯片生态。面向芯片企业,OCC以应用驱动芯片精准定义、以全栈技术支撑芯片敏捷开发;面向开发者,OCC以芯片生态降低IoT开发门槛、以1520体系加速IoT产品落地。

官方博客
官网链接