计算机网络的性能指标-时延带宽积RTT利用率

作者 Tea-Sun · 2026年10月27日 · 约 9 分钟

时延带宽积 · 往返时间 · 利用率#

计算机网络的性能指标 · 第三讲 视频讲解 https://www.bilibili.com/video/BV1zanb6iExi/

一句话#

前两讲讲的是「多快」和「多久」,这一讲讲的是链路这根管子有多长、跑一个来回有多久、塞得多满——以及塞满之后时延为什么会爆炸。


一、时延带宽积#

1.1 定义#

时延带宽积 = 传播时延 × 带宽

单位是比特。教材对它的解释最关键:

「链路可以看成是一个管道,管道的长度就是传播时延,管道的截面积就是带宽。因此,时延带宽积就表示管道中可以容纳多少个比特。」

所以时延带宽积还有个别名:以比特为单位的链路长度。

1.2 算例#

一条 1 Gbit/s 的链路,传播时延 5 ms:

时延带宽积 = 5 ms × 1 Gbit/s
          = 5 × 10⁻³ s × 10⁹ bit/s
          = 5 × 10⁶ bit
          = 5 Mbit(≈ 625 KB)

这 5 兆比特意味着什么? 发送端把第一个比特发出去,等它跑到终点时,发送端已经发完 5 Mb 了——这些比特全部「在路上」,既不在起点,也还没到终点。

1.3 它回答什么问题#

问题 用什么指标
链路每秒能吐多少比特? 带宽(bit/s)
一个比特从这头到那头要多久? 传播时延(s)
链路上同时「装着」多少比特? 时延带宽积(bit)

这个量在工程上很实际:TCP 的窗口要开多大才能「填满」一条链路,答案就是时延带宽积。窗口小于它,链路就永远跑不满。

注意别和上一讲的「发送时延」混:时延带宽积用的是传播时延,不是发送时延。


二、往返时间 RTT#

2.1 定义#

RTT(Round-Trip Time):从发送方发送数据开始,到发送方收到来自接收方的确认,总共经历的时间。

RTT = 去程 + 回程 + 中间结点的处理、排队、转发时间

教材特别指出:在互联网中,RTT 不只包含两段传播时延,还包括沿途每个路由器的处理时延、排队时延和转发时的发送时延。用卫星链路时,RTT 会明显偏大。

2.2 一个必须纠正的误解#

很多教材和资料上写:

RTT ≈ 2 × 传播时延

这是近似,不是定义。 它成立的前提是:发送时延、处理时延、排队时延都可以忽略。

  • 发一个小确认包(几十字节):发送时延在微秒级,相比几十毫秒的传播时延可以忽略 → 近似成立
  • 发一个大文件(几 MB):发送时延可能到几十毫秒,和传播时延同量级 → 近似失效
RTT = 2 × 传播时延 (仅当其余各项可忽略)

2.3 RTT 为什么会拖垮速率#

教材给的有效数据率公式,是这一节最有用的一条:

有效数据率 = 数据长度 ÷ (发送时延 + RTT)
           = L ÷ (L/R + RTT)

算例——停止等待协议,一条 1 Gbit/s 的链路,RTT = 100 ms,每次发 1000 字节:

L = 1000 字节 = 8000 bit
发送时延 = 8000 bit ÷ 10⁹ bit/s = 8 μs
有效数据率 = 8000 bit ÷ (8 μs + 100 ms)
          ≈ 8000 bit ÷ 0.1 s
          = 80 kbit/s

只有带宽的 8%。 带宽买到了,可绝大部分时间在等回话。

这就是为什么真实的传输协议不能「发一个等一个」:TCP 用滑动窗口,一次发很多个再统一确认;窗口大小要够大,才能把「等回话」的时间用数据填满——填满一条链路所需的窗口,正好就是它的时延带宽积。

两讲在这里接上了:时延带宽积告诉你链路能装多少比特,RTT 告诉你等一个来回要多久。窗口 = 带宽 × RTT,就是让链路不空转的条件。


三、利用率#

3.1 两个层次#

定义 看什么
信道利用率 某信道有百分之几的时间是被利用的(有数据通过) 一条链路
网络利用率 全网络的信道利用率的加权平均值 整个网络
信道利用率 = 有数据通过的时间 ÷ 总时间

完全空闲的信道,利用率是零。

3.2 利用率不是越高越好#

这是本节最反直觉的一点。教材的原话:

「根据排队论的理论,当某信道的利用率增大时,该信道引起的时延也就迅速增加。」

原因在上一讲提过:利用率高意味着队列经常非空,排队时延这一项开始暴涨。


四、利用率与时延的关系#

D = D₀ ÷ (1 − U)
  • D₀:网络空闲时的时延
  • D:网络当前的时延
  • U:利用率(0 ~ 1)
利用率 U 时延 D 倍数
0 D₀ 1 倍
0.5 2 D₀ 2 倍
0.8 5 D₀ 5 倍
0.9 10 D₀ 10 倍
→ 1 → ∞ 趋于无穷

曲线不是线性的:从 0 到 0.5,时延只翻了一倍;从 0.8 到 0.9,只多了 0.1 的利用率,时延就从 5 倍跳到 10 倍。越接近满载,涨得越凶。

所以工程上链路不会跑到满载,总要留余量。这也解释了为什么网络一「忙」起来体感就断崖式变差——不是带宽不够,是排队把时延推上去了。

教材还提到一个反向操作:一些 ISP 通过限制 P2P 流量、或对用户流量做分级收费,来压住峰值利用率,本质都是在给 1 − U 留余量。


五、三个指标合起来看#

指标 公式 单位 回答的问题
时延带宽积 传播时延 × 带宽 bit 链路上同时装着多少比特
往返时间 RTT 一去一回 + 中间结点开销 s 等一次回话要多久
利用率 有数据的时间 ÷ 总时间 百分比 链路有多忙

三者串起来是一条完整的因果链:

链路有多长(时延带宽积)
   ↓ 决定
窗口要开多大才能填满
   ↓ 结合
等一个来回要多久(RTT)
   ↓ 决定
实际能跑出多少吞吐量
   ↓ 而一旦
利用率逼近 1
   ↓ 则
排队时延按 1/(1−U) 爆炸

六、整个系列收口#

组 指标 回答
有多快 速率 · 带宽 · 吞吐量 每秒能过去多少比特
要等多久 时延四兄弟 · 时延带宽积 · RTT 一个比特要花多久、一个来回要多久
有多忙 利用率 · D = D₀/(1−U) 链路被用到什么程度、还能不能再塞

这就是衡量一条链路的三把尺子。


依据表#

片中表述 依据 备注
时延带宽积 = 传播时延 × 带宽 谢希仁 7 版 §1.6.5 原文公式
「管子」比喻:长度 = 传播时延,截面积 = 带宽 §1.6.5 原文比喻
时延带宽积 = 以比特为单位的链路长度 §1.6.5 原文表述
5 ms × 1 Gbit/s = 5 Mbit ≈ 625 KB 由公式计算 教材例子数值不同,算法一致(1 字节 = 8 bit,5×10⁶ ÷ 8 = 625 000)
RTT = 从发出到收到确认的时间 §1.6.6 原文定义
RTT 还包含中间结点的处理、排队、转发时间 §1.6.6 原文补充
有效数据率 = L ÷ (L/R + RTT) §1.6.6 原文公式
8000 bit ÷ 0.1 s = 80 kbit/s 由公式计算 8 μs 相对 100 ms 可忽略
80 kbit/s 是 1 Gbit/s 的 8% 80000 ÷ 10⁹ 换算
信道利用率 = 有数据通过的时间 ÷ 总时间 §1.6.7 原文
网络利用率 = 全网络信道利用率的加权平均 §1.6.7 原文
「利用率增大时,时延迅速增加」 §1.6.7 原文引用
D = D₀ ÷ (1 − U) §1.6.7 原文公式
U = 0.5 → 2 倍,U = 0.8 → 5 倍,U = 0.9 → 10 倍 由公式计算 教材只点了 0.5 和 0.9 两档
窗口中「发 8 μs、等 100 ms」的时间轴 教学示意 未按真实比例,真实比例下 8 μs 只有 0.1 像素;画面已注明
窗口「链路 1/2/3 分别为 100%/55%/82%,加权平均 79%」 教学示意 非教材数值,只为说明「加权平均」的含义

说明:第 2 幕画面里画了 16 个方块,不表示链路上真的只有 16 个比特(实际是 5 兆个);方块只是「比特正在路上」的示意,画多了反而看不清。