家里安装的20M电信宽带,之前用的TP-LINK,后来出了这个问题就换成了360路由器还是这个问题,因为一共三台电脑,只要有一台电脑看视频,其他电脑玩游戏LOL就开始卡,打开网页还好,看视频却不卡,这是什么情况?现在弄得只要一个人看视频其他人只能跟着看视频,没法玩游戏了。
无线局域网从802.11n开始,引入了服务质量QoS保障技术(802.11e),将流量细分为四个种类(Access Category), 优先级从低到高分别为:
语音Voice (IP优先级7、6)
视频Video (IP优先级5、4)
Best Effort (IP优先级2、1)
Background (IP优先级3、0)
通俗地说,最高优先级的Voice是用于打电话的,次优先级是用于视频流的,剩下的两种通常用于浏览网页、下载文件等。
山中无老虎(Voice),猴子(Video)称霸王。在无线局域网里,所有的流量都没有视频流的优先级高。视频流会得到无线局域网的最优先接待(VIP客户)。
原始社会是没有优先级的,是真正意义上的“All man are created equal”。无线局域网最原始的标准802.11也是没有优先级的,所有的无线Packet处于同一个起跑线抢跑道(CSMA/CA),在发令枪枪响(DIFS)之后,如果所有Packet一起冲出跑道,那么就撞(Collision)在一起了。为什么呢?
因为只有一条跑道!因为只有一个共享的跑道(Channel)。
为了避免Packet的冲突,每个Packet在听到枪响之后,需要倒数一个随机数(Backoff),这个随机数位于0-31之间。每个Packet选择的随机数从概率上来说,很有可能是不一样的。比如有的选择3,有的选择18,而有的选择0。谁先倒数到0,谁将Packet弹射到Channel,那么其他人一看Channel上有Packet在流动(CCA),会将自己的倒数计数器停止,静静地听并接收。如果目的MAC = 自己,接收并处理。否则将流量丢弃。
看起来很公平、很美好,但是随着语音电话跑在无线局域网上,用户发现语音怎么那么卡啊?
究其原因,无线局域网对所有的流量一视同仁,当无线局域网带宽利用率处于饱和状态时,意味着延迟变得越来越无法忍受,特别对延迟高度敏感的语音流、视频流更是无法忍受。
于是,引入了差异化服务保证(802.1e)。视频流从诞生那一刻起,就携带高优先级的标签,赢在了起跑线上。普通的上网流量要从0-31之间随机选择一个数倒数,那么语音呢?
从0-3之间选择一个随机数倒数。
视频流呢?
从0-7之间选择一个随机数倒数。
所以从概率论上来说,普通流量(BE/BG)常常是抢不过视频(Video)流量的。但是需要强调的是,这仅仅是相对的。并不是说普通流量永远都抢不过视频流量。假设视频流运气不好,选择了6,而普通流量运气好到爆棚,随机选择了2,那么普通流量就会优先发送,而视频流后发送。但是从长期概率统计,视频流肯定是可以抢得过普通流量的。
贪婪的视频APP
视频APP为了更优的用户体验,高清、流畅,一方面采用高清格式,至少5Mbps,另外一方面采用边播边下载的高速缓存技术。换句话说,片子刚看一小半,整个视频文件已经下载缓存完成。这样对本已不高的带宽(20mbps)是一个挑战,一个视频流就能将20M带宽弄饱和了。
802.11n还引入了一个技术,无线报文聚合技术(A-MPDU),这项技术其实就是将原本很多小尺寸的报文,聚合成一个超级巨大报文一起发送。这对视频流来说,又是一个超级利好消息。
抢一次跑道不容易,抢跑道的胜利者一次可以发一个报文。视频流不仅抢得快,每次还装得满满的,一次甚至可以聚合几十个报文,只要不超出64K即可。这样其它流量在抢占带宽的战斗中明显处于下风。
为何浏览网页不觉得慢,打游戏觉得卡?
游戏实时性要求较高,延迟稍大立马就会感受到。而浏览网页,对延迟的预期没有那么高,三五秒能打开一个网页,一般都不会太在意。
解决方案?
802.11设计年代较早,如果换到现在设计,考虑到游戏的市场价值,应该会给予游戏流量较高的优先级,至少不会低于视频流,甚至可以与语音流处于同一个优先级。
只要将游戏流量的优先级设置成语音Voice优先级,问题立马迎刃而解,至少需要在无线路由器上设置。
源:车小胖谈网络
网友评论