为了能完成对协议栈的高层间的数据传送,802.11bMAC层应该能够从协议栈的高层接收MSDU并可靠的将其发送到对等层。为此MAC层应该在MSDU的头部和尾部加入足够的信息,被加入信息的MSDU被称为MPDU。构建好的MPDU被传给物理层,然后通过无线媒体将其传给其它站。另外为了提高MSDU的传输可靠性,MAC层还可能将MSDU分成几个帧传送,有关分段的详细内容将在随后章节中介绍。

MAC层,接收到的MSDU和加入的头部和尾部信息被称为一个完整的帧。这些帧包含有地址信息、802.11b协议信息、用于设置NAV(网络分配矢量)的信息、以及用于效验帧完整性的信息等等。在本章将详细介绍MAC层的帧格式。所有的站都应该能为传送的数据正确构建帧和对接收的帧能正确解出数据。

4.1 MAC帧格式

    每个帧都由以下几个基本部分构成:

a) 一个MAC头,该部分由帧控制域、传送该帧所需时间域/AID、地址和序列控制信息构成。

b)一个变长的帧体,包括针对帧类型的信息。

c)一个帧检查序列(FCS),包括32位的循环校验码(CRC)

4.1.1帧格式总述

MAC层协议数据单元MPDU或者帧被描述为一定的顺序的一系列域。在7章中的每个图描述了在MAC帧中出现的域/子域,并且按照被传入PLCP层的顺序从左到右描述出来。

在图中,在域中的所有位都被编号,从0k,该域的长度为k+1。域中字节的边界可以通过将域的位编号模8得到。超过一个字节长度的编号域中的字节按照重要性从低位到高位描述,超过一个字节长度的域中的字节在传入PLCP时从字节中的低位到高位。

任何域含有CRC都是本规定的例外,并且从该域的高位开始传送。

MAC地址被赋与有序的一系列2进制位,I/G位在地址中的第一位且首先被传送。

以十进制描述的值通常以自然二进制编码除非有特殊规定。表1中的值是二进制,且在表中指明了位的位置,在其他表中的值是十进制。

被保留的域和子域在传送时被置为0,在接收时这些位被忽略。

4.1.2通用帧格式

所有的MAC帧都由一系列以固定顺序出现的域组成。图12描述了一个通用MAC帧格式。Address 2, Address 3, Sequence Control, Address 4, and Frame Body

域只在一些特定的帧中出现。在7.1.3中介绍每个域,在7.2中介绍各种具体不同的帧类型。

4.1.3帧的各个域

4.1.3.1帧控制域

帧控制域是一个16位固定长度的域,它包含有需要解释帧头部随后部分的信息。
帧控制域包括下列子域:Protocol Version协议版本号, Type帧类型, Subtype帧子类型, To DS到分布式系统, From DS来自分布式系统, More Fragments有后继段, Retry重传标记, Power Management电源管理, More Data更多的数据, Wired Equivalent Privacy (WEP) WEP加密标记, Order序号。在图13中显示了控制域的格式。

 

4.1.3.1.1协议版本号

协议版本号域为2位固定长并且适用本标准的所有修订版本。对于本标准,该值是0,所有其他值作为保留值。当本标准的修订版本相对于以前版本有较大改动后版本号才增加。当接收帧的版本号高于所支持的版本号时,MAC层会丢弃该帧而不报告给LLC层。

4.1.3.1.2帧类型和子类型域

类型域长度是2位,子类型长度是4位。类型和子类型一起确定该帧的功能。主要有三种类型:控制,数据和管理。每种类型又有几种子类型。在表中详细介绍各种帧的类型以及对应的标识码。

4.1.3.1.3DS控制域

该域长度是1位,它只用于数据帧中以标明该帧是发给分布式系统的。从移动STAAP的所有数据帧的该域被置1,而在其他所有帧的该域被置为0

4.1.3.1.4来于DS

  该域长度是1位,它只用于数据帧中以标明该帧是来自于分布式系统。所有从AP传给移动STA的数据帧的该域被置为1,而对于其他所有的帧该域被置为0
To/From DS位可以有4种组合。当都为0时,表明该帧是在移动STA间直接通信。当To DS位是1From DS位是0时,表明该帧是从移动STA传到AP的。而当To DS位是0From DS位是1时,表明该帧是从AP传到移动STA的。最后一种组合是两各个都为0,这种组合只用于当802.11bWLAN作为DS使用时的情况。表2中列出了各种组合及其对应的含义。

4.1.3.1.5 更多段控制域

该域长度是1位,用于标识该帧是否是被分段的数据或者管理帧的最后一个分段。对于所有数据或者管理帧的当前MSDU或者MMPDU有后继的分段时,该为被置1,而在其余所有帧该域被置0

4.1.3.1.6重传域

该域长度是1位,用于标识被传送的数据或者管理帧是第一次传送还是重传。当任何数据或者管理帧是对上一帧的重传时该域被置1,而其余所有该域被置0。所有接收站根据该域来处理重复帧。

4.1.3.1.7电源管理域

该域长度是1位,用于标明站的电源管理模式。移动STA可以使用该域宣布其电源管理状态。对于一个特定的STA,在一个完整的帧交换序列中该域的置保持不变。该域的值标明的是该STA在成功完成帧交换后的电源管理模式。

1标明该站将工作于节能模式,并且在随后的通信中是不可用的。值0标明该站将工作于活动模式,在随后的通信中是可用的。对于AP发出的帧该域始终置0

4.1.3.1.8更多数据控制域

该域长度为1位,用于通知处于节能模式的站有缓冲的MSDUMMPDU在访问服务点处。该域在从访问服务点传向处于节能模式的站的直接数据或者管理帧中有效,值1表明这个站至少有一个MSDU或者MMPDU缓冲在访问服务点处。

当支持被轮询的站还有数据要发时,它在收到轮询帧后,在发向PC的帧内将该域置为1。当访问服务点在本信标间隔内还有广播或者多播MSDUMMPDU发送时,访问服务点将在广播或者多播帧内把该域置1。当访问服务点在本信标间隔内没有广播或者多播帧要发时,访问服务点把广播或在多播帧的该域置0,非访问服务点站的广播或者多播帧的该域置0

在其余所有帧中该域被置为0

4.1.3.1.9 WEP(有线等同加密)控制域

当帧体被WEP加密算法处理后该域被置1,该域只有在数据帧和管理帧中的鉴权帧才能置1,其他帧的该域被置0。当该域被置1后,帧体将按8.2.5中所述被扩展。

 4.1.3.1.10顺序控制域

该域长度为1位,当传送的数据帧包含一个MSDU或者一个分段要求严格顺序服务时,该域被置1,而在其它帧中该域被置0

4.1.3.2时间长度/关联号域

该域长度为16位,它自动的包含用于更新NAV的时间长度值或者是一个称为AIDID号,这个AID用于移动STAAP处取回缓冲的帧。只有处于节能状态的STAAP发出(PS-Poll)帧包含AID,在该帧中,AID是信息被置在该域的低14位中,而最高2位被置为1。由于本协议的其他限制,AID的最大取值为2007,所有大于2007AID值作为保留值使用。

当该域的第15位被置为0时,则其0~14位表示的是一个完整的帧交换过程所需的时间。该值用于更新其它STANAV,这样可以防止收到该帧的STA不会在保留时间内发送信息从而避免了冲突的发生。
CFP(无竞争期)间传送的的所有帧的该域被置为32768(也就是第15位为1,其余位都为0),因为这个值是足够大的,所以这样就可以防止那些没有收到CFP开始的Beacon(信标)帧的STA在足够长的时间内不会去发送信息,也就不会干涉CFP间的信息发送与接收。表3中列出各种取值的可能以及含义。

4.1.3.3地址域

MAC帧格式中有四个地址域,这些域用于表示基本服务集标识号(BSSID),源地址,目的地址,传送站地址,接收站地址。每个帧使用的四个地址分别用BSSID, DA, SA, RA, TA表示。特定的帧可能只包含这些地址域的一部分。802.11b的地址格式与IEEE 48位地址相似,同IEEE 802.3一样,这些地址用于标识帧的MAC源地址和MAC目的地址。除了了SADA外,802.11b还定义了3种附加地址类型:TARABSSID。定义这3种附加地址可以实现间接的帧传送 ,从而提供透明的移动和过滤多播帧的机制。

每个地址域的用途与它在MAC头中地址域中的相对位置确定的,而与帧的类型无关。比如,接收地址匹配总是在收到帧的第一个地址域中匹配,CTSACK接收帧的地址2用于响应CTSACK帧的地址。

MAC层地址分为2类:

a)单播地址,这种地址与网络上某一特定的站对应。

b)组播地址,多目的地址,与给定网络的一个或者多个站对应。

组播地址分为两种:

1)多播组地址,与一组高层逻辑相关站对应。

2)广播地址,与组地址不同,表示一个给定网络中的所有站。全为1的目的地址域表示广播地址。这种组地址预先为连接在媒体的活动站通信,它用于向多媒体上所有活动站发广播。站都能识别出组地址,站没有必要能够产生广播地址。

一个IEEE 48位地址包含3个部分:1位的单播/组播(I/G)控制位、1位全球分配/本地分配(U/L)控制位、46位的有效地址位。单播/组播控制位定义了该地址是一个单播地址还是一个组播地址。当单播/组播控制位被置为1时,有效地址标识的是组地址,如果有效地址为全1,则标识的是广播地址。当单播/组播控制位被置为0时,有效地址标识的是一个MAC地址。全球分配/本地分配控制位定义的是该地址是由IEEE分配的还是本地分配的。当全球分配/本地分配控制位被置0时,则该地址是一个全球分配地址并且将是唯一的。当全球分配/本地分配控制位被置为1时,则该地址是一个本地地址并且可能会不唯一。

4.1.3.3.3基本服务集识别域

该域长度为48位,格式与802MAC地址相同。该域唯一的标明每个基本服务集。在基础服务集中,该域的值是作为APMAC地址。在独立服务集中,该域的值由本地管理,按照某种算法产生一个46位长的随机数,并且I/G位被置0U/L位被置1。这种机制可以使得选择的BSSID重复可能性很小。在基础服务集和独立服务集中BSSID必须是一个单独地址。

该域全1表示一个广播BSSID,广播BSSID只用于管理帧的探测请求帧中。

4.1.3.3.4目的地址DA

该域包含一个MAC单地址或组地址,用于标明包含在帧中的MSDU的最终接收者。该域不是与RA域的原因是DS的间接帧传送。

4.1.3.3.5源地址SA

该域包含一个单MAC地址,用于标明帧体中发起传送MSDU的站地址,在该域中I/G位被置为0。该域并不是总与TA域一致,因为这在802.11bWLANDS系统中可以用来完成间接的帧传送。在高层协议中该域表示的是该帧的源地址。

4.1.3.3.6接收地址RA

该域包含单地址或者组地址,标明帧体中包含信息在无线媒体上的中间接收站。

4.1.3.3.7传送者地址TA

该域为一个单MAC地址,用于标明刚才在无线媒体上发送包含在帧体中的MPDU的站,接收到该帧的STA将以此地址作为响应的STATAI/G位应被置0

4.1.3.4序列控制域

该域长度为16位,包含2个子域:帧序列号和段序列号。其格式如图14所示。

4.1.3.4.1帧序列号域

帧序列号长度为12位,用于标明MSDU或者MMPDU的序列号。站给每个发送的MSDU或者MMPDU赋予一个序列号,序列号由一个模4096的计数器产生,开始值为0,并按每次递增1的顺序为每个MSDU或者MMPDU分配一个序列号。MSDU或者MMPDU及其它们的分段的序列号在重传中仍然保持不变。

 4.1.3.4.2段号域

该域长度为2位,用于标明一个MSDU或者MMPDU的每个段。MSDU或者MMPDU的第一个分段的段号置0,并按每次递增1的顺序为该MSDU或者MMPDU随后的分段分配段号。段号在该段的重传中保持不变。

4.1.3.5帧体

帧体中的内容是与帧的类型和子类型有关的具体数据或者管理信息,其长度是变化的。如果帧体内容没有被加密,则其最大长度是2304个字节,如果帧体内容被加密,则其最大长度是2312个字节。将最大值选为2304的目的在可以满足某些应用一个信息单元就是2048个字节的要求 ,这个信息单元可能是由许多256字节长的上层信息单元封装而成。

4.1.3.6 FCS(帧检测序列)

FCS域的值是针对MAC帧头部和帧体生成的32位循环校验码,生成FCS的多项式为:

G(x)=x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x+1

循环校验码是一种有效的检错纠错手段,它在通讯中得到了广泛的应用,其检错纠错原理为:设待编码的有效信息以多项式M(x)表示,用约定的一个多项式去除,一般情况下将得到一个商Q(x)和余数R(x)。即M(x)=Q(x)*G(x)+R(x),显然,M(X)-R(x)=Q(x)*G(x)。也就是说,M(x)减去余数必定能被G(x)除尽。由此可以设想让M(x) -R(x)作为编好的校验码送往目标部件,当从目标部件取得校验码时,仍用约定的多项式去除,若余数为0,表明该校验码正确,若余数不为0,表明有错,再进一步由余数值确定哪一位出错,从而加以纠正。

循环校验码的编码方法由以下四步完成:

1.        将待编码的n位有效信息码组表达为多项式M(X)                    M(X)=Cn-1xn-1+Cn-2xn-2++Cixi++C1x+C0 其中Ci=01

2.        M(X)左移k位,得M(X)*xk,目的是空出k

3.        k+1位的生成多项式G(x)M(X)*xk作模2除。

4.        将作2除所得的余数填入FCS域。

4.2各种具体类型帧格式

4.2.1控制帧
    802.11b中有6种控制帧子类型:请3求发送帧(RTS),允许发送帧(CTS),确认帧(ACK),节能模式下的请求数据帧(PS-Poll),无竞争期结束控制帧(CF-End),带有确认信息的无竞争期结束控制帧(CF-End+ACK)。下面将详细介绍各种控制帧的格式以及特点,在这里需要约定的是以下的描述中,前一帧指的是在最短帧间隙(SIFS)前收到的帧。控制帧的帧控制域的子域如图15所示。

4.2.1.1请求发送(RTS)帧格式
请求发送帧(RTS)20个字节长,它包含有帧控制域、完整帧交换所需时间长度(duration)/关联号(ID)域、两个地址域和帧校验域。发送这个帧的一个目的是将完整帧交换所需时间长度(duration)信息告知其邻近的STA,也就是能收到RTSSTA就用收到的信息更新其NAV,从而防止了这些STA在告知的时间内发送信息,也就避免了冲突的发生。图16定义了RTS的格式。

   RTS帧中的RA标明的是一个无线媒体上的STA,该STA为即将发送的数据帧或者管理帧的接收者,而且在RTS帧中的RA必须是某个STAMAC地址。TA标明的是传送RTS帧的STA,它被由RTS中的RA标识的STA用来发送RTS的响应帧。在该帧中传送的时间长度(duration)信息是完成一个4步骤帧交换(RTSCTSDATAACK)所需要的时间,它由这些时间构成:传送1CTS的时间、传送1个数据或者管理帧的时间、传送1个对数据或者管理帧应答的时间、以及在CTS和数据或者管理帧之间的帧间间隙(SIFS)和在数据或者管理帧和ACK之间的帧间间隙(SIFS)时间。时间长度(duration)是以微秒为单位的。如果计算的时间值不是整数,则取大于该值的最小整数。

4.2.1.2允许发送(CTS)帧格式

允许发送帧(CTS)14个字节长,它包含有帧控制域、完整帧交换所需时间长度(duration)/关联号(ID)域、1个地址域和帧校验域。发送这个帧的一个目的是将完整帧交换所需时间长度(duration)信息告知其邻近的STA,也就是能收到CTSSTA就用收到的信息更新其NAV,从而防止了这些STA在告知的时间内发送信息,也就避免了冲突的发生。图17定义了RTS的格式。


CTS中的RA标识的是接收该CTS的某个STAMAC地址,在CTSRA必须是某个STAMAC地址。而RA的值是从刚才接收到的RTS帧中的TA复制过来的,而此CTS就是作为刚才接收到的RTS的响应帧。在该帧中传送的时间长度(duration)信息是完成一个4步骤帧交换(RTSCTSDATAACK)所需要的时间,它由这些时间构成:传送1个数据或者管理帧的时间、传送1个对数据或者管理帧应答的时间、以及在数据或者管理帧和ACK之间的帧间间隙(SIFS)时间,也就是将收到的RTS帧中的时间长度(duration)减去传送CTS时间和1SIFS时间。时间长度(duration)是以微秒为单位的。如果计算的时间值不是整数,则取大于该值的最小整数。

4.2.1.3确认帧(ACK)格式

确认(ACK)帧有14字节长,它包含有帧控制域、完整帧交换所需时间长度(duration)/关联号(ID)域、1个地址域和帧校验域。使用这个帧有两个目的,其一是对刚正确接收到的数据、管理帧、PS-Poll帧的确认。这也就告诉了ACK的接收者或者是刚收到的数据、管理帧、PS-Poll帧的发送者已经正确接收了,那么也就不需要重传刚收到的数据、管理帧、PS-Poll帧。ACK帧的第二个目的是在段突发传送过程中,它可以将时间长度(duration)通知给段接收者的邻近STA,这种情况下ACK就扮演了CTS的角色。

18定义了ACK帧的格式。

ACK帧的RA标识的是某个接收该帧的STAMAC地址,而且在ACK中的RA必须是某个STAMAC地址,RA是从刚接收到的数据帧,管理帧或者PS-Poll控制帧中的第2地址域复制过来的。

如果接收到的数据帧或者管理帧中的帧控制域的More Fragment位被置为0,则长度域的值置为0。如果接收到的数据帧或者管理帧中的帧控制域的More Fragment位被置为1,则长度域的值置将接收到的数据帧或者管理帧的长度域的值减去传送1ACK帧的时间和1SIFS得到。如果计算出的该值不是整数,则取大于该值的最小整数。

4.2.1.4节能模式下的数据请求(PS-Poll)帧格式

节能模式下的数据请求帧有20个字节长,它包含有帧控制域、完整帧交换所需时间长度(duration)/关联号(ID)域、2个地址域和帧校验域。使用该帧的目的是向访问服务点(AP)请求由于STA处于睡眠状态时缓冲的帧。

19定义了节节能模式下的数据请求帧格式。

BSSID是作为访问服务点(AP)的站地址,而且这个BSSID必须是与STA建立关联时的BSSID一致。TA是传送该帧的STAMAC地址,AID是站与该访问服务点建立关联关系时由访问服务点(AP)分配的关联号。

尽管在该帧中没有明确的给出时间长度(duration)信息,但任何收到该帧的STA都会更新其NAV,其值是传送1ACK帧时间加1SIFS时间。   

4.2.1.5无竞争期结束(CF-End)帧和带有ACK信息的无竞争期结束(CF-End + CF-Ack)

CF-End帧和CF-End + CF-Ack帧都是20个字节长,它们都包含有:帧控制域、时间长度(duration)信息/ 关联号(ID)域、两个地址域、帧校验域。使用这两个帧的目的是结束一个无竞争期(CFP),同时也将STA从严格的信道使用中释放出来,从而可以争用信道。另外,CF-End + CF-Ack帧还被PC用于对上一次收到的帧进行应答,这两个帧是PCCFP间发送的最后一个帧。

其帧格式如图20所示

RA是一个广播组地址,因为这个帧是应该被该基本服务集(BSS)内的所有STA收到的,BSSID是作为PCAPMAC地址。NAV的值为0,这样可以保证所有收到该帧的STA将其NAV置为0

4.2.2数据帧

本协议中使用分为两组的8种数据字类型,第一组是简单数据帧、含有无竞争应答(CF-ACK)信息的数据帧、含有无竞争轮询(CF-Poll)信息的数据帧、既含有无竞争应答(CF-ACK)信息同时还含有无竞争轮询(CF-Poll)信息的数据帧。第二组是空数据帧、无竞争应答(CF-ACK)帧、无竞争轮询(CF-Poll)帧、既有无竞争应答(CF-ACK)信息同时还有无竞争轮询(CF-Poll)信息的帧。第一组数据帧是真正传送了非0个字节的数据,而第二组数据帧是根本不传送数据的。

数据帧的长度是可变的,最短数据帧的长度是29个字节,最长数据帧的长度是2346个字节。数据帧携带有上层协议要求传送的MSDU。一个数据帧包含有帧控制域、时间长度(duration)信息域、4个地址域、序列控制域、帧体域、帧校验域。数据帧的格式与其子类型无关,

如图22所示

4.2.2.1简单数据帧
 

简单数据帧将上层协议包封装,然后从一个802.11b STA传到另一个802.11b STA。它既可以在竞争期使用,也可在无竞争期使用。

该帧中的时间长度(duration)域的值是为了保证随后的应答帧有足够的时间进行,其数值大小是以微秒为单位的从本数据帧结束时到随后数据传送完的时间。如果该帧是以广播帧,则时间长度(duration)域的值为0

数据帧的地址域与两件事情有关,其一是传送该帧的STA隶属的基本服务集(BSS)是独立服务集(IBSS)还是基础服务集(Infrastructuer BSS),其二是传送或者接收该帧的STA是否是分布式系统(DS)的一部分。在表4中定义了4个地址域在To DSFrom DS4种组合的情况下的含义,其中被显示为不可用的地址在数据帧被省略掉。而且地址1总是作为当前接收者的MAC地址使用,地址2总是作为当前发送者的MAC地址使用。

地址1被站用来进行地址匹配,如果STA收到的帧的地址1是某个STAMAC地址,则该STA将其与自己的MAC地址比较,如果相同,则该STA会将其传到协议栈的上层,如果不同,则丢弃。当地址1为组地址的情况时,则BSSID用来保证STA收到广播或者多播帧是发自它隶属的基本服务集的。

地址2用于标识帧的发送者的MAC地址,而在需要ACK帧的情况下目的STA可以使用地址2来引导ACK帧。这个地址必须为某个STAMAC地址。

地址3携带有额外的用于帧过虑或者指向DS的信息。当移动STA收到了从AP发来的一个帧后会用地址3来标识该帧的源STA。而AP收到了从移动STA发来的一个帧后,AP会将该地址作为DS转发该帧的真正目的地址。

DA是帧体中MSDU或者其分段的目的站地址。SA是发起传送帧体中MSDU或者其分段的站地址。RA是在无线分布式系统上作为访问服务点的站地址,该站将是此帧随后的接收者。TA是在无线分布式系统上作为访问服务点的站地址,该站传送了此帧。简单数据帧的BSSID由以下决定:

a)如果站是访问服务点或者与某一访问服务点关联,则BSSID是作为访问服务点的站地址。

b)如果站是独立服务集的成员,则BSSID是该独立服务集的BSSID

4.2.2.2带有无竞争期应答信息的数据帧(Data+CF-ACK)

    Data+CF-ACK帧只能在CFP间使用,不能在IBSS中使用。该帧除了含有应答信息外与简单数据帧是相同的,而应答信息是对刚收到的帧的应答,但是该帧中的目的地址可以与应答目的地址不同。

4.2.2.3 带有轮询信息的数据帧(Data+CF-Poll)

    Data+CF-Poll帧在CFP期间由PC发送,它不能够被移动STA发送,也不能够在IBSS中使用。PC使用该帧将数据传送给移动STA,同时请求该STA在本次接收完成后发送缓冲的数据。

4.2.2.4 Data+CF-ACK+CF-Poll

    Data+CF-ACK+CF-Poll帧在CFP期间由PC发送,它不能够被移动STA发送,也不能够在IBSS中使用。该帧结合了Data+CF-ACK帧和Data+CF-Poll帧的功能。

4.2.2.5 Null Function(no data)

    这种数据帧的帧体为空,其使用场合是没有数据发送的STA为了改变其电源管理状态,就可以通过发送这种帧通知AP

4.2.2.6 CF-ACK(no data)

    CFP期间STA在正确收到PC的数据帧后使用该帧进行应答。因为该帧的长度是29个字节,所以使用应答控制帧会更加有效。

4.2.2.7 CF-Poll(no data)

    PCCFP期间如果没有数据发送时,使用该帧轮询有数据要发送的STA

4.2.2.8 CF-ACK+CF-Poll(no data)

    PCCFP期间如果没有数据发送时,可以使用该帧在应答的同时轮询其它有数据要发送的STA

4.2.3 Management frames管理帧

管理帧的帧格式与其子类型无关,

其定义如图23


站使用地址1的内容来进行地址匹配以决定是否接收。当地址1是组地址时,而且帧的类型不是信标帧,则BSSID用来保证这些广播或者多播帧是来自同一个基本服务集的,如果是信标帧,地址匹配规则则另有定义。

管理帧的地址域不会随帧的子类型而发生改变。

管理帧的BSSID按如下规定来决定其内容:

a)  如果站是访问服务点或者是某个访问服务点关联的站,则BSSID是作为访问服务点的站地址。

b) 如果站是独立服务集的一个成员,则BSSID是该独立服务集的BSSID

c 如果管理帧的子类型是探测请求帧,则BSSID既可以是一个指定的BSSID,也可以是如第10章描述的程序定义的广播BSSID

DA是该帧的目的地址。SA是发送此帧的站地址。

在无竞争期间发送的管理帧的长度域的值被置为32768,而在竞争期间管理帧的长度域的值按如下规则决定:

如果DA域是组地址,则长度域的值取0

—  如果该帧的More Fragments0DA是一个单独站地址,则长度域的值被置传送1ACK帧和1SIFS所需的以微秒为单位的时间。

如果该帧的More Fragments1DA是一个单独站地址,则长度域的值被置传送该管理帧的下1个分段,2ACK帧和3SIFS所需的以微秒为单位的时间。

管理帧长度域值的计算按9.6所述的规则进行,取决于帧交换序列中控制帧的传送速率。如果计算出的长度值不是整数,则取大于该值的最小整数。所站有处理的长度域的值都小于或者等于32767,它们从正确的管理帧中取出该值并按正确的规则更新其网络分配矢量。

   每个管理帧子类型的帧体包含固定域和定义的信息单元。所有固定域和信息单元都是强制的除非另有规定,并且它们以固定的顺序出现。如果站遇到了不能识别的信息单元,它将忽略这些信息单元。在本标准中没有定义的信息单元作为保留值使用,不会出现在任何帧中。

4.2.3.1信标(Beacon)帧格式

信标帧被定期传送以便于移动STA能定位和识别BSS,信标帧中的信息允许移动STA能在任何时候定位BSS,同时信标帧还含有通知处于节能模式的STA取回缓冲的帧的信息。一个信标帧包含有以下固定域:邮戳、信标间隔、能力信息。邮戳是64位长的域,它的值是传送该帧时的STA的同步时钟。信标间隔的长度是16位,其值是以TU(1024μs)为单位的两次相邻信标帧之间的间隔时间。能力信息域的长度是16位,标识的是STA的能力。
信标帧中的信息单元包括:服务集标识号(SSID)、支持的速率、一个或多个PHY参数集、一个可选的无竞争参数集、一个可选的IBSS参数集和一个可选的通信指示图。

5列出了信标帧包含的内容。

4.2.3.2独立服务集中通信信息广播(ATIM)帧格式

该帧在IBSS中使用,因为在IBSS中通信是STASTA间直接进行的,当某个STA处于节能模式时,其余的STA会将发送到该STA的帧缓冲下来,然后在ATIM帧中指示出,处于节能模式的STA收到ATIM帧后会发请求帧,以取回缓冲的帧。在ATIM帧中不含有任何固定域或者信息单元。

4.2.3.3去关联帧格式

STA想同某个STA解除关联关系时会发出此帧,在该帧中只包含一个固定域-----原因代码。

4.2.3.4关联请求帧格式

关联请求帧在STA用来与BSS建立关联关系时使用。关联请求帧帧体中包含2个固定域:能力信息和侦听间隙,同时还包含2个信息单元:SSID和支持的速率,如表7所示。

  

4.2.3.5关联响应帧格式

关联响应帧返回了关联请求的结果:“成功”或者“不成功”,它包含3个固定域:能力信息、状态码和关联号,同时还包含1个信息单元:支持的速率息,如表8所示。

8 关联响应帧帧体

4.2.3.6再关联请求帧格式

当移动STA已经和一个BSS建立关联关系后,而有想与另一个具有相同SSIDBSS建立关联关系时使用该帧。再关联请求帧帧体中除了包含关联帧所含内容外还包含一个固定域:当前关联APMAC地址,如表9所示。

4.2.3.7再关联响应帧格式

再关联响应帧与关联响应帧相同。

4.2.3.8探测请求帧格式

当移动STA试图快速定位一个802.11b WLAN时发出此帧,它既可以探测一个具有SSIDWLAN,也可以探测任何WLAN。探测请求帧包含有2个信息单元:SSID和支持的速率,如表11所示。

4.2.3.9探测响应帧格式

    收到探测请求帧的STA或者AP会发出此帧来响应,在IBSS中,由最近一次发送信标帧的STA发探测响应帧,而在基础服务集中,则始终由AP来发探测响应帧。该帧包含的内容几乎和信标帧的内容一样,它包括邮戳、信标间隔、能力信息等固定域,它也包括SSID、支持的速率、一个或多个PHY参数集、可选的无竞争参数集以及可选的IBSS参数集,如表12所示。


4.2.3.10鉴权帧格式

鉴权过程将引发多个鉴权帧的交换,其结果是向另一个STA声明合法的身份。它包含有3个固定域:鉴权算法标识码、鉴权过程序号、状态码,同时它还包含有信息单元:鉴权测试文本。其中状态码和鉴权测试文本与鉴权算法和鉴权过程序号有关。如表13所示。

4.2.3.11去鉴权帧格式

去鉴权帧被STA用来解除同其它STA的鉴权关系,它只包含一个固定域:原因代码,如表15所示。

    

4.3管理帧帧体组成部分

在管理帧中,固定长度且强制要求的部分被称为固定域,变长强制部分和所有可选部分被定义为信息单元。

4.3.1固定域

    在管理帧帧体中有6个固定域:关联号(AID)、鉴权算法标识码、鉴权过程序号、信标间隔、能力信息、当前关联AP、侦听间隙、原因代码、状态代码和邮戳。

4.3.1.1鉴权算法标识域

鉴权算法识别域标明的是1个鉴权算法。该域的长度是2个字节。图24显示了该域的格式。以下的值被定义给了不同的鉴权识别域:

    该域值为0:开放式鉴权算法。

   该域值为1:共享密钥鉴权算法。

 


该域所有其它值作为保留值使用。

4.3.1.4能力信息域

该域包含一些子域,这些子域分别用于标明请求或者高知其能力。该域长度为2个字节。该域包含以下子域:ESSIBSSCF-PollableCF-Poll Rquest、加密(Privacy)、短前导、PBCC、信道灵敏度监测(chanel agility)

能力信息域的余下部分作为保留值使用。该域格式如图27(此图需要重画)所示。

使用能力信息域的规则比较复杂,而且与STA是否是移动STA或者是AP,或者是否属于IBSS有关。其中的某些域只在特定的管理帧中使用。

ESSIBSS子域只在信标帧和探测响应帧中使用。访问服务点在传送信标帧或者探测响应帧时将ESS子域置为1且将IBSS域置为0。在独立服务集中的站在传送信标帧或者探测响应帧时将ESS子域置0而将IBSS子域置为1
站根据表16在关联请求帧或者再关联请求帧中设置CF-Pollable子域和CF-Poll子域的值。


访问服务点根据表17在信标帧,探测响应帧,关联响应帧和再关联响应帧设置CF-Pollable子域和CF-Poll Request子域的值。访问服务点在关联响应帧和再关联响应帧中对CF-Pollable子域和CF-Poll Request子域设置的值应该与它最近一次发送的信标帧或者探测响应帧中的值相等。

如果在基本服务集中需要对所有数据帧加密,则访问服务点将在信标帧,探测响应帧,关联响应帧和再关联响应帧中把加密(Privacy)子域置为1,如果不需要加密,则将该子域置为0

如果在独立服务集中需要对所有数据帧加密,则在该独立服务集中的站将在信标帧,探测响应帧中把加密(Privacy)子域置为1,如果不需要加密,则将该子域置为0

短前导域是在有AP或者IBSS中的STA发送的信标帧、探测响应帧、关联响应帧、再关联响应帧中使用,其目的是当使用802.11b PHY时短前导是否可用。当其被置为1时,表明在该BSS中是可以使用短前导的,反之,当其被置为0,则表明在该BSS中短前导是不可用的。

对于不属于一个IBSSSTA,在它的关联请求和再关联请求中使用该域是为了它能够接收和发送802.11b的短前导的能力。

PBCC域是在AP或者IBSS中的STA发送的信标帧、探测响应帧、关联响应帧、再关联响应帧中使用,其目的是当使用802.11b PHYPBCC是否可用。当其被置为1时,表明在该BSS中是可以使用PBCC的,反之,当其被置为0,则表明在该BSSPBCC是不可用的。

对于不属于一个IBSSSTA,在它的关联请求和再关联请求中使用该域是为了它能够接收和发送802.11bPBCC的能力。

信道灵敏度监测(chanel agility)域表明了该STA实现了802.11b的信道灵敏度监测选项。

4.3.1.5当前AP地址域

该域长度为6个字节,当移动STA想再关联时,会使用该域,其含义是STA当前关联的访问服务点的MAC地址。如果再关联是成功的,则STA再关联的AP会向当AP地址域中标明的AP取回为STA缓冲的数据,其格式如图28所示。

原因代码及对应的含义在表18中定义。


 

 

 

4.3.2信息单元

 


信息单元被定义为一个通用的格式,包含1个字节的信息单元识别号,1个字节的长度域,变长的信息单元域。在本标准中每个信息单元都有一个识别号,长度域标明的是信息域的长度,其格式如图34所示。


有效的信息单元在表20中定义。

4.3.2.1服务集识别(SSID)单元

SSID信息单元本身的ID0,它携带的内容是802.11b WLANSSID。它的最大长度可以是32个字节。在本协议中没有对SSID的格式和内容作规定,它可以是以NULL结束的ASCII字符串,也可以是多个字节的二进制数值。对其格式和内容的选择完全取决于网络的管理者。有个特例就是SSID的取值为0,这时它标明的是一个广播的SSID,它只有在STA为了发现一个802.11b WLAN的探测帧中使用。其格式如图35所示。


4.3.2.2支持速率单元

支持速率单元描述的是STA所支持的数据传送速率。该单元包含18个字节的速率信息,其中每个字节表示1个速率,这个字节的低7位表示的是速率值,最高位表示的是该速率是否是强制要求的。在802.11协议中,这个单元的低7位值与实际的速率存在数值对应关系,速率以500 kbit/s为单位计量,比如某个字节的值是X'82',则该字节表示的是强制实现的速率,大小是2*500 kbit/s=1 Mbit/s,同理,如果某个字节的值是X'04',则该字节表示的是实现的可选速率,大小是4*500 kbit/s=2 Mbit/s。而在802.11b中,该单元低7位的值与所支持的速率间的关系发生改变,这个值只是与支持速率对应的一个表项。发生这种改变的原因是在802.11中规定,数据最高速率为63.5 Mbit/s,但是在802.11b中,就没有数据速率上限的规定。

支持速率单元只在信标帧、探测响应帧、关联请求帧、关联响应帧、再关联请求帧、再关联响应帧中使用。在除了关联请求帧和再关联请求帧以外的帧中的该单元表示的是STA要同某个BSS关联时必须支持的速率,如果某个STA不能支持强制要求实现的所有速率,则它就不能同该BSS建立关联关系。而该STA有试图与BSS建立关联关系时,则AP将在响应中给出关联失败,并且将原因代码置为18。其格式如图36所示。


4.3.2.3跳频参数设置单元 

    802.11b不使用跳频物理层

4.3.2.4直扩参数设置单元

该单元长度为3个字节,除了信息单元ID号和长度以外,它还包含有dot11CurrentChannelNumber的一个参数,dot11CurrentChannelNumber参数的长度为1个字节,表示的是当前使用的某个频道。该信息单元只在物理层直接序列扩频的信标帧和探测响应帧中使用。了包含站物理层可以用于的频道数。该信息域包含含,其格式如图38所示。

4.3.2.5 无竞争参数设置单元

该单元包含支持中心网控方式所需的参数设置,信息域包含CFPCount, CFPPeriod, CFPMaxDuration, CFPDurRemaining子域,信息域的长度为6个字节,其格式如图39所示。

CFPCount标明的是在下一个无竞争期开始前有多少个DTIM0值的CFPCount标明的是当前的DTIM为一个无竞争期的开始。

CFPPeriod标明的是在两个无竞争期间的DTIM数目,其值是一个整数倍的DTIM数目。

CFPMaxDuration标明的是无竞争期以时间单元为单位的最大长度。该值被站在开始无竞争期的发送信标时刻用来设置其网络分配矢量。

CFPDurRemaining标明的是当前无竞争期余下的以时间单元为单位的最大长度,而在竞争期该值被置为0CFPDurRemaining的值取在自上一个TBTT时发送的信标帧,该值被其它所有站在无竞争期用来更新它们的网络分配矢量。

4.3.2.6通信指示图(TIM)

TIM单元的长度为6256个字节,它携带的信息是指示处于节能模式的STA是否有帧缓冲在AP处。该单元除了信息ID和长度域外,还包含4个域:DTIM数量、 DTIM间隔、指示图控制、实际部分指示图(Partial Virtual Bitmap),其格式如图40所示。


该单元的长度域标明的是该单元的长度,这个长度将按如下所述被限制。

DTIM数量和DTIM间隔用于通知STA缓冲在AP处的多播帧将在什么时间发送,以及发送这种多播帧的频率。

DTIM数量标明的是下一个DITM开始前有多少个信标帧(包括当前帧)。值为0DTIM 数量标明的是当前TIM是一个DTIM。该域长度为1个字节。

DTIM间隔标明的是连续两个DTIM间的信标数。如果所有的TIM都是DTIM,则该值为1。值为0DTIM 间隔作为保留值使用。DTIM 间隔的长度为1个字节。

    指示图控制域的长度为1个字节。该域的最低位表示的是关联号为0的通信指示。当有一个或者多个广播或者多播帧缓冲在访问服务点时,并且当DTIM数量置0时该位被置1。该域的其余7位用作位映射偏移值。

部分实际通信指示位映射图由产生TIM的访问服务点维护,包含2008位,这2008位被组织成251个字节,这2008位的位号N(0<N<2007)与这些字节中的相应位(位号为N8)对应,这些字节中最低位被编号为0,最高位被编号为7。部分实际通信指示位映射图每一位对应一个在本基本服务集中有缓冲信息在访问服务点的站。

如果关联号为N的站没有直接帧缓冲在访问服务点,则指示图的位号为N的位被置0。如果访问服务点准备发送任何缓冲在访问服务点的站的帧,则该站对应的位被置1。网控点不会在TIM中对不准备轮询的站对应的位置1

4.3.2.7 独立服务集参数设置单元

该单元包含了支持一个独立服务集所需的参数设置,其信息域包含ATIM窗口参数,其格式如图41所示。

ATIM窗口域的长度为2个字节,包含的ATIM窗口以时间单元为单位的时间长度。

4.3.2.8测试文本单元

测试文本单元包含的是在鉴权交换中使用的测试文本。其长度与鉴权算法和鉴权过程序列号有关。其格式如图42所示。