总体架构 Architecture
Wi-Fi 网络的网络拓扑
首先我们从下面这张图来了解一下 Wi-Fi 网络的网络拓扑
BSS Basic Service Set 基本服务集是 802.11 网络的基本组件 building block。每个 BSS 基本服务集都一个唯一的标识,称为 BSSID Service Set Identifier 最常见的 infrastructure BSS 基础结构型基本服务集。由 AP access point 和 STA Station 组成。
- AP 具有无线至有线桥接功能的设备。如路由器
- STA 具有无线网络接入功能的电子设备如笔记本,手持设备等
MAC和PHY层协议的结构
我们再从下面这张图来了解一下MAC和PHY层的协议的结构:
IEEE 802.11 PHY
Wi-Fi 的频率、带宽、调制方式总览
下图介绍了不同版本的 Wi-Fi 协议采用的频率、带宽、调制方式,速率等。
Year |
Standard |
|
Freq. (Hz) |
B.width (MHz) |
Max (bits/s) |
Modulation |
1997 |
802.11 |
|
2.4G |
20 |
2M |
DSSFHSS |
1999 |
802.11b |
|
2.4G |
20 |
11M |
CCKDSSS |
1999 |
802.11a |
|
5G |
20 |
54M |
OFDM |
2003 |
802.11g |
|
2.4G |
20 |
54M |
DSSSOFDM |
2009 |
802.11n |
WiFi -4 |
2.4G5G |
2040 |
600M |
MIMO-OFDM(64-QAM ) |
2013 |
802.11ac |
WiFi -5 |
5G |
204080160 |
6.9G |
DL MU-MIMOOFDM(256-QAM ) |
2021 |
802.11ax |
WiFi -6 |
2.4G5G6G |
20408080+80 |
9.6G |
UL/DL MU-MIMOOFDMA(1024-QAM ) |
Wi-Fi 工作的频率
目前 Wi-Fi 有3个频段分别是 2.4GHz, 5GHz 和 6GHz。在国内 6GHz 还没有开放,所以我们来看一下 2.4GHz 和 5GHz 这两个频段。
2.4GHz工作的频率范围为2.400—2.4835GHz,一共有14个信道。每个子信道频宽为22MHz;相邻信道的中心频点间隔5MHz;所以相邻的多个信道存在频率重叠。
中国5G频段可以使用 36(5180), 40(5200), 44(5220), 48(5240), 52(5260), 56(5280), 60(5300), 64(5320), 149(5745), 153(5765), 157(5785), 161(5805), 165(5825)
调制解调方式
接下来我们具体介绍一下上面提到的各种调制解调方式:
- DSSS Direct Sequence Spread Spectrum 直接序列扩频。直接序列扩频系统是将要发送的信息用伪随机码(PN码)扩展到一个很宽的频带上去,在接收端,用与发端扩展用的相同的伪随机码对接收到的扩频信号进行相关处理,恢复出发送的信息。它是一种数字调制方法,具体说,就是将信源与一定的PN码(伪噪声码)进行摸二加。例如说在发射端将"1"用11000100110,而将"0"用00110010110去代替,这个过程就实现了扩频,而在接收机处只要把收到的序列是11000100110就恢复成"1"是00110010110就恢复成"0",这就是解扩。这样信源速率就被提高了11倍,同时也使处理增益达到10dB以上,从而有效地提高了整机信噪比。
- HFSS Frequency-Hopping Spread Spectrum 跳频扩频。在最早的 802.11 规范中 WiFi 采用了HFSS 跳频扩频的技术,这个调频类似 BLE 采用的方式。但从802.11b 之后被 DSSS 所取代。
- OFDM Orthogonal Frequency Division Multiplexing 正交频分复用。802.11g 开始 WiFi 引入了新的调制解调技术 OFDM。 OFDM 的核心是将一个宽带信号分成多个窄带子信号,每个子信号通过正交调制技术发送到接收端。OFDM技术将宽带信号分成N个子载波,每个子载波都有自己的频率,并且互相正交。所谓的正交,可以理解为互相没有影响,互不相干。这样设计可以避免子载波间的干扰,提高了通信的可靠性。
- OFDMA Orthogonal Frequency Division Multiple Access 正交频分多址。OFDMA 可以看作是 OFDM + FDMA。
- OFDM (Orthogonal Frequency Division Multiplexing)即正交频分复用技术。
- FDMA (frequency division multiple access),频分多址是把总带宽分隔成多个正交的信道,每个用户占用一个信道。
- QAM Quadrature Amplitude Modulation 正交幅度调制。802.11n 引入了QAM 调制。 QAM 在载波和相位两个维度上进行调制。2-QAM 是二进制相移键控 BPSK,4-QAM实际上正交相移键控 QPSK
- MIMO Multiple-Input Single-Output 多入单出模式。MIMO技术称为多入多出(Multiple-Input Multiple-Out-put)技术,同时也可以称为多发多收天线(MTMRA,Multiple Transmit Multiple Receive Antenna)技术。其基本原理是在发射端和接收端分别使用多个发射天线和接收天线,并能够区分发往或来自不同空间方位的信号,还可以在不增加带宽与发射功率的前提下,提高系统容量、覆盖范围和信噪比、改善无线信号的传送质量,它与传统的信号处理方式的不同之处在于其同时从时间和空间两个方面研究信号的处理问题。
- MU-MIMO Multi-User Multiple-Input Multiple-Output 即多用户 MIMO。802.11ax 开始 MIMO 由之前的 SU-MIMO 升级到 MU-MIMO。在 SU-MIMO 下,路由和不同的设备之前的通讯时分时的。 MU-MIMO 下路由可以同时和多个用户通讯。为了多用户MIMO(MU-MIMO),一定要避免各个用户相互的干扰,也就是让虚线的这些信号尽量小,这是通过Tx Beamforming(波束成形)来做的。单用户MIMO下,不需要Tx Beamforming来区分,但是可以用它增强信号。
物理层的帧结构
802.11 Physical (PHY) layer 被划分成2个 sublayers:
- PLCP (Physical Layer Convergence Procedure) sublayer
- PMD (Physical Medium Dependent) sublayer
PLCP 从 MAC sublayer 收到数据帧后创建 PPDU PLCP Protocol Data Unit . PMD sublayer 来调制并发送 PPDU。802.11b 的 PPDU 由三部分组成,分别是 Preamble, Header 和 Payload Data。
CHANGE
TABLD
802.11b 协议的 Header 由下面4个字段组成:
- Signal (8bits) – PSDU/MPDU 的定义数据传输速率。它有四个值:0Ah、14h、37h和6Eh,分别指定传输速率为1Mbps、2Mbps、5.5Mbps和11Mbps
- Service (8bits) – 使用其中的 5 bits
- Bit 2 指示Transmit Frequency 和 Symbol clock 由同一个时钟源驱动
- Bit 3 指示编码方式 0 – CCK: Complementary Code Keying, 1- PBCC: Packet Binary Convolution Code
- Bit 5-7 用于对长度进行补充说明.
- Length (16 bits) –指示传输 PSDU 需要的时长单位是 us
- CRC (16bits) – 包含 signal, service,length 三个部分
前导码和PLCP头部信息以固定的1Mbps速率发送,而PSDU数据部分则以1Mbps(DBPSK调制)速率进行传送。所以我们可以从下图 Ellisys 抓到的包中看到 Preamble 的传输时长正好是144us,Header 的传输时长正好是48us。
IEEE 802.11 MAC
MAC层的帧结构
MAC 层的包我们称之为 MPDU MPDU MAC Protocol Data Unit 802.11 协议帧格式包括:
- Frame Control 帧控制字段。长度 16-bit,包含帧的信息。
- Duration 信道占用时间。在这个时间段内,所有收到此帧的 STA 不会尝试发送数据。
- Address 1-4 48-bit MAC addresses 共有4种:
- Destination Address (DA)
- Source Address (SA)
- Receiver Address (RA)
- Transmitter Address (TA)
- Sequence Control 传输帧序号。 总共 16-bit,其中包括 4-bit 的 fragment number 和 12-bit 的 sequence number。
- Frame Body 数据帧。这部分是从上面传下来的 MSDU. maximum MSDU = 2304 bytes。
- FCS Frame Check Sequence 校验码。长度32-bit,校验的范围包括除了 FCS 自己以外的下图所有字段。
下面这张图是 Probe Request 和 Probe Response 帧,我们可以看到 Frame Control 字段里的 Type 和 Sub Type 所指示的包的类型信息。
STA和AP建立连接的过程
STA 和 AP 建立连接分为4个过程:
- Scan 扫描:用于 STA 发现无线网络。
- Authentication 链路认证:STA 想要与 AP 建立无线链路,也需要一个认证,这就是链路认证。STA 和 AP 互相认证一下对方是不是 802.11设备。
- Association 关联:确定 STA 有资格和 AP 建立无线链路后,STA 还需要与 AP 协商无线链路的服务参数,才能完成无线链路的建立。
- 4-way Handshake 4 次握手:用于验证 STA 端并加密与 AP 的所有通信。握手是通过在客户端上运行的 WPA 请求者与在接入点上运行的验证者之间交换 EAPoL 帧来建立的。
Scan 扫描
通电后每个 802.11 Station 周期性地扫描每个 RF 信道,以便找到 BSS 加入。扫描类型分两种,一种是 active scan 主动扫描,另一种是 passive scan 被动扫描。主动扫描中 STA 会向广播地址发送 Probe Request。如果有 AP 收到 Probe Request,AP 会回 Probe response 包。
Authentication 认证
当 Station 找到自己满意的 AP 后,并不能够直接连接,而是需要先通过 AP 的认证,验证 Station 的合法资格后才能建立关联。总的来说,AP 验证的 Station 资格的方式有两种:
- Open System Authentication 开放系统认证。 通常当我们选择了 WPA/WPA2-PSK的时候, 当前不需要身份的认证,放在后面的 4-way Handshake 来做。
- Shared-key Authentication 共享密钥认证。 如果选择了 Shared-key ,那就不需要后面的四次握手认证过程了。
·下图是 Open System Authentication 开放系统认证的过程,STA 先向 AP 发一个 Authentication 包,AP 回一个 Authentication 包。
Association 关联
Association 关联就是 STA 和 AP 间无线链路服务协商的过程。协商的内容主要包括支持的速率、信道、QoS 的能力,以及选择的接入认证和加密算法等。关联分为两个步骤:
- Association Request 关联请求
- Association Response 关联响应
在 association request 和 association response 里面携带了很多种的链路参数。其中有一个 RSN Robust Security Network 字段。它的作用是告诉 AP 数据加密的相关参数。AP 的加密参数包含在 beacon 中或者 probe response 的 RSN 字段中。
- Group Data Cipher Suit 指示用来加密 multicast/broadcast 的算法。这里我们看到采用的算法是 CCMP-128 CCM mode Protocol。
- Pairwise Cipher Suit 指示用来加密 unicast 的算法。同样采用了 CCMP-128 算法。
- AKM Suite Authentication Key Management Suite 指示密钥管理方法。我们可以看到采用的是 PSK pre-shared key 预置密钥。
4-way Handshake 四次握手
AP 与 STA 只有通过四次握手协商产生 PTK/GTK,并且确认双方均已准备就绪后,才可以开始进行加密传输。PTK 用于单播数据帧的加密和解密,GTK 用于组播数据帧和广播数据帧的加密和解密,管理帧、控制帧和空数据帧不用加密。四次握手不是直接将密码发送到 AP,而是通过 EAPOL(Extensible authentication protocol over LAN)进行消息交换。下图是四次握手的详细流程。
总结
本文介绍了 Wi-Fi 的 PHY 层和 MAC 层的一些基本概念。在物理层着重介绍了频段,调制解调方式,物理层帧格式等。在 MAC 层着重介绍了帧格式,STA 和 AP 建立连接的过程。