目的
节电模式(Power Save mode)是802.11终端的一个可选模式,当一个客户端设置为节电模式时,它会将某些收发器组件关闭以节省电力。无线终端会通过将电源管理位的值设置为1表示正在使用节电模式。此时AP会缓存客户端所有的802.11帧。无线终端在BSS和IBSS下节点模式不同,在这里只讨论BSS下的情况。
节电过程
假如一个无线终端要加入某基本服务集(BSS),会向AP通告其电源管理字段为1,表明该客户端处于节电模式。此时如果AP接收到要前往该客户端的数据时,会将其存储在AP缓冲区。客户端与AP关联时,会被分配关联标识符(AID)。AP使用AID来跟踪终端和BSS成员。AP在传输下一个Beacon时,会将该终端的AID标注在流量指示图(TIM)中。TIM字段列出了所有有缓存数据的无线终端列表。
Beacon帧会按预定的时间间隔发送,这个时间被称为目标信标传输时间(TBTT)。因为BSS下每一个STA都知道AP的Beacon何时会被发出,所以STA知道在什么时间点保持清醒以接收Beacon。当接受到Beacon后会检查自己AID是否在TIM中,如果在则说明有缓存的单播帧等待传输,这种情况下该STA将会保持清醒,并向AP发送节电轮询帧(PS-Poll)。当AP接收到PS-Poll后,将发送缓存的单播帧发送给STA。单播帧的More Data字段为1时说明还有缓存数据没有发完,STA需要继续保持清醒来接收数据。当More Data为0时表示AP以发送完所有的缓存数据,这时STA可以重新进入休眠。
名词解释
Beacon:Beacon一般都是采用最低速率发送,其包含两个原因
- beacon帧是一个广播帧,其没有ACK反馈,所以无法设置重传机制
- beacon帧目的是广播AP的基本信息,所以希望所有的节点都能够接收该数据,从而采用较低的速率以保证信号较差的节点也可以接收该信息。
Beacon Interval:它是发送两个Beacon的时间间隔,它的实际大小由AP控制,通常它会有以下影响
- 太大的话会影响影响新到的STA加入的灵活度,会耗费AP的缓存区空间
- 太小则可能使信道长期被Beacon打断,进而影响到整个网络的吞吐量,默认是0.1秒。
TBTT(Target Beacon Transmission Time):信标预定传送时间。实际上这个是一个定时后的发送/接受beacon动作的周期,其周期的时间就是由Beacon Interval所决定的。当TBTT时间到达的时候,AP会主动发送beacon帧,而节点也都会主动接受该beacon帧(包括休眠模式的节点,也会苏醒过来接受该beacon),然后利用beacon进行时间同步,并且查看TIM字段,若没有自己的数据缓存,那么节点继续转为休眠模式,直到下一个TBTT时间到来。Beacon帧是按照TBTT时间进行周期性发送的,但是节点不一定每一个beacon都需要监听的,为了更有效的设计节能模式,节点应该是每间隔几个TBTT周期,再监听一次beacon帧,从而就可以延长自己的休眠时间。
Listen Interval:监听间隔是指工作站两次苏醒之间,历经多少次TBTT,也就是跳过了多少个Beacon帧。较长的监听间隔,节点休眠的时间就越长,从而越节能,但是会耗费AP的缓存区空间,也增加了接入时延。
TIM:每一个Beacon的帧中都有一个TIM 信息元素 ,它主要用来由AP通告它管辖下的哪个STA有信息现在缓存在AP中,而在TIM中包含一个 Bitmap control 字段,它最大是251个字节,每一位映射一个STA,当为1时表示该位对应的STA有信息在AP中。总之,收到与自己关联的TIM就要发送PS-POLL帧来与AP取来联系并取得它的缓存帧了。
DTIM:这个是TIM的特殊情况,当发送几个TIM之后,就要发送一个DTIM,其除了缓存单播信息,也同时指示AP缓存的组播或广播信息,一旦AP发送了DTIM, STA就必须处于清醒,因为广播或组播无重发机制,不醒来数据就收不到了。