802.11协议:APSD节能模式

徐方鑫

PSM机制(Power Save Mode)

U-APSD机制(Unscheduled Automatic Power-Save Delivery )

序言

在很早之前我们介绍过了传统的802.11的节能模式,以及其扩展的APSD,PSMP,SMPS(可以参考:802.11协议精读10:节能模式(PSM),802.11协议精读11:节能模式(APSD,PSMP,SMPS)。),当时在理解APSD的工作模式时,仅仅说明了其工作的方法,从理念上理解较浅,以及为什么这个工作模式会在802.11e中被定义,其和QoS的有什么关系,这些问题都一直困扰笔者。笔者最近在阅读《Aruba 802.11ax White Paper》时,发现对这个问题有很好的解释,所以这里总结一下。

Remark:由于APSD分成S-APSD和U-APSD机制,本文以U-APSD作为代表,重新说明下,S-APSD类似于PCF这样的调度形式的机制,基本目的和U-APSD相同,只是一个是基于AP下行调度(即S-APSD),一个是基于节点上行触发(即U-APSD),有兴趣可以参考之前的精读11的文章。

PSM机制(Power Save Mode

自从802.11b的设备问世以来,节能模式就已经被真实的802.11设备所采用了。在最初的802.11中,节能模式(PSM)的工作模式较为简单。当时PSM分别对应DCF和PCF有不同的工作模式,虽然大体上是类似的,但是细节上有一些差异。PSM的基本工作思想大致如下:每一个终端可以在一个或者多个beacon周期间(beacon周期又称TBTT)进行休眠,该周期是一开始终端和AP关联时就商量好的。这是一个确定的休眠周期。AP每一回合都会通过beacon传输DTIM信息(Delivery Traffic Information Map),通过DTIM中的bitmap,每一个节点都知道是不是有下行数据需要进行接收。若本周期节点正好苏醒,并且通过DTIM获知本轮有数据待接收,或者本地有数据待传递给AP,那么其本周期保持苏醒,并触发并向AP接收或者反馈数据。反之,那么本周期终端短暂苏醒后,就可以继续进入睡眠状态,从而节能。

我们结合上图,举例说明下PSM-DCF的工作机制。图中一共标识了终端工作的三种模式,其中蓝绿色代表其工作在睡眠模式(sleep mode),灰色代表接收模式(listen or receive mode),蓝色代表发送模式(transmit mode)。终端一开始是工作在睡眠模式下,当其睡眠周期到达时,其会提前苏醒,并接收AP发送的Beacon帧,进一步解析Beacon帧中的DTIM字段,看本轮中AP有没有缓存其对应的下行数据。若本轮有数据待接收,那么终端会保持苏醒,并执行信道竞争。当竞争胜利后,其会发送一个请求帧(实际上是Poll帧,图中标识为Trigger)向AP请求下行数据。AP接收到后,反馈下行数据给终端。当终端成功接收到下行数据后,其反馈ACK,此时若终端本身也有上行数据的话,那么也会一次反馈(如图上所示)。当这一次上下行传输后,节点进入睡眠状态。我们需要注意,在该beacon周期内,仅仅存在一次特定终端的上下行数据帧交换。在下一轮beacon周期内,由于DTIM中没有指示终端有数据,那么就保持睡眠状态。直到第三个beacon周期,那么终端才进行苏醒,并和AP执行一次上下行的数据帧交换。

PSM模式是一种有效的节能模式,但是其仅仅允许终端在多个Beacon帧周期间进行休眠,终端通常需要唤醒多次才可以成功收发数据,这点在于一些QoS所需的业务流量上,会有比较大的延迟开销。因此在后续的802.11e协议上,就需要对这一点进行改进。

U-APSD机制(Unscheduled Automatic Power-Save Delivery )

IEEE 802.11e是针对传统802.11没有提供QoS的问题上,做的一个改良。在802.11e中引入了多种流量类型,尤其是明确了对voice-over-WiFi,即语音流量的支持。通常语音流量的间隔大约为20ms左右,而标准的PSM工作周期是基于beacon周期的,该周期一般为100ms左右,因此标准的PSM是无法用于语音流量的,从而在802.11e中为了改善这一点,提出了一种新的节能方式APSD(Automatic Power-Save Delivery),APSD包含S-APSD(Scheduled Automatic Power-Save Delivery)和U-APSD(Unscheduled Automatic Power-Save Delivery)两种具体机制。

我们这里理解下U-APSD的工作机制。其实简单来说,PSM关注的是beacon周期间的节点节能,终端在一个beacon周期内,要不是睡眠,要不是苏醒。U-APSD关注的是在一个beacon周内的间隔睡眠问题,即在一个beacon周期内,终端会不断切换睡眠和工作的状态,从而达到节能的目的。和传统的PSM一样,AP会为终端缓存下行的数据流量,当终端间隔苏醒后,会主动向AP发起请求,尤其是像语音这种对称流量的场景,终端可以在beacon周期内不断的触发发送和接收语音数据帧。

如上图所示,终端仍然有三种工作模式,睡眠(sleep mode),接收(listen or receive mode)和传输(transmit mode)。在一个beacon周期内,终端首先休眠很短的间隔(此时由于没有数据帧),当上层语音数据帧到达时,节点苏醒会进行发送(即触发一次上行发送),AP接收到该数据帧后,进行下行的语音流反馈。当一次语音帧交换后,终端进入睡眠状态,当然这个睡眠状态很短。当新的一个上层语音帧到达后,节点又会在本beacon周期内,立刻苏醒,然后进行发送,并获取一个AP传输的下行语音帧,如此类推。

U-APSD能够有效在一个beacon周期内进行节能,对于具有QoS需求的流量而言,这种节能方式更适合一些。S-APSD的工作方式类似于U-APSD,主要区别在于是下行先触发(即AP先发送Data),还是上行先触发的(即终端先发送Data),其余大体类似。因此我们能够更好的理解APSD的工作场景和其实际意义。

X 提交 下一题

查看更多