802.11协议精读11:节能模式(APSD,PSMP,SM Power Save)

802.11协议精读11:节能模式(APSD,PSMP,SM Power Save)

序言

在802.11主要的版本中,总共定义了四种节能模式,在前面一篇文档中,我们介绍了最基本的PSM模式,以及其工作方式上的一些细节。由于PSM是在最初的802.11协议下进行的设计,其用了较为保守设计,以确保最稳定的运行需求。在后来的802.11几个新版本中,为了改善节能模式的性能,所以还出现了一些其他的节能模式。本文主要介绍了其中主要的三个节能模式:APSD,PSMP以及SMPS。

PS:实际上在802.11的一些分支版本中也定义了一些特定的节能模式,比如802.11v的WNM-Sleep Mode,这些我们就不进行展开了。

APSD(Automatic Power Save Delivery)

ASPD模式是对PSM模式的一个直接改进。PSM模式的其最大的缺点在于请求数据时采用的“乒乓”机制。即一个polling帧请求,一个数据帧反馈,这样一个来回交替的过程。该设计在数据缓存较多的情况下,会造成过多的polling帧出现,降低实际网络传输效率。从而ASPD就需要对此加以改进。

  • APSD(Automatic Power Save Delivery):ASPD是基于802.11e进行设计的。在802.11e中设置一个服务时间的概念,即Service Period(SP)。我们可以简单的理解成,若节点占据信道后,其制定一段服务时间,并且在该段时间内,该节点可以传输多个帧,换言之就是一次竞争多次传输。在ASPD中,还分为S-APSD与U-APSD两种具体的工作模式。(PS:本文对Service Period以及EDCA的具体工作机制不会加以展开,其内容后期会放在对802.11e的整理中)

我们利用下图,首先描述一下APSD的基本思想:

在上图中,我们假设有一个QOS-AP,有一个QOS-STA(PS:由于ASPD是基于802.11e的,所以QOS-AP与QOS-STA都是支持802.11e的设备)。假设是由QOS-STA发起一个传输过程,即首先会发送一个“Trigger Frame”帧,这个帧有可能是QoS data或者QoS Null帧,通过该帧,节点申请到一个服务时间,即Service Period Start(PS:该服务时间可以理解成802.11e中的TXOP时间,而不是一般意义上网络模型中所用的服务时间,在服务时间内,可以传递多个网络帧),然后QOS-AP会反馈一个ACK和一个QOS-Data帧。接下来在服务时间范围内,QOS-STA会持续和QOS-AP进行数据交换。当QOS-AP的缓存全被发送完之后,会在最后一个QOS-Data帧中的QOS控制字段,标注EOSP(End Of Service Period),从而结束一个服务时间,即Service Period End。对比我们在初探节能模式中所提到的PS-Poll,这种“乒乓”的模式而言,前者一个请求一个反馈,而APSD中,一次请求就可以交换多个帧。下面我们说明S-APSD以及U-APSD。

  • S-APSD(Scheduled APSD):基于调度的APSD,S-APSD可以在EDCA(DCF的扩展)和HCCA(PCF的扩展)这两种工作模式下都可以使用,从笔者的个人观点而言,S-APSD更像是前面我们提到的PSM-PCF模式下的扩展。由于S-APSD的具体工作机制不太好抓包做确认,所以只能够通过对协议的字面含义进行理解,如有错误,还请见谅。

如上图所示,是S-APSD的一个工作模式。在S-APSD中,SP(Service Period)是预先调度的,在调度时间将要到来之时,QOS-AP会发送一个triger frame,同时QOS-STA也会提前醒来接受该帧,从而开启一个服务时间。该服务时间是通过管理帧中的Schedule Element字段进行调度的,所以节点可以提前知道什么时候应该醒来。在上图中,QOS-AP发送的triger就是PS-Poll,然后就开始和QOS-STA交换数据,即STA向AP反馈数据之后,AP再向STA反馈数据,这样交替切换,直到SP时间结束。

在这里,QOS-AP和QOS-STA交换数据还是上下行按序切换的,即这里还是有一些类似“乒乓”机制,在后面我们提到的PSMP实际上对这一点会再次加以改进。

  • U-APSD(Unscheduled APSD):基于非调度的APSD,U-APSD只可以在EDCA的模式下进行使用,U-ASPD更像之前提到的PSM-DCF模式的扩展。

如上图,是U-APSD的工作时序。在该模式中,QOS-STA会首先发送一个triger帧(即QOS-Null)给AP,AP收到该帧的时候,就意味着一段服务时间的起始,接着AP和节点会相继交换数据。(PS:至于在服务时间内,上下行数据交替发送过程中是否还会有bakcoff,笔者目前所读的资料是没有的,不过对于协议中的原文描述,笔者还没有确定

实际上在一个SP时间内的工作机制,S-APSD和U-APSD是基本机制的,区别主要在于S-APSD的SP时间是实现调度好的,比如前面该时间就是利用beacon帧中实现调度,而在U-APSD是节点发起的,即该调度时间任意时刻都有可能发起,同时还可以主要到,一般S-APSD都是AP进行发起,而U-APSD是节点进行发起较多,不过这点也不是绝对而已。

PSMP(Power-Save Multi-Poll)

实际上从802.11e中引入TXOP,Block ACK,802.11n中引入的RIFS,帧聚合,802.11ac中引入MU-MIMO(PS:协议中仅仅是AP下行可以使用MU-MIMO,上行未包含),这些技术都会导致AP的突发(burst)下行传输的效率相比上行接入效率要高。

所以从节能模式的角度而言,在APSD中,先分节点,再分上下行的传输模式,就没有先分上下行,再分节点的传输效率高,那么后者就是PSMP设计的基本想法。

  • PSMP(Power-Save Multi-Poll):在802.11n中新增的模式,可以理解是引入了更严格的调度机制,其首先利用一个PSMP帧来调度整个节能模式的传输周期,将其分成PSMP下行传输时段,PSMP-DTT(PSMP Downlink Transmission Time)和PSMP上行传输时段,PSMP-UTT(PSMP Uplink Transmission Time)。在PSMP-DTT过程中,AP进行突发传输,其中帧间间隔可能会更小,比如RIFS。RIFS的时间会比SIFS会更小,SIFS时间是包含了一个发送状态到接受状态的切换时间,而RIFS仅仅是两次发送状态之间的切换时间。在该过程中,节点可以不采用CCA,直接在被调度的具体时间内醒来,并接受数据,从而可以获得更多的休眠时间,从而节能。在PSMP-UTT时间内,节点仅仅会在被调度的周期内醒来,并反馈上行数据帧,从而也减少了较多的监听过程,节约了能量。在PSMP中,若AP的下行传输中存在广播/组播包,那么会在PSMP-DTT时间内,第一个数据帧进行发送,这点实际上和之前的PSM模式传输组播或者广播帧是一样的。

如下图表述了一个PSMP的时序调度(参考《Cambridge.Next Generation Wireless LANs.802.11n》)

那么AP首先发送一个PSMP帧,该帧中包含了后续时间内,下行链路和上行链路具体的调度安排。然后开始进入PSMP-DTT时间,第一个是发送本地缓存的组播/广播帧(即PSMP-DTT1时刻内),然后按序发送节点所对应的缓存单播帧,这里PSMP-DTT时间内,帧间间隔可以采用RIFS,以达到更高的效率。对于ACK的部分,由于笔者没有做详细考证,所以没有加以描述。当PSMP-DTT时间结束后,节点会依次在自己对应的上行调度周期内,发送数据帧,如STA1就在PSMP-UTT1中发送上行数据。当PSMP-UTT时间结束后,这一轮PSMP的数据交换就完成了。

PS:一些PSMP的细节在《Cambridge.Next Generation Wireless LANs.802.11n》一书第9章中,所述较为详细,有兴趣可以扩展阅读。

SM Power Save(Spatial Multiplexing Power Save)

最后,我们描述一下在802.11n中所叙述的SMPS模式,即多天线模式下的节能模式。在该模式下,节点可以选择关于多余的天线,从而达到节能目的。但在实际过程中,节点是不好贸然关闭自己的天线的,因为其无法确定AP是按照多空间流的形式,还是按照单空间流的形式向其发送数据。若AP采用多流发送下行数据,而节点仅仅是单根天线的工作模式,那么是无法正确接收的(这里与发送分集不同,若发送分集也是需要AP按照分集模式进行发送,而不是空分复用的形式发送,其预编码的策略不同)。所以节点要与AP有关关闭天线该动作,进行适当的沟通,那么该机制就对应到SMPS的使用。

PS: CWNP系列书上把这个缩写成SMPS,但是协议上其实不怎么用这个缩写,所以很有可能直接搜的话搜不到。所以一般建议用协议的说法,即SM Power Save。

  • SM Power Save(Spatial Multiplexing Power Save):该模式下,节点会关闭多余的天线,仅仅使用一根天线进行工作,从而达到节能的目的。在SMPS中还分为两种模式,一者静态工作模式(Static SM Power Save),一者动态工作模式(Dynamic SM Power Save)。

上图表示的是一个静态工作模式下的SMPS,其中我们可以看到,节点说先需要发送一个action frame,将AP切换为单流发送下行帧,以让节点节约一些能量。若需要恢复回多流工作模式,则需要反馈一个action frame,其中显式注明static mode disabled,从而AP接下来发送的帧才会是多流模式。

上图是动态工作模式下的SMPS,其中当STA发送一个动态模式的action frame后,AP紧接着反馈的下行帧中就会采用单流模式(图中的下行帧是RTS,实际上也可以是数据帧)。当该帧反馈后,AP发送下一个帧的时候,则会回到默认发送的多流模式,主动从单流模式切换回来,而在静态模式中,这个切换需要一个显示的action frame,故这里就是静态和动态SMPS的一个区别。

PS:一些SMPS的细节在《CWAP:Certified Wireless Analysis Professional Official Study Guide 》一书第10章中,所述较为详细,有兴趣可以扩展阅读。


本文为原创文章,如需转载须注明出处和原文链接。

欢迎大家关注我们的微信公众号:无线专家研习社,请搜索公众号(WiFi_Professsional)。

编辑于 2023-02-05 21:04・IP 属地上海