专栏名称: 程序员技术
最有影响力的程序员自媒体,关注程序员相关话题:程序人生、IT技术、IT职场、学习资源等。
目录
相关文章推荐
OSC开源社区  ·  深度实测Manus,我依然认为这就是AI ... ·  2 天前  
程序员的那些事  ·  清北 DeepSeek 教程"神仙打架",北 ... ·  4 天前  
程序员的那些事  ·  刚刚!DeepSeek 杀入全球榜单第 2 ... ·  2 天前  
编程技术进阶  ·  超详细的 Manus 分析报告流出(速领,待会删) ·  2 天前  
编程技术进阶  ·  超详细的 Manus 分析报告流出(速领,待会删) ·  2 天前  
51好读  ›  专栏  ›  程序员技术

为什么20M网速看视频不卡,玩游戏卡?

程序员技术  · 公众号  · 程序员  · 2022-01-04 17:00

正文

👇👇 关注后回复 “进群” ,拉你进程序员交流群 👇👇

作者丨 车小胖谈网络

来源丨 车小胖谈网络(ID: chexiaopangnetwork

家里安装的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优先级,问题立马迎刃而解,至少需要在无线路由器上设置。

-End-

最近有一些小伙伴,让我帮忙找一些 面试题 资料,于是我翻遍了收藏的 5T 资料后,汇总整理出来,可以说是程序员面试必备! 所有资料都整理到网盘了,欢迎下载!







请到「今天看啥」查看全文