WiFi 从连接到通信完整流程:扫描(Scan)-> 认证(Authentication)-> 关联(Association)-> 安全握手(4-Way Handshake / EAPOL)-> 获取IP(DHCP)-> 数据通信(TCP/UDP)
扫描(Scan)
STA通过扫描发现可用AP。扫描覆盖所有工作信道(2.4 GHz 通常13个信道,5 GHz 视国家/地区而定)。STA可采取主动扫描、被动扫描或两者结合。
信道扫描机制
- STA 的无线电调谐到某一信道,停留一段时间(如100–200 ms),在该信道上执行主动或被动扫描。
- 扫描完成后,跳至下一个信道,重复操作,直至遍历所有信道。
- 若采用混合扫描,可在部分信道主动扫描,部分信道被动扫描。
主动扫描(Active Scan)
- 过程:STA在某一信道上发送 Probe Request 帧。
- 若携带指定 SSID,则为定向探测;若 SSID 为通配符(长度0),则为广播探测。
- Probe Request 的源地址为 STA MAC,目的地址为广播或指定 AP 的 MAC(单播探测)。
- AP 收到 Probe Request 后,若条件匹配(SSID 匹配、未禁用广播探测响应等),则回复 Probe Response 帧(单播)。
- STA 在该信道上等待一段时间(如MinChannelTime ~ MaxChannelTime),收集所有响应。
- 特点:能快速发现 AP,但增加信道占用和功耗;可获取更详细的AP能力信息。
被动扫描(Passive Scan)
- 过程:STA 在信道上侦听,等待 AP 周期性发送的 Beacon 帧。
- Beacon 帧包含 SSID、支持速率、加密套件、能力信息、TIM(指示待传数据)等。
- 每个 AP 的 Beacon 间隔通常为 100 TU(约102.4 ms),但可能有偏移。
- STA 需在每个信道上停留足够长时间(通常 ≥ Beacon 间隔),以确保能接收到至少一个 Beacon。
- 特点:STA 不发送任何帧,功耗低,但扫描时间较长;适合省电场景或隐藏 SSID 的网络(隐藏 SSID 的 AP 不在 Beacon 中广播SSID,需主动扫描发现)。
扫描结果
STA将收集到的AP信息整理为BSS列表,每条记录包含:
- SSID
- BSSID(AP MAC地址)
- 信道号
- 加密类型(WPA/WPA2/WPA3,以及AKM套件)
- RSSI(接收信号强度)
- 支持速率
- 其他(QoS、802.11n/ac/ax等)
认证(Authentication)
认证是 802.11 链路层认证,不涉及密码校验,仅建立基本连接。
开放认证(Open System)
流程:
STA → AP:Authentication Request(认证算法标识=0,开放系统)。
AP → STA:Authentication Response(状态码=0,成功)。
该过程不涉及密钥或口令,所有STA均可通过。
特点:
- 不进行实际认证
- 安全依赖后续 WPA 握手
共享密钥认证(Shared Key)
基于WEP,已弃用,此处略。
关联(Association)
认证通过后,STA 向 AP 发送关联请求,AP 分配 AID 并建立会话上下文。
- STA → AP:Association Request
- 携带STA的能力信息:支持速率、QoS能力(WMM)、802.11n/ac/ax能力、Listen Interval(STA省电时能缓冲帧的时间单位)。
- AP → STA:Association Response
- 状态码(0表示成功),成功后返回 Association ID(AID)(1–2007,由AP分配)。
- 关联完成后,STA可发送数据帧,但未加密。
安全握手
基于EAPOL-Key帧,建立RSNA(Robust Security Network Association),生成并验证加密密钥。
密钥派生基础
- PMK:成对主密钥,来源于PSK(预共享密钥)或802.1X认证。
- PTK:成对临时密钥,由PMK、ANonce、SNonce、AP MAC、STA MAC通过HMAC-SHA1或KDF派生。PTK分为:
- KCK(EAPOL-Key确认密钥,128 bits)
- KEK(EAPOL-Key加密密钥,128 bits)
- TK(临时密钥,用于数据加密,长度取决于加密套件,如CCMP-128)
- GTK:组播临时密钥,由AP生成,用于组播/广播数据加密。
四次握手流程
- AP → STA:EAPOL-Key (1/4)
内容:ANonce、Key Descriptor(指明算法、密钥类型等)。STA由此获得ANonce。 - STA → AP:EAPOL-Key (2/4)
内容:SNonce、MIC(由KCK计算)、RSN Information(可选)。STA已生成PTK。 - AP → STA:EAPOL-Key (3/4)
内容:ANonce(可选)、GTK(用KEK加密)、MIC、密钥安装指示。AP验证STA的MIC,确认PMK一致后安装PTK。 - STA → AP:EAPOL-Key (4/4)
内容:MIC,表示安装完成。STA安装PTK和GTK。
四次握手完成后,所有单播数据帧使用TK加密,组播帧使用GTK加密。
获取IP(DHCP)
链路建立并加密后,STA通过DHCP获取网络层配置。
DHCP流程(DORA)
- Discover:STA广播 DHCPDISCOVER(目的IP 255.255.255.255,源IP 0.0.0.0)。
- Offer:DHCP服务器(通常位于网关或AP)单播 DHCPOFFER,携带可用IP地址、租约时间。
- Request:STA广播 DHCPREQUEST,确认接受该Offer。
- Ack:服务器回复 DHCPACK,包含IP地址、子网掩码、默认网关、DNS服务器等。
若STA已缓存租约且未过期,可跳过Discover/Offer阶段,直接发送Request进行续约。
数据通信
网络层就绪后,STA可与外部进行IP通信。
- TCP:面向连接,可靠传输,用于HTTP/HTTPS、MQTT、SSH等。
- UDP:无连接,低开销,用于DNS、NTP、RTP、DHCP等。
- 数据帧在802.11层使用PTK/GTK加密(CCMP或GCMP),通过AP桥接至有线网络或路由。
漫游(Roaming)
STA在ESS内移动时,从当前AP(源AP)切换到目标AP(目标AP)的过程。
漫游触发
- STA根据信号强度(RSSI)、信道质量、负载等信息,主动发起重关联。
- 可基于预配置阈值(如-70 dBm)或802.11k(邻居报告)、802.11v(BSS转换管理)等机制。
漫游流程
传统漫游:
- STA与目标AP重新执行 认证 和 关联。
- 若PMK已缓存(源AP与目标AP在同一ESS且共享PMK),则可跳过802.1X认证,直接进行四次握手。
- 完成四次握手后,数据路径切换。
快速漫游(802.11r):
- 初始关联时,STA与R0KH(通常为控制器)完成FT初始关联,派生出PMK-R0和PMK-R1。
- 漫游时,STA通过FT Action帧(Authentication/Reassociation)与目标AP完成快速握手,无需完整四次握手,切换时延降至毫秒级。