网络延迟与带宽计算器

输入链路速率、往返时间和传输大小,即可查看单个 TCP 流的实际吞吐量上限 —— 明确指出瓶颈所在、传输时间并提供详细的数值代入步骤。

路径

路径上的最慢一跳 —— 通常是您宽带套餐的签约速率。
到远端的 Ping 值 —— 请使用您预期的负载下最大值。

传输

需要传输的有效载荷 —— 如文件、备份或数据集。

TCP 参数

接收端可缓存的字节数。65,535 为未缩放的最大值;留空表示无窗口限制。
每个数据包的有效载荷字节数 —— 1,460 字节可填满标准以太网帧。留空表示忽略协议开销和丢包。
平均数据包丢失概率。留空或输入 0 表示无丢包限制。

吞吐量与传输时间

预期 TCP 吞吐量

请输入链路速率、往返时间和数据大小。

公式与数值代入

吞吐量 = min(速率 × 效率, 窗口 ÷ RTT, MSS ÷ RTT ÷ √p) · BDP = 速率 × RTT

    您输入的每个数值都会在当前浏览器中进行计算 —— 不会向外发送任何数据。

    常见问题

    为什么我的传输速度比我付费的链路速率还要慢?

    单个 TCP 流面临三个独立的上限,且最终受限于其中最低的一个。协议开销会使链路本身的实际带宽减少约 5% —— 标准以太网帧在物理线路传输的 1,538 字节中仅包含 1,460 字节的有效载荷。接收窗口会将吞吐量限制在“窗口 ÷ RTT”以内,因此无论链路有多快,经典的 65,535 字节窗口都会将 50 ms 路径上的吞吐量限制在约 10.5 Mbit/s。而丢包则会将吞吐量限制在 (MSS ÷ RTT) ÷ √丢包率。上方的计算结果会明确指出是哪一个上限限制了您的数据。

    什么是带宽时延积?为什么它决定了窗口大小?

    BDP(带宽时延积,即链路速率 × 往返时间)是指在任意给定时刻链路上处于传输状态的数据总量。TCP 在未收到确认前最多只能发送一个窗口大小的数据,因此如果窗口小于 BDP,就会导致管道无法被填满:在 100 Mbit/s 速率和 50 ms RTT 的路径上,管道可容纳 625 kB 的数据,而 65,535 字节的窗口仅能填满其十分之一。这就是为什么高速且长距离的路径需要 TCP 窗口缩放(RFC 7323)的原因,它将可协商的最大窗口从 65,535 字节提升到了约 1 GB。

    数据包丢失是如何限制 TCP 吞吐量的?

    TCP 会将丢包视为网络拥塞,并在每次发生丢包时将发送速率减半,因此在高速路径上,即使是极微小的丢包率也会产生巨大影响。Mathis 模型估算的上限为 (MSS ÷ RTT) ÷ √p —— 在 50 ms 路径、1,460 字节 MSS 且丢包率为 0.01% 的情况下,无论链路速度多快,吞吐量上限都只有约 23 Mbit/s。该模型假设丢包事件是均匀分布且相互独立的;在丢包率低于约 1% 时,它能很好地契合实际情况,而对于突发性丢包,其估算结果则偏向乐观。

    这里的兆字节(MB)和我的文件管理器里显示的一样吗?

    并非如此。本页面使用的是网络界通用的十进制单位:1 kbit = 1,000 比特,1 MB = 1,000,000 字节。而大多数文件管理器使用的是基于 1024 的单位(通常被误标为 MB)—— 文件管理器中显示的“100 MB”文件通常是 100 MiB ≈ 104.86 十进制 MB,因此传输该文件所需的时间会比十进制计算得出的时间长约 5%。在此处输入 104.86 MB 即可完全对应。

    预期 TCP 吞吐量与传输瓶颈分析

    在网络传输中,单个 TCP 流的实际表现往往无法达到物理链路的理论带宽。网络延迟与带宽计算器通过分析链路速率、往返时间(RTT)以及传输数据大小,计算出单个 TCP 连接在特定网络路径条件下的实际性能上限。

    该计算器在您的浏览器本地完成所有计算,您输入的任何数据都不会被上传到外部服务器。

    在评估网络路径时,TCP 吞吐量并非仅由单一因素决定,而是受限于以下三个独立上限中的最低者:

    1. 链路容量:受物理介质和协议开销限制的最高速率。
    2. 接收窗口:接收端能够缓存的数据量与往返时间共同决定的传输上限。
    3. 丢包:由于网络拥塞或链路质量导致的数据包丢失,触发 TCP 拥塞控制机制而产生的吞吐量限制。

    通过输入具体的网络参数,工具会输出“预期 TCP 吞吐量”,并明确指出当前的性能瓶颈(“受限于 ‹constraint›”)。


    输入参数与配置说明

    为了准确评估网络路径的传输性能,您需要配置以下输入参数:

    • 链路速率:指路径上的最慢一跳,通常是您宽带套餐的签约速率。该数值必须大于零。
    • 往返时间 (RTT):指到远端的 Ping 值,建议使用您预期的负载下最大值。该数值必须大于零。
    • 数据大小:需要传输的有效载荷,例如文件、备份或数据集。该数值必须大于零。
    • 接收窗口:接收端可缓存的字节数。该数值必须大于零,且不能超过 1,073,725,440 字节。留空则表示无窗口限制。
    • MSS (字节):每个数据包的有效载荷字节数。必须是介于 1 到 65,495 字节之间的整数。留空表示忽略协议开销和丢包。
    • 丢包率 (%):平均数据包丢失概率。必须介于 0% 到 100% 之间,留空或输入 0 表示无丢包限制。
    • 显示的小数位数:用于控制输出结果的数值精度。

    界面提供了“载入示例”按钮以快速填充测试数据,以及“清空”按钮重置所有输入框。


    性能指标与计算结果

    计算完成后,工具会在“吞吐量与传输时间”区域展示以下核心指标:

    • 总传输时间
    • 首字节时间 (1 RTT)
    • 数据传输时间
    • 带宽时延积 (BDP)
    • 填满路径所需的窗口
    • 受窗口限制的吞吐量
    • 受丢包限制的吞吐量 (Mathis)
    • 扣除开销后的链路上限
    • 协议效率

    您可以使用“复制结果”按钮将这些计算数据一键保存到剪贴板。


    动态系统提示与网络协议规则

    根据您输入的数值组合,计算器会动态显示以下系统提示,以帮助您诊断潜在的配置问题:

    • 当填满路径所需的窗口超过 65,535 字节的未缩放最大值时,提示“填满此路径需要 ‹window› 的窗口 —— 已超过 65,535 字节的未缩放最大值,因此两端必须协商 TCP 窗口缩放(RFC 7323)。”
    • 当所需窗口超过 TCP 协议极限时,提示“填满此路径需要 ‹window› 窗口 —— 已超出 TCP 所能协商的最大窗口(1,073,725,440 字节)。此路径上的单个 TCP 流永远无法超过 ‹value›。”
    • 当接收窗口成为主要瓶颈时,提示“将接收窗口提高到 ‹window› 可以让此传输速率最高达到 ‹value›。”
    • 当丢包率过高时,提示“丢包率超过 1% 已超出 Mathis 模型的可靠估算范围 —— 请将此丢包上限视为乐观估计。”

    协议开销与单位换算规则

    • 以太网开销:本模型基于标准以太网物理层进行计算,每个数据包会引入 78 字节的额外开销(包括 40 字节的 TCP/IP 报头和 38 字节的物理线路开销)。
    • 十进制单位:本工具所有单位均采用十进制(如 1 kbit = 1,000 比特,1 MB = 1,000,000 字节)。由于操作系统和文件管理器通常使用基于 1024 的二进制单位(如 MiB),因此在对比文件大小时需注意转换。
    • 模型局限性:本工具基于稳态、单 TCP 流模型。实际网络传输中的慢启动、拥塞控制动态调整、接收端响应延迟以及 TLS 握手等因素均不在计算范围内,因此实际传输速度通常会低于计算得出的理论上限。

    公式与数值代入步骤

    在“公式与数值代入”区域,您可以查看具体的计算推导过程:

    • 主公式吞吐量 = min(速率 × 效率, 窗口 ÷ RTT, MSS ÷ RTT ÷ √p) · BDP = 速率 × RTT
    • 协议效率协议效率 = MSS ÷ (MSS + 78 B) = ‹mss› ÷ ‹frame› = ‹eff›(40 B 报头 + 38 B 线路开销)
    • 链路上限链路上限 = 速率 × 效率 = ‹rate› × ‹eff› = ‹value›
    • 带宽时延积BDP = 速率 × RTT = ‹rate› × ‹rtt› = ‹bdp› = ‹bytes›
    • 填满路径所需的窗口填满路径所需的窗口 = BDP ÷ 8 = ‹bdp› → ‹window›
    • 窗口上限窗口上限 = 窗口 ÷ RTT = ‹window› ÷ ‹rtt› = ‹value›
    • 丢包上限 (Mathis)丢包上限 (Mathis) = MSS ÷ RTT ÷ √p = ‹mss› ÷ ‹rtt› ÷ √‹p› = ‹value›
    • 预期吞吐量预期吞吐量 = 以下上限中的最低值 = ‹value› → 受限于 ‹constraint›
    • 传输时间传输时间 = RTT + 8 × 大小 ÷ 吞吐量 = ‹rtt› + 8 × ‹size› ÷ ‹throughput› = ‹time›

    常见问题解答

    为什么我的传输速度比我付费的链路速率还要慢?

    单个 TCP 流面临三个独立的上限,且最终受限于其中最低的一个。协议开销会使链路本身的实际带宽减少约 5% —— 标准以太网帧在物理线路传输的 1,538 字节中仅包含 1,460 字节的有效载荷。接收窗口会将吞吐量限制在“窗口 ÷ RTT”以内,因此无论链路有多快,经典的 65,535 字节窗口都会将 50 ms 路径上的吞吐量限制在约 10.5 Mbit/s。而丢包则会将吞吐量限制在 (MSS ÷ RTT) ÷ √丢包率。上方的计算结果会明确指出是哪一个上限限制了您的数据。

    什么是带宽时延积?为什么它决定了窗口大小?

    BDP(带宽时延积,即链路速率 × 往返时间)是指在任意给定时刻链路上处于传输状态的数据总量。TCP 在未收到确认前最多只能发送一个窗口大小的数据,因此如果窗口小于 BDP,就会导致管道无法被填满:在 100 Mbit/s 速率和 50 ms RTT 的路径上,管道可容纳 625 kB 的数据,而 65,535 字节的窗口仅能填满其十分之一。这就是为什么高速且长距离的路径需要 TCP 窗口缩放(RFC 7323)的原因,它将可协商的最大窗口从 65,535 字节提升到了约 1 GB。

    数据包丢失是如何限制 TCP 吞吐量的?

    TCP 会将丢包视为网络拥塞,并在每次发生丢包时将发送速率减半,因此在高速路径上,即使是极微小的丢包率也会产生巨大影响。Mathis 模型估算的上限为 (MSS ÷ RTT) ÷ √p —— 在 50 ms 路径、1,460 字节 MSS 且丢包率为 0.01% 的情况下,无论链路速度多快,吞吐量上限都只有约 23 Mbit/s。该模型假设丢包事件是均匀分布且相互独立的;在丢包率低于约 1% 时,它能很好地契合实际情况,而对于突发性丢包,其估算结果则偏向乐观。

    这里的兆字节(MB)和我的文件管理器里显示的一样吗?

    并非如此。本页面使用的是网络界通用的十进制单位:1 kbit = 1,000 比特,1 MB = 1,000,000 字节。而大多数文件管理器使用的是基于 1024 的单位(通常被误标为 MB)—— 文件管理器中显示的“100 MB”文件通常是 100 MiB ≈ 104.86 十进制 MB,因此传输该文件所需的时间会比十进制计算得出的时间长约 5%。在此处输入 104.86 MB 即可完全对应。