802.11协议基础

前言-OSI七层网络

开放式系统互联模型(Open System Interconnection Model)是一种概念模型,由国际标准化组织提出,一个试图使各种计算机在世界范围内互连为网络的标准框架。

OSI定义了网络互连的七层框架,如下图所示:

OSI-7layer-diagram

现实中的互联网模型是基于TCP/IP协议的五层模型,如下图所示:

TCP/IP-5layer-diagram

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典型的网络拓扑结构如下所示:

BSS network topology

一个AP和若干STA组成一个BSS,每个BSS由一个SSID(Service Set ID)来标识。

一般地,AP具有路由器功能,通过WAN口连接到Internet;STA通过无线连接AP。

进一步,由多个SSID相同的BSS网络组成ESS网络。ESS网络常见于企业、学校、机场等较大的物理空间场所,需要部署多个AP才能满足无线网络覆盖需求。STA在ESS下不同BSS之间的切换称为漫游。

ESS network topology

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时序图如下: 数据ACK时序

帧格式

802.11 MAC帧格式如下图所示: MAC帧格式

每个MAC帧都包含以下几部分:

  1. 一个MAC帧头
  2. 一个可变长度的帧体,包含特定于帧类型或子类型的信息
  3. 一个帧校验序列,简写为FCS,包含一个32bit的CRC

帧控制字段

我们这里重点看一下帧控制字段。帧控制字段定义帧类型,802.11协议的连接和通信过程就是由一系列不同类型的帧交互完成。

帧控制(Frame Control)字段,16Bit,其中B2~B3表示这个帧的帧类型(Type),B4~B7表示这个帧类型下的子类型(Subtype)。帧类型和子类型标识一个802.11帧的具体类型和其对应的功能。FC字段具体定义如下图所示: 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四次握手,协商出秘钥。之后的数据帧通信都由协商出来的密钥加密。

WPA四次握手

802.11 PHY层协议介绍

物理层帧格式

以802.11a OFDM物理层为例,物理层帧格式如下: 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.11n物理层速率表

802.11ac 802.11ac物理层速率表

802.11ax 802.11ax物理层速率表