我的电脑玩单机游戏能开最高画质,看蓝光原盘电影拖动进度条毫无延迟,Steam下载游戏跑满宽带,可一打开联机游戏就原形毕露——延迟飙到两百多,时不时掉线,语音里队友的声音断断续续。这台机器明明性能不差,问题究竟出在哪?
先说硬件层面。CPU和显卡处理网络数据包几乎不占资源,但网卡和主板上的网络接口却可能成为瓶颈。很多主板自带的千兆网卡其实成本很低,尤其是某些入门级板型,芯片发热严重时会出现丢包。我试过把网卡驱动更新到最新版本,也关闭了电源管理里的节能选项,情况没有本质改善。后来插上一块几十块钱的USB有线网卡,延迟竟然稳定了不少,说明板载网卡的稳定性确实值得怀疑。
但更隐蔽的问题往往在路由器上。我的网络环境是光猫接路由器,电脑用网线直接连路由器。下载快只能说明下行带宽充足,而联机游戏对上传速度和响应时间的要求完全不同。家用路由器同时挂着手机、电视盒子、智能家居设备,这些设备哪怕只是待机也会频繁发送心跳包,占用路由器的处理能力。尤其是开启QoS(流量整形)功能后,如果设置不当,反而会加大排队延迟。我试着把电脑设为DMZ主机,又给游戏端口设置了端口转发,延迟依然没有降到理想值。
真正让我豁然开朗的是检查NAT类型。多数单机游戏不需要NAT,而联机游戏如果采用P2P架构,对NAT类型极为敏感。我的光猫默认开启了防火墙,再加上路由器自己的防火墙,双重NAT导致我的NAT类型显示为“严格”。这会让游戏匹配服务器尽量把我分配给网络条件更差的玩家,或者直接放弃P2P连接,改用慢速中继服务器。解决方法很简单:把光猫改成桥接模式,让路由器直接拨号上网,只保留一层NAT。改完之后,NAT类型变成了“开放”,大部分联机游戏的延迟立刻下降了三十到五十毫秒。
还有一个容易被忽略的因素是DNS。平时浏览网页和下载文件用的DNS只要不是完全解析失败,用户几乎感觉不到差异,但游戏对战平台的服务器列表和匹配节点的选择有时会依赖DNS返回的地理位置信息。我用默认DNS时经常被分配到距离几百公里外的服务器,延迟自然高。把DNS改成公共DNS或者运营商优化过的地址后,匹配到的服务器明显更近了。这里要注意,DNS的更换不是越“公共”越好,国内玩家更适合用本地延迟低的服务商DNS,不要迷信某些国外公共DNS。

无线网络的问题就更常见了。很多人觉得下载能跑满几十兆,无线信号就没问题,但下载是大流量连续传输,容忍丢包重传,而联机游戏是几十字节的小包高频发送,一次重传就可能造成几十毫秒的卡顿。我的电脑虽然用着网线,但旁边有个无线中继器,它和路由器之间干扰严重,哪怕电脑没有走无线,周围的电磁环境也会影响路由器本身的射频收发质量。后来我把路由器信道改为手动指定,避开邻居常用的那几个拥堵信道,又关闭了2.4G频段——只保留5G频段给手机使用,联机延迟又稳定了一些。
别忘了运营商的问题。宽带套餐标称的“下行百兆”只保证下载,上传速度往往被严重限制。很多联机游戏需要持续上传玩家的位置和操作数据,当上传带宽被背景程序耗尽时,延迟会突然升高。我检查后发现电脑后台正在用百度网盘上传文件,那个小小的上传箭头吃掉了全部上行带宽。关掉之后,游戏延迟立刻恢复正常。另外,跨运营商访问游戏服务器也常常导致丢包,比如电信宽带连联通服务器,网络绕路严重。这种情况只能借助游戏加速器,本质是租用专线中转,确实能解决物理距离上的绕路。
回到标题:电脑性能强劲和联机游戏卡顿根本不是同一层面的事。单机游戏考验的是计算和渲染能力,看电影下载游戏考验的是存储和下行带宽,而联机游戏考验的是网络链路的稳定性、NAT的穿透能力、路由器小包转发效率以及运营商之间的互联质量。我的电脑没有任何问题,它只是被这些看不到的环节拖住了后腿。如今我换了独立网卡,调好了桥接模式,清理了后台上传任务,再把路由器信道固定下来,联机游戏总算能流畅运行了。如果你也遇到类似情况,别急着换电脑,先从网线顺着往运营商方向排查一遍,答案往往藏在最不起眼的地方。