[802.11][ MAC 帧头][Frame Control 2字节]

本文深入解析了IEEE802.11标准下MAC帧的格式与结构,重点阐述了FrameControl字段的功能,包括帧类型、子类型、传输方向等关键参数,以及它们在无线网络通信中的作用。

IEEE 802.11 MAC帧

在IEEE802.11 格式中,位的传送顺序由左到右,最低bit最先出现,最高效bit最后出现,感觉有点像大端对齐和小端对齐的注意事项

  • 大端对齐:高内存地址放整数高位 ,低内存地址放整数低位 例如x86 arm都是采用大端对齐

  • 小端对其:高内存地址放整数低位, 低内存地址放整数高位 例如unix大型服务器

mac帧格式

一般的802.11 MAC帧
MAC帧
除了Framebody 和FCS 剩下的就是mac 帧头

Frame Control

帧控制占用 2个字节,展开如下:
Frame Control

  • Protocol位
    占用2bit,代表协议编号,目前一直是0

  • Type 位 和 Sub type位
    Type占2bit,Sub type 占4bit,两个变量指定帧的类型
    Type占有4个值 00 01 10 11

Type帧类型
00管理帧
01数据帧
10控制帧
11保留

Sub type 决定哪些帧是管理帧 数据帧 控制帧

  • Management frames 管理帧(Type=00):用在加入和推出Wi-Fi,处理基站间转移的事情
Sub type帧作用
0010Probe Request(探查请求)
1010Probe Request(探查应答)
0001Beacon (引导信号)
1101Authentication(身份验证)
0011Deauthentication(解除认证)
0000Association Request (连接请求)
1000Association Response (连接应答)
0100Reassociation Request(重新连接请求)
1100Reassociation Response(重新连接应答)
0101Disassociation(解除连接)
1001Announcement traffic indication message (ATIM) (数据待传指示通知信号)
  • Control frames 控制帧(Type=10):和数据帧配合使用,提高数据传输的可靠性
Sub type帧作用
0101Power Save-Poll(省电模式-轮询)
1101RTS(请求发送)
0011CTS(允许发送)
1011Beacon (引导信号)
1101ACK(确认)
0111CF-End(免竞争期间结束)
1111CF-End(面竞争期间结束) + CF-ACK (面竞争期间回应)
  • Dataframes 数据帧(Type=01):发送包含数据的帧
Sub type帧作用
0000Data(数据)
1000Data+CF-ACK
0101Data+CF-Poll
1100Data+CF-ACK+CF-Poll
0010NULL data (无数据,未发送数据)
1010CF-ACK(未发送数据)
0110CF-Poll (未发送数据)
1110Data+CF-ACK+CF-Poll
0001QoS Data(未标准化)
1001QoS Data + CF-ACK(未标准化)
0101QoS Data + CF-Poll(未标准化)
1101QoS Data + CF-ACK+ CF-Poll(未标准化)
0011QoS NULL (未发送数据)(未标准化)
1011QoS CF-ACK (未发送数据)(未标准化)
1110QoS CF-Poll (未发送数据)(未标准化)
1111QoS CF-ACK+CF-Poll (未发送数据)(未标准化)
  • To DS 和 From DS 1 bit
    判断这个帧的目的地是否是传输系统,也能看出帧的类型
xxxTo DS = 0To DS = 1
From DS = 0所有管理和控制帧 IBSS(非基础型数据帧)基础型网络 sta 发送数据帧
From DS = 0基础型网络sta 接收到的数据帧无线桥接器的数据帧
  • More fragments 1 bit
    大型的数据帧需要分段,不需要分段的帧 值为0 ,分段的帧,会显示1,除非最后一个分段帧显示0

  • Retry 1 bit
    重传帧 显示1 ,协助接收端去除重复帧

  • Power management 1 bit
    设置1 ,表示发送端,发送完这帧,关闭网卡进入省电模式,0表示清醒,一般sta 会设置,基站一直为0 保持清醒

  • More data 1 bit
    因为sta 进入省电模式,基站 将帧缓存,基站设定为More data 1,至少有一个帧待传

  • Protected Frame 1 bit
    如果用链路层安全协议保护,设置为1

  • Order 1 bit
    设置为1 , 进行严格的依次传送

以上就是MAC 帧头的 Frame Control

<think>我们正在讨论IEEE 802.11 MAC格式。用户已经提供了相关引用和之前的问题背景。根据引用内容,特别是引用[1]和[3]中关于结构的描述,我们需要详细解释MAC的各个字段。 IEEE 802.11 MAC的基本结构如下(按照的传输顺序): 1. Frame Control控制域):2字节 2. Duration/ID(持续时间/标识):2字节 3. Address Fields(地址字段):通常包含4个MAC地址,但根据类型不同,地址的数量和含义会变化。每个地址6字节。 4. Sequence Control(序列控制域):2字节 5. Optional fields (如QoS Control等):可选 6. Frame Body(体):0-2312字节 7. FCS(校验序列):4字节 我们将按照这个顺序详细解释每个字段。 ### 1. Frame Control控制域,2字节) 该字段包含多个子字段,用于控制的属性。具体结构如下(位序从高位到低位,即第0位到第15位): - **Protocol Version(协议版本,2位)**:表示802.11协议的版本号,通常为00。如果出现新版本,则可能为其他值。 - **Type(类型,2位)**:表示的类型。可能取值: - 00:管理(Management Frame) - 01:控制Control Frame) - 10:数据(Data Frame) - 11:保留 - **Subtype(子类型,4位)**:进一步细分的类型。例如: - 管理中:0000关联请求(Association Request),1000信标(Beacon) - 控制中:1011请求发送(RTS),1100允许发送(CTS) - 数据中:0000普通数据(Data) - **To DS(去往分布式系统,1位)**:当发送给分布式系统(通常是接入点AP)时为1,否则为0。 - **From DS(来自分布式系统,1位)**:当来自分布式系统(AP)时为1,否则为0。 - **More Fragments(更多分段,1位)**:如果该是分片且后面还有分片,则为1;否则为0。 - **Retry(重传,1位)**:如果是重传则为1,否则为0。 - **Power Management(电源管理,1位)**:发送端发送该后的电源状态。1表示进入省电模式,0表示保持活跃。 - **More Data(更多数据,1位)**:用于通知处于省电模式的站点,AP还有更多缓存数据等待发送。 - **Protected Frame(保护,1位)**:如果体被加密(例如WEP、WPA、WPA2等),则为1;否则为0。 - **Order(顺序,1位)**:如果需要使用严格顺序服务(Strictly-Ordered service)则为1,否则为0。 ### 2. Duration/ID(持续时间/标识,2字节) 根据Frame Control中的设置,该字段有三种含义: - **当最高两位(第15位和第14位)为00时**:表示该的传输需要预留的信道时间(单位为微秒),用于后续的传输(如RTS/CTS交换)或分片传输。在NAV(网络分配向量)设置中使用。 - **当最高两位为10时**:表示该字段是一个关联标识符(AID),用于在节能轮询(PS-Poll)中标识站点(STA)。此时,低14位表示AID(范围1-2007)。 - **当最高两位为11时**:保留。 ### 3. Address Fields(地址字段) 802.11最多包含4个MAC地址(每个6字节),分别标记为Address 1、Address 2、Address 3和Address 4。这些地址的含义取决于的类型(由To DS和From DS位决定): - **Address 1**:总是表示接收端的地址(RA),即目标地址(DA)或接收端MAC地址。 - **Address 2**:总是表示发送端的地址(TA),即源地址(SA)或发送端MAC地址。 - **Address 3**:用于附加地址,通常用于BSSID(基本服务集标识)或源/目的地址(在数据中,当To DS和From DS组合不同时,它可能表示源地址或目的地址)。 - **Address 4**:仅在某些特定情况下出现(例如无线分布式系统WDS中),表示最初的源地址或最终的目的地址。 具体组合如下表: | To DS | From DS | Address 1 (RA) | Address 2 (TA) | Address 3 | Address 4 | 常见类型 | |-------|---------|----------------|----------------|----------------|----------------|------------------| | 0 | 0 | DA(目的地址) | SA(源地址) | BSSID | 不出现 | IBSS(自组网)中的数据 | | 0 | 1 | DA | BSSID(AP地址)| SA(源地址) | 不出现 | 来自AP的数据 | | 1 | 0 | BSSID(AP地址)| SA(源地址) | DA(目的地址) | 不出现 | 发往AP的数据 | | 1 | 1 | RA(接收AP) | TA(发送AP) | DA(目的地址) | SA(源地址) | WDS(无线分布式系统)中数据 | 注意:在管理和控制中,地址字段的使用可能有所不同,具体取决于子类型。 ### 4. Sequence Control(序列控制域,2字节) 该字段包含两个部分: - **Fragment Number(分段号,4位)**:表示该的分段序号(0-15)。若该未分片,则为0。 - **Sequence Number(序列号,12位)**:用于标识一个(或分片前的完整)的唯一序列号。发送方每发送一个新的上层数据包(MSDU)都会递增该序列号,用于重组和去重。 ### 5. QoS Control(服务质量控制,可选,2字节) 当控制域中的Type为数据(10)且Subtype的高两位为1000(即QoS数据)时,会出现该字段。它用于支持服务质量(QoS)特性(如802.11e标准引入的EDCA)。该字段包含: - **TID(业务标识符,4位)**:表示该所属的业务类别(0-15)。 - **其他控制位(12位)**:包括ACK策略、TXOP限制等。 ### 6. Frame Body(体) 该字段包含实际的上层数据(如IP包)或管理/控制的信息元素(IE)。长度可变,最小0字节,最大2312字节(取决于物理层特性)。 ### 7. FCS(校验序列,4字节) 该字段包含CRC-32校验值,用于检测在传输过程中是否出错。接收方会重新计算FCS并与该字段比较,若不一致则丢弃该。 ### 总结 IEEE 802.11 MAC的格式设计适应了无线环境的特性(如介质共享、移动性、安全等),通过灵活的地址字段和控制域支持多种通信模式(如基础架构模式、自组网模式、WDS模式等)。理解结构对于分析无线网络问题、开发无线驱动或进行安全审计至关重要[^1][^3]。 §§相关问题§§ 1. 如何根据控制域判断一个802.11的具体类型(如信标)? 2. 802.11的地址字段在不同通信模式(如基础架构模式vs.自组网模式)下如何变化? 3. 为什么802.11需要序列控制域?它是如何防止重复的? 4. 在加密的802.11中,体部分是如何被保护的? </think>### IEEE 802.11 MAC格式详解 IEEE 802.11 MAC的结构包含7个核心字段,其格式设计考虑了无线介质的特殊性(如共享信道、信号干扰等),与有线以太网有显著区别[^1]。以下是逐字段详解(按传输顺序): #### 1. **Frame Control控制域,2字节)** 这是MAC的核心控制字段,包含11个子字段: - **Protocol Version(协议版本,2位)** 标识802.11协议版本,通常为`00`(基础版本)。 - **Type(类型,2位)** `00`管理(关联/认证)、`01`控制(RTS/CTS)、`10`数据(用户数据)。 - **Subtype(子类型,4位)** 细化类型,例如管理中的`1000`表示信标(Beacon)。 - **To DS/From DS(各1位)** 指示去向/来源: - To DS=1:发往分布式系统(如AP) - From DS=1:来自分布式系统 - **More Fragments(1位)** `1`表示后续还有分片。 - **Retry(1位)** `1`表示此为重传。 - **Power Management(1位)** `1`表示发送端即将进入节能模式。 - **More Data(1位)** AP用`1`通知终端有缓存数据待传。 - **Protected Frame(1位)** `1`表示体已加密(WPA2/WPA3)。 - **Order(1位)** `1`表示需严格按序处理(用于QoS)。 > *示例*:信标Frame Control值为`0x8000`时: > - Type=`00`(管理) > - Subtype=`1000`(信标) > - 其他位为0[^1][^3]。 #### 2. **Duration/ID(持续时间/标识,2字节)** 功能由最高两位决定: - **第15位=0**:表示NAV(网络分配向量),单位为微秒,预留信道占用时间[^1] *例如:RTS中设置NAV阻止其他设备争用信道*。 - **第15位=1, 第14位=0**:用于免竞争周期(CFP)通知。 - **第15位=1, 第14位=1**:STA休眠标识(AID),AP据此缓存数据[^1]。 #### 3. **Address Fields(地址字段,最多4×6字节)** 地址数量由To DS/From DS组合决定: | To DS | From DS | 地址1 (RA) | 地址2 (TA) | 地址3 | 地址4 | |-------|---------|------------|------------|-------------|-------------| | 0 | 0 | 目的地址 | 源地址 | BSSID | - | | 0 | 1 | 目的地址 | BSSID | 源地址 | - | | 1 | 0 | BSSID | 源地址 | 目的地址 | - | | 1 | 1 | 接收AP | 发送AP | 目的地址 | 源地址 | > - RA=接收方地址,TA=发送方地址 > - BSSID=AP的MAC地址(基础架构模式)或随机生成(自组网模式)[^3] #### 4. **Sequence Control(序列控制,2字节)** - **高4位**:分片编号(0表示未分片) - **低12位**:序列号 用于重组分片和丢弃重复,每发送一个MSDU(MAC服务数据单元)序列号+1[^1]。 #### 5. **QoS Control(服务质量控制,可选,2字节)** 仅出现在QoS数据中(Subtype=1000),包含: - **TID(业务标识符,4位)**:标识数据优先级(0-15) - **TXOP限制(8位)**:最大传输时间 - **ACK策略(2位)**:确认机制选择[^3] #### 6. **Frame Body(体,0-2312字节)** 承载有效载荷: - 数据:上层协议数据(如IP包) - 管理:信息元素(IE),如SSID、支持速率 - 控制:通常为空 #### 7. **FCS(校验序列,4字节)** CRC-32校验值,用于检测传输错误,校验失败则丢弃[^1]。 ### 802.11与以太网的关键区别 | 特性 | 802.11 | 以太网 (802.3) | |--------------|------------------------------|------------------------| | **地址数量** | 最多4个MAC地址 | 固定2MAC地址 | | **控制** | 含电源管理/分片等字段 | 无 | | **最大长度** | 2346字节 | 1518字节 | | **介质访问** | CSMA/CA + NAV预留 | CSMA/CD | | **类型** | 管理/控制/数据三类 | 仅数据 | > 这些差异源于无线信道的不稳定性和移动设备特性[^1][^3]。 ### 典型示例 **信标(管理)结构**: ``` Frame Control(2) | Duration(2) | DA(6) | SA(6) | BSSID(6) | SeqCtrl(2) | Frame Body(IEs) | FCS(4) ``` - DA=广播地址`FF:FF:FF:FF:FF:FF` - Frame Body包含SSID、信道、安全协议等信息[^3]。 该格式设计使802.11能适应无线环境挑战,如通过NAV避免冲突、通过分片控制降低误码影响[^1][^3]。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值