。与有线网相比,无线 WiFi 网会复杂很多。大部分应用软件开发对 WiFi 的控制帧和管理帧了解得并不多,因为它们在物理层和数据链路层就已经被处理了,上层应用很少能感知到。
一般是在设备出现 WiFi 连接不上,或者是工作不稳定的情况下,才会去分析 WiFi 驱动工作情况以及抓 WiFi 空口包数据来分析。
有抓过 WiFi 空口包的同学应该清楚,无线 WiFi 网的网络包不管是从包类型还是包信息内容来看,都会比有线网的包复杂很多。

这篇主要介绍有线网与无线WiFi网在物理层的差异、WiFi 介质访问控制原理和它的一些关键技术以及无线用户的接入过程。
WiFi 空口包抓包、分析,以及各类 WiFi 帧结构的介绍放到下一篇介绍。这篇是基础原理知识的介绍,也是后面一篇 WiFi 帧分析的基础。

载波侦听:设备在发送数据之前会先监听网络,以检测是否有其他设备在传输数据。如果检测到网络空闲,则开始发送数据。
冲突检测:在数据发送过程中,设备持续监听网络。如果检测到冲突 (即两个或多个设备同时发送数据导致信号混合) ,发送数据的设备会停止传输,并发送一个“冲突信号”以通知网络上的其他设备。
重传数据:发生冲突后,设备会等待一段随机的时间后再次尝试发送数据。这个随机等待时间称为“退避算法”,可以有效减少后续冲突的可能性。
它依赖的是网线共享介质,设备在数据发送的过程中,还可以检测网线) 无线网 CSMA/CA
所以有线网络中的冲突检测方式,在无线中并不适用,并且无线中还存在相邻站点不一定能侦听到对方的情况:
手机位于两个路由器中间,并且距离两个路由器都比较远,这个时候路由器 AP1 检测不到路由器 AP2 的信号,两个路由器之间都不知道对方是否有在给手机 STA2 发送数据。

准备发送”信号 (如RTS,即请求发送) ,并等待接收设备返回“允许发送”信号 (如CTS,即清除发送) 。数据发送
由于无线网引入了额外的信号交换 (如 RTS/CTS) 和 ACK 等机制,增加了无线网设备连接、数据交互的复杂度。
(1) ACK 确认机制 (Acknowledgment Mechanism)


准备发送”请求 (RTS) 和“允许发送”确认 (CTS) 这两个控制帧,在发送数据之前确保信道空闲,减少隐蔽节点问题。RTS(Request to Send)

PC1 要发送数据,所以它发送了 RTS 帧, 这时路由器可以收到该 RTS 帧,但是 PC2 与 PC1 距离较远,PC2 收不到 PC1 的 RTS 帧。
AP1 和 AP2 属于同一个信道,当 PC1 向 AP1 发送数据时,PC2 也希望向 AP2 发送数据。


具体做法是,在每次检测到信道忙碌后,设备会生成一个随机退避时间。退避时间越长,设备等待的时间越久,从而分散重试时间点,降低冲突概率。


发送者想要发送数据,先侦听信道状态,如果空闲,它就会发送一个 RTS 帧(请求发送帧)
接收者接收到该 RTS 帧之后,等待一个 SIFS (短帧间间隔)时间后,再发送一个 CTS 帧(可以发送数据了)
发送者收到 CTS 帧之后,间隔一个 SIFS (短帧间间隔)时间后,发送数据帧。
最下面一行的 NAV 是其它设备的一个时间记时器,当设备的 NAV 计时器大于零时,设备会认为信道正在被其他设备占用,因此不会尝试进行传输,被进制访问介质。
ACK 之后有个 DIFS (分布式协调功能帧间间隔),这是个竞争窗口,容许优先级低的设备再尝试发送数据。
通过不同的 IFS 间隔时间,CSMA/CA 可以控制不同类型的数据帧在信道上的优先级。高优先级的数据帧 (如 ACK 和 CTS) 使用较短的间隔,确保它们能快速获得信道使用权。
通过强制设备在每次传输前等待一定时间,IFS 降低了多个设备同时传输的可能性,减少了冲突的发生。
虚拟载波侦听机制,它与物理载波侦听相结合。物理载波侦听是通过硬件直接检测信道上的信号强度,来判断信道是否被占用。
PC1 给路由器发送数据帧,同一个范围的PC2、PC3、phone 也会收到该数据帧帧。


是 WiFi 设备连接无线网络的第一步,设备通过扫描找到可用的无线接入点 (Access Point, AP) ,从而选择合适的 AP 进行连接。WiFi 标准中定义了两种主要的扫描方式:主动扫描 (Active Scanning) 和被动扫描 (Passive Scanning) 。每种方式有其特点和应用场景。
在每个信道上,设备会发送探测请求帧 (Probe Request) 。这个探测请求可以是针对所有网络的广播,也可以是针对特定 SSID 的单播。
针对某个特定 SSID 的单播,探测包中有携带需要探测的 SSID 信息,只有 SSID 能够匹配上的 AP 才会返回探测响应包。

当探测请求是针对所有网络的广播时,探测包中 SSID 信息是为 NULL,接收到该探测包的 AP 都会返回探测响应包。

AP在接收到探测请求后,会返回探测响应帧 (Probe Response) 。这个响应帧包含AP的详细信息,例如:

AP 会定期 (通常是100ms)在指定信道上广播信标帧。信标帧包含了AP的关键信息,包括:
设备依次切换到不同的信道,并在每个信道上监听信标帧。每个信道可能包含多个 AP 的信标帧。
现代 WiFi 网络一般使用 WPA/WPA2/WPA3 等协议进行身份验证,结合了 PSK (Pre-Shared Key) 或企业级的 RADIUS 认证服务器来提升安全性。


:设备的其他功能,如是否支持QoS (Quality of Service)、电源管理等。
:如果设备支持802.11n (HT, High Throughput) 或802.11ac/ax (VHT, Very High Throughput),它会在关联请求中包含这些信息,以允许AP使用更高效的技术来优化传输性能 (如 MIMO、多信道聚合等)。
AP 接收到设备的关联请求帧后,会检查设备的请求信息,评估其是否能够接受设备的连接。通常,AP 会基于设备的能力和当前网络的负载情况作出决定。然后,AP 会通过
:指示关联是否成功。如果状态码为0,表示关联成功;否则,设备需要重新尝试。
每个成功关联的设备会被 AP 分配一个唯一的 AID,用于区分不同的设备。在后续通信中,AP 使用 AID 来管理每个设备。
:AP 会在响应中确认双方支持的最高传输速率,这些速率会成为后续通信中的基准。
:如果 AP 支持多信道传输或设备的请求中包含特定信道要求,AP 会在响应中确认所选择的信道。
一旦设备收到关联成功的响应帧,它就会正式成为 AP 的一部分,并可以开始通过AP 访问网络资源。关联成功后的状态有以下几个关键点:
:设备的 AID 可以用于 AP 管理关联设备的无线资源,例如通过AID 来识别哪些设备可以发送或接收数据。
:AP 可能根据网络条件和设备的能力,分配特定的无线资源 (如信道带宽、时隙等)。
:关联完成后,设备与 AP 之间的通信变为数据帧传输,设备可以通过 AP 接入互联网或本地网络资源。
:如果 AP 已经连接了过多的设备,它可能会拒绝新的关联请求,通常会返回一个“超载”状态码。
:如果设备和 AP 使用不同的安全协议 (例如设备只支持 WPA, 而 AP 要求 WPA2 或 WPA3),关联将会失败。
:如果设备距离 AP 太远,信号质量过差,AP 可能无法维持稳定的连接,从而拒绝关联请求。
上面主要介绍了有线网与 WiFi 无线网在物理层的差异、WiFi 介质访问控制原理及其关键技术、无线用户的接入过程。