1.
准备工作与测试原则
- 环境:一台位于中国大陆与一台在境外(如香港或日本)的测试机;或使用云/家宽多点。
- 原则:区分链路中间丢包与端到端丢包,优先用 TCP/UDP 测试补充 ICMP(因为设备可能对 ICMP 限速)。
2.
基础连通性和延迟测量(ping)
- 命令示例:ping -c 100 your.jp.server -s 56。
- 要点:记录丢包%、rtt min/avg/max;如果对端丢包高,先在本地网关和最近的运营商下一跳做 ping 检查以排除本地问题。
3.
逐跳分析(mtr / traceroute)
- 使用 mtr:mtr -rwzbc 100 your.jp.server。
- 解读:关注最后一跳的loss%(端到端)和中间跳的loss%是否同时升高;单一跳丢包但最终没有丢包往往是 ICMP 限速,不必过度惊慌。
4.
TCP 层检测(tcptraceroute / hping3 / nping)
- tcptraceroute:sudo tcptraceroute your.jp.server 443。
- hping3 示例(发送 100 个 SYN):sudo hping3 -S -p 443 -c 100 your.jp.server。
- 用途:当 ICMP 被限速时,用 TCP SYN 检测真实的 TCP 可达性与丢包。
5.
带宽与丢包的交叉验证(iperf3)
- 在目标服务器允许的情况下运行 iperf3 服务端:iperf3 -s,然后客户端:iperf3 -c your.jp.server -t 60。
- 解读:在高带宽测试中观察重传率和丢包,能判断在载荷增加时链路是否不稳定。
6.
路由可靠性与 BGP 检查
- 使用公共 BGP 查看(bgp.he.net、ris.ripe.net)或运营商 Looking Glass 查询到目标的 AS 路径。
- 要点:记录多次测试的 AS 路径是否稳定,若路由频繁变化或出现黑洞路由,说明路由策略不可靠。
7.
长期监控与自动化脚本
- 示例脚本(bash)每小时执行 mtr 和 iperf,结果写入日志并生成图表(可用 Prometheus + Grafana)。
- 建议:至少连续 24-72 小时监测,不同时间段(高峰/低峰)对比结果。
8.
判断丢包来源的排查流程
- 步骤:先本地网关→上游运营商下一跳→边界路由器→目标,每步用 ping/mtr 确认。
- 注意:若中间跳显示丢包但最终无影响,多为 ICMP 限速;若最终有丢包且 TCP 重传显著,则为真实丢包。
9.
与运营商/机房沟通的证据准备
- 准备:mtr/traceroute 输出、hping3/iperf3 原始日志、时间戳与样本网段、BGP 路由快照。
- 建议:提交时标明测试时间窗、客户端公网 IP 与测试命令,便于运营商定位链路或路由策略问题。
10.
问:如何区分中间节点丢包与端到端丢包?
- 答:看最后一跳的丢包率和 TCP 测试结果。如果中间跳显示丢包但最后一跳丢包为0且 TCP/应用层正常,多为 ICMP 限速;若最后一跳也丢包或 TCP 重传高,则为真实端到端丢包。
11.
问:CN2 路由特性会影响测试结果吗?
- 答:会。CN2 是运营商内部优先级网络,可能存在分流、备份链路或对 ICMP 限速。建议用 TCP/UDP 测试补充 ICMP,并通过 BGP/Looking Glass 验证 AS 路径是否始终走 CN2。
12.
问:常用测试周期和样本量是多少才可靠?
- 答:单次短测只能作初步判断。建议每次测试至少 100 个包或 60 秒以上的持续测试,并在不同时间段连续监测 24-72 小时,结合 iperf3 在高流量下的表现以得出稳健结论。
来源:如何通过测试验证日本 服务器 cn2 的丢包率和路由可靠性