WMM-PS的U-APSD
传统省电模式
传统省电模式接收数据过程如下图所示。每发送一个ps-poll才能得到一个data frame。影响了效率。
更有效的做法是:当从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功能。
QoS Info field when sent from WMM AP
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
Max SP Length subfield: 一个服务周期中,AP可以发给STA 最多发送多少个MSDU 和MMSDU。如下表。
AC_XX U-APSD Flag: 1- 对应的AC trigger-enabled和delivery-enabled。 0- 对应的AC non trigger-enabled和 non delivery-enabled。
U-APSD省电流程
- 当AP为STA缓存了包时,会在beacon帧的TIM中置位,通知STA,这个与传统省电模式一样。
- 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
EOSP:End of Service Period,为1代表结束。
UP:是上层的优先级,0~7。通过802.1D映射到AC(BK/BE/VI/VO)。
- 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的过程。