百兆光纤玩游戏卡成狗,不是手机不好,不是路由器不行,原因在这

2023-05-21 23:57:40

最近和平精英上线了,王者荣耀也开启一波新赛季,又掀起一波玩游戏潮,有些小伙伴就反馈游戏非常的卡,明明家里用的是百兆光纤,并且近千元的路由器,,为什么玩游戏就卡成幻灯片呢?今天我们就从原理出发来解释下,为什么百兆的光纤,玩游戏会卡。


基础

首先,我们先排除自身的原因,例如手机/电脑的配置不行,或者家里的路由器不稳定,或者离路由器的距离太远或中间有太多障碍物,导致信号不稳定。很多人,即便是买了几千元的手机,高级路由器,为什么还会觉得玩游戏特别卡呢,这要从计算机网络的游戏的原理开始说起。

原理

首先我们应该理解网络游戏当中的原理,我们会在自己的手机上进行一定的操作,手机的游戏软件会把这些操作打包成数据包,然后发给服务器,服务器确认这些数据包是正常的之后(不是外挂),再进行处理,处理完之后又发出指令,其他跟这个人一起游戏的人收到数据后,就知道了你做了什么事情。

例如我们在自己的手机上放了一次大招,这个时候会同步给服务器,我们称之为指令A,服务器校验了数据正确,这个玩家的确有大招,CD正常之类的数据,然后将这个数据包同步给其他人,告诉他们我放出了大招,朝哪个方向,哪个位置,其他人的手机接收到指令后,就能看到你放出大招了。

所以,从你的手机上发出数据给到服务器接收,再到服务器把数据发给你,我们称之为延迟,很明显,理论上,延迟越小,玩游戏越流畅。延迟太大,可能你这边做了某个操作,要很久才能收到,所以对玩游戏的人来说,就会觉得很卡。



带宽是双向的

上述的例子说明了,玩游戏的时候,你既要给服务器发数据,又要接受服务器的数据,也就是说,网络是双向的。通常我们说宽带的大小,都是下行带宽,而上行带宽常常被一笔带过。所以,你看到的你们家是百兆宽带,可能上行速度却只有几十kb/s,这就变成了一条腿走路,是跑不快的。

带宽关系大么

那么,这个延迟跟带宽有什么关系呢?答案是没必然联系。我们可以理解为我们的手机跟服务器之间有一条高速公路,限速100,实际上,网络传输的速度接近光速。有一辆车载重1吨,另外一辆车载重100吨,假设都能开到极限速度,那么从你的手机出发,到重新回到你的手机,耗时是一样的,如果你要运输的货物就几百斤,那么两台车都是一样的。在这里,1吨100吨就是带宽,也就是你每次要运输到服务器的数据小于这个数量,那么多大的带宽都是没用的。一般来说,我们玩网络游戏,1M的带宽就绰绰有余了,真正决定网络卡不卡的是延迟。也就是上述例子中,从深圳到上海一个来回的时间。

为什么有延迟?

一切的科技都离不开物理规律,数据在光纤中的传播速度接近光的速度,也就是30万公里每秒,从中国的最南端到最北端,最快一个来回也要几十毫秒。事实上,我们与服务器的延迟会比计算的延迟大,为什么呢?

网络并不是直达的高速公路



网络并不是简单的点到点的告诉公路,而是由非常多的节点组成,节点与节点错综复杂,可能你从深圳发一个请求给上海,可能要先去北京,再从北京到杭州,再从杭州去上海,可能真实的距离会是深圳到上海的好几倍。大运营商的网络节点,一般都比较多,不需要走太多远路。

网络并不是一路畅通的



就像高速公路也会堵车一样,网络也不可能是一路畅通的,有时候遇到了网路堵塞,那么就需要排队,这种情况在不同运营商网络之间更加明显。俗话说得好,世界上最遥远的距离,是我找到了你,而你是电信,我是联通。相同运营商里面,网络往往是比较发达的,但是不同运营商之间,交换的线路往往比较有限,可以想象,在两条平行的高速公路中间,有一些泥泞的小路,如果你要从一个高速公路到另外一条路上,就要走这些泥泞的小路,这些路又小又不好走,所以常常需要排队如长龙。这就像极了一个沙漏,尽管两端非常大,但是中间的路径太小,造成延迟非常的高。

服务机也是有压力的

我们常常看到服务器压力大,让我们去别的服务器玩,因为服务器并不是简单地转发数据,需要检验,鉴权,计算等等。所以,如果服务器压力太大,往往也需要排队。



总结

综上所述,造成玩游戏卡的原因是非常多的,那么怎么加快速度呢。

  • 减少物理距离,搬到服务器近一点的地方打游戏,我们常常看到上海的主播延迟会低一点,就是因为大部分主流的服务器都在上海。
  • 选择大型一点的服务商,跟服务器尽量在同一个运营商,减少在一些关键交换线路的成本。另外,要了解上行跟下行的带宽,避免一只脚走路。

今天的介绍我们就讲到这里,如果你有兴趣,欢迎关注我,除了分享算法相关的,最近主要会讲一些redis的原理与应用。近期还准备了一些AI相关的知识,整理后会和大家继续分享。大家的支持是我继续唠嗑的动力。同名公众号(沙茶敏碎碎念)