WiFi基础(五):802.11帧结构与WiFi控制帧、管理帧、数据帧

liwen01 2024.09.22

前言

前面介绍了 WiFi 的工作原理和 WiFi 的接入过程,这里将通过分析 WiFi 具体数据包结构,让你对 WiFi 工作原理和接入过程有一个更进一步的了解。

前面文章可以通过下面连接查看:

WiFi基础(四):WiFi工作原理及WiFi接入过程

(一) 802.11 帧

802.11 无线 WiFi 有 数据帧,管理帧、控制帧 三种类型帧。

这些帧由 9 个部分组成:Frame Control,Duration ID,Address1,Address2,Address3,Seq-ctl,Address4,Frame Body,FCS

需要注意的是,有些组成部分在有些帧里并不是必须的。

九个部分的功能简介如下:

  • Frame Control (帧控制):Frame Control字段位于帧的开头,用于定义帧的类型、子类型、协议版本、帧方向、以及一些控制标志。
  • Duration/ID (持续时间/标识符):该字段用于指定网络中其他节点的NAV (网络分配向量)计时器,用于控制介质访问。
  • Address1 (地址1):常表示帧的接收者 MAC 地址。在To DS 为 1 的情况下,表示目标 AP 的地址
  • Address2 (地址2):通常表示帧的发送者 MAC 地址。
  • Address3 (地址3):根据帧类型的不同,这个字段可以表示不同的地址
  • Sequence Control (序列控制):该字段用于帧的序列控制和片段管理
  • Address4 (地址4):无线分布式系统) 或中继的情况下使用。通常用于表示源或目标地址。
  • Frame Body (帧体):包含实际的数据负载或管理信息。根据帧的类型和子类型,该字段的内容和长度可以不同。
  • FCS (Frame Check Sequence,帧校验序列):用于帧的错误检测。通常是一个 32 位的 CRC 校验码,用于验证帧的完整性。

(1) Frame Control (帧控制)

(a) Protocol Version (协议版本) [第0-1位]

指定协议的版本号。当前的 802.11 标准使用版本号 00,即 0。

(b) Type (帧类型) [第2-3位] :

定义帧的主要类型。

  • 00:管理帧 (Management Frame)
  • 01:控制帧 (Control Frame)
  • 10:数据帧 (Data Frame)
  • 11:保留

(c) Subtype (子类型) [第4-7位]

定义帧的子类型,不同的主类型有不同的子类型

对于管理帧:

  • 0000:Association Request
  • 0001:Association Response
  • 1000:Beacon

对于控制帧:

  • 1101:ACK
  • 1011:RTS (Request to Send)
  • 1101:CTS (Clear to Send)

对于数据帧:

  • 0000:数据帧 (无数据类型区分)
  • 1000:QoS 数据帧

(d) To DS (发送到分布式系统) [第8位]

指示该帧是否发送到分布式系统 (即无线接入点AP)

取值:

  • 0:帧不是发送到 DS (通常是 STA 发送给 AP 的帧)
  • 1:帧是发送到 DS (通常是 AP 发送给 STA 的帧)

(e) From DS (来自分布式系统) [第9位]

指示该帧是否来自分布式系统。

取值:

0:帧不是来自 DS (通常是 AP 发送给 STA 的帧) 1:帧是来自 DS (通常是 STA 发送给 AP 的帧)

(f) More Fragments (更多片段) [第10位]

指示当前帧是否有更多的片段。如果一个数据帧被分片发送,那么除最后一个片段外,所有片段的此位都置为1

取值: 0:这是最后一个片段; 1:后续还有片段

(g) Retry (重传) [第11位]

指示当前帧是否为重传帧。如果之前发送的帧没有被正确确认,帧会被重传,此位会置为1。

取值: 0:首次发送; 1:重传帧

(h) Power Management (电源管理) [第12位]

指示站点的电源管理状态。

取值:0:站点处于活动模式; 1:站点处于省电模式

(i) More Data (更多数据) [第13位]

由AP设置,用于指示站点是否有更多的数据帧等待接收。

取值: 0:没有更多数据;1:有更多数据

(j) Protected Frame (保护帧) [第14位]

指示帧的内容是否加密,使用的是 WEP、TKIP、CCMP 等加密协议。

取值:0:帧未加密; 1:帧已加密

(k) Order (顺序) [第15位]

指示该帧是否以严格顺序处理,通常用于 QoS 数据帧。

取值:0:不需要严格顺序处理; 1:需要严格顺序处理

上面 802.11 Beacon frame 帧,版本号为 0;帧类型为 00 为管理帧;子类型为1000 为Beacon 帧。

(2) Duration/ID (持续时间/标识符)

Duration/ID 字段的功能因帧的类型和上下文而异,主要有以下两种主要用途:网络分配向量 (NAV)持续时间 和 AID (Association ID)

(a) 网络分配向量 (NAV)持续时间

对于大多数数据帧和管理帧,Duration/ID字段表示剩余的帧传输时间。它告诉网络中的其他设备该帧将占用通信介质多长时间,从而更新它们的网络分配向量 (NAV)。NAV是一个计时器,指示设备在特定时间内不应访问通信介质,避免冲突。

单位:微秒 (µs)

数据帧: Duration/ID 字段表示从当前帧开始,到ACK帧结束所需的时间。这包括数据帧传输时间、SIFS (短帧间隙)时间和ACK传输时间。

RTS/CTS帧 在RTS (Request to Send) 和 CTS (Clear to Send) 帧中,Duration/ID 字段表示整个传输会话的剩余时间,包括数据帧和相应的ACK帧传输。

(b) AID (Association ID)

在某些帧 (如 Power Save Poll 帧)中,Duration/ID 字段包含的是站点的 Association ID (AID),这是一个由接入点 (AP) 分配给每个关联站点的唯一标识符。当字段被用于此目的时,字段的高两位通常设置为 11 以表示 AID,而剩余的14位表示实际的 AID 值。

上面的 CTS 帧,Duration 为 134 ms,表示该传输会持续134 ms,在这期间同信道的其它设备需要保持安静。

(3)Sequence Control (序列控制)

Sequence Control 字段用于管理帧的序列化和片段化。这个字段有助于确保数据帧能够按正确的顺序组装,并检测和处理重传的帧。

Sequence Control 字段分为两个部分: Fragment Number (片段号):4位 和 Sequence Number (序列号):12位

(a) Fragment Number (片段号) [4位]

片段号用于标识帧的分片部分。由于无线传输可能会受到干扰,大型帧在传输前可能会被分割成多个小片段,每个片段都有唯一的片段号

取值范围:0 到 15 (即2^4 - 1)

Fragment Number 的主要功能

片段管理: 当一个帧被分片时,片段号用于标识每个片段的顺序,以便接收端正确重组原始帧。

重传管理:在某些情况下,如果一个片段由于传输错误而丢失,只有丢失的片段需要重传,而不是整个帧。片段号帮助识别需要重传的具体片段。

(b) Sequence Number (序列号) [12位]

序列号用于标识发送方发出的帧的顺序,以便接收方能够检测丢失的帧并正确重组数据。

取值范围:0 到 4095 (即2^12 - 1)

Sequence Number 主要功能:

帧顺序管理:序列号帮助接收端按正确的顺序排列接收到的帧。如果接收到的帧序列号不连续,说明有帧丢失或需要重传。

重传检测:当帧重传时,序列号保持不变,但片段号可能变化。接收方通过序列号识别重传的帧,并决定是否丢弃或处理该帧

(c) 工作原理

分片传输: 当一个大数据帧被分片时,所有片段使用相同的序列号,但片段号递增。例如,假设序列号为100,片段号为 0,表示第一个片段;片段号为 1,表示第二个片段,依此类推。

帧重传: 如果帧在传输过程中丢失或被接收端判断为错误,发送端会重传该帧。重传帧的序列号与原帧相同,但片段号可能发生变化,具体取决于传输的片段。

查看上面的数据帧,被分开了多个数据帧,当前 Sequence Number 为 1144 。

(二) 无线空口包

WiFi 是通过无线电报在空中进行数据交互,所以称为空中接口包(Air Interface Packet),也简称为空口包。它包含了无线 WiFi 网中传输的所有信息。

(1) 空口包 capture

在有线网中,我们一般使用 Wireshark 来抓取网卡的所有数据,但是在无线 WiFi 中,无线口空包数据一般使用 Omnipeek 来抓取。

Omnipeek 需要搭配一个数据分析网卡来使用,可以在不建立链接的前提下,直接抓取到 802.11 无线数据,一般用于研究开发 WiFi 协议、分析无线连接过程、监控无线网络等。

关于 Omnipeek 的使用,网上介绍比较多,我这里就简单概括一下使用方法。

  • 安装 Omnipeek 软件和驱动
  • 设置 Omnipeek 需要抓取的频段(信道)
  • 如果 AP 是加密的的,需要设置密码

通过上面方式就可以抓取到某个信道的所有无线信号,具体使用与 Wireshark 类似。抓取到的数据帧如下:

(三) 管理帧

管理帧有:Beacon 信标帧、Probe Request 检测请求帧、Probe Response 检测应答帧、Authentication 认证帧、De-Authentication 解除认证帧、Association Request 连接请求帧、Re-Association Request 重新连接请求、Association Response 连接应答帧

这里我们主要介绍:Beacon 信标帧、Association Request 连接请求帧 和 Association Response 连接应答帧

(1) Beacon 帧

Beacon 的 Subtype 为1000,所以整个帧类型为:001000b,也就是 0x08。

使用过滤条件为:wlan.fc.type_subtype == 0x08 可以刷选出所有的 beacon 帧。

Beacon 由无线接入点 (AP)定期广播,用于宣布无线网络的存在,并向附近的客户端设备提供必要的网络信息,以便它们能够加入和管理连接。

(a) Beacon帧的功能:

网络发现:Beacon 帧包含了无线网络的SSID (Service Set Identifier),帮助客户端设备发现和识别无线网络。

同步:Beacon 帧携带时间戳,客户端设备通过接收 Beacon 帧可以同步其时钟与AP的时钟,这对于协调设备的定时和节能至关重要。

传递网络配置信息:Beacon 帧包含网络的配置信息,如支持的速率、加密方法、信道信息等,帮助客户端设备配置和优化其连接。

信号广播:Beacon 帧还帮助客户端设备确定信号强度,从而选择合适的 AP 进行连接。

(b) Beacon帧的工作原理

定期广播: AP按照设定的 Beacon 间隔 (通常为100 TU,即102.4毫秒)定期发送Beacon帧,以宣布其存在和提供网络信息。

客户端扫描: 无线客户端设备定期扫描信道,接收不同 AP 发送的 Beacon 帧,通过这些帧中的信息来选择合适的 A P进行连接。

网络加入和管理: 客户端设备一旦选择了合适的 AP,便通过 Beacon 帧中的信息来配置连接参数,例如信道、速率、加密方法等。

节能管理: 当设备进入节能模式时,它会依赖 Beacon 帧中的 TIM 字段来判断何时需要唤醒接收数据,减少不必要的能耗。

(c) Beacon帧的结构

Frame Control (帧控制):类型字段为管理帧,子类型字段为Beacon

Duration/ID (持续时间/ID) 表示帧传输需要的时间,Beacon 帧一般设为 0,表明没有后续操作需要保留介质。

Address 1 (Destination Address,目的地址) :通常设置为广播地址 (FF:FF:FF:FF:FF),因为Beacon帧是广播帧,面向所有设备。

Address 2 (Source Address,源地址):AP的MAC地址,标识发送Beacon帧的无线接入点。

Address 3 (BSSID,基本服务集标识符): 网络的BSSID,通常与Address 2相同,除非是中继的场景。

Sequence Control (序列控制): 包含序列号和片段号,用于管理帧的顺序和重组。

Frame Body (帧主体) :Beacon帧的主要内容,包含网络的配置信息和时间同步信息。以下是Frame Body中的关键字段:

  • Timestamp (时间戳):用于同步客户端设备的时钟。
  • Beacon Interval (信标间隔):AP发送Beacon帧的时间间隔,单位为TU (Time Unit,1TU = 1024微秒)。
  • Capability Information (能力信息):描述AP支持的功能,如是否启用加密、是否为基础设施模式等。
  • SSID (服务集标识符):网络的名称,帮助客户端识别网络。
  • Supported Rates (支持的速率):AP支持的数据速率列表。
  • DS Parameter Set (DS参数集):指示使用的信道号。
  • Traffic Indication Map (TIM,流量指示图):用于指示AP暂存的数据包,尤其在节能模式下,告诉客户端何时需要唤醒以接收数据。
  • **Country Information (国家信息):包括地区、信道等限制信息 (可选)。
  • RSN Information (RSN信息):如果网络启用了加密 (如WPA/WPA2),此字段包含安全信息。

(2)Association Request 帧

Association Request 帧是802.11无线WiFi网中用于建立客户端设备(例如笔记本电脑、智能手机等)与无线接入点 (AP) 之间连接的管理帧之一。

这个帧由客户端设备在选择了一个 AP 后发出,表示它希望加入这个无线网络。

使用参数 wlan.fc.type_subtype == 0x00 可以过滤出所有的 Association Request 帧

(a) Association Request 帧的功能

加入网络:客户端设备使用 Association Reques t帧请求加入一个 AP 管理的无线网络。

传递客户端能力:帧中包含了客户端设备的能力信息,例如支持的速率、加密方法、QoS 功能等。

获取网络资源:通过关联请求,客户端能够获取到网络分配的资源,例如 IP 地址、网络权限等

(b) Association Request 帧的工作原理

扫描与发现: 客户端设备通过主动或被动扫描(如发送探测请求帧或接收信标帧)发现可用的 AP。

发送关联请求: 在选择目标 AP 后,客户端设备发送 Association Request 帧给AP,请求加入网络。

AP处理请求: AP 收到请求后,会检查客户端设备的能力和配置是否与网络兼容,并确定是否允许其加入。

发送关联响应:如果 AP 同意请求,它将返回一个 Association Response 帧,指示关联的成功与否,并分配一个关联 ID (AID)。如果不成功,AP 会给出拒绝原因。

建立连接: 关联成功后,客户端设备和AP之间的连接建立,客户端设备可以开始数据传输。

(c) Association Request 帧的结构

Frame Control (帧控制) :类型字段为管理帧 (00)子类型字段为 Association Request (0000)。

Duration/ID (持续时间/ID):指定传输此帧所需的时间,或包含关联ID。

Address 1 (目的地址) 目标 AP 的 MAC 地址 (即接收地址)。

Address 2 (源地址) 发送 Association Request 的客户端设备的 MAC 地址。

Address 3 (BSSID,基本服务集标识符) 目标网络的 BSSID,通常与 Address 1 相同。

Sequence Control (序列控制) :包含帧的序列号和片段号,用于管理帧的顺序和重组。

Frame Body (帧主体) Association Request 帧的核心部分,包含客户端设备的能力和配置参数。帧主体包含以下子字段:

  • Capability Information (能力信息) 描述客户端设备的能力,如是否支持加密、短前导码、QoS、功率管理等功能。

  • Listen Interval (侦听间隔) 客户端设备与 A P通信时的间隔,表示客户端设备多长时间侦听一次信标帧。值越小,客户端越频繁地检查 AP 发送的信标,消耗的功率越大。

  • SSID (服务集标识符) 客户端设备请求加入的无线网络的 SSID (网络名称)。如果客户端设备明确指定要加入哪个网络,就会包含这个字段。

  • Supported Rates (支持的速率) 客户端设备支持的数据传输速率列表。AP 会根据这个列表判断是否可以支持客户端的请求,并选择最佳传输速率。

  • Extended Supported Rates (扩展支持速率) 如果客户端设备支持的速率超过了 8 个,则会使用这个字段来传递更多速率信息。

  • RSN Information (RSN信息) 如果网络启用了 WPA/WPA2 加密,客户端会在这个字段中发送其支持的安全功能和加密方法。

  • Power Capability (功率能力) 客户端设备的最小和最大传输功率,通常在需要节能或具有特定功率要求的设备中使用。

  • Supported Channels (支持的信道) 客户端设备支持的信道范围,用于 AP 选择适当的信道进行通信。

  • Vendor Specific (厂商特定) 一些厂商特有的扩展字段,允许客户端和 AP 传递特定于设备的附加信息。

(3) Association Response 帧

Association Response 由无线接入点 (AP) 在收到客户端设备 (例如笔记本电脑、智能手机等) 发送的 Association Request 帧后,作为响应发出。

这个帧的作用是通知客户端设备其关联请求是否成功,并在成功的情况下分配一个关联 ID (AID) ,允许其加入网络。

使用参数 wlan.fc.type_subtype == 0x01 可以过滤所有的 Association Response 帧

(a) Association Response 帧的功能

确认关联请求:AP 通过 Association Response 帧确认客户端设备的关联请求。

提供关联状态:该帧告知客户端设备其关联请求的结果 (成功或失败) ,如果失败,还会提供失败的原因。

分配资源:如果关联成功,AP会为客户端设备分配一个关联 ID (AID) ,并可能提供其他必要的网络参数。

(b) Association Response 帧的工作原理

接收关联请求: AP 首先接收到来自客户端设备的 Association Request 帧。

处理请求: AP 根据自身的能力、当前网络状态、客户端设备的能力信息等因素,决定是否允许客户端设备加入网络。

生成关联响应: AP生成一个 Association Response 帧,其中包含关联请求的结果和相关信息。

发送关联响应: AP 将 Association Response 帧发送回客户端设备。

关联成功:如果请求成功,客户端设备将接收到 AID ,并可以开始正常的数据传输。

关联失败:如果请求失败,客户端设备会接收到一个错误状态码,告知失败的原因,并可能需要重新发送关联请求或进行其他处理。

**建立连接:**如果关联成功,AP 和客户端设备之间的连接正式建立,客户端可以进行数据传输和进一步的网络交互

(c) Association Response 帧的结构

Frame Control (帧控制) 类型字段为管理帧 (00) 子类型字段为 Association Response (0001) 。

Duration/ID (持续时间/ID) 指定传输此帧所需的时间,或包含关联 ID。

Address 1 (目的地址) 发送关联请求的客户端设备的 MAC 地址 (即接收地址) 。

Address 2 (源地址) AP的MAC地址,表示发送该响应帧的设备。

Address 3 (BSSID,基本服务集标识符) 网络的 BSSID,通常与 Address 2 相同。

Sequence Control (序列控制) 包含帧的序列号和片段号,用于管理帧的顺序和重组。

Frame Body (帧主体) Association Response 帧的核心部分,包含关联结果和配置参数。以下是 Frame Body 中的关键字

  • Capability Information (能力信息) 描述 AP 的能力,如支持的加密方法、短前导码、QoS、功率管理等功能。这个字段的内容与 Association Request 帧中的 Capability Information 字段相似,但由 AP 决定。

  • Status Code (状态码) 指示关联请求的处理结果。常见的状态码包括:0 (成功) :关联请求成功。1-65535 (失败原因) :如资源不足、AP 不支持客户端请求的功能、认证失败等。

  • Association ID (AID,关联ID) 如果关联成功,AP 为客户端设备分配一个唯一的关联 ID (AID) 。AID 是一个用于标识客户端设备的短标识符,在 AP 和客户端之间进行通信时很常用,尤其是在节能模式下。

  • Supported Rates (支持的速率) AP 支持的数据传输速率列表,通常包含在响应帧中以确认客户端设备和 AP 之间的速率匹配。

  • HT Capabilities (高吞吐量能力,可选) 如果 AP 支持802.11n 或更高标准 (如802.11ac) ,可能会包含这个字段来描述 AP 的高吞吐量能力。

(四)控制帧

控制帧包括:ACK(应答)、RTS(请求发送)、 CTS(允许发送)、PS-Poll省电模式-轮询帧。

由于这些帧都不带实体部分,所以相对是比较简单的。

(1) ACK 帧

ACK帧 (Acknowledgement Frame) 用于确认接收到的数据帧或管理帧。

这是确保可靠数据传输的重要机制,尤其在无线网络中,因为无线信道易受干扰和数据丢失的影响。ACK帧由接收方发送给发送方,表示已成功接收到数据,无需重传。

(a) ACK 帧的功能

确认接收:当设备成功接收到数据帧或管理帧后,发送 ACK 帧以告知发送方帧已被接收。

减少重传 :通过及时确认接收,ACK 帧帮助减少不必要的重传,优化网络效率。

保障可靠性:ACK 机制是 802.11 协议提供可靠数据传输的重要部分,确保发送方知道数据是否成功到达。

(b) ACK帧的工作原理

发送数据帧: 设备 A 向设备 B 发送数据帧 (如 Data 帧) 。

接收并处理数据帧: 设备 B 接收到数据帧,并检查数据的完整性 (通过 FCS 字段) 。

发送ACK帧: 如果数据帧无误,设备 B 在一个短的时隙 (称为SIFS,Short Interframe Space) 后,向设备 A 发送 ACK 帧。

确认接收: 设备 A 接收到 ACK 帧后,知道设备 B 已成功接收到数据帧,因此可以继续发送下一个数据帧。如果没有收到 ACK 帧,设备 A 会在规定的重传次数内重发数据帧。

(c) ACK 帧的结构

类型字段为控制帧 (01),子类型字段为ACK (1101),通过 wlan.fc.type_subtype == 0x1d 可以筛选出 ACK 帧

(2) RTS 与 CTS 帧

RTS 帧 (Request to Send Frame) 与 CTS 帧 (Clear to Send Frame) 用于解决无线通信中可能发生的信道争用和隐藏节点问题。

RTS 帧通过请求信道占用权,确保发送方可以独占信道进行数据传输,从而减少数据帧的碰撞。

(a) RTS/CTS 帧的功能

避免碰撞:在多个设备共享同一无线信道的环境下,RTS 帧帮助协调设备之间的通信,减少同时发送数据导致的帧碰撞。

解决隐藏节点问题:当两个设备无法直接彼此通信,但都能与 AP 通信时,RTS 帧有助于确保这些设备不会同时发送数据,从而避免信道争用。

控制信道访问:通过RTS/CTS (Clear to Send) 机制,设备可以请求短暂占用信道的权限,确保其数据传输不会受到其他设备的干扰。

(b) RTS/CTS 机制的工作原理

RTS帧与CTS帧 (Clear to Send) 共同工作,形成RTS/CTS机制。这是802.11协议中一种用于解决信道争用和碰撞的问题的协议。其工作步骤如下:

发送 RTS 帧:设备 A 准备发送一个较大的数据帧时,首先向设备 B 发送 RTS 帧,请求占用信道的许可。RTS 帧中包括目的地址 (设备B) 和信道占用时间。

接收 CTS 帧:如果设备B接收到 RTS 帧,并且信道空闲,它会在一个短暂的 SIFS (Short Interframe Space) 后,向设备 A 发送 CTS 帧。CTS 帧中包括允许占用信道的时间。

其他设备等待:在设备 A 和设备 B 进行 RTS/CTS 交换的过程中,其他设备 (能够听到 CTS 帧的设备) 会进入等待状态 (NAV,网络分配向量) ,不占用信道,直至数据传输完成。

发送数据帧:收到 CTS 帧后,设备 A 确认信道已被分配给它,开始向设备 B 发送数据帧。

ACK确认:设备 B 成功接收到数据帧后,发送 ACK 帧确认数据的接收。

(c) RTS/CTS 帧的重要性

解决隐藏节点问题:在无线网络中,隐藏节点是指两个无法彼此直接通信的设备,但它们可以与同一个 AP 通信。RTS/CTS 机制通过要求所有设备在发送数据前先进行 RTS/CTS 交换,确保没有隐藏节点干扰数据传输。

减少碰撞概率:通过 RTS/CTS 机制,设备在传输大型数据帧前先进行握手,确保信道已被预留。这样,大大减少了因为碰撞而重传数据的需求,提高了网络效率。

优化信道使用:虽然 RTS/CTS 机制本身会增加一些控制帧的开销,但在高流量或高干扰环境中,它能有效地减少碰撞,从而提高整体网络的吞吐量和效率

(d) RTS/CTS 帧结构

  • RTS 类型字段为控制帧 (01),子类型字段为RTS (1011),整合类型为 0x1b
  • CTS 类型字段为控制帧 (01),子类型字段为CTS (1100),整合类型为 0x1c

(3) PS-Poll 帧

PS-Poll帧 (Power Save Poll Frame) 用于设备在省电模式下与接入点 (AP) 通信时,轮询接收缓存的帧。

它的主要目的是帮助处于省电模式的设备高效管理电源,同时确保不会错过重要的数据帧。

(a) PS-Poll 帧的功能

省电模式下的帧获取:当设备处于省电模式时,它会定期进入活动状态,通过发送PS-Poll 帧请求 AP 发送缓存的数据帧。

优化电池使用: 通过减少设备的活动时间,PS-Poll 帧帮助设备在尽可能少消耗电能的情况下获取数据。

信道效率: PS-Poll 帧确保只有在设备准备好接收数据时,AP 才会发送缓存的帧,从而提高了信道的使用效率。

(b) PS-Poll 帧的工作原理

PS-Poll 帧的工作流程涉及设备和AP之间的交互,确保省电模式下的设备能够有效接收数据帧。具体步骤如下:

设备进入省电模式:设备定期进入省电模式,关闭大部分的无线功能以节省电能。

AP 缓存数据帧:当 AP 有数据帧需要发送给处于省电模式的设备时,它会缓存这些帧,并在 Beacon 帧中设置标志,表明有数据帧等待发送。

设备轮询 AP:设备周期性地唤醒,并发送 PS-Poll 帧给 AP,询问是否有数据帧待接收。

AP响应PS-Poll 帧:收到 PS-Poll 帧后,AP 会根据缓存情况,立即发送数据帧。如果有多帧需要发送,AP 会继续缓存剩余的帧,直到设备再次发送 PS-Poll 帧。

设备接收数据帧:设备接收到 AP 发送的帧后,如果 AP 指示还有更多帧待接收,设备可以选择继续轮询或返回省电模式。

(c) PS-Poll 帧的重要性

延长电池寿命:PS-Poll 帧的使用使得设备能够最大限度地减少无线功能的开启时间,从而有效延长电池寿命。

信道占用优化:PS-Poll 机制确保AP只在设备请求时发送数据帧,避免了不必要的信道占用,从而提高了网络效率。

适用于移动设备:在移动设备 (如智能手机和笔记本电脑)中,PS-Poll 帧机制尤其重要,因为这些设备依赖电池供电,电量管理对用户体验至关重要。

(d) PS-Poll 帧结构

类型字段为控制帧 (01),子类型字段为 PS-Poll (1010),整合类型为:0x1a

注意,在 PS-Poll 帧中,Duration 字段通常用来表示设备 ID,以帮助 AP 识别是哪台设备正在轮询帧。所以上面截图的这个 Duration 实际是解析错了,它不是表示时间,而是表示 ID。

结尾

上面内容主要是对 WiFi 的部分控制帧和管理帧做了简单的介绍,如有错误,欢迎评论区提示指出,不胜感激。

下一篇将介绍 WiFi 漫游与路由器的串并联、 Mash、AC+AP 组网相关知识

------------------End------------------ 如需获取更多内容 请关注 liwen01 公众号