📊 BDP 带宽延迟乘积计算器
计算理论网络吞吐能力与最佳 TCP 窗口大小。针对长距离、高带宽链路调优,解决“宽带够快但传输很慢”的问题。
📥 链路参数输入
Mbps
ms
💡 什么是 BDP?
BDP (Bandwidth-Delay Product) 代表了在该链路上“飞行中”可以容纳的最大数据量。它是评估高延迟带宽网络(LFN)性能的核心指标。
BDP (Bandwidth-Delay Product) 代表了在该链路上“飞行中”可以容纳的最大数据量。它是评估高延迟带宽网络(LFN)性能的核心指标。
📤 计算结果与调优建议
输入参数并点击计算查看报告...
理论 BDP (Bit)
-
理论 BDP (Byte)
-
建议 TCP 窗口大小
-
* 注:如果您的系统 TCP 缓冲区小于此值,无论物理带宽多大,单线程传输速度都将受限。
什么是 BDP (带宽延迟乘积)?
BDP 是指网络链路带宽与往返时延(RTT)的乘积。它反映了一个特定网络连接在任意时刻可以存在于“电缆”或“光纤”中的最大数据总量。在网络性能测试中,BDP 决定了为了维持满带宽传输,发送方在等待确认包(ACK)之前必须能够发送多少数据。
BDP 的数学计算公式
其计算逻辑非常直接:
BDP (bits) = 带宽 (bps) × 往返延迟 (seconds)
BDP (Bytes) = BDP (bits) / 8
为什么 BDP 对网络性能至关重要?
在高速且长距离的网络(常被称为 **长肥网络**,Long Fat Networks / LFN)中,延迟通常很高。例如,跨太平洋的链路延迟可能在 150ms 以上。
- TCP 窗口限制: TCP 协议通过滑动窗口机制控制流量。如果 TCP 窗口大小(Window Size)设置得比 BDP 小,那么发送方在填满窗口后必须停止发送并等待确认。
- 吞吐量瓶颈: 即使你有 1Gbps 的带宽,如果 RTT 为 200ms 而 TCP 窗口限制在 64KB,你的单线程理论最大吞吐量也仅有约 2.6 Mbps。
- 调优意义: 通过计算 BDP,运维工程师可以针对性地调整操作系统内核参数(如 Linux 的 net.core.rmem_max 和 wmem_max),开启 **TCP 窗口缩放 (Window Scaling)**。
如何优化高延迟网络下的传输速度?
- 开启 TCP 窗口缩放: 由于原始 TCP 头部限制窗口大小为 64KB,必须开启 Scaling 选项才能支持 GB 级别的窗口。
- 增大 Socket 缓冲区: 根据本计算器得出的建议值,调整发送和接收端的缓冲区大小。
- 使用现代拥塞控制算法: 采用如 **BBR (Bottleneck Bandwidth and RTT)** 算法,它能比传统的 Cubic 更智能地应对高延迟环境。
- 并发传输: 使用多线程下载工具(如 axel, aria2),通过建立多个并行 TCP 连接来利用被浪费的带宽。
常见问题解答 (FAQ)
1. 为什么我的计算结果比 64KB 大很多?
在现代光纤网络中,BDP 往往远超 64KB。这就是为什么旧版操作系统或未调优的嵌入式设备在高速网络中表现不佳的原因,因为它们受限于过小的 TCP 静态窗口。
2. 延迟 (Latency) 和带宽哪个更影响 BDP?
两者是对等影响。在远距离传输中,延迟是物理极限(受光速限制),因此通常通过增大窗口大小来抵消高延迟带来的负面影响。