WMM 四队列参数说明
"wmm_enabled=1\n"\"wmm_ac_bk_cwmin=4\n"\"wmm_ac_bk_cwmax=10\n"\"wmm_ac_bk_aifs=7\n"\"wmm_ac_bk_txop_limit=0\n"\"wmm_ac_bk_acm=0\n"\"wmm_ac_be_aifs=3\n"\"wmm_ac_be_cwmin=4\n"\"wmm_ac_be_cwmax=10\n"\"wmm_ac_be_txop_limit=0\n"\"wmm_ac_be_acm=0\n"\"wmm_ac_vi_aifs=2\n"\"wmm_ac_vi_cwmin=3\n"\"wmm_ac_vi_cwmax=4\n"\"wmm_ac_vi_txop_limit=94\n"\"wmm_ac_vi_acm=0\n"\"wmm_ac_vo_aifs=2\n"\"wmm_ac_vo_cwmin=2\n"\"wmm_ac_vo_cwmax=3\n"\"wmm_ac_vo_txop_limit=47\n"\"wmm_ac_vo_acm=0\n"\这些配置属于WMM(Wi-Fi Multimedia)里的EDCA(增强分布式信道接入)参数。开启wmm_enabled=1后,不同业务走不同接入类别(AC),用不同优先级竞争空口,从而减少投屏/语音被后台流量饿死。
一、四个接入类别(AC)
| 前缀 | 全称 | 典型业务 | 优先级(高→低) |
|---|---|---|---|
| vo | Voice | 语音、极低延迟 | 最高 |
| vi | Video | 视频、投屏 | 高 |
| be | Best Effort | 普通 TCP/UDP | 中 |
| bk | Background | 下载、备份 | 最低 |
配置里vo ≈ vi > be > bk,符合多媒体热点常见做法。
二、每个 AC 下的 5 个参数
每个类别都有相同 5 项:aifs、cwmin、cwmax、txop_limit、acm。
1.aifs(仲裁帧间隔因子)
- 发送前需等待:AIFS = SIFS + aifs × slot_time
- 2.4G/5G 常见 slot_time = 9µs
- aifs 越小 → 等得越短 → 越容易先抢到信道
| AC | aifs | 相对等待 |
|---|---|---|
| vo / vi | 2 | 最短(除 TXOP 突发外最先发) |
| be | 3 | 中等 |
| bk | 7 | 最长,后台最吃亏 |
vo/vi 的aifs=2表示视频/语音比默认数据更优先接入。
2.cwmin/cwmax(竞争窗口)
退避算法在[CWmin, CWmax]间随机选退避槽位数:
[
CW_{actual} = 2^{cw} - 1 \quad(个时隙)
]
| AC | cwmin | 实际 CWmin | cwmax | 实际 CWmax |
|---|---|---|---|---|
| vo | 2 | 3 | 3 | 7 |
| vi | 3 | 7 | 4 | 15 |
| be | 4 | 15 | 10 | 1023 |
| bk | 4 | 15 | 10 | 1023 |
含义:
- vo窗口最小(2³−1=7 上限),冲突后仍较快重试
- vi略大于 vo,但仍远小于 be/bk
- be / bk窗口大,碰撞后退避久,主动让路
bk 与 be 数值相同,主要靠aifs(7 vs 3)拉开优先级。
3.txop_limit(发送机会上限)
- 单位:32µs
0= 每次信道占用只能发一个MPDU(常见默认)>0= 获得 TXOP 后可在该时间内连续发多帧(burst)
| AC | txop_limit | 实际时间 | 含义 |
|---|---|---|---|
| vo | 47 | 47×32µs ≈1.5 ms | 语音可短突发 |
| vi | 94 | 94×32µs ≈3.0 ms | 视频可更长突发,利于投屏 |
| be / bk | 0 | 单帧 | 普通/后台不享受 TXOP 突发 |
vi 的 94 对投屏很重要:视频流可连续占空口一小段时间,降低抖动。
4.acm(准入控制)
0= 不强制 ACM(Admission Control Mandatory)1= 该 AC 需先被 AP准入许可才能用
你们四个 AC 全是acm=0:不额外做带宽预留/准入握手,配置简单,一般家用/投屏足够。
三、你们配置的完整对照表
AC aifs cwmin cwmax txop acm 角色 ──────────────────────────────────────────── vo 2 2 3 47 0 语音,最高优先级 + 短突发 vi 2 3 4 94 0 视频/投屏,高优先级 + 长突发 be 3 4 10 0 0 普通流量 bk 7 4 10 0 0 后台,最低优先级四、空口竞争过程(简化)
有数据要发 ↓ 按 AC 算 AIFS 等待 ↓ vo/vi 先等完 → 先竞争 ↓ 若碰撞 → 按 cwmin~cwmax 随机退避(vo/vi 退避窗口更小) ↓ 抢到信道 ↓ vi/vo 可在 txop_limit 内连发多帧;be/bk 通常只发一帧多径、干扰导致重传时,be/bk 退避窗口扩得更快,vi/vo 仍相对优先。
五、与 802.11n / 投屏的关系
- WMM 是 11n 的前提:
ieee80211n=1时通常必须wmm_enabled=1。 - 投屏数据应走 VI(或 VO)队列:应用/驱动若全走 BE,这些参数对投屏帮助有限。
- vi 的 txop_limit=94是四队列里对大流量、低抖动最有利的一项。
- bk 的 aifs=7保证后台下载不易挤占视频。
六、若要调优,可怎么改(参考)
| 目标 | 可调项 | 方向 |
|---|---|---|
| 投屏更流畅 | wmm_ac_vi_txop_limit | 可适当增大(如 94→118),注意别超规范 |
| 降低语音延迟 | wmm_ac_vo_aifs | 保持 2,vo 已最高 |
| 提高普通吞吐 | wmm_ac_be_txop_limit | 可试小非零值(一般慎用) |
| 更强压制后台 | wmm_ac_bk_aifs | 可增大到 9(802.11 允许范围内) |
七、总结
在定义vo / vi / be / bk 四个队列谁先发言、碰撞后等多久、能连发多久:
- vi(视频):
aifs=2+txop=94→ 投屏友好 - vo(语音):
aifs=2+ 更小竞争窗口 → 最低延迟 - be(默认):中等等待、无 TXOP 突发
- bk(后台):
aifs=7→ 有意让路
整体是 hostapd默认推荐的多媒体 WMM 参数,对投影仪开热点场景是合理起点;若要进一步优化,优先确认投屏流量是否真正进入 VI 队列,再考虑微调vi的txop_limit。