执行摘要
轻量IOS接入点缓冲组播数据包的容量有限。 组播传输缓冲区在BSSID之间共享。 如果AP上配置了许多WLAN(SSID),则AP上的语音WLAN可能无法缓冲单个组播音频流,从而导致音频问题。
config wlan multicast buffer AireOS命令可用于为一个或两个WLAN分配额外的缓冲区。
深入探讨
默认情况下,每个无线电上有50个组播缓冲区,可在所有WLAN之间共享(在运行8.3.121.0的AP3502e上验证)。 因此,启用4个SSID后,每个组播队列(即每个WLAN)有12个组播缓冲区可用:
AP3502e# show controller dot11radio0 | begin --\ In-Prog
---- Active ------ In-Progress --------------- Counts --------------
Cnt Quo Bas Max Cl Cnt Quo Bas Sent Discard Fail Retry Multi
Uplink 0 64 0 0 0 0 5 0 0 0 0 0 0
Voice 0 512 0 0 0 0 60 0 8 0 0 0 0
Video 0 1024 0 0 0 0 200 0 0 0 0 0 0
Best 0 1024 0 0 0 0 200 0 158499 0 0 5 2
MC0 0 0 0 0 0 0 12 0 0 0 0 0 0
MC1 0 0 0 0 0 0 12 0 0 0 0 0 0
MC2 0 0 0 0 0 0 12 0 0 0 0 0 0
MC3 0 0 0 0 0 0 12 0 8 0 0 0 0
MC4 0 0 0 0 0 0 0 0 0 0 0 0 0
MC5 0 0 0 0 0 0 0 0 0 0 0 0 0
MC6 0 0 0 0 0 0 0 0 0 0 0 0 0
MC7 0 0 0 0 0 0 0 0 0 0 0 0 0
MC8 0 0 0 0 0 0 0 0 0 0 0 0 0
MC9 0 0 0 0 0 0 0 0 0 0 0 0 0
MC10 0 0 0 0 0 0 0 0 0 0 0 0 0
MC11 0 0 0 0 0 0 0 0 0 0 0 0 0
MC12 0 0 0 0 0 0 0 0 0 0 0 0 0
MC13 0 0 0 0 0 0 0 0 0 0 0 0 0
MC14 0 0 0 0 0 0 0 0 0 0 0 0 0
MC15 0 0 0 0 0 0 0 0 0 0 0 0 0
Back 0 128 0 0 0 0 35 0 0 0 0 0 0
启用10个SSID后,每个WLAN仅有5个组播缓冲区可用:
AP3502e# show controller dot11radio0 | begin --\ In-Prog
---- Active ------ In-Progress --------------- Counts --------------
Cnt Quo Bas Max Cl Cnt Quo Bas Sent Discard Fail Retry Multi
Uplink 0 64 0 0 0 0 5 0 0 0 0 0 0
Voice 0 512 0 0 0 0 60 0 5 0 0 0 0
Video 0 1024 0 0 0 0 200 0 0 0 0 0 0
Best 0 1024 0 0 0 0 200 0 148121 0 0 3 2
MC0 0 0 0 0 0 0 5 0 0 0 0 0 0
MC1 0 0 0 0 0 0 5 0 0 0 0 0 0
MC2 0 0 0 0 0 0 5 0 0 0 0 0 0
MC3 0 0 0 0 0 0 5 0 8 0 0 0 0
MC4 0 0 0 0 0 0 5 0 0 0 0 0 0
MC5 0 0 0 0 0 0 5 0 0 0 0 0 0
MC6 0 0 0 0 0 0 5 0 0 0 0 0 0
MC7 0 0 0 0 0 0 5 0 0 0 0 0 0
MC8 0 0 0 0 0 0 5 0 0 0 0 0 0
MC9 0 0 0 0 0 0 5 0 0 0 0 0 0
MC10 0 0 0 0 0 0 0 0 0 0 0 0 0
MC11 0 0 0 0 0 0 0 0 0 0 0 0 0
MC12 0 0 0 0 0 0 0 0 0 0 0 0 0
MC13 0 0 0 0 0 0 0 0 0 0 0 0 0
MC14 0 0 0 0 0 0 0 0 0 0 0 0 0
MC15 0 0 0 0 0 0 0 0 0 0 0 0 0
Back 0 128 0 0 0 0 35 0 0 0 0 0 0
对于传统的节能客户端,AP必须缓冲组播直到每个DTIM信标。 如果DTIM为1,这意味着组播的缓冲时间必须达到104毫秒。 (如果DTIM值较高,则组播需要缓冲多个信标间隔。)
正常音频流以20毫秒的采样形式传输 — 换句话说,它以每秒50个数据包的速度传输。 因此,如果单个音频流需要缓冲1/10秒(即信标间隔),则AP必须能够缓冲每个音频流最多5个数据包。
在无线电上启用15个SSID时,默认情况下,每个SSID的组播缓冲区仅有3个数据包。 这意味着,即使使用单个组播音频流,语音样本也会被丢弃,导致音频损坏。 如果传输多个并发组播音频流(或视频流!),结果会更差。
解决方案是在启用组播的WLAN上配置以下命令:
(WLC2504-2)>config wlan multicast buffer enable ?
<buffer number>无线组播缓冲区数(30 ... 60)
(WLC2504-2)>config wlan multicast buffer enable 30 ?
<WLAN id>输入1到16之间的WLAN标识符。
最多可以为两个WLAN配置“wlan multicast buffer enable”。
以下是一个示例,它启用了14个SSID,并为WLAN 1配置了“config wlan multicast buffer enable 60”:
Transmit queues: Limit 2766 Current 0 In-Progress 0 ACQ inserts 47508 deletes 47508 reins 0
---- Active ------ In-Progress --------------- Counts --------------
Cnt Quo Bas Max Cl Cnt Quo Bas Sent Discard Fail Retry Multi
Uplink 0 64 0 0 0 0 5 0 0 0 0 0 0
Voice 0 512 0 0 0 0 60 0 2 0 0 0 0
Video 0 1024 0 0 0 0 200 0 0 0 0 0 0
Best 0 1024 0 0 0 0 140 0 47547 0 0 2 2
MC0 0 0 0 0 0 0 60 0 0 0 0 0 0
MC1 0 0 0 0 0 0 3 0 0 0 0 0 0
MC2 0 0 0 0 0 0 3 0 0 0 0 0 0
MC3 0 0 0 0 0 0 3 0 7 0 0 0 0
MC4 0 0 0 0 0 0 3 0 0 0 0 0 0
MC5 0 0 0 0 0 0 3 0 0 0 0 0 0
MC6 0 0 0 0 0 0 3 0 0 0 0 0 0
MC7 0 0 0 0 0 0 3 0 0 0 0 0 0
MC8 0 0 0 0 0 0 3 0 0 0 0 0 0
MC9 0 0 0 0 0 0 3 0 0 0 0 0 0
MC10 0 0 0 0 0 0 3 0 0 0 0 0 0
MC11 0 0 0 0 0 0 3 0 0 0 0 0 0
MC12 0 0 0 0 0 0 3 0 0 0 0 0 0
MC13 0 0 0 0 0 0 3 0 0 0 0 0 0
MC14 0 0 0 0 0 0 0 0 0 0 0 0 0
MC15 0 0 0 0 0 0 0 0 0 0 0 0 0
Back 0 128 0 0 0 0 35 0 0 0 0 0 0
因此,具有60个缓冲区的WLAN 1能够传输多个音频流的组播流,而其他WLAN每DTIM只能缓冲3个组播帧,因此即使单个音频流也会丢弃数据包。
使用的组件
本演示使用运行AireOS 8.3.121.0和802.11n IOS AP(AP3502e)的无线LAN控制器。其他轻量IOS AP应同样工作;AP-COS AP上的组播缓冲方案尚未验证。
验证
在组播传输期间,首先发出以下AP IOS exec命令:
ap#terminal length 30
然后重复发出以下命令(假设第一个无线电是感兴趣的无线电):
show controller dot11radio0 |开始 — \正在编程
查看“已发送”和“丢弃”列中显示的增量。 如果Discard快速增加,则组播缓冲可能不足。