WiFi 无线局域网
WiFi 无线局域网
一、概述
WiFi 是基于 IEEE 802.11 标准的无线局域网技术,工作在 2.4GHz / 5GHz / 6GHz 频段,提供高带宽、中距离(室内约 100m)的无线连接,是手机、电脑、智能设备接入互联网的主流方式。
一句话核心:WiFi 设备(Station)扫描到接入点(AP)广播的 SSID,通过"认证 + 关联"两步加入网络,之后通过 CSMA/CA 共享信道传输 802.11 数据帧。
二、802.11 协议族
| 标准 | 频段 | 理论速率 | 说明 |
|---|---|---|---|
| 802.11b | 2.4GHz | 11 Mbps | 早期 |
| 802.11g | 2.4GHz | 54 Mbps | |
| 802.11n | 2.4/5GHz | 600 Mbps | WiFi 4 |
| 802.11ac | 5GHz | 1.3+ Gbps | WiFi 5 |
| 802.11ax | 2.4/5/6GHz | 9.6 Gbps | WiFi 6 |
| 802.11be | 2.4/5/6GHz | 46 Gbps | WiFi 7 |
关键理解:802.11n 及以上用 MIMO(多天线)+ OFDM 提升速率。频率越高带宽越大但穿墙越差(5GHz 比 2.4GHz 快但覆盖短)。
三、频段与信道
2.4GHz(信道 1~14,可用数因地区而异)
2.4GHz 每个信道宽 20MHz,信道中心频率 = 2407 + 5×n MHz(n 为信道号)。标准定义了信道 1~14,但实际可用信道数由各国无线电法规决定:
| 地区 | 可用信道 | 说明 |
|---|---|---|
| 美国(FCC) | 1~11(11 个) | 最常用标准 |
| 欧洲(ETSI) | 1~13(13 个) | 比美国多 12/13 |
| 日本 | 1~14(14 个) | 信道 14 仅限 802.11b,中心频率 2484MHz 特殊 |
要点:不存在"全球统一有 13~14 个信道"的说法——是不同地区规定不同。所以笼统写"13~14 个信道"不准确:美国只有 11 个,信道 14 是日本特例且仅用于老式 802.11b。
信道从 1 到 14 依次排列,相邻信道中心只差 5MHz,而每个信道带宽 20MHz,所以绝大多数相邻信道都互相重叠:
中心频率: 2412 2417 2422 ... 2437 ... 2462
信道号: 1 2 3 6 11
┌────┐
信道1 │2402~2422│ ← 20MHz 带宽(中心2412±10)
└────┘
┌────┐
信道2 │2407~2427│ ← 与信道1重叠大半
└────┘
┌────────┐
信道6 │2427~2447│ ← 与信道1刚好错开
└────────┘
┌────────┐
信道11 │2452~2472│ ← 与信道6也刚好错开
└────────┘为什么信道 1/6/11 互不重叠:因为相邻信道间隔 5MHz、而带宽 20MHz,只有中心频率相差 ≥20MHz 才不重叠。信道 1(2412)、6(2437)、11(2462) 中心两两相差 25MHz ≥ 20MHz,所以互不重叠:
信道1: 2402~2422 MHz ┐ 相差25MHz
信道6: 2427~2447 MHz ┤ (25≥20, 不重叠) 之间留5MHz空隙
信道11:2452~2472 MHz ┘
而相邻信道 1 和 2(中心2417) 只差5MHz < 20MHz → 严重重叠(重叠约75%)关键理解:只有 1/6/11 三个信道两两不重叠(中心差 25MHz)。同一片区域里多个 AP 选互不重叠的信道(如三个 AP 分别用 1/6/11),可避免相互干扰、提升吞吐;若都挤在相邻信道(如全用 6),就会互相争抢、速率下降。
5GHz(信道更多,干扰少)
5GHz 有大量 20MHz 信道,可组合成 40/80/160MHz 宽信道关键理解:2.4GHz 只有 3 个不重叠信道(1/6/11),密集环境易相互干扰;5GHz 信道多、干扰少、速率高,但覆盖短。
四、基本术语
| 术语 | 全称 | 说明 |
|---|---|---|
| AP | Access Point | 接入点(路由器),提供网络 |
| STA | Station | 站点(手机/设备),连接 AP |
| SSID | Service Set ID | 网络名称(人眼看到的"WiFi 名") |
| BSSID | Basic SSID | AP 的 MAC 地址 |
| ESSID | Extended SSID | 同一网络多个 AP 共用名称 |
| 信道 | Channel | 工作频率 |
五、WiFi 连接过程
STA 连接 AP 的完整流程:
STA(设备) AP(路由器)
1. 扫描(主动/被动) ─────────────► 响应 Beacon/Probe Response
2. 认证(Authentication) ────────► 认证响应
3. 关联(Association) ──────────► 关联响应(分配 AID)
4. (WPA/WPA2)四次握手 ──────────► 协商加密密钥
5. 发送数据 ──────────────────► 正常通信两种扫描方式对比:
| 方式 | 动作 | 优点 | 缺点 |
|---|---|---|---|
| 被动扫描 | 监听 AP 周期广播的 Beacon 帧 | 省电、隐蔽 | 慢(要等 Beacon 周期) |
| 主动扫描 | 发 Probe Request,AP 回 Probe Response | 快 | 费电、暴露自己 |
手机连接 WiFi 通常先被动扫描(省电),找不到再主动扫描(快)。
认证与关联的区别(为什么分两步):
- 认证(Authentication):先"验明正身"——确认你有资格加入(开放/WPA 协商身份);
- 关联(Association):再"登记入网"——AP 给 STA 分配 AID(关联 ID)、登记到地址表,之后才能收发数据。
认证通过 ≠ 能上网; 认证 + 关联都完成 = 正式加入该 BSS
(类比: 认证像"对暗号", 关联像"报到登记")WPA 四次握手(为什么要四次):认证/关联之后,STA 和 AP 各自知道预共享密钥 PSK(来自密码),但不能直接拿 PSK 当加密密钥(PSK 是长期固定的,泄露一次就全泄露)。所以要生成一个每次会话临时的一次性密钥 PTK。四次握手的目的是让双方在彼此确认身份的同时,协商出一致的临时 PTK,用于本次会话的数据加密:
STA AP
① 发 ANonce(随机数) ──────────────────►
② ◄──────────────── 发 SNonce(随机数)
(双方各自用 PSK+ANonce+SNonce 算出同一个 PTK)
③ 发自己的 MIC(消息完整性校验) ─────────►
④ ◄──────────────── 确认 MIC, 协商完成
之后用 PTK 加密传输数据 (每次会话 PTK 不同, 即使密码泄露旧会话也不可破解)关键理解:四次握手的本质是用长期 PSK 交换随机数、生成一次性会话密钥 PTK,并互相校验身份(MIC)。因为每个会话的 ANonce/SNonce 都不同,每次连接的 PTK 都不同——即使某次会话密钥被截获,也无法用于解密其他会话,这是 WPA 相比早期 WEP 的重要改进。
六、数据帧结构(802.11)
802.11 数据帧与以太网帧不同,含 3~4 个地址。帧结构(不含前导/PLCP):
┌──────────┬────────┬────────┬────────┬────────┬──────┬──────┬──────┐
│Frame │Duration │Addr1 │Addr2 │Addr3 │ Seq │ Data │ FCS │
│Control(2B)│ 2B │ 6B │ 6B │ 6B │ 2B │...B │ 4B │
└──────────┴────────┴────────┴────────┴────────┴──────┴──────┴──────┘
(Addr4 仅 WDS 桥接时出现, 故最多 4 个地址)Frame Control 字段的位结构(前 2 字节):
┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐
│版本│ 类型 │ 子类型 │ToDS│FromDS│...│
└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘
↑2位 ↑2位 ↑4位 ↑1 ↑1 ↑其余(重试/加密等)
版本=0(固定) 类型:00管理 01控制 10数据| 字段 | 位数 | 含义 |
|---|---|---|
| 类型 | 2 | 00=管理帧、01=控制帧、10=数据帧 |
| 子类型 | 4 | 进一步细分(Beacon、RTS、Data 等) |
| ToDS / FromDS | 各 1 | 标志帧是发往/来自分布系统(DS,即有线侧) |
| 更多分片/重试/加密 | 各 1 | 分片续传、重发标志、WEP/WPA 加密 |
地址字段的取值(核心难点:按 ToDS/FromDS 决定三个地址分别填谁):
| 场景 | ToDS | FromDS | Addr1 | Addr2 | Addr3 |
|---|---|---|---|---|---|
| STA→AP(上行) | 1 | 0 | AP 的 MAC | STA 的 MAC | 最终目的(如路由器/服务器) |
| AP→STA(下行) | 0 | 1 | STA 的 MAC | AP 的 MAC | 源地址(如路由器) |
| AP→AP / Ad-hoc | 0 | 0 | 接收方 | 发送方 | BSSID |
| WDS 桥接 | 1 | 1 | 接收方 | 发送方 | 目的 / 源(+Addr4) |
为什么需要 3 个地址:数据要穿越无线段到达有线侧(DS)的最终目的(如路由器、互联网服务器),但无线帧的收发双方只是 STA 和 AP——所以 Addr1/Addr2 标"这段无线链路"的收发方,Addr3 标"这段无线链路之外"的源/目的。ToDS/FromDS 两个标志就用来告诉接收方"第 3 个地址到底是源还是目的"。
数值演算(识别一个数据帧的流向):捕获到一个 802.11 数据帧,其 Frame Control 中 ToDS=1, FromDS=0,Addr1=AP 的 MAC、Addr2=某个 STA、Addr3=路由器 MAC:
ToDS=1 → 帧发往 DS(有线侧), 即"无线 → 有线"方向 = STA 上行
Addr1=AP (接收方是 AP)
Addr2=STA (发送方是 STA)
Addr3=路由器 (无线帧之外, 数据要去的最终目的地)
结论: 这是 STA 发给 AP 的上行数据帧, 目标是路由器帧类型:管理帧(Beacon/Probe/关联)、控制帧(RTS/CTS/ACK)、数据帧。
七、信道接入(CSMA/CA)
WiFi 用 CSMA/CA(载波侦听多路访问/避免冲突)——与以太网 CSMA/CD 不同,WiFi 是先听后发 + 随机退避(因为无线无法检测冲突,只能避免):
1. 监听信道是否空闲(CCA)
2. 空闲则等待 DIFS 后,再随机退避若干时隙
3. 退避结束发数据
4. 收到 ACK 则成功;否则重发(退避加倍)为什么必须随机退避:若多个 STA 同时等到信道空闲、又都立即发送,必然在信道上一齐撞车。所以先让每个节点在 竞争窗口 CW 里随机抽一个退避值,各等各的随机时长,错开发送时刻:
竞争窗口 CW: 取值范围 [0, CWmin](802.11b 默认 CWmin=31 个时隙)
随机退避时间 = random(0, CWmin) × 一个时隙数值演算(随机退避):假设 802.11b,一个时隙 = 20μs,三个 STA 同时想发数据:
| 节点 | 随机抽到的退避值(时隙数) | 退避时间 |
|---|---|---|
| STA-A | 12 | 12 × 20μs = 240μs |
| STA-B | 5 | 5 × 20μs = 100μs |
| STA-C | 27 | 27 × 20μs = 540μs |
时间轴: STA-B 最先退避结束(100μs) → 抢到信道先发
STA-A 稍后(240μs) → 若监听又忙, 暂停并等下一轮
STA-C 最后(540μs)
随机值各不相同 → 错开发送 → 避免同时撞车发生冲突后的重传(退避加倍):若两个节点碰巧抽到相同退避值、仍然冲突(收不到 ACK),就把竞争窗口翻倍(CW = CW×2)再抽,冲突越多次窗口越大、再次撞上的概率越低:
第1次冲突: CW = [0,31] → 重抽
第2次冲突: CW = [0,63] → 范围变大, 撞车概率降低
第3次冲突: CW = [0,127]
...(指数退避, 最高到 CWmax=1023)关键理解:WiFi 无线的"隐藏节点"问题(两个 STA 看不到对方但都发给同一 AP)使冲突不可避免,所以用 CSMA/CA + 随机退避 + ACK 而非 CD。随机退避 + 指数加倍,既错开发送、又让冲突后重试概率越来越低,是 WiFi 共享信道的关键机制。
八、常见坑与排查
| 问题 | 可能原因 | 排查 |
|---|---|---|
| 搜不到 SSID | 频段(2.4/5G)不支持、扫描太弱 | 确认设备支持频段,靠近 AP |
| 连上了但无网 | DHCP 失败、网关错 | 检查 DHCP/IP,ping 网关 |
| 频繁掉线 | 信道干扰、省电模式 | 换信道,关省电 |
| 速率慢 | 信道拥挤、距离远、老协议 | 换 5GHz/新协议,调信道 |
| 认证失败 | 密码错、加密方式不匹配 | 核对密码和 WPA 类型 |
| 连接成功但 ping 不通 | 加密问题/AP 隔离 | 查 AP 设置,验证密钥 |