科普:为什么我100M网络了,打游戏还是卡

2,871次阅读
没有评论

共计 3305 个字符,预计需要花费 9 分钟才能阅读完成。

前言

在科普开始之前,先解释一下标题的意思,笔者经常听到身边的朋友说:“我明明已经是 100 兆的网络了,为什么我打游戏还是这么卡,明明我已经挂了加速器了,还是捡不起来东西。”

这篇科普阐述的,就是告诉你,什么是好的网络

搞清楚带宽和延迟

带宽

我们常说的网络是多少多少兆,这个的意思是我们与运营商所签约的连接到互联网最高的 下行 速率,假如我们与运营商签约的速率为 100 兆,那么也就是 100Mbps,这时候有人要问,我明明买的是 100 兆的宽带,为什么下载速度只有 10 几 M,我是不是被骗了。这个问题恐怕也是多数刚接触互联网的人经常提出来的问题。宽带的兆和下载的兆是不相同的,正如刚才所说,100 兆的宽带就是 100Mbps 的下行,这个 Mbps,是 Million bits per second 的缩写,意思是百万比特每秒,而下载时候所显示的是 MB/s,为 Million bytes per second,是百万字节每秒,两个单位只差了一个 bits 和 Bytes,学过计算机的应该都知道,bit 是比特,Byte 是字节,两者的关系为 1byte=8bit,那么也就是说,100Mbps 的宽带理论峰值下载速率为 100/8M Bytes per second,也就是 100Mbps=12.5MB/s(注意 b 和 B 的大小写区分),这个 MB 就是我们熟知的手机流量还有多少兆的这个“兆”。

延迟

搞清楚带宽之后,我们来讲讲延迟,何为延迟,可以理解为我们互联网上的所有访问,都是有一来一回的,即当我们发送一个请求到目标服务器,告诉它我要下载一个文件,服务器得到响应之后,再告诉我们你可以开始进行下载文件,来回所耗费的时间,也可以理解为我们进行游戏,我们与服务器之间传送数据包所耗费的时间。


搞清楚带宽和延迟的关系,那么判别宽带质量的好坏,是不是就是带宽大,延迟低就算好呢?

加速

我们都知道,绝地求生这款游戏在国内还没有上线,所以在国内是没有服务器的,国内玩家最常玩的就是绝地求生的亚洲服务器,而亚洲服务器是在韩国,如果我们国内尝试直接连接服务器的话会发现延迟非常高,捡东西会掉包,这就酝酿着一大批国内的各种加速器,按天、日、年来进行售卖。
绝地求生的火爆打开了加速器的市场,从网易到腾讯的大型运营商,到诸如迅游、量子等,还有号称金融级专线,按小时计费的雷神。其实都是一个通用的原理,来对我们游戏进行加速,其原理可以按下图进行解释
科普:为什么我 100M 网络了,打游戏还是卡
我们直接连接到游戏服务器的延迟为 150ms,在开启了加速器之后,我们先去连接加速器厂商的服务器,这个延迟非常低,为 20ms,接着加速器的服务器在去连接游戏服务器,延迟也非常低,为 30ms,这样我们连接到游戏服务器的延迟就只有 50ms 了,达到了加速的效果,比直连足足快了 100ms,这就是加速器的原理。
大胆的想象一下,如果我们直接坐在加速器厂商的服务器机房里面打着游戏,那么我们到加速器服务器的延迟几乎可以忽略不计,那么玩游戏的延迟就只有 30ms 了,同样都是在国内,一个是家庭的网络,一个是专业的游戏网络,为什么到游戏服务器的延迟会有这么大的差别,这就引出了下一个论述。

路由

先猜测一下路由的概念,多数人理解的就是家中的路由器,一定跟这个有很大的关系,确实,我们家中的路由器,只是接下来要阐述的内容的一小部分。以最好理解的方式来进行解释,如下图
科普:为什么我 100M 网络了,打游戏还是卡
路人甲要去到目的地,有三种方案可以到达,显然,方案 2 是最直接的,直接从起始地到到目的地,若选用第 2 种方案,要先经过 A,再到达目的地,方案 3 同理。
网络中的路由也便是如此,我们发送一个数据包,经过各种节点最后到达目标服务器,这个数据包所经过的路程,就是路由。
那么为什么之前的图,我们直连游戏服务器,和使用加速服务器,一个是直连,一个要去往加速器再连接游戏服务器,但确是后者更快呢?
以游戏绝地求生为例,我们个人电脑发出的数据包,再表面上看似是直连的,但是这之间进行了很多步的路由,以下是一个例子,并非真实情况,比如我们在杭州,玩游戏时发送一个数据包,要先经过上海,到了上海之后要去往日本,日本出发再到韩国,这之间进行了多次转折,这一来一去,延迟自然就高了。
因为国内网络环境极其复杂,从国内的数据包传出国外的过程中,例如上面的上海到日本,因为是两个国家运营的网络,即便我和你只是差了一条国界线,但是我们运营的宽带没有好的连接质量,所以延迟高就高在了这里,这就是为什么我们玩外服游戏比玩国内游戏要卡得多,因为国内就电信,联通,移动三大主运营商,所以各个运营商之间达 "成了一致",意思就是,大家都是国内的运营商,访问架设在国内的网站或者服务器当然要更快,所以我们玩国内游戏就比较流畅。
影响延迟还有一个根本的因素就是物理上的距离,我们所有的网络传输都是通过陆地光缆,或者海底光缆进行的,而光缆的传输速度就是光速,倘若我们要从上海连接一台美国的服务器,即使直连,中间没有经过任何路由,因为地理上的距离,从上海到美国也差着一万多公里,这时候光所走过的路程更长,时间更长,延迟也就越高,所以玩美服游戏,就算直连,没经过其它路由,再怎么加速,延迟也有至少 150ms
回到之前的问题,加速器厂商的服务器为什么可以在国内连接到国外运行服务器延迟这么低,这就是加速器厂商与国外网络运营商合作的结果,双方在加速服务器和游戏服务器之间建立一条 专线,目的就是减少中间的路由,以上面的例子为例,我在杭州,加速器节点在上海,上海连接韩国就不用再经过日本,而是通过专线直接到达韩国,这样延迟就低了很多,而国内城市之间互相连接因为运营商 "达成一致" 本身延迟就很低。

路由追踪

那么如何知道我连接一个服务器,这之间所经过的路由呢?
在 Linux 或者 macOS 上,有自带的路由追踪的功能,那么在 Windows 上可以使用 ipip.net 推出了一个工具:besttrace
使用方法都是一样的,输入目标服务器的 IP 地址,系统会发送一个数据包,会自动追踪这个数据包所经过的路由节点,然后显示给用户。以下是 macOS 上面使用 besttrace 工具的截图,这之中包含了经过节点的 IP,其所在的地区,还有数据包到达这个节点时的延迟,下方还有地图可视化了路由的节点,十分明了。
科普:为什么我 100M 网络了,打游戏还是卡
从我所在地区追踪到我购买的处于洛杉矶服务器的路由,最终延迟为 200ms 左右
先从温州到了杭州,杭州到了广州,广州国际出口到洛杉矶
这个结果已经是国内到美国非常好的路由了
我曾经遇到过国内连美国,要去法国绕路的路由。。。
还有国内连香港,要去美国绕路。。。
那可真是数据包走过的路程连起来可以绕地球一圈。
前段时间我追踪这个服务器路由的时候国际出口是在北京的,可见国际出口也随时在变,也印证了我之前的那句话,国内网络情况是有多复杂。

精品网

上海市是中国东部最重要的一个城市,又是沿海地区,所以非常适合国际出口,所以上海电信就推有了国际精品网,访问美国等国家的服务器会减少路由,尽量保证直连,所以很多加速器厂商会将大部分中转节点架设在上海。
非常经典的一些线路例如沪日专线,在深圳,有深港(香港)专线,深坡(新加坡)专线,等。其路由都非常少,延迟很低。
中国电信是国内国际出口最多的运营商了,其中最好的网络有以下几条
中国与美国西海岸直连:上海 - 洛杉矶 广州 - 洛杉矶
也就是业内常说的 CN2 线路
除了 CN2,还有 CN2 GIA,CN2 GT 等
当然国内直连香港,新加坡,德国,伦敦等地区都有 CN2 线路
CN2 线路的国际出口一般在上海或者广州,北京也有。
CN2 线路是中国国际出口线路中最好的线路了,同时也是费用成本最高的了。判断线路是不是 CN2 线路也很简单,以 CN2 GIA 的沪美线路来说,在上海节点的 IP 以 59.43 打头,而传统的国际出口多数以则以 202.97 打头,称之为 163 网。
因为 163 网国际出口负载比较大,所以速度也比较慢,容易造成拥堵,所以中国电信的 CN2 线路则是最优的出口线路啦
科普:为什么我 100M 网络了,打游戏还是卡
可以看到出口节点为 59.43 的 IP 段打头,那么判定为 CN2 线路,最终延迟也比非 CN2 的线路低,为 160ms 左右

总结

网络的好坏,不仅看传输速率,还要看延迟,最重要的就是路由了。
好的网络,速度快,延迟低,路由少,其实后两者是息息相关的,绕的路少了,延迟自然就低了

正文完
 
TaurusXin
版权声明:本站原创文章,由 TaurusXin 2019-03-03发表,共计3305字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。