WLAN WMM-PS
WMM-PS
WMM+PS(Wi-Fi Multimedia + Powersave),支持WMM的设备才有资格支持WMM-PS,也就是说一个支持WMM的设备不一定支持WMM-PS,但是一个支持WMM-PS的设备一定支持WMM
如何判断设备是否支持WMM-PS
在AP的Beacon中的U-APSD信息元素中判断,具体位置在 Beacon-> Tagged Parameter-> WMM/WME -> WME Qos Info -> U-APSD。

WMM-PS参考使用了U-APSD(Unscheduled Automatic PowerSave Delivery) 还有一种是S-APSD(Scheduled Automatic PowerSave Delivery),U-APSD比S-APSD更加广泛的使用。
WMM-PS的前提
首先,STA和AP都必须支持WMM/QoS,其次关联必须进行WMM关联(可以在关联请求,关联相应中检查WMM IE),再次,STA和AP必须都支持WMMPS,AP的支持情况如第二章所写,STA是否支持我们需检查关联请求WME ->WME QoS Info ->Set 4 ACs [VO, VI, BE, BK] 是否为1(这表示每个AC都使能传送和触发),最后一个是指定一个Max SP Length用来指示在一个服务周期内可以暂存帧的数量
如下图:

过程分析
1. 我们必须在关联请求的里将所有的AC设置为1,关联完成后,STA会发送一个PM=1的NULL Data帧给AP,表明STA将要进入省电模式,这一点和Legacy PowerSave机制一样;

2.对于睡眠的STA,AP在Beacon中的TIM指示缓存的数据;

3. STA在 listen interval 唤醒并检查 Beacon TIM 中的AID是否是自己,如果是自己,STA发送一个Trigger Frame给AP,Trigger Frame可能是一个QoS Null 或者 Data packet,Trigger Frame的PM设置为1,如下图我们看到Trigger Frame在Voice类别中。

4. 一旦AP收到Trigger Frame,AP可以一个一个在Max serivce period Length的数量内像STA发送暂存的数据。在下图例子中SP长度设置为0,STA对每个数据帧进行Ack,如下图
7. STA不必向STA发送任何类型的帧就可以进入省电模式,因为所有的Trigger Frame的PM都为1
Max SP Length
Maximum Service Period Length (Max SP Length)出现在关联请求帧中,如下图

一个例子如下:
- STA在Association Request设置Maximum service period length为10表示AP在一个服务周期那会最大发送2个DataFrame给AP;
- STA发送TriggerFrame给AP后,AP发送Data1并设置MoreData=1, EOSP=0
- AP继续发送Data2并设置MoreData=1, EOSP(80211头部QoS字段Bit4)=1
- 因为MoreData为1,说明AP还有给STA暂存的帧,此时STA需要发送一个额外的TriggerFrame给AP用于获取其他的暂存数据
- STA发送了额外的TriggerFrame后,AP发送Data3并设置MoreData=1,EOSP=1
- AP发送Data4并设置MoreData=0, EOSP=1,完成暂存帧的发送
WMM-PS的注意点
WMM-PS希望所有的AC都被在关联请求中都设置为1,那如果只有部分的AC被设置为1则会使用不用的PowerSave协议过程,具体如下:

1. AC [1] 将使用 WMMPS,其他的如AC [0] 将使用Legacy powersave,在这种情况下Beacon中的TIM仅仅指示了Legacy的暂存帧,STA需要自己实现逻辑发送TriggerFrame用于获取WMMPS的缓存数据。
一些问题
问题1:如果一个STA发送了TriggerFrame但是AP没有缓存的数据?
这个时候AP发送一个OoS NULL帧并且设置MoreData=0 EOSP=1
问题2:为什么使用Voice的AC作为TriggerFrame发送?
因为在无线中,Voice类型具有最高的优先级
问题3:WMM-PS是基于U-APSD还是S-APSD?
U-APSD
问题4:什么是TriggerFrame?
TriggerFrame是一个数据帧(但是可能不包含数据),这个数据帧的PM设置为1并且使用Voice进行发送。用于获取AP对此STA的暂存数据。
一些概念

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具