
目标:评估香港 CN2 9区 链路在不同时间段的吞吐量稳定性、往返时延分布、丢包率与抖动(jitter)。
范围:面向从内网/云主机到香港 CN2 9区的单跳或多跳路径,包含 TCP/UDP 测试与路径追踪。
工具:iperf3(吞吐量)、mtr(混合 RTT+丢包)、ping(简单丢包和延迟)、tcpdump(抓包)、speedtest-cli(参考)、traceroute/tcptraceroute。
环境:至少一台测试客户端(Linux 推荐)、目标香港 CN2 9区测试服务器或 VPS(允许 iperf3 服务端与 ICMP)。确保防火墙放行相应端口(iperf3 默认 5201/TCP,UDP 时同端口)。
安装:Ubuntu/Debian:apt update && apt install -y iperf3;CentOS:yum install -y iperf3(或源码编译)。
启动:以后台服务方式运行:iperf3 -s -D (或 screen/tmux 中运行 iperf3 -s)。确认端口监听:ss -ltnp | grep 5201。
命令示例(单流长时长,避免短时 ramp-up):iperf3 -c
说明:-t 600 表示持续 10 分钟,-i 10 每 10 秒报告一次,-P 并发流数。为了评估稳定性,建议做两组:单流(-P 1)和并发 8 流(-P 8),分别在高峰/低峰各跑 3 次。
命令示例:iperf3 -c
说明:UDP 模式下服务器会返回丢包与抖动(jitter)统计。测试时调整带宽(-b)接近链路速率或设为目标业务带宽,连续 5 分钟以上以统计稳定性。
ping 长样本:ping -c 1000 -s 1400
MTR 深入路径:mtr -rwzbc 1000
抓包(必要时):tcpdump -i eth0 host
分析:使用 Wireshark 打开 pcap,统计重传、Out-of-Order、ICMP unreachable 等异常;通过 tshark+awk 批量提取 RTT/seq 信息。
关键指标:平均吞吐量(Mean)、标准差(StdDev)、峰值/谷值、CV(Coeff of Variation = StdDev/Mean)、丢包率(丢包包数/总包数)、99 百分位延迟。
示例脚本片段(Linux shell):iperf3 -c $S -t 300 -i 10 -J | jq '.end.sum_received.bits_per_second' 获取比特率;通过多次采样写入 CSV,然后用 awk 计算 mean/stddev。
丢包率参考:<0.1% 几乎无影响;0.1%–1% 轻微影响;1%–3% 需要关注(实时业务受影响);>3% 严重影响。
吞吐量稳定性:CV < 0.1 为较稳定,0.1–0.25 为中等波动,>0.25 为明显不稳定。UDP 抖动(jitter)应小于 30ms 对实时语音和视频较好。
误区:短时测试(如 10 秒)容易被 TCP 慢启动或瞬时排队影响,请使用长时测试并多时段采样。
网络层面:ICMP 被限速/过滤会让 ping/mtr 结果失真;应结合 TCP/UDP 测试与抓包进行综合判断。
示例呈现方法:将每次测试生成的 CSV 汇总,列:timestamp, direction, bandwidth_Mbps, jitter_ms, loss_pct, rtt_ms。绘图建议使用 Excel 或 Python matplotlib 绘制时间序列和 CDF。
报告要点:给出测试时间、节点 IP、iperf 参数、样本数量、平均/99%/最大值、丢包率与结论(是否满足 SLA)。
问:如果我在香港 CN2 9区 看到间歇性 1% 丢包,如何定位是本地机房、运营商还是目标侧问题?
答:先使用 mtr 多点采样(不同时间段、不同源 IP)判断丢包点;若 mtr 显示某跳别处丢包高,说明中间路由问题;同时在同机房不同实例间交叉测试以排除本地宿主机或虚拟化限速,再抓包确认是否为链路丢包或上游丢包。
问:如何根据实测数据判断波动是否影响生产业务(如游戏、视频)?
答:结合业务需求阈值判断:实时语音/视频关注丢包与抖动(丢包>1% 或 jitter>30ms 可能影响体验);大文件/下载关注平均带宽与 CV(CV>0.2 会出现速度感知波动)。用 99 百分位延迟与丢包率作为最终 SLA 判定指标。
问:不同时间、不同并发得到的结果差别很大,我应如何继续排查?
答:建议按步骤排查:1)固定时间段内多次重复测试以获得统计显著性;2)切换到 TCP/UDP/不同并发对比;3)抓取流量与路由(tcpdump + traceroute);4)联系提供商获取骨干侧流量或维护窗口信息;必要时把抓包与 mtr 结果交给运营商做协查。