机场节点测速方法:可复核的测试条件、统计与记录模板
机场节点怎么测速才有参考价值?本文说明每次测试应记录的条件,怎样用重复测量、中位数与百分位数、晚高峰对照和直连基线设计测试,ping、curl、iperf3、NDT 的使用要点,并附可复制的测速记录模板。
本页目录 25 节
一条“延迟 45 ms、下载 200 Mbps”的机场测速结果,如果没有写明在什么时间、什么网络、用什么工具测得,读者既无法判断它是否适用于自己,也无法重测核对。测速结果有多大参考价值,取决于测试条件写得是否完整。 本文依据 IETF 关于测量方法的基础文档,依次说明测速需要记录的条件、测试设计要点和常用工具的注意事项,最后给出一份可复制的记录模板。各项指标的含义见机场测速指标详解。
为什么机场测速结果要可复核
网络性能会随时间、地点、运营商和设备变化。同一个节点,晚上用家庭光纤测和白天用移动网络测,结果可能相差很大,而两者都可能是真实的。只给一个数字,读者看不出它是常态还是偶然。
可复核是指别人(包括几个月后的你)能按记录的条件重做测试,并对照新旧结果。IETF 的 RFC 2330 把“可重复”列为测量方法应有的性质:在相同条件下多次使用同一方法,应当得到一致的结果。现实中条件很难完全相同,复测结果也会有出入;条件写得越完整,出现差异时越容易找到原因,例如时段不同、客户端升级或测试服务器更换。
RFC 2330 测量框架:样本、包类型与误差
RFC 2330(Framework for IP Performance Metrics)于 1998 年发布,是 IETF IP 性能指标工作的基础框架,后来又经多份文档更新。其中三个概念对个人测速最实用。
第一,区分单次测量、样本与统计量。单次测量(singleton)是一次原子测量,例如一个包的往返时间;样本(sample)是一组单次测量;统计量(statistic)是由样本算出的数值,例如中位数。记录时应保留每次测量的原始值,而不只是统计量,别人才能重新计算。
RFC 2330 还比较了几种抽样方式:固定间隔的周期抽样简单,但如果被测对象本身有周期性变化、且周期恰好吻合,只能观察到其中一部分,固定的时间点也容易被预料;反复的周期性测量流量还可能让网络进入同步状态,放大原本轻微的影响。间隔随机的抽样可以避免同步效应,其中间隔服从指数分布的泊松抽样是 RFC 2330 总体上更推荐的方式。个人测试可以简化为在固定间隔上加入随机偏移,避免总在整点开始。
第二,测试包的类型会影响结果。RFC 2330 指出,许多指标的取值取决于所用 IP 包的类型,并用“type P”表示这一点:端口、校验和等属性不同的包,在防火墙等设备面前可能得到不同的结果。所以要写清测试用的是 ICMP 回显、TCP 连接还是 HTTPS 请求,不宜直接拿一种流量的结果代表另一种。
第三,误差来源要写出来。RFC 2330 提出,设计测量方法时应尽量减少误差和不确定性,弄清并记录误差的来源,并尽可能量化。例如,执行测量的主机自身的处理开销会混入测得的时延;两台主机的时钟不同步时,单向时延的计算就会出错。它还建议做自洽性检查:算出负的往返时间,说明测量过程出了问题,应当查明错误出在哪里。把这类异常值标注出来并说明排查结果,不要悄悄删掉。
主动测量与被动测量
RFC 7799(2016 年)把测量方法分为三类:
- 主动方法(Active Methods):生成专门用于测量的数据包流,包内通常带有序号,常常还有时间戳。ping、iperf3 和测速网站都属于这一类。
- 被动方法(Passive Methods):只观察已经存在的流量,按 RFC 7799 的定义,不得添加、修改或删除数据包。例如只读取路由器或客户端对日常流量的统计。
- 混合方法:介于两者之间,例如在观察已有流量的同时附加一股负载流量。
RFC 7799 提醒,主动方法向网络加入流量,会在一定程度上影响被测量的对象,测试者应量化或尽量减小这种影响。因此记录里要写明测试本身产生了多少流量,例如每次下载多大的文件、持续多少秒;大流量测试还会消耗套餐额度。
每次测速要记录的条件
下表的示例列展示填写格式:
| 项目 | 为什么需要记录 | 示例写法 |
|---|---|---|
| 日期与时间(含时区) | 不同时段的网络负载不同 | 2026-10-26T20:30:00+08:00 |
| 测试时段 | 区分繁忙时段与对照时段 | 工作日 20:00–23:00(UTC+8) |
| 地点 | 不同地区到同一节点的路径不同 | 写到城市即可 |
| 运营商与接入方式 | 影响基础时延与可用带宽 | 家庭光纤,签约 500 Mbps;或 5G 移动网络 |
| 设备与操作系统 | 硬件和系统网络栈会影响结果 | 设备型号、系统名称与版本号 |
| 客户端与版本 | 不同版本的实现和默认设置可能不同 | 客户端名称与完整版本号 |
| 协议 | 不同协议的开销和握手过程不同 | 协议名称及传输方式 |
| 节点地区 | 说明测的是哪个节点 | 服务商标注的地区与节点名称 |
| 测试目标 | 说明测的是到哪台服务器的路径 | 完整网址或服务器地址 |
| 工具与版本 | 工具的算法和默认参数会变 | 工具名称、版本号与完整命令 |
| 样本量与间隔 | 判断结果的稳定程度 | 每 10 分钟一次,共 18 次 |
| 原始数据 | 让别人能重新计算 | 原始输出文件的保存位置 |
填写时注意几点:
- 时间写法:RFC 3339 规定的时间戳带有与 UTC 的偏移,偏移量等于“本地时间减去 UTC”,结尾的 Z 表示 UTC。按这个规则,20:30:00+08:00 与 12:30:00Z 是同一时刻;只写“晚上八点半”,其他时区的读者就无法换算。
- 地点只写到城市,不必公开精确住址。
- 测试时是否有其他设备在下载、用的是有线还是 Wi-Fi,都写进备注。
- 不清楚的项目(例如签约带宽)写“未知”,不要估一个数字填进去。
测试设计:重复测量、晚高峰对照与直连基线
重复测量,报告中位数与百分位数
一次测试只是一个单次测量。下面用一组 10 次延迟样本(示例数据,单位 ms,按测试顺序)说明为什么要看分布:42、45、44、47、43、120、46、44、48、45。
| 统计量 | 数值 | 说明 |
|---|---|---|
| 最小值 | 42 ms | 只报这个数,结果会显得比常态好 |
| 中位数 | 45 ms | 排序后第 5、6 个值(45 与 45)的平均 |
| 平均值 | 52.4 ms | 被一次 120 ms 明显拉高 |
| 第 90 百分位数 | 48 ms | 按 RFC 2330 的定义,累计比例首次达到 90% 的值 |
| 最大值 | 120 ms | 反映偶发的慢 |
RFC 2330 给出了百分位数和中位数的定义,并强调用百分位数汇总样本时必须同时写出样本量 N,因为比 1/N 更细的百分位差异低于样本的分辨率。上例只有 10 个样本,按同一定义,第 95 百分位数就是最大值 120 ms,单独报告它不提供额外信息。RFC 6703 建议时延报告同时给出平均值和中位数,并认为最小值、最大值和第 95 百分位数对描述分布有价值;它还建议把未到达的包的时延视为未定义、计入丢包,而不是当作无限大。
归纳起来:每个条件测一组样本并写明 N;用中位数代表典型情况,用高百分位数或最大值反映波动;超时和失败次数单独记录。
晚高峰与对照时段分开测
网络负载随时间变化,因此至少选两个时段:一个是你最常使用的时段(例如工作日晚上),另一个作为对照(例如工作日上午)。两个时段用相同的样本量和间隔,分开统计。 只测了一个时段时,在结论里写明适用的时段。
先测一组不经代理的直连基线
要判断代理本身带来多少额外时延或吞吐量损失,需要用同一台设备、同一时段、同一个测试目标,分别在直连和经过代理时测试,并尽量交替进行(直连、代理、直连、代理……),减少网络状况变化的影响。没有基线,就分不清慢在本地宽带、测试服务器还是代理节点。 基线测试应选择在你所在地可以正常、合法访问的目标。
常用测速工具:ping、curl、iperf3 与 NDT
以下要点来自各工具的官方文档,具体参数以你实际使用的版本为准。
ping:只反映 ICMP 的往返情况
ping 发送的是 ICMP 回显请求。按前面的 type P 概念,它的结果只代表 ICMP 包在测试时的往返情况,不一定等同于应用实际使用的 TCP 或 UDP 流量。使用代理时还要注意路径:RFC 1928 为 SOCKS5 定义了 CONNECT、BIND 和 UDP ASSOCIATE 三种命令,并说明它位于应用层与传输层之间,不提供转发 ICMP 消息这类网络层网关服务。因此,在只让应用经由 SOCKS5 代理的设置下,系统 ping 发出的 ICMP 包不经过代理,测到的是直连路径;其他工作方式是否转发 ICMP,取决于客户端的具体实现。客户端界面显示的“延迟”测量方式因客户端而异,记录时写明客户端版本及其说明的测试方式。
curl:TCP 连接与 HTTP 分段计时
curl 的 -w(--write-out)选项可以输出一次请求各阶段的耗时。按 curl 官方手册,time_namelookup、time_connect、time_appconnect、time_starttransfer 分别是从开始到域名解析完成、TCP 连接完成、SSL/SSH 等握手完成(HTTPS 请求即 TLS 握手)、收到第一个字节所用的秒数,time_total 是整个操作的总时长。手册注明 time_connect 是到远程主机“或代理”的 TCP 连接完成时间,所以让 curl 自身通过代理(例如用 -x 指定)测试时,它反映的是到代理的连接,而不是到最终网站的连接。 如果代理客户端在系统层面接管流量、curl 本身没有设置代理,各项计时的含义取决于客户端的工作方式,记录时应写明。
示例命令如下,把网址换成记录中写明的测试目标:
curl -o /dev/null -s -w '%{time_namelookup} %{time_connect} %{time_appconnect} %{time_starttransfer} %{time_total} %{http_code}\n' https://example.com/
每行输出是一次单次测量。重复运行时,把每次的输出连同时间戳追加保存到文件,并用 curl --version 记下版本。
iperf3:吞吐量测试
iperf3 官方文档说明,它用于测量网络吞吐量,可以测试 TCP、UDP 或 SCTP,并且需要同时运行服务器端(-s)和客户端(-c)。因此你需要一台自己控制或明确允许测试的服务器,结果反映的是到这台服务器的路径。文档中与记录相关的选项有:
-t:测试时长,默认 10 秒。-R:反向测试,由服务器向客户端发送数据,可用于测下载方向。-P:并行流数量,会改变测试条件,必须写明。-u:改用 UDP;此时目标速率默认只有 1 Mbit/s,需要更高速率时用-b设置。-O:先预测试若干秒,并丢弃这段统计。-J:以 JSON 格式输出,适合作为原始数据保存;--logfile可把输出写入文件。-v:显示版本信息。
文档还提示,网页上的手册文本不一定对应当前版本,以随程序安装的手册页为准。记录时用 iperf3 -v 记下版本,并保存完整命令行。
M-Lab NDT:单流测速
M-Lab 的 NDT(Network Diagnostic Tool)文档说明,它是测量连接批量传输能力的单流测试,报告上传、下载速度和延迟指标;其中 ndt7 协议在可用时使用 TCP BBR,运行在标准的 HTTP(S) 端口 80 和 443 上。结果反映的是到 M-Lab 平台上某台测试服务器的路径,记录时写明协议版本和服务器。M-Lab 还说明,运行 NDT 时,运营商分配给你的 IP 地址会随测试结果一起被收集,全部测试结果都会公开发布。
公开原始数据与披露利益关系
最后一步,是让别人看到结论所依据的数据:
- 公开原始输出:例如 iperf3 的 JSON 文件、curl 每次运行的输出,以及计算中位数所用的脚本或表格。
- 说明剔除了哪些数据及原因,例如因断网作废的一组,不要直接删除。
- 发布前去除敏感信息:删掉公网 IP、账户信息、订阅链接及其中的令牌,必要时替换为“已隐去”。
- 披露利益关系:被测服务是否由服务商免费提供、是否有推广链接或赞助,都应写在结果旁边。本站的做法见推广披露,发现错误后的处理见更正规则。
核对他人测速结果的方法见机场宣传与评测核对清单。
本站测速记录字段对照
本站测速记录的固定字段见评测方法中的测速记录说明,与上述项目的对应关系如下:
| 记录项目 | 本站字段 |
|---|---|
| 测试日期 | testedAt |
| 测试时段(含时区) | timeWindow |
| 地点 | location |
| 接入方式 | network |
| 运营商 | isp |
| 客户端与版本 | client、clientVersion |
| 协议 | protocol |
| 节点地区 | nodeRegion |
| 工具、命令、间隔与测试目标 | method |
| 样本量 | sampleSize |
| 汇总指标 | metrics(延迟、抖动、丢包率、下载、上传) |
| 原始数据地址 | evidenceUrl |
| 设备与系统、基线结果、剔除说明 | notes |
metrics 每项只填一个数,建议在 method 写明是中位数还是平均值。下载和上传以 Mbps 填写,工具显示 MB/s 时先乘以 8 换算。 没有测量的指标保持空值(页面显示为“未记录”),不能填 0。
测速记录模板(可直接复制)
每组测试填写一份。不知道的项目写“未知”,不适用的写“不适用”。
| 项目 | 填写内容 |
| --- | --- |
| 记录编号 | |
| 测试日期与开始时间(含时区,如 +08:00) | |
| 测试时段(繁忙 / 对照) | |
| 地点(城市) | |
| 运营商 | |
| 接入方式与签约带宽 | |
| 连接方式(有线 / Wi-Fi)及同时段其他占用 | |
| 设备型号 | |
| 操作系统与版本 | |
| 客户端与版本 | |
| 协议 | |
| 节点地区与名称(服务商标注) | |
| 测试目标(网址或服务器) | |
| 工具与版本 | |
| 完整命令或设置 | |
| 样本量、间隔与总时长 | |
| 直连基线结果(同时段、同目标) | |
| 汇总:中位数 / 第 90 百分位数 / 最大值 | |
| 超时或失败次数 | |
| 测试产生的流量 | |
| 原始数据位置 | |
| 剔除的数据及原因 | |
| 利益关系披露 | |
| 备注 | |
测试和使用网络服务时,请遵守所在地的法律法规,以及服务商、测试服务器和测试平台的使用条款,不要对未获授权的服务器做高强度测试。
常见问题
每个条件至少要测多少次才够?
没有统一的次数,但可以从想报告的统计量倒推。RFC 2330 指出,比 1/N 更细的百分位差异低于样本的分辨率。按这一点推算,要让第 95 百分位数与最大值区分开,1/N 不能大于 5%,也就是至少需要 20 个样本;这是下限,样本越多越稳定。无论测了多少次,都要把样本量写进记录。
测速网站给出的速度,能直接当作节点速度吗?
不能直接等同。测速网站测的是到它自己测试服务器的路径,例如 M-Lab 的 NDT 是到 M-Lab 平台上测试服务器的单流测试。记录时写明测试服务器和协议版本,并在同一时段测一组不经代理的基线,才能大致判断差异来自哪一段。
测试中超时或失败的样本要不要删掉?
不要直接删掉,也不要记成 0。RFC 6703 建议把没有到达的包的时延视为未定义,单独计入丢包统计。实际记录时,写明总次数、成功次数和失败次数;如果整组数据因断网等原因作废,在记录中说明原因。
公开原始数据会不会泄露个人信息?
可能会,所以发布前要处理。删除或隐去公网 IP、账户名、订阅链接和其中的令牌,地点只写到城市。另外,M-Lab 说明运行 NDT 时,运营商分配给你的 IP 地址会随测试结果一起被收集,且全部测试结果都会公开发布,使用前应了解这一点。
参考来源
技术事实优先引用标准文档与官方资料;括号中为核对日期。
-
RFC 2330: Framework for IP Performance Metrics (在新窗口打开)
支持可重复性要求、单次测量/样本/统计量的区分、周期抽样与泊松抽样的比较、type P 概念、误差来源与自洽性检查、百分位数与中位数定义,以及用百分位数汇总样本时须给出样本量 N 的表述。
-
RFC 7799: Active and Passive Metrics and Methods (with Hybrid Types In-Between) (在新窗口打开)
支持主动、被动与混合方法的定义,以及主动方法加入的流量会影响被测对象、应量化或减少影响的表述。
-
RFC 6703: Reporting IP Network Performance Metrics: Different Points of View (在新窗口打开)
支持时延报告同时给出平均值与中位数、最小值/最大值/第 95 百分位数的作用、应报告样本量,以及未到达包的时延视为未定义的建议。
-
RFC 3339: Date and Time on the Internet: Timestamps (在新窗口打开)
支持带 UTC 偏移的时间戳写法、偏移量为“本地时间减去 UTC”以及 Z 表示 UTC 的表述。
-
RFC 1928: SOCKS Protocol Version 5 (在新窗口打开)
支持 SOCKS5 只定义 CONNECT、BIND、UDP ASSOCIATE 三种命令,且不提供转发 ICMP 消息这类网络层网关服务的表述。
-
curl man page(-w, --write-out 变量说明) (在新窗口打开)
支持 time_namelookup、time_connect(到远程主机或代理)、time_appconnect(SSL/SSH 等握手)、time_starttransfer、time_total 等计时变量的含义,以及 -x 选项用于指定代理的说明。
-
Invoking iperf3(iperf3 官方文档) (在新窗口打开)
支持 iperf3 测量 TCP/UDP/SCTP 吞吐量、需要同时运行服务器端和客户端,-t、-R、-P、-u、-b、-O、-J、--logfile、-v 等选项的说明,以及网页手册可能与当前版本不一致、以随程序安装的手册页为准的提示。
-
NDT (Network Diagnostic Tool) (在新窗口打开)
支持 NDT 为单流测试、报告上传下载速度与延迟、ndt7 在可用时使用 BBR 并运行在 80/443 端口、运行测试时收集运营商分配的 IP 地址,以及 M-Lab 公开发布全部测试结果的表述。
更新记录
- 内容修改 优化标题与摘要,合并测量框架相关小节、整理目录层级,并加粗测试设计与记录的关键要求。
- 内容修改 首次发布,说明测试记录应包含的条件、重复测量与统计方法、基线对照、常用工具的注意事项,并提供记录模板。
相关文章
推荐机场
按本站推荐排行列出前 5 个机场,详情页有套餐价格、使用规则与资料来源。