Win11(192.168.x外部电脑)测试TCP丢包,4套方案(按推荐优先级排序)
目标:
172.16.62.60虚拟机,全部走纯TCP流量,不受ICMP被网关拦截影响,适配你的5G专网场景。
✅ 方案1:iperf3(首选,直接统计TCP重传,最权威)
原理:两端建立TCP长连接,持续传输数据,直接输出TCP重传次数,重传>0=真实TCP丢包。
- 在远端虚拟机
172.16.62.60(Linux)启动服务端:
iperf3 -s
默认监听TCP 5201端口,虚拟机防火墙放行5201端口 2. Win11电脑下载Windows版iperf3,CMD执行客户端测试,持续60秒:
iperf3.exe -c 172.16.62.60 -t 60
看输出里的
Retransmits,只要这个数字持续增加,就代表TCP报文丢失、触发重传。-t 60:测试时长60秒,可以改成-t 300做5分钟长时间压力测试,模拟业务长连接。
补充:5G无线容易单向丢包,增加
-R反向测试,测试上行方向TCP质量
iperf3.exe -c 172.16.62.60 -t 60 -R
✅ 方案2:微软PsPing(Sysinternals,微软官方工具,不用装复杂软件)
PsPing是微软工具,可以TCP模式做长探测,统计TCP时延、超时,不是ICMP ping。 下载:微软Sysinternals官网 psping.exe
:: TCP探测目标业务端口(比如业务端口8080,改成你实际业务端口)
psping 172.16.62.60:8080 -n 1000
-n 1000:发送1000次TCP连接探测- 输出里的丢包是TCP层面连接失败/超时,不受ICMP策略影响。
注意:PsPing的TCP模式是短连接探测;如果要看长连接数据传输丢包,优先iperf3。
✅ 方案3:Wireshark抓包(最底层,定位重传发生在哪一侧)
Win11上安装Wireshark,选择网卡,设置过滤:
ip.addr == 172.16.62.60 and tcp
抓包观察:
[TCP Retransmission]:TCP重传包,确认报文丢失[Dup ACK]:重复ACK,接收方没有收到数据包,触发快速重传适合故障复现时抓包,用来区分:是Win11发出去就丢,还是回程报文在5G网关丢失。
✅ 方案4:Windows内置 pktmon(不用装任何软件,Win11自带)
微软原生数据包监控,可直接查看本机网卡的TCP丢包原因,适合快速排查Windows协议栈侧丢包:
# 管理员CMD,启动捕获,过滤目标IP
pktmon filter add -ip 172.16.62.60
pktmon start --capture
测试完成后停止捕获,查看丢包统计
pktmon stop
pktmon format PktMon.etl -o pktlog.txt
❗ 避坑重点(适配你的5G场景)
- tcping 只能测端口连通性,不能测数据传输过程中的TCP丢包,只能看端口通不通,不能检测传输中途报文丢失。
- WinMTR / pathping / ping 全部基于ICMP,10.5.1.1网关会拦截ICMP,测出来的丢包是假的,不能用来判断TCP业务。
- 5G链路有单向丢包特性:下行正常、上行丢包。iperf3 加
-R反向测试,单独测试上行方向。
推荐现场操作顺序
- 优先iperf3跑长时间测试,看
Retransmits,判断是否存在TCP重传(真实TCP丢包) - 如果有重传,用Wireshark在Win11抓包,同时在虚拟机宿主机tcpdump双向抓包,定位丢包是在5G链路还是内网。
- 只有业务端口连通性验证场景,才用PsPing。
业务模拟小建议
iperf是满压测试;如果你的业务是低速率长连接(工控/物联网类),可以限制带宽,更贴近真实业务流量:
iperf3.exe -c 172.16.62.60 -t 300 -b 10M
-b 10M限制带宽10M,模拟业务流量,避免压满链路。