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

相关文章
|
机器学习/深度学习
FFT能量归一化
FFT能量归一化
536 0
|
算法 安全 数据挖掘
如何更轻松地学习差分隐私——《动手学差分隐私》中文版正式发布!
2022年10月28日,阿里巴巴集团数据技术及产品部DataTrust团队成员刘巍然、李双为差分隐私在线书籍《动手学差分隐私(Programming Differential Privacy )》提供的中文翻译版本正式被原著作者Joseph P. Near和Chiké Abuah合并到书籍GitHub仓库(https://github.com/uvm-plaid/programming-dp/)中
3009 0
如何更轻松地学习差分隐私——《动手学差分隐私》中文版正式发布!
|
存储 Java C++
Python 教程之控制流(9)Python 中的 Switch Case(替换)
Python 教程之控制流(9)Python 中的 Switch Case(替换)
1018 0
|
3月前
|
人工智能 API 开发者
企业级大模型市场,阿里通义份额第一
国际市场调研机构沙利文(Frost&Sullivan)发布了最新的《中国GenAI市场洞察:企业级⼤模型调⽤全景研究,2025》报告——2025年上半年,中国企业级市场大模型的日均总消耗量为10.2万亿Tokens,其中,阿里通义占比17.7%位列第一,成为目前中国企业选择最多的大模型。
|
存储 开发工具 Docker
Docker数据目录迁移解决方案
在docker的使用中随着下载镜像越来越多,构建镜像、运行容器越来越多, 数据目录必然会逐渐增大;当所有docker镜像、容器对磁盘的使用达到上限时,就需要对数据目录进行迁移。
13855 1
|
9月前
|
算法 网络架构
MAC地址与帧结构
本文介绍了MAC地址和帧结构的基础知识。MAC地址是48位物理地址,分为组织唯一标识符(OUI)和制造商自定义两部分,用于局域网设备识别与链路层通信。帧结构以以太网帧为例,包含前导码、帧开始定界符、目的与源MAC地址、类型/长度字段、数据字段及帧校验序列(FCS),确保数据传输的准确性和可靠性。
1345 8
|
Web App开发 存储 缓存
第八篇 提升网页性能:深入解析HTTP请求优化策略(三)
第八篇 提升网页性能:深入解析HTTP请求优化策略(三)
390 0
|
网络协议 算法 安全
802.11帧结构与WiFi控制帧、管理帧、数据帧
【9月更文挑战第26天】该内容详细介绍了802.11帧结构,包括帧头、帧体和帧尾三部分,并分别阐述了各部分的功能和作用。此外,还介绍了WiFi控制帧、管理帧和数据帧的功能及类型,涵盖了RTS/CTS、ACK、信标帧、关联请求/响应帧、认证帧等内容,解释了它们在网络通信中的具体应用。
1937 3
|
开发框架 分布式计算 负载均衡
SpringBoot整合Dubbo+Zookeeper
SpringBoot整合Dubbo+Zookeeper
1065 0
SpringBoot整合Dubbo+Zookeeper
|
存储 Linux 网络安全
在CentOS 7上安装Git的方法
在CentOS 7上安装Git的方法
1164 0