WiFi 架构

设备

整个 WiFi 工作分为两个角色, 一个是 AP(Access Point), 即我们日常中的路由器. 它提供了接入互联网的服务. 另一个是 Station, 也就是我们日常接入设备, 比如手机和电脑.

AP 通常会定期向周围发送 Beacon 信号来让周围的设备知道它的存在. 不过 AP 也可以通过设置来不向外周期性的广播 Beacon 信息, 这样我们打开手机搜索 WiFi 的时候就找不到这个 AP 了, 但如果我们知道这个 AP 的信息, 依然可以通过主动探测这个特定的 AP 来与其建立连接.

Station 打开 WiFi 功能后, 会有两种工作模式. 一种是主动模式, 会向外广播探测请求 (Probe Request), 这时 AP 收到该请求后就会进行应答, 从而获得 AP 的信息. 这种模式下相对比较费电, 但是发出请求后马上就能获悉周围的 WiFi 列表. Station 还可以工作在被动模式下, 这种模式下 Station 不会主动发送请求, 而是被动等待 Beacon 信息的到来, 从而获悉周围可用的 AP. 这种模式下会比较省电, 但是不如主动方式获取信息那样及时.

连接流程

WiFi 的连接非常简单, 总共分为三个阶段:

  1. 探测阶段

    Station 向 AP 发送探测请求, 如果探测帧里带着目标 ssid(标识唯一 AP 的 id), 那么只有对应的 AP 才会回应. 如果不带 ssid, 那么所有的 AP 都会回应, 类似于广播探测.

  2. 认证阶段

    AP 会根据不同的认证方式与 Station 发生多次握手从而进行身份确认. 目前个人和家庭里的主要方式是 WPA2-PKS(Pre-Shared Key, 预共享密钥) 方式, 这种方式只要知道 ssid 和密码即可. 公司采用 WPA2-EAP(Extensible Authentication Protocol, 扩展认证协议) 方式, 这种认证方式 AP 还需要向能够校验身份的 RADIUS 服务器进行验证.

    除此之外, 历史上还存在 WEP 和 WPA 方式. 由于不再安全, 已经不再推荐使用.

  3. 关联阶段

    关联阶段会确认双方的软/硬件能力是否能够匹配等, 一切成功后, AP 记录一些 MAC 地址和 IP 地址之间的映射, 完成关联.

不同的认证方式: WEP, WPA/WPA2

WEP

全称 Wired Equivalent Privacy(有线等效保密), 是一种用于两台设备之间无线传输数据的认证方式. WEP 有两种身份认证方式:

第一种是 Open System(开放系统) 认证方式. 这种方式其实是不对身份进行验证, 无论 Station 携带什么密钥, AP 统统都允许接入. 但是如果密钥不对, 那么在后续的通讯中会校验到数据错误从而阻断通讯. 表现就是网络显示为 “受限的”.

另一种认证方式是: Shared Key(预共享密钥), 这种验证方式在认证初期就会判断密钥是否正确, 如果不正确则立即拒绝连接. 详细流程为:

  1. Station 向 AP 发送认证请求
  2. AP 返回一个明文子串
  3. Station 使用用户提供的密钥对上述明文加密
  4. AP 使用自己的密钥进行解密, 如果解密成功则接受请求, 完成认证
  5. 双方进行关联