QoS 服务质量保障
WiFi QoS 概述
WiFi 的 QoS(Quality of Service)机制确保不同类型的应用流量获得差异化的服务等级。对于语音、视频等实时应用,QoS 至关重要——没有它,一个大文件下载可能让 VoIP 通话变得不可用。
WMM(Wi-Fi Multimedia)
WMM 是 Wi-Fi Alliance 对 802.11e QoS 功能的认证规范,是目前最广泛部署的 WiFi QoS 实现。
WMM 四大功能域
功能域 |
说明 |
|---|---|
QoS 数据帧格式 |
添加 QoS Control 字段 |
AC(Access Category)优先级 |
4 个优先级队列 |
TXOP(Transmission Opportunity) |
不同 AC 获得不同的传输机会 |
PS-Poll / APSD |
QoS 感知的省电机制 |
访问类别(Access Categories)
WMM 定义了 4 个 AC,每个有不同的参数:
AC |
名称 |
优先级 |
CWmin |
CWmax |
AIFSN |
TXOP limit |
|---|---|---|---|---|---|---|
VO |
Voice |
最高 (3) |
2 |
3 |
2 |
1.5 ms |
VI |
Video |
高 (2) |
4 |
7 |
2 |
3.0 ms |
BE |
Best Effort |
中 (1) |
15 |
31 |
3 |
99 ms |
BK |
Background |
低 (0) |
15 |
1023 |
7 |
99 ms |
参数含义
CWmin/CWmax:竞争窗口大小,越小越容易抢到信道
AIFSN(Arbitration Inter Frame Space Number):在 DIFS 基础上额外等待的时隙数
等待时间 = DIFS + AIFSN × slot_time VO: 34μs + 2×9μs = 52μs (最快) BK: 34μs + 7×9μs = 97μs (最慢)
TXOP limit:一次获得信道后最多连续传输的时间
DSCP 到 UP 到 AC 的映射
网络流量通过 DSCP(Differentiated Services Code Point)标记,WiFi MAC 层将其映射为 UP(User Priority),再归入 AC:
DSCP 值 |
UP |
AC |
典型应用 |
|---|---|---|---|
46 (EF) |
0 |
VO |
VoIP 语音 |
34-44 (AF41-AF43, CS5-CS6) |
4-5 |
VI |
视频会议、流媒体 |
0 (Default), 10 (CS1) |
0-2 |
BE |
Web浏览、邮件、一般数据 |
8 (CS1), 其他低优先级 |
1 |
BK |
软件更新、备份 |
UP(User Priority)字段位置
QoS Control Field:
│ TID (3 bits) │ EOSP (1 bit) │ A-MSDU Present (1 bit) │ A-Control (variable) │
│ │ │ │
└── UP/TID ────┘
Block Ack(块确认)
传统 802.11 每个数据帧都需要一个 ACK,Block Ack 允许批量确认:
正常 ACK vs Block Ack
正常模式:
Data1 → ACK, Data2 → ACK, Data3 → ACK, Data4 → ACK
(4个ACK帧 = 大量开销)
Block Ack 模式:
BlockAckReq → [Data1, Data2, Data3, Data4] → BlockAck (位图确认)
(1个BA帧 = 显著减少开销)
Block Ack 类型
类型 |
说明 |
|---|---|
Immediate BA |
收到 BA Request 后立即回复 BA |
Delayed BA |
先回复 BA Ack,稍后发送实际 BA |
Compressed BA |
使用压缩格式减少开销 |
Block Ack 位图
BlockAck Bitmap (64 bits):
[SSSN][SSSN+1]...[SSSN+63]
1 1 0 1 ...
✓ ✓ ✗ ✓
✓ = 成功接收, ✗ = 需要重传
A-MSDU 与 A-MPDU 聚合
A-MSDU(Aggregate MSDU)
在 MAC 层将多个 MSDU 聚合成一个大的 MSDU:
┌─────────────────────────────────────┐
│ A-MSDU │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐│
│ │ MSDU 1 │ │ MSDU 2 │ │ MSDU 3 ││
│ │ (addr+ │ │ (addr+ │ │ (addr+ ││
│ │ data) │ │ data) │ │ data) ││
│ └─────────┘ └─────────┘ └─────────┘│
└─────────────────────────────────────┘
优势:减少 MAC header 和 FCS 开销
局限:任何一个 MSDU 出错,整个 A-MSDU 重传
A-MPDU(Aggregate MPDU)
在 PHY 层将多个 MPDU 聚合成一个 PPDU:
┌──────────────────────────────────────┐
│ A-MPDU (PPDU) │
│ ┌────────┐ ┌────────┐ ┌────────┐ │
│ │MPDU 1 │ │MPDU 2 │ │MPDU 3 │ ...│
│ │+delim+ │ │+delim+ │ │+delim+ │ │
│ │ FCS │ │ FCS │ │ FCS │ │
│ └────────┘ └────────┘ └────────┘ │
└──────────────────────────────────────┘
优势:单个 MPDU 出错只需重传该 MPDU
推荐:现代 WiFi 首选 A-MPDU
聚合效果对比
模式 |
10个1000字节帧的开销 |
效率提升 |
|---|---|---|
无聚合 |
~400 bytes (headers+ACKs) |
基准 |
A-MSDU |
~80 bytes |
~5x |
A-MPDU |
~120 bytes |
~3x(更可靠) |
QoS 配置最佳实践
启用 WMM:所有现代设备都应启用
正确标记流量:确保路由器/交换机保留 DSCP 标记
VO 队列调优:语音流量需要低延迟,适当减少 TXOP
限制 BK 带宽:防止后台下载占用过多信道时间