概述
-
一、概述
802.11帧由三个基本部分组成:
1. MAC头部:包括帧控制(Frame Control)、持续时间、地址信息、序列号等,不同类型的帧MAC头字段也是不一样的(不同帧中有些字段属于可选字段);
2. 可变长的帧实体:帧的实体根据MAC头中的type和subtype不同而不同;
3. 帧检验序列FCS:32bits的CRC,校验MAC头以及帧主体;
二、帧控制(Frame Control)
本字段共占2字节(16bits),根据不同类型的帧也有不一样的形式,主要是两种:一种是Control Frame Extension帧(Type=01,Subtype=0110),还有一种就是除Control Frame Extension帧之外的其他帧,本文暂不讨论Control Frame Extension帧的Frame Control字段,其余帧的Frame Control字段如下所示:
1. Protocol Version:MAC版本,占2bits,当前只使用了00,其余值全部保留;
2. Type:帧类型,占2bits,在《帧分类》中有详细描述;
3. Subtype:帧子类型,占4bits,在《帧分类》中有详细描述;
4. To DS & From DS:一般这俩个字段组合使用,不同的帧类型他们的含义不一样,如下所示:
1) 管理帧:利用这两个字段标识是否为QMF管理帧,当前的使用情况如下:
2) 控制帧:Control Frame Extension帧中未定义,其他的控制帧中,该字段的值总是To DS=0 & From DS=0;
3) 数据帧:这两个字段被用来标识数据的传输方向,如下所示:
5. More Fragments:占1bit,如果当前帧主体部分经过mac层分片(类似ip数据包的分片),除最后一片外,之前的每个数据包该字段设置为1;
Note:控制帧不可能被切割,该字段固定为0。
6. Retry:重传帧标志,占1bit,任何重传的帧会将该字段设置为1,以协助接收端剔除重复的帧;
7. Power Management:电源管理模式,占1bit,AP发送的所有帧,该字段处于保留状态(暂未使用),sta使用该字段表示发送完当前帧后,如果该字段为1,sta将进入省电模式,否则表示sta将是清醒状态;
Note:如果sta还未关联上ap,则sta发送的管理帧该字段也是处于保留状态,不使用。
8. More Data:标识ap是否还有帧需要发送给sta,占1bit,ap可能为省电的sta缓存了若干帧,该字段设置为1表示ap至少还有一个帧需要发送给该sta;
9. Protected Frame:标识帧主体是否加密,帧1bit,一般该字段只用于数据帧,而且不携带具体数据的数据帧(no data),该字段总是为0;
10. +HTC/Order:占1bit,设置为1的两种情况(其他情况,该字段都设置为0):
1) 在非qos数据帧分段传送时,表示接受者应该严格按照顺序处理该帧;
2) 在qos数据帧或者管理帧中,如果TXVECTOR参数中包含HT_GF、HT_MF或VHT,表示当前帧中有HT控制信息;
三、Duration/ID
持续时间/ID字段占16bits,根据不同帧的类型和子类型,它的含义也不同:
1. 对于PS-Poll控制帧:bit0~bit13标识AID,bit14和bit15均设置为1;
2. 免竞争期间所发送的任何帧,该字段会被固定设置为32768,bit0~bit14为0,bit15为1;
3. 设定NAV:当bi15t被设置为0时,duration/ID位会用来设定NAV,数值代表目前所进行的传输预计使用介质的时间,单位是微秒;
IEEE802.11-2016中定义如下所示:
四、Address
802.11在mac头中设计是4地址格式,主要是用来标识5个信息:BSSID、SA、DA、TA、RA。
1. 地址信息
1) RA:receiving STA address,Address1,标识的是当前帧的接收方,这个接收方不一定是该帧的最终客户端,可能需要由接收方进行中转;
2) TA:transmitting STA address,Address2,标识的是当前帧的发送方,这个发送方不一定是产生该帧的原始客户端,可能只是由该发送方转发的而已;
3) DA:destination address,Address3,标识的是当前帧中MSDU或AMSDU的最终目的地址,跟以太网头的DA是一样的含义;
4) SA:source address,Address4,标识的是传输当前帧中MSDU或AMSDU的原始地址,跟以太网头的SA是一样的含义;
2. BSSID信息并没有单独整一个Address,它由SA、DA、TA、RA中的一个标识BSSID,不同的帧中由谁来标识BSSID并不固定;
3. 地址格式
1) 管理帧:使用3地址格式,与使用3地址的数据帧一样;
2) 控制帧:使用1地址格式,比如ACK、CTS帧,其它大部分控制帧使用2地址格式;
3) 数据帧:使用3地址或者4地址格式,具体如下:
五、Sequence Control
顺序控制由两个部分组成,分别为Sequence Number、Fragment Number,共帧16bits,主要用于管理帧和数据帧中重组帧片段以及丢弃重复帧,控制帧未定义该字段:
1) Sequence Number:802.11为每一个MSDU或A-MSDU分配一个顺序编号,占12bits(bit4~bit15),每发送一个MSDU或A-MSDU,顺序编号加1;
2) Fragment Number:如果MSDU进行了分片发送,则体现在片段编号上,占4bits(bit0~bit3),未分片的情况该字段设置为0,否则第一个片段分配为0,后续每个片段依次加1;
最后
以上就是风中发夹为你收集整理的802.11帧--MAC头部的全部内容,希望文章能够帮你解决802.11帧--MAC头部所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复