目录
- 一、Motivation
- 二、Solution
- S1 - Rx Idle机制
- S2 - 缓存机制
- S3 - PS-Poll请求帧
- 三、Result
一、Motivation
Wi-Fi设备的工作状态在不引入Sleep状态的情况下有3种,分别是:
- Rx Idle状态:STA对信道进行监听,但并未真正地接收数据
- Tx发送状态
- Rx接收状态
如果长期处于工作状态(尤其是Rx Idle状态)下,能耗还是比较大的,尤其是电量有限的移动设备。所以,802.11协议有必要引入节能模式
二、Solution
在现实世界中,为了保证与AP之间的信息同步,STA需要长期保持在Rx Idle状态,而且这个状态的保持是很耗能的
在实现节能模式之前,需要引入一个新状态:
- Sleep休眠状态:STA会关闭Tx和Rx进入休眠状态,从而达到最低耗能
802.11引入Sleep状态来替代Rx Idle状态,从而达到降低能耗的目的。这其中又引入一个新问题,那就是如何保证STA即使在Sleep状态下还能与AP之间信息同步?
S1 - Rx Idle机制
在未引入Sleep状态之前的STA,为了与AP之间保持信息同步需要长期保持在Rx Idle状态
如果STA作为接收方,那么它是无法知道AP何时才会给自己发送数据的。所以STA需要保持Rx Idle状态,不断地监听信道,每一个数据包都不能漏
这种模式的缺点就是STA需要一直监听信道,不符合节能的要求。于是,802.11引入Sleep状态+缓存机制+PS-Poll请求帧。让STA可以控制AP,让AP在STA想接收数据时才将对应的下行帧发给自己。从而一改持续监听,被动接收的局面
S2 - 缓存机制
AP从外网接收到要发往STA的数据帧后,会先将其缓存,而不是直接发往STA。等到STA发送PS-Poll请求帧时,AP才会向其发送缓存数据
S3 - PS-Poll请求帧
如果正在处于Sleep状态的STA想要获取下行数据,那么它会向AP发送PS-Poll请求帧。AP收到请求后会从缓存队列中找出对应的下行帧并予以发送。如若没有找到对应帧,则返回一个空帧
三、Result
通过Sleep状态+缓存机制+PS-Poll请求帧达到节能目的