尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

游戏延迟高别只盯数字,用ping和tracert逐段定位网络瓶颈

游戏延迟高别只盯数字,用ping和tracert逐段定位网络瓶颈 打了几把绝地求生语音里队友一直在喊“卡了卡了”我自己看右上角延迟显示倒挺正常四五十毫秒的样子。但一到对枪环节明明先开枪的是我倒下的却也是我。这种“看着不卡、打着别扭”的情况比单纯的高延迟更折磨人。后来我养成了一个习惯不只看游戏里那个延迟数字而是把从自家网口到游戏服务器整条链路拆开一段一段测用数据说话。这套方法帮我定位过Wi-Fi干扰、路由器转发瓶颈、晚高峰拥塞、光猫数据积压好几个问题今天把实测记录和操作流程完整分享出来。1. 从本地网络开始延迟升高时我第一步排查什么1.1 先测“到路由器”的延迟本地环节不该背锅很多人一觉得游戏卡就怀疑是宽带或者游戏服务器的毛病其实很多时候问题就出在自家这十几米线路上。我先说一个最基础、但最容易被跳过的测试先ping默认网关也就是自己的路由器。打开命令行先查一下默认网关地址。在Windows上直接输入ipconfig找到“默认网关”这一项常见的是192.168.1.1或者192.168.0.1。然后持续ping它ping 192.168.1.1 -t这个命令会一直跑按CtrlC停止。看输出的平均延迟。正常情况下从网线连接电脑到路由器延迟应该在1ms以内基本就是0.x毫秒而且几乎不跳动。如果用无线连接数值会高一些但通常也就在1ms到5ms之间。我第一次做这个测试的时候结果让我很意外。当时我用的是一台用了五六年的老路由器电脑放在同一个房间隔了两堵墙2.4G Wi-Fi连接。ping路由器平均4.6ms看起来是个很小的数但数据一跳到5.3ms然后再降到2.9ms一直在波动。这其实说明无线链路已经不够稳定了只是平时不测根本注意不到。这个测试的意义在于如果到路由器这一跳都超过5ms甚至10ms那后面无论怎么优化线路都是白搭游戏服务器那边再快这十几毫秒的本地损耗也省不掉。1.2 Wi-Fi和网线的基础对比我把同样的位置、同样的电脑分别用三种方式连接路由器各自测了100个ping包记录如下接入方式平均延迟抖动丢包率千兆网线直连0.8ms0.1ms0%5G Wi-Fi距离3米1.9ms0.5ms0%2.4G Wi-Fi隔一堵墙5.6ms2.3ms0.4%光看平均延迟三者差距好像也没多大但游戏玩家最该盯的是“抖动”这一列。2.4G Wi-Fi的抖动到了2.3ms意味着数据包到达的间隔忽长忽短反映到游戏里就是人物的动作偶尔会“顿一下”。有线接入的优势不只是延迟低更是稳。这里有个常见误区有人认为只要换了千兆路由器和千兆宽带无线就一定没问题。实际上2.4G频段本来就容易受邻居Wi-Fi、蓝牙设备、USB 3.0接口等干扰信道拥挤时重传率直线上升。如果你家路由器只能选择2.4G连接而且隔着墙那游戏延迟大概率先天就吃亏。还有一个隐藏很深的问题老路由器的转发性能。有些低端路由器一旦同时开启QoS流控、行为管理、防火墙检测这些功能CPU直接被占满本地ping网关的延迟都能飙到几十毫秒。遇到这种情况就算换再高的宽带也没用因为路由器自己就已经处理不过来了。2. 出了家门之后的链路每一跳延迟怎么读2.1 用路由追踪把“高延迟段”找出来本地没问题之后再把视野放到外网。绝地求生的数据从电脑出去要经过路由器、光猫或ONU设备、接入网、城域网、骨干网最后才到游戏服务器。中间经过的每一个路由器节点在网络上叫“一跳”每一跳都会增加一点处理时间。这时候用系统自带的tracert命令就能看链路。以某个游戏服务器IP为例tracert -d 目标IP-d参数的意思是只显示IP不做域名反查速度更快信息也更干净。跑完之后会看到一列节点每一行代表数据包经过的一个路由器接口后面跟着三个延迟数值表示三次探测的结果。我自己的习惯是重点看最后几跳也就是接近游戏服务器的节点。如果前面的跳延迟都在15ms上下到了某一跳突然变成60ms并且后面每一跳都维持在这个高度那基本可以断定瓶颈就在这一段。不要被中间某个“请求超时”的跳吓到很多核心路由器出于安全策略不对ICMP请求做响应这是正常现象不代表链路断了。比如我实测过自己网络会话范围内的一条链路跳跃序号延迟表现说明第1跳0.8ms本地路由器第2跳4.5ms接入设备第3跳8.9ms区域汇聚节点第4跳11.2ms正常转发第5跳38.7ms出现明显增长第6跳39.5ms维持高位第7跳40.8ms接近目标这个结果说明延迟主要增长发生在第5跳这个节点上也就是数据从本地网络进入核心链路的地方。这类问题通常不是玩家自己能够彻底解决的因为这段路线的调度策略掌握在宽带服务商手里。但搞清楚是哪一跳出了问题至少能帮你区分“本地能修”和“只能等运营商优化”两种局面。2.2 光猫、线路和运营商侧参数怎么看如果你的宽带是光纤入户光猫或ONU设备经常成为被忽视的瓶颈。我自己遇到过一个非常典型的现象光猫连续开机一个多月没重启ping网关一切正常但只要一打游戏延迟就会在傍晚稳定升高而且伴随偶尔的瞬间掉线。登录光猫管理后台之后可以看到接收光功率这一项。不同品牌界面的叫法不太一样有的叫“光模块信息”有的叫“ONT信息”关键看接收光功率的数值。单纯从经验来说接收光功率在-8dBm到-20dBm之间属于比较健康的范围。如果数值低于-24dBm甚至更低说明光纤线路衰减已经比较明显了这时候应该联系宽带服务商来检修光纤接头和线路。还有一个容易踩的坑光猫长时间运行之后NAT会话表会占满或者内部数据处理异常。最简单的处理办法就是物理断电等待一分钟再重新上电。不少玩家把这一招叫“重启大法”但它的背后是有道理的光猫内部缓存清理、重新拨号、重新建立路由表本质上就是给设备做了一次状态重置。至于运营商侧的高峰期拥塞这就属于玩家无法直接控制的部分了。在晚高峰时段同一个汇聚节点下有很多用户同时跑流量整体延迟会上升几毫秒到十几毫秒。你换再好的路由器、再贵的网线都解决不了这个区段的问题只能调整游玩时段或者换一个区域连接节点来试。3. 不同条件下延迟实测晚高峰、下载、DNS和系统设置3.1 晚高峰前后延迟变化记录同一个游戏服务器同一个接入方式一天内的不同时间段延迟差异能有多大我把一周的数据汇总后列了一张典型对比时段平均延迟抖动丢包率上午10点36ms4ms0%下午3点38ms5ms0%晚上7点45ms9ms0.2%晚上9点54ms18ms0.8%深夜11点半41ms7ms0.1%下午3点和晚上9点差了接近20毫秒这还不是最关键的最关键的是抖动从5ms涨到了18ms。18ms的抖动意味着什么就是延迟在35ms到90ms之间来回蹦游戏里的直观感受就是跑步的时候人有时候会“回弹”一下开车转弯容易滑出去。如果你的空闲时段和晚高峰都能测出明显差异那基本可以判断是共享带宽拥塞。这种情况在普通民用宽带上非常普遍因为它本来就是设计成“尽力而为”的传输模型并不会专门为你的游戏数据开绿色通道。3.2 一边下载一边玩真实数据差多少很多人家里会有这样的情况一边电脑开着下载任务一边又想打两局游戏。我实测下来的损失相当可观。场景平均延迟抖动丢包率仅运行游戏38ms5ms0%游戏在线视频52ms17ms0.4%游戏同时下载96ms41ms4.6%游戏加下载这个场景平均延迟直接翻倍还多丢包率逼近5%。这个丢包率在绝地求生里基本就是灾难级表现你从掩体后面探头开枪子弹能不能全部命中服务器完全要看运气。这里有一个原理上的误区需要讲清楚宽带带宽大不代表不会卡。带宽是“容量”概念就像道路能同时容纳多少辆车延迟是“时间”概念就像每到一个路口要等多久的红绿灯。道路再宽如果车流量瞬间达到路口承载上限车辆还是得排队。下载任务会把上行和下行的队列全部占满游戏数据包就只能排在队列后面等着延迟自然就上去了。要解决这个问题关键是开启路由器里的QoS服务质量功能把游戏设备的优先级调高把下载设备的优先级调低。开了QoS之后即使后台还在下载路由器也会优先转发游戏数据实测延迟会明显回落。不过要注意只有路由器本身性能足够QoS才有意义百元级别的老路由开了QoS之后可能反而因为CPU占用率过高而表现更差。3.3 DNS和网卡节能对延迟的隐藏影响先说DNS。严格来说DNS解析只发生在建立连接的初始阶段比如你进入游戏大厅、匹配成功、加载地图时客户端需要把服务器域名解析成IP地址。这个环节如果DNS服务器响应慢你会感觉到“进房间慢”“开局加载慢”但它不太会影响你已经进入游戏之后的对枪延迟。不过实测中我发现一个现象当你访问的DNS服务器本身响应就有延迟时即使游戏内平均延迟看不出明显问题匹配等待时间和跳伞进场阶段仍可能出现卡顿。我试过手动把电脑的DNS改成公共DNS匹配加载速度确实有一些提升。这项调整成本很低在Windows的“网络适配器设置”里改一下IPv4的DNS服务器地址就行不涉及任何复杂配置。真正容易被忽略的是网卡节能设置。很多网卡驱动默认开启“节能以太网”或者“允许计算机关闭此设备以节约电源”这类功能会在系统负载变化时让网卡频繁切换功率状态造成时延尖峰。表现就是延迟数据大部分时间正常但每隔几十秒突然跳高一次。解决办法是在“设备管理器-网络适配器-电源管理”里取消勾选“允许计算机关闭此设备以节约电源”如果驱动支持再进网卡高级设置里关闭“Energy Efficient Ethernet”和“Green Ethernet”功能。4. 丢包和抖动比平均延迟更需要盯住的指标4.1 平均数字正常游戏却瞬移这是抖动只看平均延迟是很容易被误导的。一个连接可能是40ms平均但实际延迟分布从25ms到110ms来回跳动另一个连接平均延迟60ms但数据稳定在58到63ms之间。后者的游戏体验反而更好因为在绝地求生这类竞技游戏里稳定的60ms手感完全可预测而剧烈波动的40ms会让你的身法操作变得无法判断。抖动Jitter在技术上的定义是相邻数据包到达时间间隔的偏差。通俗点说就是延迟数据的“慌乱程度”。我的经验是平均延迟低于50ms、抖动低于5ms打起来手感很顺滑平均延迟60ms但抖动到了15ms以上就会开始出现人物拉扯、子弹打不中的情况。除了抖动更严重的是丢包。丢包意味着你的操作根本没有被服务器收到或者服务器的反馈没有回到你手上。游戏画面上出现的表现是“人卡在掩体外面被打死”“驾驶的载具突然瞬移回原地”“开枪了但敌人血量没变”。这些现象光看平均延迟是看不出来的必须单独统计丢包率。4.2 用系统自带命令跑一次丢包统计不想装任何额外软件在Windows的CMD窗口里跑这条命令就行ping -n 60 目标IP-n 60表示连续发送60个ICMP回显请求。结束后系统会输出一个汇总里面有最短、最长、平均延迟以及丢包百分比。这个百分比就是你需要关心的核心指标之一。如果你想让测试更贴近数据包经过的每一段链路可以用pathping命令。它结合了tracert的路由追踪和ping的丢包统计会逐个节点计算丢包率。用法是pathping -d 目标IP它会先跑到目标服务器然后回头对每一跳做100次探测整个过程可能要好几分钟。看到结果后如果有某一跳丢包率明显高于其他跳带宽瓶颈基本就锁定在这个位置。结合我自己打绝地求生的体感对丢包率的判断标准大致如下丢包率实际体感0%操作指令基本稳定送达0%-1%大部分时间正常偶发小抽搐1%-5%对枪、开车有明显判定偏差5%以上基本无法正常游戏需要注意的是游戏运行时的数据走的是UDP协议和ICMP包在网络处理优先级上不完全一样但大量实测下来ICMP丢包率仍然可以作为判断链路健康状况的可靠参考。如果ICMP都开始丢包了UDP游戏数据的情况只会更差。5. 在绝地求生里做延迟实测的完整操作流程5.1 测试前准备哪些项目先固定下来数据只有横向可比才有意义所以每次测试之前先把变量控制住。我自己会固定以下事项电脑通过网线直连路由器排除无线干扰只有需要对比无线效果时才切换。关闭其他设备的占用性任务包括手机自动更新、电视直播、云盘同步等。记录当前所在的游戏服务器区域和服务器名称防止把不同区域的延迟混在一起。记录测试的具体时间段方便对比同一时段不同日期或不同时段同日期的数据。准备工作做得越细致后面排查问题就越省力。别嫌麻烦一次规范的30分钟测试比在游戏里凭感觉判断三天都有用。5.2 记录表格和采样方法我的做法是每一轮测试跑600个ping包大概持续10分钟同时打开一局游戏记录体感。中途重点记录几个关键瞬间跳伞阶段、房间内搜装备、载具行驶、对枪交火、决赛圈烟雾弹。把游戏里出现卡顿的时刻标记下来然后再拿这些时间点去对比命令行里延迟和丢包的数据尖峰。记录表我用的是这个结构测试编号时间段平均延迟抖动丢包率游戏服务器区域体感备注106-21 20:0052ms14ms0.5%亚服对枪有迟滞感206-21 22:3046ms9ms0.2%亚服整体可玩建议分别在三个时间段各测一次早上网络空闲时段、晚上高峰时段、深夜低负载时段。至少连续测三天再下结论。单测一次的偶然性太大昨晚数据正常不代表今晚就正常晚高峰和白天都正常才能说明线路健康。5.3 判断标准什么样的结果适合打游戏在把这些数据用于实际调整之前我给自己定了一套判断标准。简单来说平均延迟判断0-50ms理想区间枪线反馈很跟手50-80ms可接受稳定性比绝对数值更重要80-120ms能玩但对狙对枪明显吃亏120ms以上比较糟糕优先排查本地方向延迟之外抖动超过平均延迟的30%就属于需要警惕的状态。丢包率前面列过理想是0%超过1%就意味着游戏体验会在关键时刻掉链子。这套标准不是死规矩但能帮你快速判断当前网络到底“中不中用”。比如我朋友家网络平均延迟常年75ms但抖动一直在3ms以内丢包接近0%他打游戏的手感其实比某些平均延迟45ms但疯狂波动的线路更稳定。6. 拿到数据后我做的网络调整与亲测结论6.1 按数据对症下药的三个案例案例一Wi-Fi链路抖动高换了摆放位置就正常。当时测试数据显示本地ping网关抖动到了4ms我开始以为是路由器坏了后来发现是无线路由器放在落地柜里而且旁边就是蓝牙音箱。把路由器从柜子里挪到书架高处天线竖直展开5G信号明显好转抖动降到了1ms以内。案例二晚高峰延迟偏高启用QoS后明显缓解。这个案例就是典型的带宽拥塞。原本晚9点平均延迟55ms我路由器上把游戏设备的优先级设为最高之后延迟降到了43ms。虽然没能完全恢复到白天的36ms但抖动从18ms降到了9ms游戏体感已经从“不想玩”变成了“能打”。案例三光猫连续运行太久重启后数据恢复正常。某天游戏时延迟从40ms突然飙到120ms我排查路由器和内网都没问题最后重启光猫延迟立刻回到38ms。之后我养成了每隔一周重启一次光猫的习惯再没出现过这种情况。6.2 几个常被忽略的小调整说几个实测中对延迟稳定性有帮助但很多人不知道的小改动。网线质量值得认真对待。我这里说的不是“越贵的网线延迟越低”网线本身不会降低物理传输速度太多但劣质网线或者水晶头接触不良会导致大量重传重传多了延迟和丢包都会上来。至少用六类网线水晶头要压得紧插上去能听到明显“咔哒”声。MTU值也可以检查。MTU是单个网络数据包的最大尺寸默认通常是1500。如果数据包超过链路允许的最大值就需要拆分拆包过程本身会引入延迟。可以在命令行里测试合适的MTU值不过这个参数大多数情况下并不需要手动改只有当整条链路出现“小包正常、大包异常”的现象时才值得排查。后台程序的调度也不能忽视。Windows的系统更新、杀毒软件扫描、Steam和Epic的云同步这些任务一旦开始跑就会占用网卡带宽和CPU资源。我的习惯是打游戏之前把游戏平台之外的同步任务全部暂停从根上避免容量占满。6.3 把测试变成习惯后的一些体会数据的价值在积累不在单次。现在我已经完全依赖这套方式处理网络问题不再凭感觉判断“卡不卡”。每当有人跟我说打游戏延迟高我也不会问“你延迟多少”而是会问“是平均值高还是偶尔高”“丢包率有没有测过”“是全天候这样还是只有晚高峰这样”。这几个问题一问问题基本上就缩小到很小的范围了。延迟的问题绝大多数都能拆成三个层面本地设备层、中间链路层、服务器侧。本地设备层自己动手改中间链路层尽量排查定位服务器侧就只能根据实际情况选择更优区域节点。把这三个层面搞清楚你才能真正控制住自己的游戏延迟而不是在网络数据面前碰运气。现在每当我准备长时间玩绝地求生之前都会顺手花两分钟跑一次ping测试确认一下今天的线路状态。这个习惯养成了之后我再也没有遇到过“队友疯狂喊卡我却找不到原因”的窘境。网络数据不会骗人只会藏在你看不见的地方。
返回列表