
一、为什么丢包不高也会卡很多人只看丢包率丢包率 0% 平均延迟 35ms 所以网络应该没问题但实时业务看的是连续性。比如下面两条链路指标链路 A链路 B平均延迟40ms45ms丢包率0%0%最大延迟55ms850ms抖动8ms220ms如果只看平均延迟两条链路差不多。但实际体验上链路 B 会明显卡顿。远程桌面会突然停一下会议声音会断一截游戏角色会瞬移。所以实时网络排查要重点看平均延迟最大延迟P95 延迟抖动连续异常次数上行是否被占满Wi-Fi 是否有干扰稳如狗网络这类工具在做体验优化时也会关注这些“平均值之外”的指标因为真正影响体感的往往不是平均值而是长尾和波动。二、第一步用 ping 看连续延迟波动Windowsping 223.5.5.5-n 100 ping 1.1.1.1-n 100Linux/macOSping-c100223.5.5.5ping-c1001.1.1.1重点不要只看最后的平均值而要观察中间是否出现这种情况来自 223.5.5.5 的回复: 字节32 时间18ms TTL56 来自 223.5.5.5 的回复: 字节32 时间20ms TTL56 来自 223.5.5.5 的回复: 字节32 时间421ms TTL56 来自 223.5.5.5 的回复: 字节32 时间19ms TTL56 来自 223.5.5.5 的回复: 字节32 时间688ms TTL56如果 100 次里偶尔出现几次 300ms、500ms、1000ms这种抖动就足够让远程桌面和会议产生明显卡顿。三、PowerShell 脚本统计平均值、最大值和抖动手动看 ping 输出比较累可以用 PowerShell 做一个简单统计。文件名jitter_probe.ps1param([string]$Target223.5.5.5,[int]$Count 100)$latencies ()$lost 0for($i 1;$i-le$Count;$i){$resultTest-Connection-ComputerName$Target-Count 1-ErrorAction SilentlyContinueif($result){$latencies[double]$result.ResponseTimeWrite-Host({0}/{1} {2} ms-f$i,$Count,$result.ResponseTime)}else{$lostWrite-Host({0}/{1} timeout-f$i,$Count)}Start-Sleep-Milliseconds 300}if($latencies.Count-gt0){$avg($latencies|Measure-Object-Average).Average$max($latencies|Measure-Object-Maximum).Maximum$min($latencies|Measure-Object-Minimum).Minimum$jitter$max-$min$lossRate[math]::Round($lost/$Count*100,2)Write-HostWrite-HostTarget:$TargetWrite-HostAvg:$([math]::Round($avg,2)) msWrite-HostMin:$minmsWrite-HostMax:$maxmsWrite-HostJitter:$jittermsWrite-HostLoss:$lossRate%}运行powershell-ExecutionPolicy Bypass-File.\jitter_probe.ps1-Target www.wenrugou.net-Count 100可以按下面标准粗略判断抖动范围体感0-20ms通常比较稳定20-50ms会议和远程桌面可能偶尔感觉不顺50-150ms实时业务明显受影响150ms 以上很容易卡顿、断音、画面停顿四、第二步判断是本地网络还是外部链路建议同时测三个目标powershell-ExecutionPolicy Bypass-File.\jitter_probe.ps1-Target 192.168.1.1-Count 100 powershell-ExecutionPolicy Bypass-File.\jitter_probe.ps1-Target 223.5.5.5-Count 100 powershell-ExecutionPolicy Bypass-File.\jitter_probe.ps1-Target 1.1.1.1-Count 100判断思路现象可能原因ping 路由器都抖本地 Wi-Fi、网卡、路由器负载问题ping 路由器稳公网 IP 抖宽带出口、运营商路径或上行拥塞国内 DNS 稳海外 DNS 抖跨境路径或国际出口波动所有目标都偶发超时本机、路由器、Wi-Fi 干扰或局域网拥塞这个步骤很关键因为很多人一上来怀疑远端服务其实问题可能就在本地无线网络。五、第三步检查 Wi-Fi 干扰如果你用的是 Wi-Fi实时业务卡顿很常见。Windows 可以先看无线信息netsh wlan show interfaces关注Signal Radio type Channel Receive rate Transmit rate如果信号低、速率忽高忽低或者 2.4GHz 信道很拥挤就容易出现短时间抖动。也可以查看附近无线网络netsh wlan show networks modebssid常见优化方法尽量使用 5GHz 或 6GHz。远程桌面、会议、游戏尽量接网线。避免路由器旁边放蓝牙音箱、微波炉、大功率电器。不要让路由器长期高负载跑下载任务。2.4GHz 尽量使用 1、6、11 这类常见非重叠信道。如果 ping 路由器都有明显抖动优先解决 Wi-Fi而不是继续折腾远端线路。六、第四步排查上行被占满实时业务很怕上行拥塞。很多家庭宽带下行很高上行却不高。一旦有人上传文件、同步网盘、开直播、跑备份会议和远程桌面就可能明显卡。Windows 可以看当前连接Get-NetTCPConnection|Group-ObjectState|Sort-ObjectCount-Descending也可以查看网络适配器流量Get-Counter\Network Interface(*)\Bytes Sent/secGet-Counter\Network Interface(*)\Bytes Received/sec如果你怀疑后台程序占用上行可以打开资源监视器resmon进入“网络”标签看哪个进程正在大量发送数据。建议排查时先关闭云盘同步自动备份P2P 下载系统更新大文件上传直播推流然后重新测试远程桌面或会议。如果卡顿明显减少就说明问题可能和上行拥塞有关。七、第五步用 pathping 看路径丢包Windows 上pathping比普通tracert多了统计信息。pathping 1.1.1.1它会先探测路径再统计每一跳的丢包情况。需要注意中间节点丢包不一定是真丢包。 很多路由器会限制 ICMP 响应。 如果最后一跳没有丢包中间某一跳显示丢包不能直接判定故障。更值得关注的是最后一跳是否丢包。某一跳之后所有节点都开始丢包。延迟是否从某一跳开始明显升高。同一时间段重复测试结果是否一致。八、Linux/macOS用 mtr 看连续路径质量如果你在 Linux 或 macOS 上可以用mtrmtr-rwzc1001.1.1.1mtr-rwzc100www.wenrugou.net关注字段字段含义Loss%丢包率Avg平均延迟Wrst最大延迟StDev延迟波动如果终点 Loss% 为 0但中间某一跳 Loss% 很高可能只是中间设备不愿意回复 ICMP。如果终点也有 Loss%并且 Wrst、StDev 很高就要重点关注。九、实时业务的排障顺序遇到远程桌面、会议、语音卡顿可以按这个顺序1. ping 路由器看本地 Wi-Fi 是否抖 2. ping 国内 DNS看宽带出口是否稳定 3. ping 海外目标看跨境路径是否抖 4. 用 PowerShell 脚本统计最大延迟和抖动 5. 检查是否有人上传、同步、下载 6. 用 pathping 或 mtr 看路径质量 7. 切换有线网络再次对比 8. 换时间段测试判断是否高峰期问题 9. 记录结果而不是只凭感觉判断建议记录模板time,network,target,avg_ms,max_ms,jitter_ms,loss_percent,note 10:00,wifi,router,2,18,16,0,normal 10:05,wifi,public_dns,28,620,592,0,spike 10:10,ethernet,public_dns,24,48,24,0,better只要有了这些数据就能很快判断是 Wi-Fi 问题 是上行拥塞 是运营商出口波动 还是远端路径质量差十、总结实时网络问题不能只看丢包率也不能只看平均 Ping。真正影响体感的往往是最大延迟、P95 延迟、抖动和短时间队列拥塞。排查时先从本地开始再逐步向外扩展路由器、宽带出口、跨境路径、远端服务。这样能避免把所有问题都归因到“服务器慢”或“网络玄学”。稳如狗网络在这类场景下的思路也类似先关注连续性和稳定性再看峰值。对远程桌面、会议、语音、游戏这些实时业务来说稳定比瞬时速度更重要。参考资料稳如狗网络工具箱https://www.wenrugou.net/toolsiperf3 官方文档https://iperf.fr/MTR 项目说明https://www.bitwizard.nl/mtr/