使命召唤 现代战争

Call of Duty: Modern Warfare

怪物猎人 世界

Monster Hunter World

荒野大镖客 救赎2

Red Dead Redemption 2

打个联机游戏,为什么你的网络老出岔子?

作者 箱子   编辑 箱子   2019-12-11 10:27:49

也许每名玩家都饱受过延迟和掉线之苦。

加速器干了什么

  对于大多数人而言,改善联机体验的省心办法,无非就是开个游戏加速器。

  有人会对它们的原理感到好奇,这背后其实是一个比较综合性的问题,牵扯到为客户端选择合适的端口,减少网络路径的复杂性,或是直接架设区域服务器,最大限度的降低访问延迟。

  经营加速器业务的机构,通常会架设多个节点服务器,租借多线机房来提高用户的连接效率。玩家启动客户端时,用 SOCKS5 协议来和代理服务器打交道,代理服务器再和真正的游戏服务器打交道。要么就是部署自动切换运营商的多线 VPN 服务器作为加速节点,给玩家分配一个虚拟的 IP 地址。

  比如联机宝的节点接入了三大运营商,中转后走专线直接连到游戏服务器,此外国际出口用的也是专线。正如之前提到的,这么做可以简化网络路径,好比数据包没有必要从成都绕到广州,又到黑龙江,折腾一大圈最后到北京,而是从成都到北京的直达线路。

  所谓的专线你可以理解成,本来一条道路上有视频、语音、文档等牌子的“汽车”在跑,而专线只允许“游戏牌汽车”通过。而且加速器一般会租用国际企业带宽,腾出来给玩家用,再加上加速网络中可以做到 NAT 开放,因此能够解决 NAT 穿透中的不开放问题,所以掉线和延迟的情况都会得到较大改善。

亚马逊云的专线服务:左边正常接入需要走复杂的网络路径,右边专线就是直达

  不过,虽然原理是这个原理,用户的问题总是千奇百怪。

  根据工程师透露,原则上他们是通过游戏测试对数据包进行分析,确认数据包的收发路径(去程和回程的路径),看看问题类型到底是丢包还是阻断,总之讲究一个对症下药:

  “比如我们检测到一个用户丢包,会优先排查用户的本地网络是否存在问题,然后再排查用户到我们节点的网络问题,最后一步是排查我们节点到服务器的网络……举个例子,发现用户到我们节点连接不稳定,会给用户更换节点,然后保障网络顺畅。”

  但在这个过程中,经常会遇到比较无厘头的事情。有的暴躁老哥把对应 WAN 口的网线插到 LAN 口,最后让他拍了个视频,开远程才发现是网线接错了。还有《怪物猎人 世界》的玩家,没法联机的真正原因是“下载包缺失了部分文件”,得重新下载游戏。总之缘由无论是不是加速器引起的,事情总得管到底。

  总的来说,若是纯粹在国内联机,掉线、延迟与两台电脑间的直线距离关系不大,毕竟现在用光导纤维传输很普及。问题在于,国内数得上名字的网络运营商就接近 10 家,它们之间的网络是有壁垒的,这会加大数据交互的处理成本,也是中小运营商和校园网体验不好的原因之一。

  另外无论是连国内、还是要走国际端线,都有可能遇上网络拥塞的情况。特定情况下,这与运营商超卖带宽的行为有关,导致的结果,可以类比成那些 MMORPG 的排队盛况,归根究底,可能还是运营商的硬件没那么给力。

  你会发现很多技术工作都是围绕着处理延迟展开的。无论是优化“本没必要那么复杂”的网络路径,解决跨运营商问题,还是改善 NAT 类型,共通之处都是在现有硬件下,对游戏联机的环境做简化。但具体到细节,就未必有一劳永逸的解决方法了。

  在与我交流的过程中,网络工程师们的态度大多很有意思,他们排查故障的切入点,往往都是我们觉得比较浅层的东西。或许从基础的细节入手,恰恰是能够全面审视网络状况,以及深耕这一行的关键所在吧。

| (249) 赞(362)
箱子 点赞狂魔

原来小丑就是我。

关注
点赞是美意,打赏是鼓励

评论(249

跟帖规范
您还未,不能参与发言哦~
按热度 按时间

总贡献榜