时延四兄弟#
计算机网络的性能指标 · 第二讲
视频讲解 https://www.bilibili.com/video/BV14Lnb67EzD/
一句话#
一个分组从发出到到达,路上要花四段时间;真正决定体验的只有前两段,而提速只能改第一段。
一、总公式#
总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延
教材:在计算机网络中,通常只考虑发送时延和传播时延。后两个量级小,而且难以估算(排队时延取决于实时流量),所以一般不计入。
但「不计入」不等于「不存在」——拥塞时排队时延可以从微秒涨到几百毫秒,反而成了最大的一项。
| 时延 | 量什么 | 典型量级 |
|---|---|---|
| 发送时延 | 把整个数据推上线 | 毫秒级(可能到秒) |
| 传播时延 | 信号在链路上跑 | 毫秒级(跨洲可到百毫秒) |
| 处理时延 | 路由器查表、检错 | 微秒级 |
| 排队时延 | 在缓冲区等前面先走 | 微秒级,拥塞时可到几百毫秒 |
二、发送时延#
发送时延(transmission delay,也叫传输时延)是主机或路由器把整个数据帧发送到链路上所需要的时间。
发送时延 = 数据帧长度(bit) ÷ 发送速率(bit/s)
- 数据帧长度单位必须是 bit,不是字节
- 发送速率就是网卡的带宽,比如 1 Gbit/s
算例:1000 字节的数据块,用 1 Gbit/s 的网卡发出去
1000 字节 = 8000 bit
发送时延 = 8000 bit ÷ 10⁹ bit/s = 8 × 10⁻⁶ s = 8 μs
注意公式里的两个量:长度和速率。和链路有多长没有半点关系——链路长一万公里,只要速率不变,装车时间一样。
生活比喻:装车。货越多、装得越慢,装车时间越长;和车要开多远无关。
三、传播时延#
传播时延(propagation delay)是电磁波在信道中传播一定距离所花的时间。
传播时延 = 信道长度(m) ÷ 电磁波在信道上的传播速率(m/s)
电磁波在不同介质里的速度不一样,教材给的三个值:
| 介质 | 传播速率 |
|---|---|
| 铜缆 | 2.3 × 10⁵ km/s |
| 光纤 | 2.0 × 10⁵ km/s |
| 无线电(自由空间) | 3.0 × 10⁵ km/s |
(真空中光速是 3.0 × 10⁵ km/s,即 3 × 10⁸ m/s;光纤里因为折射率略慢,约 2 × 10⁵ km/s。)
算例:1000 km 光纤
传播时延 = 1000 km ÷ 2.0 × 10⁵ km/s = 5 × 10⁻³ s = 5 ms
生活比喻:车在路上开。只看路有多长、车跑多快,和装了多少货无关。
教材里有个容易混的点:「高速链路」指的是发送速率高,不是传播速率高。信号在光纤里永远是大约 2 × 10⁵ km/s,不会因为你换了更贵的设备而变快。
四、两段时延放在一起比#
同样一条 1000 km 的光纤:
| 数值 | 怎么算的 | |
|---|---|---|
| 传播时延 | 5 ms | 1000 km ÷ 2×10⁵ km/s |
| 发送时延 | 8 μs | 1000 字节 ÷ 1 Gbit/s |
5 ms 是 8 μs 的 625 倍。
这条对比说明了教材里那句关键结论:
「对于高速网络链路,我们提高的仅仅是数据的发送速率而不是比特在链路上的传播速率。提高链路带宽只是减少了数据的发送时延。」
换句话说:
带宽 ↑ → 发送时延 ↓ → 传播时延不变
所以再快的网,也救不了远距离。这就是为什么打跨洋电话、访问境外服务器,再怎么升级带宽,那几百毫秒的延迟始终在——它由物理距离决定,不由带宽决定。
五、处理时延与排队时延#
5.1 处理时延#
主机或路由器收到分组后要做的那些事:
- 分析首部,提取目的地址
- 查路由表决定往哪转发
- 差错检验
- 必要时排队调度
这些动作都在微秒级完成,教材说一般可以忽略。
5.2 排队时延#
分组在路由器里排队等转发的时间。它取决于两件事:此刻来了多少分组、路由器处理得多快。
- 网络空闲:队列很短,排队时延几乎为零
- 网络拥塞:队列越排越长,排队时延急剧增大,甚至导致缓冲区溢出、分组被丢弃
这是四个时延里唯一会剧烈波动的一个,也是后面讲利用率时那个著名的 D = D₀ / (1 − U) 的来源。
六、四兄弟一张表#
| 时延 | 公式 | 取决于 | 比喻 |
|---|---|---|---|
| 发送时延 | 数据长度 ÷ 发送速率 | 带宽、数据量 | 装车 |
| 传播时延 | 距离 ÷ 电磁波速度 | 距离、介质 | 开车上路 |
| 处理时延 | — | 路由器性能 | 过站查证 |
| 排队时延 | — | 当前流量 | 堵车 |
一句话:发送看带宽,传播看距离;处理看设备,排队看拥塞。
七、留给下一集的问题#
时延讲完了,但还有三个指标在门外:
- 一根链路「装得下」多少比特?—— 时延带宽积
- 发出去到收到回应,一个来回多久?—— RTT
- 链路忙到什么程度会开始堵?—— 利用率
下一集:时延带宽积 · 往返时间 · 利用率。
依据表#
| 片中表述 | 依据 | 备注 |
|---|---|---|
| 总时延 = 发送 + 传播 + 处理 + 排队 | 谢希仁 7 版 §1.6.4 | 原文 |
| 通常只考虑发送时延和传播时延 | §1.6.4 | 原文「在计算机网络中,通常只考虑发送时延和传播时延」 |
| 发送时延 = 数据帧长度(bit) ÷ 发送速率(bit/s) | §1.6.4 | 原文公式 |
| 传播时延 = 信道长度(m) ÷ 电磁波在信道上的传播速率(m/s) | §1.6.4 | 原文公式 |
| 铜缆 2.3×10⁵ km/s、光纤 2.0×10⁵ km/s、自由空间 3.0×10⁵ km/s | §1.6.4 | 教材给出的三种介质速率 |
| 1000 km 光纤传播 5 ms | 由公式计算 | 1000 ÷ 2×10⁵ = 5×10⁻³ s |
| 1000 字节 @1 Gbit/s 发送 8 μs | 由公式计算 | 8000 bit ÷ 10⁹ bit/s |
| 5 ms 是 8 μs 的 625 倍 | 5000 ÷ 8 | 换算 |
| 「提高链路带宽只是减少了数据的发送时延」 | §1.6.4 | 原文引用 |
| 处理时延、排队时延的构成 | §1.6.4 | 原文列举 |
| 画面「缓冲区内包从 3 个增到 10 个」 | 教学示意 | 非教材数值,只表达「拥塞时队列变长」 |
说明:本集只说「处理时延和排队时延通常忽略」,没有给具体的数量级上限——教材本身也没给固定值,实际取决于设备和流量,因此表中「典型量级」一栏标注为经验范围,课堂上可讲成「微秒级 / 毫秒级」的定性说法。