WiFi接入流程

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生成,用于组播/广播数据加密。

四次握手流程

  1. AP → STAEAPOL-Key (1/4)
    内容:ANonce、Key Descriptor(指明算法、密钥类型等)。STA由此获得ANonce。
  2. STA → APEAPOL-Key (2/4)
    内容:SNonce、MIC(由KCK计算)、RSN Information(可选)。STA已生成PTK。
  3. AP → STAEAPOL-Key (3/4)
    内容:ANonce(可选)、GTK(用KEK加密)、MIC、密钥安装指示。AP验证STA的MIC,确认PMK一致后安装PTK。
  4. STA → APEAPOL-Key (4/4)
    内容:MIC,表示安装完成。STA安装PTK和GTK。

四次握手完成后,所有单播数据帧使用TK加密,组播帧使用GTK加密。

获取IP(DHCP)

链路建立并加密后,STA通过DHCP获取网络层配置。

DHCP流程(DORA)

  1. Discover:STA广播 DHCPDISCOVER(目的IP 255.255.255.255,源IP 0.0.0.0)。
  2. Offer:DHCP服务器(通常位于网关或AP)单播 DHCPOFFER,携带可用IP地址、租约时间。
  3. Request:STA广播 DHCPREQUEST,确认接受该Offer。
  4. 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转换管理)等机制。

漫游流程

传统漫游

  1. STA与目标AP重新执行 认证关联
  2. 若PMK已缓存(源AP与目标AP在同一ESS且共享PMK),则可跳过802.1X认证,直接进行四次握手。
  3. 完成四次握手后,数据路径切换。

快速漫游(802.11r)

  • 初始关联时,STA与R0KH(通常为控制器)完成FT初始关联,派生出PMK-R0和PMK-R1。
  • 漫游时,STA通过FT Action帧(Authentication/Reassociation)与目标AP完成快速握手,无需完整四次握手,切换时延降至毫秒级。