您的位置:首页 > 其它

WIFI power save 模式下的数据收发

2013-01-05 11:02 127 查看
PS模式下的数据收发

工作在PS 模式下的STA 一般会尽量保持在Doze 状态,只在必要的

时候转换到Awake 状态。在Doze 状态的STA 无法侦听信道,这导致PS

模式下STA 收发数据的方式跟Active 模式下有所不同,特别是接收数据

的方式大相径庭。

发向PS 模式的STA 的数据会在AP 处缓存,在AP 周期性地广播的

Beacon 帧中包含一个数据指示表TIM(Traffic Indication Map),TIM 指

明当前所有有数据在AP 处缓存的STA。处在Doze 状态的STA 并不知道

何时有数据被缓存,因此STA 必须周期性的接收来自AP 的Beacon 以确

定本身是否有数据被缓存。AP 广播Beacon 的周期为Beacon-Interval,STA

接收Beacon 的周期为Listen-Interval,STA 可以自由选择Beacon-Interval

的整数倍作为自己的Listen-Interval。STA 每隔Listen-Interval 接收Beacon

并解码其中的TIM,如果TIM 指示没有数据缓存,STA 就可以立刻转入

Doze 状态,如果TIM 指示其有数据缓存,STA 就要向AP 发一个竞选控

制包Poll,AP 在收到Poll 后就可以向该Poll 的源STA 发送一个为它缓存

的数据包(如图4-2)。如果有多个处于PS 模式的STA 在收到同一个Beacon

之后都要接收数据,那么这些STA 发送Poll 的机制同发送数据一样,也

遵循CSMA/CA。Poll 的机制使得STA 在接收数据方面同发送数据一样具



在有STA 处在PS 模式的WLAN 里,除了发向特定PS 模式STA 的

单播(Unicast)数据包外,那些广播(Broadcast)和组播(Multicast)数

据包某些时候也需要在AP 缓存。AP 每隔DTIM-Interval 时间在Beacon

震中包含DTIM(Delivery TIM)指示信息,以指示其后有广播或组播数

据发送。那些希望接收广播和组播数据的STA 则要每隔DTIM-Interval 转

为Awake 接收Beacon,并在有广播或组播数据时接收(如图4-中第3 行

所示),而那些对能量消耗极敏感的STA 可以选择不接收DTIM(如图

4-中第4 行所示)。

无论TIM 还是DTIM 都只能指示一个数据包被STA 接收,而不能标明

每个STA 有几个包被AP 缓存。为了解决这个问题,AP 在向STA 发送数

据包时用帧头控制比特More-Data 标明是否仍有数据缓存在AP 处。处于

PS 模式的STA 在接收数据时根据More-Data 比特决定是否继续保持

Awake;若More-Data=0,则STA 立刻可以转入Doze,若More-Data=1,

则STA 则要继续保持Awake,竞争发送Poll 或接收其余的广播(或组播)

包,直到收到下一个Beacon 为止。STA 从PS 模式转换到Active 模式,

AP 将尽快将为其缓存的数据包发送给该STA。综上,缓存、竞争收包的

机制可以使处于PS 模式的STA 不会丢失数据包。

PS 模式下的STA 在发送数据包的时候同Active 模式下没有区别,只

是在需要发送之前转为Awake 状态,发送成功后随时可以转为Doze 状态。

但是由于虚载波侦听机制(参见2.1 节)的要求,STA 在发送前必须确定

其他STA 不在发送数据,而刚从Doze 状态转化到Awake 状态的STA 因

为过去一段时间没有侦听信道中的MAC 帧,其NAV 不准确,因此,在发

送数据前,STA 必须侦听信道,等到收到发自其他STA 的MAC 帧,正确

设置了自己的NAV 之后,才可以开始采用正常的CSMA/CA 机制发送数

据。当然如果刚Awake 的STA 侦听了足够长时间后仍没有收到任何MAC

帧,也可以开始发送。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: