WLAN QoS CW
竞争窗口CW = Contention Window
CWmin and CWmax意思是竞争窗口的最大值和最小值,在80211标准中我们经常会听到如下:选择一个随机的退避值发送数据,这个随机的退避值从下面的表格中选择
射频 | CWmin | CWmax |
802.11b | 31 | 1023 |
802.11g | 15 or 31 | 1023 |
802.11a | 15 | 1023 |
802.11n | 15 | 1023 |
802.11ac | 15 | 1023 |
举一个例子:在80211a模式下发送一个数据,在第一个发送时从0-15中选择一个值作为退避值,如果发送失败,竞争窗口在第二次会从0-31中选择
如下0-63,0-127,0-255,0-511。
指数行为
我们通常使用 ECWmin and ECWmax 来表达“exponential CWmin” and “exponential CWmax”.
射频 | CWmin | CWmax | ECW Min | ECW Max |
802.11b | 31 | 1023 | 5 | 10 |
802.11g | 15(bg) or 31 (g) | 1023 | 4 or 5 | 10 |
802.11a | 15 | 1023 | 4 | 10 |
802.11n | 15 | 1023 | 4 | 10 |
802.11ac | 15 | 1023 | 4 | 10 |
对于80211b来说:CW的选择计算方法为:25-1=31, 210-1=1023
80211b第一次尝试发送的CW范围: 0-31
80211b第二次尝试发送的CW范围:: 0-(26-1) = 0-63
80211b第三次尝试发送的CW范围:: 0-(27-1) = 0-127
根据以上的规则我们容易计算其他值
在抓包中观察CWmin, CWmax值
在Beacon和Probe Response的WMM字段中我们可以观察如下:
如下表
AC | AIFSN | CWmin | CWmax |
BK | 7 | CWmin=15 | CWmax=1023 |
BE | 3 | CWmin=15 | CWmax=1023 |
VI | 2 | (CWmin+1)/2 – 1 =7 | CWmin=15 |
VO | 2 | (CWmin+1)/4 – 1 =3 | (CWmin+1)/2 – 1 =7 |
下图是一个beacon的抓包,从里面可以看到CWmin,CWmax,ECWmin,ECWmax
我们根据退避的选择值和AISF的机制就很容易明白VI,VO通道的数据传输优先级比较高