802.11 WLAN 定义了三种类型的帧格式,他们分别是:管理帧(Management Frame)、控制帧(Control Frame)和数据帧(Data Frame)。帧头部中的类型字段中会标识出该帧属于哪个字段。这篇博文仅仅介绍管理帧, 后面接下来会继续介绍控制帧和数据帧。
正如上图所示,在802.11帧格式中,前两个字节为Frame Control字段,其中前两位为协议版本,因为802.11协议簇目前只有一个版本,所以这两位一直为00,接下来两位为帧类型,目前有三个值,分别是:00,表示管理帧;01,表示控制帧,和10,表示数据帧。
管理帧的结构:
HT管理帧结构(802.11n):
在接下来的四个比特,是子类型标识位,下面我们逐一来介绍管理帧的子类型:
0000,Association request:关联请求帧
认证成功后,STA就会进入关联阶段, 这个交互的目的是为了加入这个BSS 并获取一个AID。通过Association Request携带的信息,使AP了解STA的相关能力信息,这样 AP就可以决定如何与该STA进行通信
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.)
0010,Reassociation request:再关联请求帧
该帧只能由STA 发出。 使用场景主要是: 当STA已经关联到一个ESS并想关 联到同一个ESS下的另一个AP上。 也可用于: 当STA短暂离开当前关联的AP 后,重新关联此AP。 也可用于:当Authenticator timer过期后,STA 进行认证和重新关联。已经关联上某个AP的STA也可以通过此帧重新协商一 些参数。
0011,Reassociation response:再关联请求回复帧
AP使用此帧回应STA发出的在关联请求。其格式与Association Response类似。
0100,Probe request:探测请求帧
主要用于主动扫描,查找AP信息。STA也可以利用Probe Request来发现某个网络特定的信息。 为了支持这个 目的,Probe Request可以包含一个可选的 Request Information信息, 它们可以 请求一个或多个额外的参数。另外, Probe Request也可以携带一些厂商自定 义的IE信息。
0101,Probe response:探测请求回复帧
主要用于主动扫描,AP回复特定的查找AP信息请求。其帧内容等同于beacon frame, 只是不包含TIM字段和QoS字段。如果Probe request中包含Request Information 信息,则此帧应包含相应的Request Information 信息。
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类似。
1101,Action:行为帧:
此帧仅用于特殊的网络行为。
1110,Action no ack:
就是不需要ack的Action帧。
管理帧通常标准MAC头部的大小为24字节,拥有三个地址域。管理帧总是是MAC层处理,它们不会被传递给上层(for app),另外,它们 的To DS和From DS的值总是为0.
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。