WMM-PS的U-APSD(5)

传统省电模式

传统省电模式接收数据过程如下图所示。每发送一个ps-poll才能得到一个data frame。影响了效率。

STAAPps-polldata1 more data bit=1ack 没有被AP收到当STA没有正确ack时,AP不会清除缓存的这一包ps-polldata1 more data bit=1ackps-polldata2 more data bit=0ackSTA接收到AP缓在存的所有包STAAP

更有效的做法是:当从beacon的TIM帧中发现AP有缓存的包时,STA发送Null data power bit =0直接退出省电模式,这样AP再把缓存的包发给STA,避免了反复发ps-poll。

U-APSD信息协商

U-APSD全称Unscheduled Automatic Power Save Delivery,是802.11e引入的带有优先级的省电模式。主要针对是单播QoS-Data 和QoS-Null frame。

AP在Beacon,Probe response和Association respnse中会带WMM Information Element,其中QoS Info Field会被来声明自己支持U-APSD功能。
WMM-PS的U-APSD(5)

QoS Info field when sent from WMM AP
WMM-PS的U-APSD(5)
U-APSD: 为1时代表支持U-APSD功能。
Parameter Set Count: 可以初始化为任意值,通常为0,每当AC Parameter变化时,这个值会自加。

当STA连接AP时,在Assocication request中会带QoS Info field。这里会告诉AP,STA是否支持trigger-enabled和delivery-enabled,以及每个服务周期AP最多能给STA发多少个MSDU 和MMSDU。这为后面的U-APSD功能打下基础。

QoS Info field when sent from WMM STA
WMM-PS的U-APSD(5)
Max SP Length subfield: 一个服务周期中,AP可以发给STA 最多发送多少个MSDU 和MMSDU。如下表。
WMM-PS的U-APSD(5)
AC_XX U-APSD Flag: 1- 对应的AC trigger-enabled和delivery-enabled。 0- 对应的AC non trigger-enabled和 non delivery-enabled。

U-APSD省电流程

  1. 当AP为STA缓存了包时,会在beacon帧的TIM中置位,通知STA,这个与传统省电模式一样。
  2. STA发送Trigger Frame with power bit =0 开启一个服务周期。Trigger Frame可以是一个QoS的Data,也可以是QoS的NUll data。AP会根据QoS Control Field中的UP字段确定发送哪个AC的缓存包。当这个服务周期结束前,STA将一直处于Active状态,等待收包。STA收到AP缓存包时,检查QoS Control Field中的EOSP字段,为1代表当前服务周期结束。

QoS Control Field
WMM-PS的U-APSD(5)
EOSP:End of Service Period,为1代表结束。
UP:是上层的优先级,0~7。通过802.1D映射到AC(BK/BE/VI/VO)。

  1. AP根据UP得出STA请求的AC,然后将该AC的缓存包发给STA。AP至少要发一个包或是发 Max SP Length个包。

比如当AP发现STA请求的AC中没有任何包时,这时至少要发一个QoS Null data(more data bit=0 EOSP=1)。
当然也有可能本服务周期结束时,缓存的data还没有传完,这时最后一包的data会是more data bit=1, EOSP=1,等待STA后面再发Trigger Frame。
AP可能遇到STA要求的AC没有trigger-enabled和delivery-enabled,这时也会发QoS Null data(more data bit=0 EOSP=1)。

最后用下图描述一次U-APSD的过程。

APSTAbeacon(TIM IE)指示有缓存包,STA进入Active Modetrigger frame(UP=6 vo power bit=0)ackvo data1(more data=1 EOSP=0)ackvo data2(more data=1 EOSP=1)ack服务周期结束STA,但data还没有收完。trigger frame(UP=6 vo power bit=0)ackvo data3(more data=0 EOSP=1)ackdata收完,服务周期结束,STA进入Sleep Mode。APSTA