👇👇
关注后回复 “进群” ,拉你进程序员交流群
👇👇
作者丨
车小胖谈网络
来源丨
车小胖谈网络(ID:
chexiaopangnetwork
)
家里安装的20M电信宽带,之前用的TP-LINK,后来出了这个问题就换成了360路由器还是这个问题,因为一共三台电脑,只要有一台电脑看视频,其他电脑玩游戏LOL就开始卡,打开网页还好,看视频却不卡,这是什么情况?现在弄得只要一个人看视频其他人只能跟着看视频,没法玩游戏了。
无线局域网从
802.11n
开始,引入了服务质量QoS保障技术(
802.11e
),将流量细分为四个种类(
Access Category
), 优先级从低到高分别为:
通俗地说,最高优先级的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
之间随机选择一个数倒数,那么
语音呢?
所以从概率论上来说,普通流量(BE/BG)常常是抢不过视频(Video)流量的。但是需要强调的是,这仅仅是相对的。并不是说普通流量永远都抢不过视频流量。假设视频流运气不好,选择了6,而普通流量运气好到爆棚,随机选择了2,那么普通流量就会优先发送,而视频流后发送。但是从长期概率统计,视频流肯定是可以抢得过普通流量的。
视频APP为了更优的用户体验,高清、流畅,一方面采用高清格式,至少5Mbps,另外一方面采用边播边下载的高速缓存技术。换句话说,片子刚看一小半,整个视频文件已经下载缓存完成。这样对本已不高的带宽(
20mbps
)是一个挑战,一个视频流就能将20M带宽弄饱和了。
802.11n还引入了一个技术,无线报文聚合技术(
A-MPDU
),这项技术其实就是将原本很多小尺寸的报文,聚合成一个超级巨大报文一起发送。这对视频流来说,又是一个超级利好消息。
抢一次跑道不容易,抢跑道的胜利者一次可以发一个报文。视频流不仅抢得快,每次还装得满满的,一次甚至可以聚合几十个报文,只要不超出64K即可。这样其它流量在抢占带宽的战斗中明显处于下风。
游戏实时性要求较高,延迟稍大立马就会感受到。而浏览网页,对延迟的预期没有那么高,三五秒能打开一个网页,一般都不会太在意。
802.11设计年代较早,如果换到现在设计,考虑到游戏的市场价值,应该会给予游戏流量较高的优先级,至少不会低于视频流,甚至可以与语音流处于同一个优先级。
只要将游戏流量的优先级设置成语音Voice优先级,问题立马迎刃而解,至少需要在无线路由器上设置。
-End-
最近有一些小伙伴,让我帮忙找一些 面试题 资料,于是我翻遍了收藏的 5T 资料后,汇总整理出来,可以说是程序员面试必备!
所有资料都整理到网盘了,欢迎下载!