1.
准备与目标定义
首先明确评估目标:要比较的是“从美国不同 ISP 到中国 CN2 出口的端到端延迟/丢包/吞吐的贡献”,并区分最后一公里(家庭/办公室链路)、美国骨干、海缆与 CN2 国内段。准备工作包括:列出要测试的美国 ISP(如 Comcast、AT&T、Verizon、Charter 等)、准备至少一个在 CN2 网络内可控的测试目标(VPS 或你能访问的 CN2 机房服务器),并在测试前记录时间窗口(高峰/非高峰)。
2.
所需工具与账号
常用工具:ping、mtr(或 WinMTR)、traceroute(paris-traceroute 更佳)、tcptraceroute、iperf3、speedtest-cli、curl(测试 HTTP)、SSH(远程控制)。还需访问 BGP Looking Glass(中国电信/Level3 等)和 bgp.he.net 等公开 BGP 查询站点。建议准备一台在不同 ISP 下上网的终端(或多台),以及一台或多台 CN2 内的服务器做 iperf3 server。
3.
构建测试拓扑
为了排除混淆,把测试拓扑明确化:Client(美国ISP A) → 本地路由器 → 本地ISP骨干 → 海缆/互联 → CN2出口 → CN2机房目标。用图形或表格列出每次测试的 ISP、测试时间、客户端公网 IP、目标 IP、目标 AS(whois/AS查找)。
4.
基础连通性与路由采样
先做 traceroute(推荐 paris-traceroute 或 tcptraceroute 指定 TCP 80/443 端口以模拟实际流量),命令示例:paris-traceroute -T -p 443 target_ip 或 tcptraceroute target_ip 443。记录每跳的 RTT、AS 与地理信息。重复 3 次以上,改变时间点以观察路径稳定性与负载均衡现象。
5.
使用 MTR 做丢包与延迟统计
MTR 可同时给出每跳丢包率与延迟分布:mtr -rwzbc 100 target_ip (-r 报告、-w 宽格式、-z 排序、-b 显示字节、-c 指定样本数)。把结果保存为 CSV 或文本,重点观察在某一跳后的 RTT 跃迁(如某跳延迟为 20ms,下一跳跳到 150ms,则跃迁点可能在该链路/AS 之间)。
6.
带宽测试:iperf3 与 Speedtest
在 CN2 机房启动 iperf3 服务端:iperf3 -s。客户端(美国)运行:iperf3 -c target_ip -P 4 -t 60 -R(反向测试)以测出 TCP 吞吐。也可使用 speedtest-cli 指定靠近 CN2 的服务器。对比不同 ISP 得到的平均吞吐、抖动和重传率。
7.
如何归因:定位问题域
结合 traceroute/mtr/iperf 结果:若 RTT 或丢包在某 AS 较高且在该 AS 内持续,则该 AS(或其上游)贡献较大;若延迟在美国境内就跳高,则美国 ISP 或海缆问题;若跳高发生在 CN2 接入前的跨境链路,则可能是海缆/互联点导致。用 BGP Looking Glass 查询各 AS 间的路由选择以确认路径。
8.
使用 BGP 与 Looking Glass 验证路径
到 CN2 的 BGP 路由信息可以在 bgp.he.net/各 ISP LG 上查询:查看 AS_Path、next-hop、prefix origin。若不同 ISP 到 CN2 的 AS_Path 不同,记录路径并对照 traceroute 的 hop IP/AS,从而确定哪一段的延迟贡献最大。
9.
长期与自动化测试脚本
建议写脚本定时采集数据(cron + mtr/iperf3/ping),示例简易脚本片段:for ip in target_list; do mtr -r -c 100 $ip >> results/$ip-$(date +%s).log; iperf3 -c $ip -t 30 -J >> results/iperf_$ip.json; done。长时间数据可用于绘制时间序列,识别高峰时段与持续性瓶颈。
10.
数据分析与判定准则
用统计方法:取多次测试的中位数和 95 百分位延迟;若不同 ISP 在同一时间对同一 CN2 目标的中位 RTT 存在显著差异(如 >20-30ms),且 traceroute 显示差异发生在美国段或海缆段,则可判定美国 ISP 的贡献明显。若差异来自 CN2 入口之后,则是 CN2/中国端问题。
11.
避免误判的注意事项
考虑反向路径(你测到的路由不一定与返回路由相同)、负载均衡导致的跳数/RTT波动、不同协议(ICMP/TCP)响应优先级不同。使用 TCP 端口 traceroute 与 iperf 能更接近真实应用流量。
12.
问:如何用 traceroute 判定是哪个 ISP 导致延迟高?
问:我用 traceroute 看到某跳 RTT 大增,如何判断是哪个 ISP 导致的?
答:先把该跳的 IP 反查 AS(whois 或 bgp.he.net),确认该 IP 属于哪个 ISP;然后看大增是发生在该 AS 内(后续跳仍高)还是在该跳与上一跳所属 AS 之间(跨 AS 链路)。若后续跳恢复正常,则可能是该跳设备对 ICMP 响应慢,不一定影响真实流量,需用 tcp-traceroute 或 iperf 验证。
13.
问:如何区分最后一公里与上游骨干问题?
问:如果用户测速慢,怎么判断是本地 ISP 还是上游骨干/海缆问题?
答:先在同一物理位置更换不同接入方式(如手机热点与家庭宽带)做对比;若不同接入方式结果一致,问题多在上游/海缆或目标端;若仅某一接入慢,则为最后一公里或本地 ISP 问题。结合 traceroute 看本地网关到第一个 ISP 跳的延迟与丢包可进一步确认。
14.
问:常见误区与实践建议
问:在实际测评过程中有哪些容易犯的错误?
答:常见误区包括只做一次测试、只用 ICMP 判定实际 TCP 性能、忽略峰谷时段和负载均衡。实践建议是:多次时段化测试、使用 TCP 端口的 traceroute、结合 iperf3 做吞吐测试并使用 BGP/Looking Glass 验证路由路径,从而更准确地评估各 ISP 对 CN2 线路速度的实际贡献。
来源:如何评估不同ISP对美国cn2线路速度 的实际贡献