学习802.11之MAC帧格式(一篇就够!)

802.11规范的关键在于MAC(媒介访问控制层),MAC位于各式物理层之上,控制数据传输。负责核心成帧操作以及与有线骨干网络之间的交互。

802.11 MAC采用载波监听多路访问(CSMA)机制来控制对传输媒介的访问,不过冲突会浪费宝贵的传输资源,因而802.11采用冲突避免(CSMA/CA)机制,而非Ethernet所采用的冲突检测(CSMA/CD)机制。

在802.11无线局域网中,MAC帧是实现MAC协议和保证数据有效通讯的基础。802.11MAC帧格式很特别,它的长度是可变的。不同功能的数据帧长度不一样。

802.11 MAC一般格式

  资料直通车:Linux内核源码技术学习路线+视频教程内核源码

学习直通车:Linux内核源码内存调优文件系统进程管理设备驱动/网络协议栈

Frame Control(帧控制)

所有帧的开头均为2个字节的Frame Control。

 

1:Protocol字段:有2位组成,用以显示该帧所使用的MAC版本,目前802.11 MAC只有1个版本,它的协议编号为0

2:Type与Subtype字段:用来指定使用的帧类型。

其中Type表示帧类型:

00: 管理帧(Management Frame)

01: 控制帧(Control Frame)

10: 数据帧(Data Frame)

  • 管理帧:负责监督,主要用来加入或退出无线网络以及处理接入点之间关联的转移事宜。

 

SubType:

0000:Association Request(关联请求)

0001:Association Response(关联响应)

0010:Reassociation Request(重新关联请求)

0011:Reassocation response(重新关联响应)

0100:Probe Request(探测请求)

0101:Probe Response(探测响应)

1000:Beacon(信标)

1001:ATIM(通知传输指示消息)

1010:Disassociation(取消关联)

1011:Authentication(身份验证)

1100:Deauthentication(解除身份验证)

  • 控制帧:通常与数据帧搭配使用,负责区域的清空、信道的取得、载波监听的维护,并于收到数据时予以肯定确认,借此提高工作站之间数据传输的可靠性。

SubType:

1010:Power Svae(PS)-Poll(省电-轮询)

1011:RTS(请求发送)

1100:CTS(清除发送)

1101:ACK(确认)

1110:CF-End(无竞争周期结束)

1111:CF-End(无竞争周期结束)+CF-ACK(无竞争周期确认)

  • 数据帧:负责在工作站之间搬运数据。会将上层协议的数据置于帧主体中加以传递。

SubType:

0000:Data(数据)

0001:Data+CF-ACK

0010:Data+CF-Poll

0011:Data+CF-ACK+CF-Poll

0100:Null data(无数据:未传送数据)

0101:CF-ACK(未传送数据)

0110:CF-Poll(未传送数据)

0111:Data +CF-ACK+CF-Poll(未传送数据)

1000:QoS Data(数据)

1001:QoSData+CF-ACK

1010:QoSData+CF-Poll

1011:QoSData+CF-ACK+CF-Poll

1100:QoS Null(无数据:未传送数据)

1101:QoS CF-ACK(未传送数据)

1110:QoS CF-Poll(未传送数据)

1111:QoS CF-ACK+CF-Poll(未传送数据)

3:To DS与From DS:用来指示帧的目的地是否为分布式系统。

  • To DS=0,From DS=0:表示Station之间的AD Hoc类似的通信,或者控制侦、管理侦。
  • To DS=0,From DS=1:Station接收的侦。
  • To DS=1,From DS = 0:Station发送的侦。
  • To DS=1,From DS = 1:无线桥接器上的数据侦。

4:More Fragments:上层的封包经过MAC分段处理,除了最后一个片段,其他片段均会将该为置1。

5:Retry:重传标记,任何重传的帧都会将该为置位1,以协助接收端剔除重复的帧。

6:Power Management:用来指示工作站在完成当前原子帧交换之后是否进入省电(Power-Save)模式,1表示工作站即将进入深感模式,0表示工作站会一直保持清醒状态。接入点不允许进入省电模式,所以接入点传送的帧中此位必然为0。

7:More data:接入点会为处于省电模式的工作站缓存帧,接入点如果设置此位,表示至少有1个帧待传给休眠中的工作站。

8:Protected frame:该位被置1,帧收到链路层安全协议包含,

9:Order:该位被置1,帧与帧严格要求依次传送。

Duration/ID字段

紧跟在FrameControl字段之后,此字段有很多功能,有三种可能是形式:

1:Duration:持续时间,bit15被设定为0。用来记载网络分配矢量(NAV),访问媒介的时间限制由NAV指定。,Duration/ID字段被用来设定NAV。

2:无竞争周期所传送的帧(CFP)。bit15被设为1,bit14被设为0。其余所有位均为0,字段值为32768。

3:PS-Poll帧:bit15和bit14均被设为1,用于从省电模式醒来的Station发送

AID(关联标知符)以取得在AP中的缓存帧。

Address字段

一个802.11帧最多可以包含4个Address字段。通常有3个,SA、DA、BSSID,由To DS/From DS位来决定。

 

其中:

BSSID:基本服务集标识符

DA:目的地址

SA:源地址

RA:接收端地址

TA:发送端地址

SequenceControl(顺序控制)字段

此字段16位,用来重组帧片段及丢弃重复帧。它是由4位的片段编号(fragment number)字段以及12位的顺序(sequence nubmer)编号。

控制帧未使用顺序编号,无此字段。

 

当上层帧交给MAC传送时,会被赋予一个顺序编号。此字段的作用相当于已传帧的计数器取4096的模,此计数器从0起算,MAC每处理一个上层封包它就会累加1,如果上层封包被分段处理,则所有帧片段都会具有相同的顺序编号。如果是重传帧,则顺序编号不会有任何改变。

帧片段之间的差异在于片段编号,第一个片段的编号为0,其后每个片段编号依次累加1,重传的片段编号会保持原始的顺序编号以协助重组。

FrameBody((帧主体)字段

也称为数据字段,负责在工作站之间传递上层有效载荷。

FCS(帧校验序列)字段

循环冗余校验(CRC)码,FCS让工作站能攻检查所收到的帧的完整性。FCS的计算范围涵盖MAC标头里所有字段以及帧主体。

当帧送至无线接口时会先计算FCS,然后在经过RF链路传送出去。接收端随后会为收到的帧计算FCS,然后与记录在帧中的FCS进行比较。如果两者相符,则该帧极有可能在传送过程中未受损。

最后来一张Omnipeek抓包截图:

 

 

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值