很多人抱怨过这种怪事:打游戏时网络明明很稳,延迟五六十毫秒,技能放得飞起;可一开网页看视频,连微信收张图片都转圈圈。这当然不是错觉,而是网络协议和资源调度的差异在作祟。核心原因很简单:游戏多用UDP,网页、视频和聊天图片走TCP,而TCP在丢包和延迟面前的脆弱程度,比你想的严重得多。
游戏常用的UDP协议,发出去就不管了,丢了包也不重传。射击游戏里那发子弹到底打没打中,服务器允许一定程度的误差,画面靠客户端预测来平滑。哪怕网络丢包率达到5%,游戏里可能只是枪口轻微抖动,你几乎感觉不到。但网页不一样,所有内容都要完整到达,TCP协议一旦检测到丢包,立即触发重传,同时把发送窗口减半,进入拥塞控制。这个机制带来的结果就是:丢包率只要到1%,TCP的吞吐量可能骤降50%以上,而UDP几乎毫无影响。所以你的网络线路哪怕只有轻微不稳定性,游戏依旧流畅,网页却卡成幻灯片。
带宽需求是完全不对等的。一款竞技游戏的实际带宽消耗低得惊人,《英雄联盟》比赛场景下大约每秒20到50KB,CS:GO高峰也就100Kbps左右。而一个1080P视频流畅播放需要3到5Mbps,4K更是直奔15Mbps以上。一张手机拍的图片,动辄3到5MB,相当于打几小时游戏的流量总量。宽带如果只有20Mbps,游戏只占很小一部分,自然不掉线;但视频和图片一拥而上,瞬间把带宽占满,路由器队列堆积,所有连接都被拖慢。这就像你开车走国道,一辆自行车畅通无阻,但后面挂上十节拖车,再小的坑洼都能让你停下来。
更深层的原因出在TCP的慢启动机制。每次建立新连接,TCP都要从很小的发送窗口开始,慢慢探测网络能力。初始窗口只有10个报文段,每个报文段约1460字节,也就是说第一个往返时间只能发大约14KB数据。如果服务器离你较远,往返延迟100毫秒,那第一个请求要花100毫秒才能发完一小块,后续虽然指数增长,但也要几个RTT才能提速。网页恰恰是短连接的重灾区。一个普通网页需要发起七十多个请求,HTML、CSS、JS、图片、字体,每个连接都要重新经历DNS解析、TCP握手、TLS加密协商和慢启动。这样一个一个排队,在延迟高的网络上速度慢得像蜗牛。而游戏只有一个长期运行的数据流,连接一旦建好,窗口始终保持在最佳状态,自然不卡。
继续深挖,你会发现浏览器和聊天应用的工作方式本身就很重。游戏只需要渲染画面和同步状态,但网页要解析HTML、执行JavaScript、构建DOM树、加载各种第三方库,这些工作全在CPU上完成。如果电脑配置一般,或者后台有下载任务抢占磁盘,浏览器可能直接卡住,连滚动都掉帧——这跟网络无关,纯粹是处理能力不足。而游戏在流畅运行的前提下,显卡和CPU占用再高,你也不会感觉到网页的加载延迟,因为那是另外一套资源调度。

还有不少路由器内置了QoS策略,默认给游戏流量打最高优先级。当网络拥堵时,路由器优先转发游戏的小UDP包,而网页和视频的TCP包被排在队列后面。运营商也可能对UDP协议不做严格限速,对TCP则做了更细的管控。结果就是你一边打游戏一边下载东西,游戏稳如老狗,网页却动一下卡三秒。这种“反向卡顿”其实是网络设备在替你牺牲非实时流量,来保证游戏体验。
聊天软件收图片卡,本质上和网页卡一模一样。图片就是一个小型HTTP文件,需要重新建立HTTPS连接,同样的慢启动和TLS握手,遇到丢包还要重传。如果是微信群里的图片,服务器节点分布复杂,有些线路质量差,TCP拥塞控制会更敏感。你在游戏里感觉不到这些,因为游戏进程早就把网络资源握在手里,UDP根本不在乎那点丢包。
所以,当你遇到游戏不卡、网页视频卡的现象时,别急着骂电脑。先检查丢包率,用长ping目标服务器能看出一二;再测测实际带宽是否被占用;最后看看路由器QoS设置是不是把游戏流量放在了最高优先级。多数情况下,问题不在游戏,而在那些需要可靠传输的普通网络请求上。它们天生就没法和UDP抢速度,尤其在高延迟、高丢包的链路里,更加不堪一击。