802.11 WLAN 定义了三种类型的帧格式,他们分别是:管理帧(Management Frame)、控制帧(Control Frame)和数据帧(Data Frame)。帧头部中的类型字段中会标识出该帧属于哪一个字段。这篇博文仅仅介绍管理帧, 后面接下来会继续介绍控制帧和数据帧。sass
正如上图所示,在802.11帧格式中,前两个字节为Frame Control字段,其中前两位为协议版本,由于802.11协议簇目前只有一个版本,因此这两位一直为00,接下来两位为帧类型,目前有三个值,分别是:00,表示管理帧;01,表示控制帧,和10,表示数据帧。
网络
在接下来的四个比特,是子类型标识位,下面咱们逐一来介绍管理帧的子类型:ide
0000,Association request:关联请求帧
认证成功后,STA就会进入关联阶段, 这个交互的目的是为了加入这个BSS 并获取一个AID。经过Association Request携带的信息,使AP了解STA的相关能力信息,这样 AP就能够决定如何与该STA进行通讯
3d
0001,Association response:关联请求回复帧
当AP收到Association Request后,它会检查每个802.11参数,并与本身 支持的802.11参数进行匹配,若是出现不匹配的状况,AP会看当前的差别 是否属于Bloocking Factor。 若是是的话,AP就会拒绝关联,不然的话, AP就会标记这个差别,并在回Association Response的时候携带本身的 802.11参数。
AP返回一个状态码,0表明关联成功。 并为STA分配一个AID,它是1~2007(2 字节长,只用到最低的14个Bit,其余位为1.)
orm
0010,Reassociation request:再关联请求帧
该帧只能由STA 发出。 使用场景主要是: 当STA已经关联到一个ESS并想关 联到同一个ESS下的另外一个AP上。 也可用于: 当STA短暂离开当前关联的AP 后,从新关联此AP。 也可用于:当Authenticator timer过时后,STA 进行认证和从新关联。已经关联上某个AP的STA也能够经过此帧从新协商一 些参数。
blog
0011,Reassociation response:再关联请求回复帧
AP使用此帧回应STA发出的在关联请求。其格式与Association Response相似。
ci
0100,Probe request:探测请求帧
主要用于主动扫描,查找AP信息。STA也能够利用Probe Request来发现某个网络特定的信息。 为了支持这个 目的,Probe Request能够包含一个可选的 Request Information信息, 它们能够 请求一个或多个额外的参数。另外, Probe Request也能够携带一些厂商自定 义的IE信息。
get
0101,Probe response:探测请求回复帧
主要用于主动扫描,AP回复特定的查找AP信息请求。其帧内容等同于beacon frame, 只是不包含TIM字段和QoS字段。若是Probe request中包含Request Information 信息,则此帧应包含相应的Request Information 信息。
it
1000,Beacon:信标帧
AP以某个固定的时间间隔发送Beacon帧,并通知下一个Beacon帧发送的时间。 若是当前媒介忙碌,会推迟当前Beacon帧的发送,可是不会影响下一个 Beacon帧的发送,下一个Beacon帧仍然会按照预约的时间进行发送。
beacon帧包含全部AP的属性,以备STA在关联以前查验自身是否符合其要求。
1001,Announcement traffic indication message (ATIM):
此帧只适用于IBSS网络,用于通知处于power save模式下的其余STA是否应该转换睡眠模式到激活状态来接收缓冲的数据。
1010,Disassociation:解关联帧:
该帧多是单播帧,也多是多播帧。处于Disassociated状态的STA仍然是处于Authenticated状态,它们能够直接 进行从新关联。
1011,Authentication:认证帧:
在全部网络中,STA想要加入某一特定的网络以前,必须事先完成认证。不一样于关联请求和回复,认证过程只使用一种格式的认证帧。
1100,Deauthentication:解认证帧:
当双方通讯完成,会发送此帧结束会话。 该帧的格式与Disassociation相似。
1110,Action no ack:
就是不须要ack的Action帧。
管理帧一般标准MAC头部的大小为24字节,拥有三个地址域。管理帧老是是MAC层处理,它们不会被传递给上层(for app),另外,它们 的To DS和From DS的值老是为0.