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

相关文章
|
7月前
|
网络协议 Linux 数据处理
网络编程【网络编程基本概念、 网络通信协议、IP地址 、 TCP协议和UDP协议】(一)-全面详解(学习总结---从入门到深化)
网络编程【网络编程基本概念、 网络通信协议、IP地址 、 TCP协议和UDP协议】(一)-全面详解(学习总结---从入门到深化)
195 3
|
3天前
|
网络协议 安全 网络安全
探索网络模型与协议:从OSI到HTTPs的原理解析
OSI七层网络模型和TCP/IP四层模型是理解和设计计算机网络的框架。OSI模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,而TCP/IP模型则简化为链路层、网络层、传输层和 HTTPS协议基于HTTP并通过TLS/SSL加密数据,确保安全传输。其连接过程涉及TCP三次握手、SSL证书验证、对称密钥交换等步骤,以保障通信的安全性和完整性。数字信封技术使用非对称加密和数字证书确保数据的机密性和身份认证。 浏览器通过Https访问网站的过程包括输入网址、DNS解析、建立TCP连接、发送HTTPS请求、接收响应、验证证书和解析网页内容等步骤,确保用户与服务器之间的安全通信。
26 1
|
3月前
|
网络协议 网络架构
网络协议介绍与学习
网络协议介绍与学习
101 4
|
网络协议 网络架构
LinuxUDP协议编程(下)
LinuxUDP协议编程(下)
88 0
|
7月前
|
网络协议 安全 网络性能优化
【网络工程师】<软考中级>传输层协议TCP/UDP&常用应用层协议
【1月更文挑战第27天】【网络工程师】<软考中级>传输层协议TCP/UDP&常用应用层协议
|
存储 域名解析 安全
计算机网络面试专题:HTTP协议基本概念以及通信过程
计算机网络面试专题:HTTP协议基本概念以及通信过程、HTTPS基本概念、SSL加密原理、通信过程、中间人攻击问题、HTTP协议和HTTPS协议区别
119 1
|
存储 域名解析 网络协议
LinuxUDP协议编程(上)
LinuxUDP协议编程
104 0
|
网络协议 Java 测试技术
协议的学习技巧
协议的学习技巧
142 0
协议的学习技巧