1. 概述
在网络通信中,数据通常以**数据包(Packet)为单位进行传输。一个数据包从发送端到接收端的过程中会经历一定的延迟(Latency)**。延迟是衡量网络性能的重要指标之一,通常由以下四部分组成:
✅ 传播时延(Propagation Delay)
✅ 传输时延(Transmission Delay)
✅ 排队时延(Queuing Delay)
✅ 处理时延(Processing Delay)
本文重点介绍传播时延与传输时延,这两个时延在实际网络中较为复杂,也更难估算。
2. 传播时延
传播时延是指一个比特从链路的一端传播到另一端所需的时间。比特以电磁波的形式在介质中传播,传播速度取决于所使用的传输介质(如光纤、双绞线等)。
公式如下:
$$ \text{Propagation Delay} = \frac{D}{S} $$
其中:
- $ D $:发送端与接收端之间的物理距离(单位:米)
- $ S $:信号在该介质中的传播速度(单位:米/秒)
示例
假设两点之间的距离为 48,000 km,信号在电缆中的传播速度为 $ 2.4 \times 10^8 , \text{m/s} $,则传播时延为:
$$ \frac{48000 \times 10^3}{2.4 \times 10^8} = 200,\text{ms} $$
⚠️ 注意:传播时延与链路带宽无关,仅取决于物理距离和传播速度。
3. 传输时延
传输时延是指将一个完整的数据包推送到链路上所需的时间。它主要受数据包大小和链路带宽影响。
公式如下:
$$ \text{Transmission Delay} = \frac{L}{R} $$
其中:
- $ L $:数据包大小(单位:比特)
- $ R $:链路带宽(单位:bps)
示例
发送一个 1500 字节的数据包(即 $ 1500 \times 8 = 12000 $ 比特),链路带宽为 100 Mbps,则传输时延为:
$$ \frac{12000}{100 \times 10^6} = 0.12,\text{ms} $$
⚠️ 注意:传输时延与数据包大小成正比,与带宽成反比。
4. 实战问题解析
为了更深入理解这两个时延的计算方式,我们通过三个实际问题来演示如何进行网络时延分析。
4.1 问题一
场景描述
发送端与接收端之间有 2 条 1-Gbps 链路和一个交换机。每个链路的传播时延为 $10,\mu s$,数据包大小为 5000 比特。交换机收到整个包后立即转发。
分析
- 每条链路传输时延:$ \frac{5000}{10^9} = 5,\mu s $
- 每条链路传播时延:$10,\mu s$
- 总时延 = 2 × (传输时延 + 传播时延) = $2 \times (5 + 10) = 30,\mu s$
扩展场景
若使用 3 个交换机和 4 条链路,总时延为:
- 4 × (传输时延 + 传播时延) = $4 \times (5 + 10) = 60,\mu s$
4.2 问题二
场景描述
两台主机通过一个交换机连接,链路带宽为 $10^7$ bps,传播时延为 $20,\mu s$。交换机在收到包后 35 微秒才开始转发。需传输 10000 比特数据,分两个 5000 比特包发送。
分析
- 每个包传输时延:$ \frac{5000}{10^7} = 500,\mu s $
- 第一个包到达时间:$500 + 20 + 35 + 20 + 500 = 1075,\mu s$
- 第二个包开始发送时间:500 μs 后,但其传输时间与第一个包部分重叠
- 总时间:$1075 + 500 = 1575,\mu s$
4.3 问题三
场景描述
主机 A 向 C 发送一个 5MB 文件,每包 500 字节。C 收到后向 A 发送 50 字节确认包。A 收到确认后才发送下一个包。
分析
- 从 A 到 B:
- 传输时延:$ \frac{500 \times 8}{4 \times 10^6} = 1,\text{ms} $
- 传播时延:$ \frac{3000 \times 10^3}{3 \times 10^8} = 10,\text{ms} $
- 从 B 到 C:
- 传输时延:$ \frac{500 \times 8}{10 \times 10^6} = 0.4,\text{ms} $
- 传播时延:$ \frac{900 \times 10^3}{3 \times 10^8} = 3,\text{ms} $
总传输时延(A → C)= $1 + 10 + 0.4 + 3 = 14.4,\text{ms}$
确认包从 C → A:
- 传输 + 传播总时延 = $13.14,\text{ms}$
单次往返时间(RTT)= $14.4 + 13.14 = 27.54,\text{ms}$
5MB 文件需传输 $ \frac{5 \times 10^6}{500} = 10000 $ 个包
总时间 = $10000 \times 27.54 = 275.4,\text{秒}$
5. 总结
本文详细介绍了传播时延和传输时延的定义、计算公式,并通过三个典型问题演示了它们在网络时延分析中的实际应用。理解这两个时延对优化网络性能、设计分布式系统具有重要意义。
✅ 传播时延:与物理距离和介质有关,与带宽无关
✅ 传输时延:与数据包大小和链路带宽有关
在实际应用中,两者常常同时存在,需综合考虑。对于大规模网络传输或高并发系统,精确估算这些时延对性能调优至关重要。