最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

《CWAP-404》,第4章:802.11 MAC 帧(4.2,MAC 帧格式,帧控制字段)

业界 admin 6浏览 0评论
帧控制字段主要有两种结构:此处我们称之为“通用”和“控制帧扩展”。控制帧扩展类型用于允许重用 b8-b11 比特位。该字段包含多个子字段,其中许多是 1 比特的标志位。 如下图所示,帧控制字段长度为两个八位组(16 比特)。此处比特位编号从 b0(最左边的比特)到 b15(最右边的比特),这一约定在整个标准中通用。此格式适用于所有非控制帧扩展。 协议版本 - 第一个字段的名称可能有些误导性。此字段是为 IEEE 可能进行的重大修订预留的,当前应始终设置为 0。如果未来发布“不兼容”的新版本,IEEE 将在此时递增该值。 类型与子类型 - 这是两个不同的字段。类型字段占 2 比特,子类型字段占 4 比特。此前我们讨论过帧类型相关的值:类型字段有四个可能的值 [00-11],子类型字段则占四个比特 [0000-1111]。 在抓包分析中,必须清楚当前传输的是哪种帧。了解网络中应传输的内容是成功的一半,而另一半则是实际传输的内容。大多数协议分析工具会如下图所示直观展示这些信息,但优秀的工程师仍需掌握手动解码能力——尤其是在多方解码、分析工具功能异常或完全失效的情况下。 To/From DS - 两个各占 1 比特的字段。这些字段描述帧的传输路径,并指示其是否处于网状(mesh)系统中。应将这些比特视为“真/假”而非数值。
  • 如果 To DSFrom DS 均为 0,表示传输发生在独立基本服务集(IBSS)内的站点到站点(STA 到 STA)、基本服务集(BSS)中的 STA 到 STA,或基础设施系统中非接入点(AP)到另一个非 AP。如果系统中启用了客户端隔离,则不应出现此类标志的帧,否则可能表示异常。这是 IBSS 传输的唯一组合,因为 IBSS 不包含分布式系统(DS)结构。
  • 如果 To DS=1From DS=0,表示帧由关联到 AP 的 STA 发出,进入 DS。
  • 如果 To DS=0From DS=1,表示帧从 DS 传出(由 AP 发出),或为包含 Mesh 控制字段的组播数据帧(使用三地址 MAC 头格式)。这是 AP 发出的帧或 Mesh STA 传输的组播帧的唯一组合。
  • 如果 To DS=1From DS=1,表示网状系统中的数据帧使用四地址 MAC 头格式。通常用于 Mesh BSS 内 STA 间的传输,也可用于两个 WLAN 网桥之间的通信。
初次分析帧捕获时,这些字段有助于判断帧的流向。了解通信方向和 DS 侧的参与者至关重要。开发对网络行为的直觉理解常被忽视,而此类细节能帮助整合全局信息。下图展示了 To DSFrom DS 字段的示例。 更多分段(More Fragments)- 该字段占 1 比特。对于所有包含当前 MSDU(MAC 服务数据单元)后续分段的数据帧或管理帧,此字段设为“真”(1);若无后续分段或未分段,则设为“假”(0)。在扩展子类型的控制帧中,此字段集成至控制帧扩展字段。 下图高亮了 更多分段(More Fragments)字段。注意,在解码显示“后续有更多分段(More Fragments to Follow)”时,该字段被设为 1。 重试子字段(Retry Subfield)- 占 1 比特。该字段用于标识当前帧是否为未收到确认(ACK)的先前消息的重传。多数协议分析工具通过此字段计算整体重试率(重试帧数/总帧数 = 重试率百分比)。重传帧的常见问题是会占用信道资源,与其他帧无异。通常,重试率也会参与当前调制方式的算法决策,因为发送站点(Tx STA)无法预知其与接收站点(Rx STA)的距离或可能遇到的其他干扰程度。此外,该字段会与序列号对比以确保帧仅被处理一次。某些语音应用对重传特别敏感,具体取决于重传的帧类型,可能引发类似 KRACK 攻击(密钥重装攻击)的漏洞。 需注意:若仅从单个适配器抓包,可能低估实际重试率。理想做法是从 BSS 中的多个节点进行聚合且同步的捕获,因为单个适配器只能在一个频道、一个位置“监听”。若无法监听到 BSS 对侧的传输,这些传输仍会占用空口时间,加剧 BSS 的过载问题。 电源管理子字段(Power Management Subfield)- 占 1 比特。此字段是降低电池供电设备能耗的关键部分。其值表示站点(STA)在完成传输序列后的模式(0 表示保持“唤醒”,1 表示进入“休眠”)。在与未关联的 AP 通信(如探测请求)时,所有管理帧中的电源管理子字段均视为保留位。同样,所有由 AP 发起的传输中,此字段也视为保留位。在 IBSS 中,该字段仅在某些交互中有效,用于指示相同的休眠/唤醒状态。下图展示了解码后的电源管理比特位。 若设备响应时间较慢,可检查客户端的省电设置。某些设备在休眠模式下会关闭部分或全部发送(Tx)链甚至接收(Rx)链。若设备在高电量或充电时的 RSSI/RCPI 与低电量时存在差异,可能引发显著问题。小型设备在低电量时还可能降低最大发送功率。 更多数据子字段(More Data Subfield)- 该子字段占 1 比特。非定向多千兆(non-DMG)站点(STA)或接入点(AP)通过此字段向处于省电模式的 STA 指示:在 STA 重新进入休眠前,其缓冲区中仍有更多待传输的数据/信息。可参考上图的示例(位于“Protected”比特与电源管理比特之间)。结合电源管理子字段,此字段可控制省电行为。若 STA 因信标帧中的流量指示图(TIM)内其关联标识符(AID)对应的数据被唤醒,它将保持唤醒状态以接收缓冲帧。若单独传输数据,每次传输均会向 STA 表明仍有更多数据待接收,确保 STA 不会立即休眠。 观察省电设备时,此字段是判断其功能是否正常的重要依据。若从事 802.11 协议开发,此字段可作为驱动功能的简易测试点。 受保护帧子字段(Protected Frame Subfield)- 该子字段占 1 比特。若帧体经过加密封装算法处理,则设为 1(真),否则设为 0。下图展示了该字段设为 1 的示例。 +HTC/Order 子字段(+HTC/Order Subfield)- 该字段占 1 比特,用于指示帧中服务质量控制(QoS Control)字段后是否存在 HT 控制字段。设为 1 表示存在 HT 控制字段,0 表示不存在。在 HT Greenfield、HT 混合模式、VHT 或 HE 网络中,当向 HT、VHT 或 HE 站点分别传输 QoS 数据帧或管理帧时,此比特始终设为 1。 帧控制字段主要有两种结构:此处我们称之为“通用”和“控制帧扩展”。控制帧扩展类型用于允许重用 b8-b11 比特位。该字段包含多个子字段,其中许多是 1 比特的标志位。 如下图所示,帧控制字段长度为两个八位组(16 比特)。此处比特位编号从 b0(最左边的比特)到 b15(最右边的比特),这一约定在整个标准中通用。此格式适用于所有非控制帧扩展。 协议版本 - 第一个字段的名称可能有些误导性。此字段是为 IEEE 可能进行的重大修订预留的,当前应始终设置为 0。如果未来发布“不兼容”的新版本,IEEE 将在此时递增该值。 类型与子类型 - 这是两个不同的字段。类型字段占 2 比特,子类型字段占 4 比特。此前我们讨论过帧类型相关的值:类型字段有四个可能的值 [00-11],子类型字段则占四个比特 [0000-1111]。 在抓包分析中,必须清楚当前传输的是哪种帧。了解网络中应传输的内容是成功的一半,而另一半则是实际传输的内容。大多数协议分析工具会如下图所示直观展示这些信息,但优秀的工程师仍需掌握手动解码能力——尤其是在多方解码、分析工具功能异常或完全失效的情况下。 To/From DS - 两个各占 1 比特的字段。这些字段描述帧的传输路径,并指示其是否处于网状(mesh)系统中。应将这些比特视为“真/假”而非数值。
  • 如果 To DSFrom DS 均为 0,表示传输发生在独立基本服务集(IBSS)内的站点到站点(STA 到 STA)、基本服务集(BSS)中的 STA 到 STA,或基础设施系统中非接入点(AP)到另一个非 AP。如果系统中启用了客户端隔离,则不应出现此类标志的帧,否则可能表示异常。这是 IBSS 传输的唯一组合,因为 IBSS 不包含分布式系统(DS)结构。
  • 如果 To DS=1From DS=0,表示帧由关联到 AP 的 STA 发出,进入 DS。
  • 如果 To DS=0From DS=1,表示帧从 DS 传出(由 AP 发出),或为包含 Mesh 控制字段的组播数据帧(使用三地址 MAC 头格式)。这是 AP 发出的帧或 Mesh STA 传输的组播帧的唯一组合。
  • 如果 To DS=1From DS=1,表示网状系统中的数据帧使用四地址 MAC 头格式。通常用于 Mesh BSS 内 STA 间的传输,也可用于两个 WLAN 网桥之间的通信。
初次分析帧捕获时,这些字段有助于判断帧的流向。了解通信方向和 DS 侧的参与者至关重要。开发对网络行为的直觉理解常被忽视,而此类细节能帮助整合全局信息。下图展示了 To DSFrom DS 字段的示例。 更多分段(More Fragments)- 该字段占 1 比特。对于所有包含当前 MSDU(MAC 服务数据单元)后续分段的数据帧或管理帧,此字段设为“真”(1);若无后续分段或未分段,则设为“假”(0)。在扩展子类型的控制帧中,此字段集成至控制帧扩展字段。 下图高亮了 更多分段(More Fragments)字段。注意,在解码显示“后续有更多分段(More Fragments to Follow)”时,该字段被设为 1。 重试子字段(Retry Subfield)- 占 1 比特。该字段用于标识当前帧是否为未收到确认(ACK)的先前消息的重传。多数协议分析工具通过此字段计算整体重试率(重试帧数/总帧数 = 重试率百分比)。重传帧的常见问题是会占用信道资源,与其他帧无异。通常,重试率也会参与当前调制方式的算法决策,因为发送站点(Tx STA)无法预知其与接收站点(Rx STA)的距离或可能遇到的其他干扰程度。此外,该字段会与序列号对比以确保帧仅被处理一次。某些语音应用对重传特别敏感,具体取决于重传的帧类型,可能引发类似 KRACK 攻击(密钥重装攻击)的漏洞。 需注意:若仅从单个适配器抓包,可能低估实际重试率。理想做法是从 BSS 中的多个节点进行聚合且同步的捕获,因为单个适配器只能在一个频道、一个位置“监听”。若无法监听到 BSS 对侧的传输,这些传输仍会占用空口时间,加剧 BSS 的过载问题。 电源管理子字段(Power Management Subfield)- 占 1 比特。此字段是降低电池供电设备能耗的关键部分。其值表示站点(STA)在完成传输序列后的模式(0 表示保持“唤醒”,1 表示进入“休眠”)。在与未关联的 AP 通信(如探测请求)时,所有管理帧中的电源管理子字段均视为保留位。同样,所有由 AP 发起的传输中,此字段也视为保留位。在 IBSS 中,该字段仅在某些交互中有效,用于指示相同的休眠/唤醒状态。下图展示了解码后的电源管理比特位。 若设备响应时间较慢,可检查客户端的省电设置。某些设备在休眠模式下会关闭部分或全部发送(Tx)链甚至接收(Rx)链。若设备在高电量或充电时的 RSSI/RCPI 与低电量时存在差异,可能引发显著问题。小型设备在低电量时还可能降低最大发送功率。 更多数据子字段(More Data Subfield)- 该子字段占 1 比特。非定向多千兆(non-DMG)站点(STA)或接入点(AP)通过此字段向处于省电模式的 STA 指示:在 STA 重新进入休眠前,其缓冲区中仍有更多待传输的数据/信息。可参考上图的示例(位于“Protected”比特与电源管理比特之间)。结合电源管理子字段,此字段可控制省电行为。若 STA 因信标帧中的流量指示图(TIM)内其关联标识符(AID)对应的数据被唤醒,它将保持唤醒状态以接收缓冲帧。若单独传输数据,每次传输均会向 STA 表明仍有更多数据待接收,确保 STA 不会立即休眠。 观察省电设备时,此字段是判断其功能是否正常的重要依据。若从事 802.11 协议开发,此字段可作为驱动功能的简易测试点。 受保护帧子字段(Protected Frame Subfield)- 该子字段占 1 比特。若帧体经过加密封装算法处理,则设为 1(真),否则设为 0。下图展示了该字段设为 1 的示例。 +HTC/Order 子字段(+HTC/Order Subfield)- 该字段占 1 比特,用于指示帧中服务质量控制(QoS Control)字段后是否存在 HT 控制字段。设为 1 表示存在 HT 控制字段,0 表示不存在。在 HT Greenfield、HT 混合模式、VHT 或 HE 网络中,当向 HT、VHT 或 HE 站点分别传输 QoS 数据帧或管理帧时,此比特始终设为 1。
发布评论

评论列表 (0)

  1. 暂无评论