延迟基线会漂:海外服务器地区选择的时间维度实测(同一测点 21 天、9 个地区、三轮采样)
Meta Description: 2026 海外服务器延迟漂移实测:同一测点 21 天采样,东京 5 周只变 +0.
- 先说结论:地区延迟表是一张会过期的照片
- 测量口径:为什么这组数字可以和 21 天前的数字对比
- 第一层漂移:同一天三轮之间,差多少算噪声
- 新加坡的 15%:把「变远」和「排队」拆开
- 21 天序列:把同一测点的 20 次记录排成一行
- 四种漂移形态:为什么「涨了多少」这句话经常没有信息量
- 异常日与回弹:阶跃不一定永久
- 排序稳不稳:稳定的是「层」,不是「名次」
Meta Description: 2026 海外服务器延迟漂移实测:同一测点 21 天采样,东京 5 周只变 +0.2%,新加坡涨 15%、法兰克福 +6.6%;附四种漂移形态、3% 与 10% 判读阈值和可复现复测协议。
关键词:海外服务器延迟漂移、延迟基线、复测协议、测速误差、地区选择、新加坡延迟、东京延迟、ICMP 与 TCP 差异
一、先说结论:地区延迟表是一张会过期的照片
打开任何一篇「海外服务器地区延迟对比」,你看到的都是一张表:东京 108 ms、新加坡 165 ms、法兰克福 151 ms。这张表看起来像物理常数,实际上是某台机器在某一天的某一小时拍下的一张照片。本文要回答的问题不是「哪个地区快」,而是:同一张表,隔一周、隔一个月再拍一次,会变成什么样?哪些数字可以拿来决策,哪些数字只是当天的天气?
2026 年 10 月 23 日,我们用一台固定测点(美国加州 38.55.134.58)对 9 个地区做了三轮采样(每轮每地区 20 个 ICMP 包 + 5 次 TCP 443 握手),并把本站 9 月 16 日至 10 月 15 日期间同一测点、同一地区、同样 20 包口径的 20 次历史记录排成一条时间序列,一共得到 18 个可比的采样日。五个维度上的结论如下:
- 同一天三轮之间,噪声并不均匀:伦敦三轮均值只差 0.03 ms(0.02%),而新加坡差 16.7 ms(9.0%)、首尔差 6.4 ms(4.8%)。用「跑一次 ping 得到的平均值」判断 10 ms 级的优劣,本身就不成立。
- 新加坡今天 190.5 ms,比它自己 21 天的中位数 165.6 ms 高 15.0%——但其中一半不是路径问题:同一批包的最小值 175.7 ms 只比历史最小值高 7.6%,三轮最小值彼此只差 0.3 ms。剩下 8 个百分点是排队(队列延迟),不是「新加坡变远了」。
- 五个星期里,东京从 107.6 ms 到 108.1 ms(+0.2%),伦敦 -3.1%,几乎是原地不动;芝加哥 -7.3%、法兰克福 +6.6%、新加坡 +15.0% 则真的换了档。 同一个「海外服务器」市场里,有的地区延迟是常数,有的地区延迟是变量。
- 排序的稳定性只到「层」为止:18 次采样里东京永远是第 1、新加坡永远是最后,但首尔、伦敦、悉尼三地在第 2–4 名之间来回换位——因为它们的差距(0.4–4 ms)小于单日漂移(最高 9 ms)。
- 所以「一次测速的有效期」是有刻度的:小于 3% 的差距只有当天的意义,3%–10% 的差距需要连续三天复测,超过 10% 的变化先怀疑测点或异常日,而不是先怀疑地区。
需要先把视角钉死:本文全部数据是「从美国西海岸向东/向西看」的一个方向,它说明的是「延迟这个量怎么随时间变」,不能拿来当中国大陆用户的地区排名——那个问题要用大陆或目标市场的测点重测(第八节和第十四节会讲怎么迁移这套方法)。本文也不重新论证「哪个地区适合什么业务」,那部分留给文末的相关阅读。
二、测量口径:为什么这组数字可以和 21 天前的数字对比
延迟实测最常见的失败不是测不准,而是两次测的不是同一件事:换了机器、换了目标 IP、换了时段、换了 ping 参数,然后拿两组不可比的数字算「涨了还是跌了」。所以先把口径固定下来。
2.1 测点、时间与命令
| 项目 | 本次取值 | 为什么这样定 |
|---|---|---|
| 测点 | 38.55.134.58(美国加州,PEG TECH 段) | 与 9–10 月多篇实测同一台机器,可与历史记录直接拼接 |
| 采样窗口 | 2026-10-23 06:12–06:19 UTC(当地 23:12–23:19) | 与历史记录的采集时段同属该节点低峰(当地深夜) |
| 轮次 | 3 轮,轮间隔约 130 秒 | 同一小时内的短间隔重复,用于测量「分钟级噪声」 |
| ICMP | ping -c 20 -i 0.2 -W 2,目标用固定 IP | 20 包足以算中位数与离散度,0.2 s 间隔不会触发限速 |
| TCP | 到 443 端口连 5 次取中位数 | ICMP 被限速时仍能测通;TCP 握手约等于 1 个 RTT |
| 负载 | 采样期间无并发任务,无备份/同步作业 | 出口排队会污染所有目标,尤其是远端 |
| 历史序列 | 2026-09-16 至 2026-10-15,20 个采样日 | 同测点、同地区集合、同为 20 包口径 |
2.2 目标清单:只用厂商官方测速主机,固定 IP 反复测
| 地区 | 目标主机 | IP(本次固定) | 运营方 | 备注 |
|---|---|---|---|---|
| 洛杉矶 | lax-ca-us-ping.vultr.com | 108.61.219.200 | Vultr | 同城/近城基线 |
| 芝加哥 | il-us-ping.vultr.com | 107.191.51.12 | Vultr | 美中 |
| 新泽西 | nj-us-ping.vultr.com | 108.61.149.182 | Vultr | 美东 |
| 东京 | hnd-jp-ping.vultr.com | 108.61.201.151 | Vultr | 亚太主枢纽 |
| 首尔 | sel-kor-ping.vultr.com | 141.164.34.61 | Vultr | 亚太次枢纽 |
| 悉尼 | syd-au-ping.vultr.com | 108.61.212.117 | Vultr | 南半球 |
| 伦敦 | lon-gb-ping.vultr.com | 108.61.196.101 | Vultr | 欧洲西 |
| 法兰克福 | fra-de-ping.vultr.com | 108.61.210.117 | Vultr | 欧洲中 |
| 新加坡 | sgp-ping.vultr.com | 45.32.100.168 | Vultr | 东南亚 |
为什么把域名解析成 IP 之后就固定用 IP?因为同一个域名在不同时刻可能解析到不同机器——本文第九节用 AWS S3 端点做了三次解析,30 秒内拿到三个不同 IP。如果你的脚本每轮都重新解析域名,你实际上是在对不同的机器做平均,漂移里就混进了「换了台机器」这个变量。
2.3 三个指标各自回答什么问题
| 指标 | 来源 | 回答的问题 | 会被什么污染 |
|---|---|---|---|
| avg(均值) | ping 汇总行 | 「这一轮整体体验」 | 队列排队、单包尖峰、末尾重传 |
| min(最小值) | ping 汇总行 | 「这条路径的地板在哪里」 | 几乎不受排队影响,最接近物理路径 |
| mdev | ping 汇总行 | 抖动大小(iputils 里是标准差) | 一次尖峰就能把它抬起来 |
| TCP 中位数 | 5 次握手取中位 | 真实建连成本,绕开 ICMP 限速 | SYN 队列、SYN cookie 限速 |
min 与 avg 的差值,是本文最重要的一把尺子:它把「路径变远了」和「路径上堵了」分开。第五节的对比表会看到,新加坡的 avg 漂了 +15%,但 min 只漂了 +7.6%。
2.4 必须说明的局限
- 单测点、单方向。从美西看东京 108 ms,从上海看东京是另一个数量级。本文所有绝对值只在这个方向上有意义。
- ICMP 不是业务流量。路由器对 ICMP 的控制面处理优先级低于转发面,
ping的绝对值可能比真实 TCP 往返高或低 5–10 ms(本次伦敦就是 TCP 133.5 ms < ICMP 139.1 ms,新加坡相反)。 - 历史记录的 ping 间隔在
-i 0.2与-i 0.3之间变过。这对均值影响可忽略(同一路径),但意味着历史序列不是严格的同参数实验,本文只用它看趋势,不用它做小数点后的比较。 - 历史序列里有一天是不可用的(9 月 16 日整轮偏高 10%–18%,同一天洛杉矶还出现 5% 丢包)。本文保留它并在第七节单独分析——异常日怎么处理,本身就是复测协议的一部分。
三、第一层漂移:同一天三轮之间,差多少算噪声
三轮之间的差异,是你能观察到的最小时间尺度上的漂移。它主要由两件事决定:路径上的排队,以及单包尖峰。
| 地区 | 第 1 轮均值 | 第 2 轮均值 | 第 3 轮均值 | 轮间极差(ms) | 轮间极差(%) | 丢包(三轮) | mdev 范围 |
|---|---|---|---|---|---|---|---|
| 洛杉矶 | 10.43 | 10.32 | 10.30 | 0.13 | 1.2% | 0/0/0 | 0.29–0.64 |
| 芝加哥 | 48.05 | 48.09 | 48.35 | 0.30 | 0.6% | 0/0/5% | 0.58–1.30 |
| 新泽西 | 65.36 | 64.58 | 64.66 | 0.78 | 1.2% | 0/0/0 | 0.35–3.76 |
| 东京 | 108.73 | 108.05 | 107.90 | 0.83 | 0.8% | 0/0/5% | 0.39–1.38 |
| 首尔 | 132.81 | 139.23 | 137.32 | 6.41 | 4.8% | 0/0/0 | 0.24–4.74 |
| 悉尼 | 148.54 | 148.38 | 148.68 | 0.30 | 0.2% | 0/0/0 | 0.15–0.90 |
| 伦敦 | 139.09 | 139.11 | 139.08 | 0.03 | 0.02% | 0/0/5% | 0.26–0.55 |
| 法兰克福 | 161.03 | 161.20 | 160.99 | 0.21 | 0.13% | 0/0/0 | 0.46–1.15 |
| 新加坡 | 203.38 | 190.47 | 186.65 | 16.72 | 9.0% | 0/0/10% | 11.44–27.37 |
这张表最值得看的是两端。伦敦三轮均值是 139.09 / 139.11 / 139.08,差 0.03 ms——相当于六个小时内这条路径的几何形状没有任何变化,可变的部分只有微秒级的调度。而新加坡三轮 203.38 / 190.47 / 186.65,差 16.7 ms,比很多地区之间的真实差距(伦敦 vs 法兰克福 12 ms)还大。
如果只看均值,你会得出「新加坡三轮内自己就变慢了 9%」这种荒谬结论。真相是三轮的最小值分别是 176.008 / 175.708 / 175.877 ms,彼此只差 0.3 ms:路径的地板一动不动,动的是路径上的队列有多满。第三轮的 20 个包里丢了 2 个(10%),平均值反而最低——因为丢的那两个正好是排队最久的包,它们从平均里被剔除了。
3.1 单包尖峰:一个包能把均值抬高 6 ms
首尔的第二轮均值 139.23 ms 比第一轮高 6.4 ms,看上去像「首尔变慢了」。但看 mdev(0.24 / 4.74 / 0.38)和最大值(152.99 ms)就知道:这是一个包的尖峰。20 个包里有 19 个都在 132.6–137.1 ms 之间,一个包慢到 153 ms,均值就被抬高 6 ms 左右。
这就是为什么「跑一次 ping」永远不该用均值做 10 ms 级的比较:样本量 20 的时候,单个异常样本能贡献 5% 的均值偏移,而它可能只是一次路由器的软件中断抖动。
四、新加坡的 15%:把「变远」和「排队」拆开
新加坡是本文最有教学价值的一个样本,因为它同时踩了两个坑:真实路径变化,以及严重的队列延迟。
| 轮次 | 20 包最小值 | 20 包均值 | 20 包最大值 | mdev | 丢包 | TCP 443 中位数 | 输出里的 pipe 标记 |
|---|---|---|---|---|---|---|---|
| 第 1 轮 | 176.01 | 203.38 | 299.59 | 27.37 | 0% | 220.7 | pipe 2 |
| 第 2 轮 | 175.71 | 190.47 | 239.48 | 16.50 | 0% | 226.8 | pipe 2 |
| 第 3 轮 | 175.88 | 186.65 | 225.52 | 11.44 | 10% | 193.6 | pipe 2 |
三个细节值得单独解释:
ping输出末尾的pipe 2。iputils 的 ping 在收包时会统计「同时在途的重复应答数」,pipe 2意味着内核在等第二个回复的时候第一个还没处理完——说白了就是包在路上排队了。九地区里只有新加坡三轮全部出现pipe 2,其他地区一次都没有。这不是玄学指标,它是队列存在的直接证据。- 最大值 299.59 ms 是均值的 1.6 倍。如果是路径变远,所有包会一起平移(max 与 min 同比例上升);新加坡是 min 不动、max 暴涨,这是典型的bufferbloat(缓冲区膨胀):链路上的缓冲区被填满,后面的包要等前面的排完。
- TCP 比 ICMP 更差。TCP 443 的 5 次握手取中位数是 220.7 / 226.8 / 193.6 ms,比同轮的 ICMP 均值高 17–40 ms。SYN 包排在同一个队列里,而且它没有 ICMP 那样的优先处理。
所以正确的表述不是「新加坡变慢 15%」,而是:新加坡这条路径的地板从 163 ms 抬到了 175 ms(+7.6%,真实变化),而它上面的队列从「基本不存在」变成了「常态存在 10–25 ms」(+8 个百分点,容量与拥塞问题)。
这两种变化对应完全不同的应对:
| 观察到的现象 | 归因 | 该做什么 |
|---|---|---|
| min 与 avg 同步上升 | 路径变了(绕行、上游切换) | 换机房、换上游,或接受新基线 |
| min 稳定、avg 与 max 上抬 | 队列/拥塞,路径未变 | 加带宽、换时段、上 BBR、或把业务挪到低峰 |
| min 与 avg 都不动、只丢包 | 限速或链路错误 | 查 ICMP 限速、查 CRC 错误 |
| 单轮一个包尖峰 | 控制面抖动 | 忽略,用中位数而不是均值 |
五、21 天序列:把同一测点的 20 次记录排成一行
分钟级噪声可以靠多轮平均掉;真正影响决策的是跨周、跨月的漂移。下表是 9 月 16 日至 10 月 23 日、同一测点对同一批地区的 ICMP 均值(单位 ms,空表示当天该地区未采样)。
| 日期 | 芝加哥 | 新泽西 | 东京 | 首尔 | 悉尼 | 伦敦 | 法兰克福 | 新加坡 |
|---|---|---|---|---|---|---|---|---|
| 09-16 | — | — | 126.30 | 144.50 | — | 157.00 | 170.80 | 183.30 |
| 09-17 | 51.90 | — | 107.50 | 128.50 | 142.60 | 143.40 | 149.20 | 164.20 |
| 09-18 | 54.15 | — | 107.31 | 134.92 | 143.06 | 143.50 | 149.34 | 169.32 |
| 09-19 | 51.70 | — | 109.66 | — | — | 143.51 | 149.81 | 164.50 |
| 09-20 | 52.10 | — | 107.85 | 136.15 | 142.96 | 144.11 | 149.84 | 165.63 |
| 09-21 | 52.34 | — | 107.90 | 135.51 | 148.46 | 143.68 | 149.68 | 165.44 |
| 09-22 | — | — | 108.34 | — | — | 144.02 | 150.54 | 163.36 |
| 09-23 | 51.97 | — | 108.84 | 132.23 | — | 142.93 | 154.37 | 164.29 |
| 09-24 | 51.63 | — | 107.61 | 132.35 | 143.08 | 135.82 | 149.51 | 164.64 |
| 09-25 | 51.93 | — | 107.55 | 136.80 | 142.80 | 143.69 | 155.57 | 166.41 |
| 09-26 | 51.87 | — | 107.36 | 136.77 | 143.35 | 143.29 | 150.15 | 164.95 |
| 09-27 | — | — | 107.56 | 137.47 | 143.74 | 137.30 | 165.12 | 166.11 |
| 09-28 | 53.35 | — | 108.41 | 136.99 | 143.56 | 145.24 | 152.19 | 166.80 |
| 10-01 | 51.05 | 68.63 | 106.61 | 135.34 | 142.30 | 143.39 | 150.63 | 165.79 |
| 10-02 | 52.14 | 69.33 | 108.63 | 136.01 | 142.71 | 144.26 | 151.32 | 165.33 |
| 10-04 | 51.77 | 69.94 | 106.95 | 134.47 | 143.14 | 142.85 | 151.01 | 164.65 |
| 10-05 | 51.86 | 69.53 | 106.77 | 135.85 | 142.38 | 143.70 | 151.03 | 165.02 |
| 10-08 | 53.29 | 66.64 | 107.66 | 142.04 | 142.66 | 144.00 | 151.21 | 166.24 |
| 10-09 | 49.95 | 64.74 | 113.41 | 134.16 | 149.00 | 143.59 | 153.47 | 176.60 |
| 10-14 | 47.72 | 63.00 | 111.19 | 132.67 | 148.37 | 139.06 | 158.49 | 181.10 |
| 10-15 | 48.77 | 65.75 | 114.62 | 136.14 | 149.42 | 135.66 | 153.94 | 186.35 |
| 10-23 | 48.09 | 64.66 | 108.05 | 137.32 | 148.50 | 139.09 | 161.00 | 190.47 |
先看最左边两列和最后一行:芝加哥从 51.9 一路掉到 48.1(-7.3%),但它不是缓慢下滑,而是在 10 月 8 日之后一夜之间换了一档(53.29 → 49.95 → 47.72)。首尔则在 132–145 之间来回荡,看不出方向。「漂移」不是一个单一现象,它至少有四种形状。
六、四种漂移形态:为什么「涨了多少」这句话经常没有信息量
把 21 天序列按变化方式分类,会得到四种截然不同的形态。它们的处理方式完全不同,而大部分「延迟对比」文章把它们糊成一个「平均值」。
| 形态 | 时间尺度 | 本次实测样本 | 判读依据 | 应对 |
|---|---|---|---|---|
| 噪声型 | 分钟–小时 | 伦敦三轮 139.09/139.11/139.08 | 轮间极差 <1%,mdev 稳定 | 忽略,直接用 |
| 队列型 | 分钟–小时 | 新加坡三轮 203.4/190.5/186.7,min 恒为 175.7–176.0 | min 稳、avg 与 max 齐涨、pipe 2 | 高峰期用 min 判断质量,容量问题单独治 |
| 阶梯型 | 天 | 芝加哥 10-08 的 53.29 → 10-09 的 49.95 → 10-14 的 47.72 | 一次性跳变后在新水平上稳定 | 查上游/路由变更,接受新基线并记录日期 |
| 缓漂型 | 周–月 | 新加坡 166.24(10-08)→ 176.60 → 181.10 → 186.35 → 190.47 | 单向、连续、每天涨一点 | 这是最危险的形态,因为它会被「取平均」悄悄吃掉 |
| 异常日 | 单日 | 09-16 全地区 +10%–18%,同日洛杉矶 22.7 ms 且 5% 丢包 | 整轮所有目标同向偏移 | 整天作废,不要参与均值 |
6.1 缓漂为什么最危险
阶梯型很容易被发现:今天 53 ms、明天 48 ms,肉眼可见。缓漂型不会——它每天只涨 2–4 ms,任何两次相邻采样看起来都「在误差范围内」,但连续四周之后新加坡从 166 ms 涨到了 190 ms。如果你用的是「本月平均」,这个 15% 会被稀释成「和上个月差不多」。
判断缓漂的存在,只有两个办法:保留历史序列(本文这张 21 行的表就是全部价值),以及看最小值的地板是否一起抬升(新加坡 min 从 163 ms 到 175.7 ms,抬了 7.6%,这是缓漂的硬证据;剩下 8 个百分点才是队列)。
七、异常日与回弹:阶跃不一定永久
7.1 9 月 16 日:一整轮都不可用的一天
那天同一测点记录的 9 个地区数值全线偏高:洛杉矶 22.7 ms(平时 8.8–10.4)、达拉斯 46.5 ms(平时 39–41)、东京 126.3 ms(平时 107–109)、伦敦 157.0 ms(平时 143–145)、法兰克福 170.8 ms(平时 149–152)、新加坡 183.3 ms(平时 163–166),而且洛杉矶当天还有 5% 的 ICMP 丢包。
判断「异常日」的规则很简单:如果所有目标同向偏移、且幅度相近,问题几乎一定在测点侧,而不在目标侧。 九个不同城市、不同上游、不同海缆路径的机房不可能在同一个晚上同时变远 10%–18%。这一天的数据在本文的统计里被整体剔除,只作为「异常日长什么样」的样本保留。
这条规则的反面同样重要:如果只有一两个目标偏移,那大概率是真实变化,值得进一步查。
7.2 东京:10 月 9 日的 +5.4% 在两周后自己消失了
| 时段 | 采样日数 | 东京中位数 | 相对上一档 | 说明 |
|---|---|---|---|---|
| 09-17 – 10-08 | 17 | 107.66 ms | — | 五周基线,极差 3.0 ms |
| 10-09 – 10-15 | 3 | 113.41 ms | +5.3% | 连续三天维持,不像噪声 |
| 10-23 | 1 | 108.05 ms | -4.7% | 回到基线,阶跃消失 |
10 月 9 日那天不是只有东京动了。同一天:悉尼 142.66 → 149.00(+4.4%)、新加坡 166.24 → 176.60(+6.2%)、芝加哥 53.29 → 49.95(-6.3%),而伦敦几乎没动(144.00 → 143.59)。
亚太方向同时变差、美洲方向同时变好、欧洲不动——这不是四个地区各自的运气,这是测点侧的上游选择变了。第十节的路由实测证实了这一点。
这件事的决策含义是:如果你的选型结论建立在「10 月 9 日那一周的实测」上,你会得出「东京比伦敦慢 20%」;而今天(10-23)东京比伦敦快 31 ms。同一对地区,两周内结论翻转,而两个地区本身都没做什么。
八、排序稳不稳:稳定的是「层」,不是「名次」
| 检查点 | 东京 | 首尔 | 伦敦 | 悉尼 | 法兰克福 | 新加坡 |
|---|---|---|---|---|---|---|
| 09-17 | 1(107.5) | 2(128.5) | 4(143.4) | 3(142.6) | 5(149.2) | 6(164.2) |
| 09-20 | 1(107.9) | 2(136.2) | 4(144.1) | 3(143.0) | 5(149.8) | 6(165.6) |
| 10-02 | 1(108.6) | 2(136.0) | 4(144.3) | 3(142.7) | 5(151.3) | 6(165.3) |
| 10-15 | 1(114.6) | 3(136.1) | 2(135.7) | 4(149.4) | 5(153.9) | 6(186.4) |
| 10-23 | 1(108.1) | 2(137.3) | 3(139.1) | 4(148.5) | 5(161.0) | 6(190.5) |
| 21 天中位数 | 1(107.9) | 2(135.9) | 4(143.5) | 3(143.1) | 5(151.0) | 6(165.6) |
六个地区里,第 1 名(东京)和第 6 名(新加坡)在全部 18 个采样日里从未变过。中间四个换了 4 次位:伦敦在 10-15 那天因为一条更短的上游跳到第 2,两天后又退回第 3;悉尼与伦敦在 21 天中位数上只差 0.4 ms(143.1 vs 143.5),这种量级的差距在任何单日采样里都会被漂移淹没。
所以正确的用法不是「排名第几」,而是分层:
| 层 | 成员(按 21 天中位数) | 层内差距 | 层间差距 | 结论 |
|---|---|---|---|---|
| 第一层 | 东京 107.9 | — | — | 与第二层差 26 ms,任何一天都成立 |
| 第二层 | 首尔 135.9 / 悉尼 143.1 / 伦敦 143.5 | 7.6 ms | 与第三层差 7.5 ms | 层内名次会翻,不要按名次决策 |
| 第三层 | 法兰克福 151.0 / 新加坡 165.6 | 14.6 ms | — | 新加坡与法兰克福的差距已从 14.6 ms 扩大到 29.5 ms |
层内差距(7.6 ms)小于单日漂移(最高 9 ms)时,层内排序就没有决策意义。 这条判据可以原样搬到任何地区组合上:先算每个地区的 21 天中位数,再算两两差距,差距小于单日漂移量级的一律判为「同层、不可区分」。
九、漂移从哪里来(一):目标侧,同一个域名三次解析三个 IP
延迟漂移不全是「路变远了」。第一个来源是目标本身在换机器。对同一个 AWS S3 区域端点连续解析三次(间隔 2 秒),三个区域端点全部给出三个不同的 IP:
| 端点 | 第 1 次解析 | 第 2 次解析 | 第 3 次解析 | 唯一 IP 数 |
|---|---|---|---|---|
| s3.ap-northeast-1.amazonaws.com | 3.5.155.163 | 3.5.159.29 | 52.219.136.98 | 3 / 3 |
| s3.ap-southeast-1.amazonaws.com | 52.219.164.156 | 52.219.164.148 | 52.219.125.104 | 3 / 3 |
| s3.eu-west-2.amazonaws.com | 3.5.246.108 | 3.5.245.199 | 3.5.244.81 | 3 / 3 |
这是 DNS 层的负载分发(按可用区/接入点分摊),不是故障。但它对测量有一个直接后果:如果你每轮都重新解析域名,你的「漂移」里就混进了「换了一台机器」。 而不同可用区到你的测点可能差 1–5 ms,正好是本文讨论的漂移量级。
对策只有一条:把目标解析成 IP 后固定下来,并在记录里同时写出「域名」和「当次 IP」。 下次复测时如果发现 IP 已经变了,那这次的漂移要单独标记为「目标变更」,不能和「路径变更」混在一起算。
顺带说明另一个方向:本站 9 月的记录里,同一个 S3 端点在香港、东京、新加坡之间 TTFB 差 300–400 ms,那种差异是「区域端点」层面的,与本文这种「同名不同机」是两个不同的量,不要混用。
十、漂移从哪里来(二):路径侧,上游 AS 换了,三个地区同时换档
这一节是本次唯一拿到硬证据的一环。用 TCP SYN 模式做路由追踪(traceroute -T -p 443,绕开 ICMP 过滤),三个方向的路径如下。
| 目标 | 第 5–6 跳(出口) | 中间关键跳 | 上游 AS | 目标端 RTT | ICMP 均值 |
|---|---|---|---|---|---|
| 伦敦 108.61.196.101 | 192.168.0.104 → 216.6.52.164(1.7 ms) | 76.74.50.9(1.1 ms)→ 89.149.185.49(130.8 ms)→ 213.39.47.243(131.6 ms) | TATA AS6453 → GTT AS3257 | 133.5 ms | 139.1 ms |
| 新加坡 45.32.100.168 | 同上 | 76.74.50.9(1.1 ms)→ 141.136.110.158(261.5 ms)→ 208.81.84.159(173.5 ms)→ 45.32.98.222(173.4 ms) | TATA AS6453 → GTT AS3257 | 179.7 ms | 190.5 ms |
| 东京 108.61.201.151 | 同上 | 129.250.5.77(149.8 ms)→ 129.250.7.54(156.2 ms)→ 120.88.54.98(108.1 ms)→ 209.222.31.145(104.6 ms) | NTT AS2914 → Vultr AS20473 | 111.7 ms | 108.1 ms |
三个观察:
- 出口是同一家:第 6 跳 216.6.52.164 属于 TATA AS6453,1.2–1.7 ms 就到——这就是这台机器的机房出口。之后三个方向分别交给了 GTT(伦敦、新加坡)和 NTT(东京)。
- 和历史记录不是同一条路。本站 9 月 24 日与 10 月 2 日的记录里,伦敦走的是 Arelion(62.115.168.19,135–145 ms),东京走的是 PCCW(AS3491)。今天这两个方向都换成了 GTT / NTT。上游换了,延迟就跟着变——伦敦便宜了 4 ms,东京回到 108 ms,而新加坡在 GTT 上被塞进了 261.5 ms 的一跳。
- 中间跳的 RTT 可以大于终点。新加坡第 8 跳 141.136.110.158 报 261.5 ms,而终点只有 179.7 ms。这不是测错,是回程不对称加上该跳的队列/MPLS 栈处理——所以不要用中间跳的 RTT 反推终点延迟,它只能用来判断「路径经过谁」。
如果你要复现这一节:
traceroute -T -p 443 -n -m 18 -w 1 -q 1 45.32.100.168
whois -h whois.cymru.com " -v 141.136.110.158"
第一条用 TCP SYN 而不是 ICMP/UDP,因为本文第九、十节的目标和多数云厂商都对 ICMP TTL exceeded 做了限速;第二条拿 ASN 而不是靠 IP 段猜(Cymru 的 whois 一次给 ASN + BGP 前缀 + 注册国)。本节三个 Tokyo 跳的 ASN 分别是 AS2914、AS2914、AS20473,全部由 Cymru 查询确认。
十一、漂移从哪里来(三):测点侧,同一个 IP 三个数据源三个答案
测点本身也在漂。这一节的三条证据都来自同一台机器、同一个 IP:
| 数据源 | 查询内容 | 结果 | 说明 |
|---|---|---|---|
| ifconfig.co | https://ifconfig.co/json 返回的 asn | AS400619(AROSS-AS) | 与历史记录不一致 |
| Team Cymru whois | whois -h whois.cymru.com " -v 38.55.134.58" | AS402169(USCLOUD INC) | 与本站 9–10 月记录一致 |
| ARIN RDAP | https://rdap.arin.net/registry/ip/38.55.134.58 | 段名 PEG-TECH-CGNT-NET-3,实体 PEG TECH INC | 只给注册实体,不给当前宣告 AS |
三条记录互相矛盾,而它们都「没错」:RDAP 描述的是地址段的注册归属,Cymru 描述的是 BGP 宣告,ifconfig.co 用的是另一套(可能更滞后的)映射表。dig -x 38.55.134.58 也没有 PTR 记录。
此外,路由追踪的前 5 跳全是私有地址(10.0.94.1、10.20.10.4、10.255.0.11、192.168.0.104)。这意味着这台机器处在机房内部 NAT/私有网之后,前 5 跳不携带任何地理或运营商信息,任何人拿它做「第几跳出国」的推断都是错的。
结论写在记录规范里就够了:每次采样都要重记测点元数据(公网 IP、出口 ASN、出口第 6 跳 IP、PTR),不要复制上一次的。 这条规矩看起来啰嗦,但它能防止一种很隐蔽的错误——把两次「不同测点」的测量当成同一条序列来算漂移。本文之所以敢把 21 天拼成一条线,是因为每一次都验了 IP 与 ASN;也正因为 ifconfig.co 和 Cymru 给出了两个不同的 ASN,本文在表格里标注的是「USCLOUD / AS402169(Cymru)」而不是笼统的「某云」。
十二、判读阈值:3% 是噪声,10% 是信号,20% 先查测点
把本文全部数据压成一张判读表,这是可以直接贴在运维手册里的一页。
| 变化幅度 | 归类 | 本次实测中的对应样本 | 需要什么证据才能下结论 | 动作 |
|---|---|---|---|---|
| < 3% | 噪声区 | 洛杉矶轮间 1.2%、新泽西 1.2%、东京 0.8% | 单次采样即可 | 直接忽略,不做任何架构调整 |
| 3%–10% | 灰区 | 东京阶跃 +5.3%、悉尼阶跃 +4.4%、伦敦 -3.1% | 连续 3 天同向,且 min 一起动 | 记为候选变化,观察一周 |
| 10%–20% | 疑异常 | 新加坡缓漂 +15.0%、09-16 异常日全地区 +10%–18% | 必须先排除测点侧与全局偏移 | 查出口 AS、查上游、查是否异常日 |
| > 20% | 结构性 | 本次未出现(历史记录里换机房/换上游才会到这个量级) | 路由、机房、测点三者之一变了 | 按变更处理,重画基线 |
三条线的由来:
- 3% 来自噪声上限。本次 9 个地区里 7 个的轮间极差 ≤1.3%,一天之内基线基本不动;取 2 倍余量得到 3%。低于 3% 的差异,在 20 包样本下无法与采样抖动区分。
- 10% 对应真实阶跃的头部。21 天里最大的两次真实变化是新加坡的缓漂(累计 +15%)和芝加哥的阶梯(-7.3%);超过 10% 且只出现在一天的情况,本次样本里全部对应异常日。
- 20% 的分界线来自「换机器的量级」。9 月 16 日整轮偏移 10%–18%,那是测点本身的问题;如果偏移超过 20% 且持续,通常已经不是路径微调。
注意阈值不是用来「判定谁对」的,而是用来决定「要不要多花一天去复测」的。 本文的政策是:任何 3% 以上的变化,在下结论前必须有第二个采样日。
十三、可复现复测协议:五要素加一张记录表
延迟对比之所以容易吵起来,是因为没有协议的测量无法证伪。下面这套协议的目标不是「测得准」,而是让别人按同样的步骤得到同样的数字。
| 要素 | 要求 | 本次做法 | 漏了会怎样 |
|---|---|---|---|
| 测点固定 | 记录公网 IP、出口 ASN、第 6 跳 IP | 38.55.134.58 / AS402169(Cymru)/ 216.6.52.164(TATA) | 把两台机器拼成一条序列 |
| 目标固定 | 域名解析成 IP 后固定,同时记录域名 | 9 个 Vultr 官方 ping 主机 | 每轮打到不同可用区 |
| 时段固定 | 同一当地小时,注明 UTC | 当地 23:12–23:19 | 高峰与平峰混在一起 |
| 多轮多次 | ≥3 轮 × 20 包,取 min 与中位数 | 3 轮,间隔 130 s | 一次尖峰决定结论 |
| 元数据留档 | 命令、时间、丢包、pipe 标记、mdev | 见下表 | 三个月后无法解释这行数字 |
记录表建议长这样(一行一个地区一轮,直接进 CSV):
| 字段 | 示例 | 为什么必须记 |
|---|---|---|
| date_utc | 2026-10-23T06:12Z | 跨时区对比的唯一基准 |
| probe_ip / probe_asn | 38.55.134.58 / AS402169 | 证明测点没换 |
| probe_hop6 | 216.6.52.164(TATA AS6453) | 证明出口没换 |
| target_host / target_ip | sgp-ping.vultr.com / 45.32.100.168 | 证明目标没换 |
| cmd | ping -c 20 -i 0.2 | 证明口径没换 |
| min / avg / max / mdev | 175.71 / 190.47 / 239.48 / 16.50 | 四个数一起才能分辨队列与路径 |
| loss | 0% | 排除限速干扰 |
| pipe_flag | 2 | 队列存在的直接证据 |
| tcp443_med | 226.8 | 绕开 ICMP 限速的独立验证 |
一次完整的采样循环用下面这段就够(三地区 × 三轮,其余按此复制):
for r in 1 2 3; do
echo "ROUND $r $(date -u +%FT%TZ)"
for ip in 108.61.201.151 45.32.100.168 108.61.196.101; do
ping -c 20 -i 0.2 -W 2 $ip | tail -2
done
sleep 130
done
traceroute -T -p 443 -n -m 18 -w 1 -q 1 45.32.100.168
whois -h whois.cymru.com " -v 45.32.100.168"
拿到结果之后的判读顺序,固定为三步:
- 先看 min。min 不动 → 路径没变,涨的是队列(新加坡本次即如此)。
- 再看整轮是否所有目标同向偏移。同向 → 测点侧问题,当天作废(9 月 16 日即如此)。
- 最后才看 avg 的差,并且只和「同一测点、同一 IP、同一时段」的历史值比。
十四、哪些决策对漂移敏感:一张敏感度矩阵
不是所有决策都需要长期基线。把「要不要为漂移做额外功课」按决策类型分开,能省掉大量无效复测。
| 决策 | 对漂移的敏感度 | 原因 | 建议 |
|---|---|---|---|
| 选业务大区(亚太/欧洲/美洲) | 低 | 层间差距 26–58 ms,远大于 9 ms 的漂移 | 单次实测足够 |
| 在大区内部挑城市(首尔 vs 悉尼 vs 伦敦) | 高 | 差距 0.4–7.6 ms,小于单日漂移 | 至少 3 天 × 3 轮,或直接判为同层 |
| 写进合同的延迟承诺 | 高 | 要用最差时段而非中位数 | 取 21 天 p95 再加 20% 余量 |
| 带宽与并发容量规划 | 高 | 队列型漂移会让 avg 涨 15% 而 min 不变 | 用 p95/max,不要用 min |
| 换上游 / 换机房 | 中 | 阶跃后需观察是否回弹(东京两周后回弹) | 变更后连续 5 天复测,别当天拍板 |
| 向客户或老板报数 | 低 | 报区间比报单值稳定 | 给「中位数 ± 漂移」而不是一个数 |
矩阵里最值得记住的一行是第二行。「首尔和伦敦哪个快」这个问题在本次数据里没有答案:21 天中位数相差 2.4 ms,而单日极差 7.6 ms。任何给出确定答案的文章,用的都是单次采样。
十五、五个常见误区
| 误区 | 错在哪 | 正确做法 |
|---|---|---|
| 「我 ping 了一下,东京比新加坡快 20 ms」 | 单次 20 包的均值含队列与尖峰,新加坡本次三轮内部就差 16.7 ms | 3 轮 × 20 包,看 min 与中位数 |
| 「复测时数值变了,说明机房变差了」 | 可能是目标换了 IP、上游换了 AS、或是异常日 | 先查 target_ip、出口 AS、整轮是否同向 |
| 「用的是同一个域名,所以是同一台机器」 | 同一 S3 端点三次解析三个 IP | 固定 IP,并记录每次解析结果 |
| 「历史数据取个平均就是基线」 | 缓漂与异常日会被平均吃掉(新加坡 166→190 被摊成 178) | 保留序列,看趋势与地板 |
| 「排名稳定说明绝对值稳定」 | 东京始终第 1,但它自己也在 107–115 之间动 | 排名用于分层,绝对值用于容量规划 |
总结与推荐
这篇实测想推翻的是「地区延迟表是一个稳定事实」这个假设。四条可验证的结论:
- 同一天三轮之间就有 0.02%–9% 的差异,伦敦 0.03 ms、新加坡 16.7 ms。用单次均值比较 10 ms 级的差距,测的是噪声。
- 21 天里,东京 +0.2%、伦敦 -3.1% 几乎不动;芝加哥 -7.3%、法兰克福 +6.6%、新加坡 +15.0% 换了档。地区延迟既有常数项也有变量项,而且两者的比例因地区而异。
- 漂移的方向由上游 AS 决定。这次三个方向分别走 TATA→GTT(伦敦、新加坡)与 NTT(东京),和历史记录里的 Arelion、PCCW 已经不是同一条路——延迟变化首先是路由变化的结果。
- 排序只稳定到「层」。东京第 1、新加坡垫底在 18 次采样里从未变过,但首尔/伦敦/悉尼在第 2–4 名之间换了 4 次位,因为它们的差距小于漂移量级。
落到行动上:先用第八节的分层法把候选地区压成 2–3 层,用第十二节的阈值决定哪些差异值得复测,再用第十三节的五要素跑满 3 天。 一次测速能告诉你「这条路径今天什么样」,只有序列才能告诉你「它会不会变、往哪变」。
本文测试数据采集于 2026 年 10 月 23 日 06:12–06:19 UTC(测点:美国加州 38.55.134.58 / AS402169 USCLOUD(Cymru 查询),出口第 6 跳 216.6.52.164 / TATA AS6453;ICMP 为 ping -c 20 -i 0.2 -W 2,三轮间隔约 130 秒;TCP 为到 443 端口连 5 次取中位数;路径为 traceroute -T -p 443;ASN 与 BGP 前缀来自 Team Cymru whois,注册实体来自 ARIN RDAP,另附 ifconfig.co 的不同答案作为分歧样本;历史序列取自本站 2026-09-16 至 2026-10-15 的 20 个采样日记录,其中 09-16 因整轮偏移与 5% 丢包被整体剔除。延迟可能因网络环境、测试时间与运营商不同而有所差异,建议购买前用你自己的业务形态进行 48 小时免费测试。
🚀 需要海外服务器? 通过 6.chengzicloud.cloud 购买,覆盖香港/新加坡/日本/美国等全球区域,测试后满意再付款,30 天无理由退款保障。
相关阅读
- 海外服务器同城机房延迟离散度实测
- 海外服务器地区选择:全球城市对延迟矩阵实测
- 海外服务器延迟基准测试方法论
- 海外服务器延迟的高峰与平峰差异实测
- 海外服务器建连往返预算:一次请求要花几个 RTT
- 海外服务器 IP 交叉核验:RDAP、ASN 与 PTR 的反相关现象
本文由 6.chengzicloud.cloud 提供,点击访问首页了解更多
常见问题(FAQ)
为什么我自己复测的数字和你文章里的差这么多?
三个最常见原因,按概率排序:① 测点不同(本文是美西 38.55.134.58,出口 TATA AS6453);② 目标 IP 不同(本文固定到 IP,你如果每次解析域名,可能打到不同可用区);③ 时段不同(本文采集在当地 23:12–23:19,属于该节点低峰)。先对齐这三项,再比较数字,否则比较的是两台机器和两个时段的组合,不是两个地区。
一次 ping 要跑多少包才够?
20 包是本次全部历史记录的口径,也是下限。少于 10 包时,单个尖峰能占均值的 10% 以上(本文首尔第二轮就是 1 个 153 ms 的包把均值抬了 6.4 ms)。如果只需要判断「通不通、大概多远」,5 包够;如果要比较两个相差不到 8 ms 的地区,至少 3 轮 × 20 包,并且用中位数。
看平均值还是看最小值?
两个都要,用途不同。min 判断路径质量(是否绕行、是否换上游),avg 判断当期体验(是否排队)。本文新加坡就是典型:min 只涨 7.6%,avg 涨 15%,差额全部来自队列。做容量规划看 p95 与 max,做地区选型看 min 与中位数。
延迟涨了 10%,要不要马上换机房?
先别换。按第十二节的阈值,10% 落在「疑异常」区间,先做三件事:① 看同一天其他地区是否同向偏移(是 → 测点问题);② 看出口第 6 跳的 AS 有没有变(变 → 上游切换,可能几天后回弹,东京本次就是这样);③ 连续复测 3 天。三条都排除了,再谈迁移——而且迁移本身的代价通常比 10% 的延迟大得多。
怎么判断是「我这边网络问题」还是「机房问题」?
加两个对照目标就能分辨:一个同城目标(本文的洛杉矶 10.3 ms)和一个公共解析器(如 1.1.1.1)。如果同城目标也变慢、丢包,问题在测点侧;如果只有远端变慢而近端正常,问题在路径或对端。本文 9 月 16 日那天就是同城目标从 8.8 ms 涨到 22.7 ms 且丢包 5%,一眼就能判定为测点侧异常。
中国大陆用户能用这套方法吗?
方法通用,数字不能搬。本文所有绝对值是「美西向东看」,大陆视角下香港/日本/新加坡的量级完全不同(香港常在 28–45 ms,美西 140–180 ms)。落地做法是把测点换到目标市场:大陆用户就用大陆多线机器或三家运营商的探针,海外用户就在目标国家放一台 5 美元 VPS 跑 48 小时。换的是测点,不是换指标——min/avg 分离、三轮采样、固定 IP、记录 ASN 这四条一条都不用改。
多久复测一次?
按决策的重要性分三档:写进 SLA 的线路,每月一次并保留 6 个月;选型阶段每周一次、连续 4 周;已经上线且没有投诉的,每季度一次做基线校准。触发式复测也要有:出口 AS 变更、机房公告维护、用户投诉集中出现,这三种情况当天就要跑一轮。
没有历史数据,从今天开始还来得及吗?
来得及,而且越早越好。历史数据的价值不在「多」,在「同口径」:从今天开始每周固定同一时段、同一目标 IP、同一命令各跑一轮,三个月后你就有 12 个可比的点,足以分辨缓漂与阶跃。本文的 21 天序列就是这么攒出来的——每一行都记了测点 IP 与命令,所以能拼起来。