802.11 协议介绍
802.11协议基础
前言-OSI七层网络
开放式系统互联模型(Open System Interconnection Model)是一种概念模型,由国际标准化组织提出,一个试图使各种计算机在世界范围内互连为网络的标准框架。
OSI定义了网络互连的七层框架,如下图所示:
现实中的互联网模型是基于TCP/IP协议的五层模型,如下图所示:
802.11协议限定在OSI七层网络模型的最低两层——数据链路层和物理层。
802.11协议是什么
先看IEEE802是什么。
IEEE 802协议簇是指IEEE标准中关于局域网(LAN)和城域网(MAN)的一系列标准。IEEE 802中定义的服务和协议限定在OSI七层网络模型的最低两层,即数据链路层和物理层。实际上,IEEE802又将OSI的数据链路层分成了两个子层,逻辑链路控制层(LLC)和媒介访问控制层(MAC)。
IEEE802协议簇由IEEE802标准委员会维护。其中最广泛应用的协议有以太网(802.3)和WLAN(802.11)。每一个工作组专注一个方向,每个工作组由数字编号,比如目前从802.1编到了802.24。
因此,802.11协议是IEEE802标准委员会下属的无线局域网工作组制定的无线局域网标准。
发展历程
802.11
1990年IEEE 802.11委员会成立,1993年开始有热点部署。IEEE 802.11的第一个版本于1997年推出。
- 物理层调制技术:DSSS,2Mbps
802.11b/a/g
2007年发布了正式版本《IEEE Std 802.11-2007》,主要的扩展有802.11a/b/g/i/e。注意这里的2007是标准正式发布的年份,在这之前数年已经有草案发布,相应的产品也已推向市场,下同。
- 802.11b: 1999年,2.4GHz;物理层调制技术:DSSS,11Mbps
- 802.11a: 2000年,5GHz;物理层调制技术:OFDM,最高64QAM调制,54Mbps
- 802.11g: 2003年,2.4GHz;物理层调制技术:OFDM,最高64QAM调制,54Mbps
- 802.11i: 2004年,MAC层安全增强,WiFi加密相关的协议
- 802.11e: 2005年,MAC层QoS增强
802.11n
2012年发布了正式版本《IEEE Std 802.11-2012》,主要扩展是802.11n,称为WiFi4。(这里的WiFi加数字表示方法由WiFi联盟为了推广802.11ax于2019年推出)
- 802.11n: 2009年,2.4GHz和5GHz;物理层技术:MIMO, OFDM; 最高64QAM调制,最高4条空间流,最大40MHz带宽。常用的双流40MHz带宽下,最高物理层速率是300Mbps。
802.11ac
2016年正式发布《IEEE Std 802.11-2016》,主要扩展是802.11ac,称为WiFi5。
- 802.11ac: 2014年,2.4GHz和5GHz;物理层技术:MIMO, OFDM,最高256QAM调制,最高8条空间流,最大160MHz带宽。常用的双流80MHz带宽下,最高物理层速率是866Mbps
802.11ax
802.11ax于2019年推出,当前还处在草案阶段,尚未发布正式版本,主要扩展是802.11ax,称为WiFi6。
- 802.11ax: 2018年;物理层技术:MIMO, OFDM, OFDMA,最高1024QAM调制,最高8条空间流,最大160MHz带宽。常用的双流80MHz带宽下,最高物理层速率是1201Mbps。
网络拓扑结构
802.11典型的网络拓扑结构如下所示:
一个AP和若干STA组成一个BSS,每个BSS由一个SSID(Service Set ID)来标识。
一般地,AP具有路由器功能,通过WAN口连接到Internet;STA通过无线连接AP。
进一步,由多个SSID相同的BSS网络组成ESS网络。ESS网络常见于企业、学校、机场等较大的物理空间场所,需要部署多个AP才能满足无线网络覆盖需求。STA在ESS下不同BSS之间的切换称为漫游。
802.11 MAC层协议介绍
载波监听与冲突避免
无线传输是在开放环境中进行的,需要有一个协调各站点访问空口媒介的机制。不然各站点任意接入媒介的话,会互相干扰,最终谁都无法有效传输数据。
媒介的协调访问由协调功能(CF, coordination function)控制,802.11协议采用叫作CSMA/CA机制的分布式协调功能(DCF,distributed coordination function)来控制。
CSMA/CA,英文全称Carrier Sense Multiple Access/Collision Avoid,中文含义是载波监听多路访问与冲突避免。
载波监听:即当一个站点想访问媒介发送数据时,它先通过对媒介进行一个固定时长的监听来做信道可用性评估。这里的固定时长称为DCF帧间距(DCF inter-frame space, DIFS)。
冲突避免:即评估媒介处在空闲状态时,才能接入媒介。
随机回退过程
为减少多站点接入媒介时产生的碰撞,当一个站点检测媒介在一个DIFS时长内为空闲后,还不能立即接入媒介,还需要再等待一个随机回退时长。如果媒介在DIFS+随机回退时长期间都为空闲状态,则站点认为其可以接入媒介传输数据。
当媒介从繁忙转为空闲时,可能会有多个站点准备好了发送数据。为了减少碰撞,想要发起传输的站点从区间[0, CW]随机选取一个数,该数乘以时隙(slot)长度得出随机回退时长,然后按该时长进行回退。
在一个DIFS时长内检测媒介都为空闲状态后,开始随机时长回退。如果媒介在回退时长内变成繁忙,则随机回退过程被挂起;如果媒介在一个DIFS时长后重新变为空闲,则随机回退继续进行。
以下图为例。下图中,STA1随机到的回退计数是8,STA2随机到的回退计数是2。STA1在回退计数减到5后,媒介再次变为繁忙,此时STA1的回退过程挂起,等待媒介空闲一个DIFS时长后,回退过程继续。
这里的整数值CW(contention window)叫做竞争窗口。CW参数初始值取为CWmin,为了进一步减少碰撞,在每次不成功的MPDU传输后CW取值翻倍,最大不超过CWmax。这即是二进制指数退避算法。CW在每次成功发送MPDU后被重置为CWmin。
CWmin CWmax在协议中的取值如下(这里的AC是access catogry的意思,由802.11i引入,即将报文按不同的业务类型划分优先级,实现QoS功能):
AC | CWmin | CWmax |
---|---|---|
AC_BK | 31 | 1023 |
AC_BE | 31 | 1023 |
AC_VI | 15 | 31 |
AC_VO | 7 | 15 |
legacy | 15 | 1023 |
数据/ACK帧交换
无线数据传输容易受外界干扰而发生错误,因此无线数据传输将受益于一个低延迟、链路级别的重发机制。这种机制允许那些没有被接收端正确解调的帧重新传输。
这个机制由接收端在正确接收到发给它的数据帧后,以ACK帧的格式发送一个及时的、肯定的确认。如果发送端没有收到接收端回的ACK帧,则其假定该数据帧未被接收成功,发送端可以重发该帧。
一个无碰撞场景下的数据/ACK时序图如下:
帧格式
802.11 MAC帧格式如下图所示:
每个MAC帧都包含以下几部分:
- 一个MAC帧头
- 一个可变长度的帧体,包含特定于帧类型或子类型的信息
- 一个帧校验序列,简写为FCS,包含一个32bit的CRC
帧控制字段
我们这里重点看一下帧控制字段。帧控制字段定义帧类型,802.11协议的连接和通信过程就是由一系列不同类型的帧交互完成。
帧控制(Frame Control)字段,16Bit,其中B2~B3表示这个帧的帧类型(Type),B4~B7表示这个帧类型下的子类型(Subtype)。帧类型和子类型标识一个802.11帧的具体类型和其对应的功能。FC字段具体定义如下图所示:
802.11协议定义了三种帧类型(Type):控制帧、管理帧和数据帧。常用的帧类型如下表所示:
管理帧:
Type value B3 B2 |
Type description | Subtype B7 B6 B5 B4 |
Subtype description |
---|---|---|---|
00 | Management | 0000 | Association Request |
00 | Management | 0001 | Association Response |
00 | Management | 0100 | Probe Prequest |
00 | Management | 0101 | Probe Response |
00 | Management | 1000 | Beacon |
00 | Management | 1010 | Disassociation |
00 | Management | 1011 | Authentication |
00 | Management | 1100 | Deauthentication |
00 | Management | 1101 | Action |
控制帧:
Type value B3 B2 |
Type description | Subtype B7 B6 B5 B4 |
Subtype description |
---|---|---|---|
01 | Control | 1000 | Block Ack Request |
01 | Control | 1001 | Block Ack |
01 | Control | 1011 | RTS |
01 | Control | 1100 | CTS |
01 | Control | 1101 | Ack |
数据帧:
Type value B3 B2 |
Type description | Subtype B7 B6 B5 B4 |
Subtype description |
---|---|---|---|
10 | Data | 0000 | Data |
10 | Data | 0100 | Null Data |
10 | Data | 1000 | QoS Data |
10 | Data | 1100 | QoS Null Data |
连接过程
开放网络连接过程(不需要密码)
1 扫描
站点通过发送probe request帧或者监听AP Beacon帧的方式来扫描到AP; AP会周期性的广播Beacon帧并回复probe response帧来周知自己的存在。
2 认证
通过两帧authentication帧完成认证握手。
3 关联
通过association request和association response帧完成关联握手。
WPA-PSK加密连接过程
WPA-PSK加密连接过程是在上文开放网络连接过程的基础上,通过WPA四次握手,协商出秘钥。之后的数据帧通信都由协商出来的密钥加密。
802.11 PHY层协议介绍
物理层帧格式
以802.11a OFDM物理层为例,物理层帧格式如下: 这里的PSDU即上节提到的802.11 MAC层封装的报文。PHY层在MAC层报文基础上,继续添加PHY层的报头。然后按照物理层协议定义,添加前导码,并映射到OFDM symbol。最后将这些符号调制到电磁波上,通过射频天线系统发射到空口媒介中去。
这里的PSDU即上节提到的802.11 MAC层封装的报文。PHY层在MAC层报文基础上,继续添加PHY层的报头。然后按照物理层协议定义,添加前导码,并映射到OFDM symbol。最后将这些符号调制到电磁波上,通过射频天线系统发射到空口媒介中去。
物理层协议演进
- 802.11, DSSS, 1Mbps 2Mbps
- 802.11b, HR/DSSS, 5.5Mbps, 11Mbps
- 802.11a/g, OFDM, 64QAM
- 802.11n, OFDM, 40MHz, MIMO, 64QAM
- 802.11ac, OFDM, 160MHz, MU-MIMO, 256QAM
- 802.11ax, OFDMA, 160MHz, 1024QAM
OFDM: Orthogonal Frequency Division Multiplexing, 即正交频分复用技术,是多载波调制技术的一种。通过频分复用实现高速串行数据的并行传输,它具有较好的抗多径衰弱的能力。
QAM: 正交幅度调制,是幅度和相位联合调制技术;越高阶调制携带信息越多,从而对信号质量和信噪比的要求越高。
MIMO: Multiple-Input Miltiple-Output,即多根天线同时收发信号,成倍提升带宽
OFDMA: Orthogonal frequency-division multiple access,在OFDM的基础上,定义多用户同时接入。即802.11ax之前的OFDM,在单条空间流下,单个用户接入信道时,是独占整个信道的;而OFDMA是将一个频宽划分为若干子频宽,每个用户占据其中一个子频宽,使得多个用户可以同时接入信道。
速率表
物理层协议定义不同的MCS(Modulation and Coding Scheme,调制解调策略),每一个MCS会对应一个物理层速率。不同的MCS对信号质量和信噪比的要求不同,越高阶的MCS对环境的要求越高,同时物理层速率也越高。
物理层最大速率是衡量协议最大吞吐量的关键指标,通常我们接触一个通信协议时,其最大吞吐量是我们很关心的。这里列举下802.11各协议在常用带宽和双天线条件下的各MCS对应的物理层速率。
802.11n
802.11ac
802.11ax