一台普通路由器同时拉两台电脑,我的电脑玩QQ飞车总是掉线,另一台却基本正常。这个现象不是运营商的问题,而是路由器在多个设备并发时暴露出的短板。QQ飞车对网络延迟极其敏感,要求的有效上行速率至少50kbps,延迟不能超过80毫秒,任何一次丢包或者短暂超时都会触发客户端强制断开连接。两台电脑共用路由,掉线概率会成倍增加。
最直接的原因是路由器的网络地址转换会话数被耗尽。家用路由器通常内置的NAT表容量在1024到2048条之间。QQ飞车客户端启动后,会向游戏服务器持续建立多个UDP和TCP连接,用于登录、房间通信、实时位置同步、商城刷新和反作弊上报。实测单台电脑运行QQ飞车并挂着一个QQ号,大约占250到350个NAT会话。如果另一个电脑同时开着浏览器、微信或者视频软件,每打开一个网页就会产生几十个临时会话,视频缓冲更是瞬间占满几百条。两台电脑加起来,普通路由器的2048条会话很容易被塞满。一旦NAT表满,路由器就会丢弃新收到的数据包,游戏服务器长时间收不到我的赛车同步数据,自然判定我掉线。
带宽的上下行不对称也会导致掉线。家用宽带标称100M下行,上行往往只有10M到20M。QQ飞车虽然本身消耗带宽不大,但对手上的操作和位置更新极为依赖稳定的上行链路。另一台电脑如果正在做任何上传操作,比如发送网盘文件、直播推流、甚至系统自动更新,就会占满上行带宽。实测上行带宽被占用到90%以上时,游戏延迟会从正常的20-30毫秒飙升到300毫秒以上,随后出现100%丢包。路由器没有做带宽管理的话,两台电脑会争抢有限的资源,我的游戏数据包优先级不够,只能排队等待,最终被服务器踢下线。
无线连接是另一个隐形杀手。如果两台电脑都通过Wi-Fi连接路由器,2.4GHz频段只有1、6、11三个互不干扰的信道。周围邻居的无线路由器、蓝牙设备、微波炉都会产生噪声干扰。两台电脑同时发送无线数据时,路由器需要分时处理,还要不断重传被干扰的数据帧。实测在2.4GHz信道拥堵的环境下,无线丢包率可以轻松超过5%,而QQ飞车要求的丢包率必须低于0.5%。哪怕只是零点几秒的无线断流,游戏就会掉线。哪怕只有我的电脑用无线,另一台用网线,无线的不稳定性也会让我掉线,因为路由器在有线接口和无线接口之间转发数据时,只要无线侧稍有处理延迟,整个转发进程就可能被阻塞。
路由器本身的处理器性能不足也是原因。很多百元级路由器使用主频400MHz以下的处理器,内存只有16MB或32MB。这类路由器在只带一台电脑时勉强够用,但两台电脑同时收发数据时,CPU利用率会超过80%。当QQ飞车需要路由器进行快速转发和地址转换,而另一台电脑正在下载大量数据包,路由器CPU就会应接不暇,出现转发中断。此时我的游戏客户端发送的数据包虽然被路由器收到,但没有足够的计算能力去转换和发送到WAN口,造成游戏侧超时掉线。有些用户会发现把另一台电脑的网线拔掉后,游戏立刻恢复正常,就是这个道理。

要解决掉线问题,可以按实际情况逐一排查。首先把两台电脑全部改用有线网线连接路由器,避免无线干扰。如果必须在无线环境下使用,将路由器信道固定到1、6、11中选择一个晚上测试干扰最少的,同时关闭蓝牙设备。其次进入路由器管理界面,查看当前连接数和CPU负载。大多数路由器能看到在线设备数量和实时速率。如果发现连接数经常超过1500条,需要限制另一台电脑的P2P下载和视频缓存,甚至重启路由器清空NAT表。还可以在路由器设置里启用DMZ主机,将我的电脑IP地址填入DMZ,让游戏服务器直接访问我的电脑,不经过NAT转发,这样可以显著减少会话占用。如果路由器有QoS功能,把我的电脑的IP地址设为高优先级,保证游戏数据包优先转发。
另外检查网卡的高级设置。在电脑的网卡属性中,找到“环保节能”或“绿色以太网”选项,将其禁用。有些网卡为了省电会降低接收灵敏度,导致在低延迟场景下丢包。还要关闭Windows系统的“接收窗口自动调谐”功能,在命令行用netsh interface tcp set global autotuninglevel=disabled执行一次,能减少接收缓冲区异常造成的延迟抖动。同时要注意路由器固件版本,老旧的固件可能存在内存泄漏,NAT表无法及时回收已过期的会话,用了一两天后掉线频率明显增加。登录路由器官网下载最新固件并升级,能在一定程度上提高稳定性。
最彻底的方案是换一台支持多设备高并发的路由器,选择标称NAT会话数在4096以上、内存不低于64MB的型号。对于两台电脑同时玩游戏的情况,这类路由器能轻松应对,并且内置的QoS功能可以自动识别游戏流量。如果宽带本身的上行只有几Mbps,可以考虑降低另一台电脑的后台上传任务,或者联系运营商提升上行带宽。调试完成后,建议连续运行一天,观察QQ飞车是否还会掉线。正常情况下,合格的路由器加有线连接加合理的流量管理,可以让稳定运行时间达到72小时以上,延迟波动不超过10毫秒。