Network Performance Metrics
性能指标总览
| 指标 | 关注的问题 |
|---|---|
| 速率 | 数据传送有多快 |
| 带宽 | 链路理论上能传多快 |
| 吞吐量 | 实际通过了多少数据 |
| 时延 | 一个分组从发送到到达要多久 |
| 时延带宽积 | 链路中能同时“容纳”多少比特 |
| RTT | 一次往返交互要多久 |
| 利用率 | 链路或网络有多少时间处于忙碌状态 |
| 丢包率 | 有多少分组丢失 |
速率
速率是数据的传送速率,也称数据率或比特率,基本单位是 bit/s。
| 单位 | 含义 |
|---|---|
kb/s |
$10^3$ bit/s |
Mb/s |
$10^6$ bit/s |
Gb/s |
$10^9$ bit/s |
Tb/s |
$10^{12}$ bit/s |
计算机组成原理、操作系统里讨论存储容量时,KB、MB、GB 常按 $2^{10}$ 进位理解;计算机网络里讨论速率时,kb/s、Mb/s、Gb/s 通常按 $10^3$ 进位理解。例如 $1\text{ Mb/s}=10^6\text{ bit/s}$,不是 $2^{20}\text{ bit/s}$。
b 是 bit,比特;B 是 Byte,字节。$1\text{ B}=8\text{ b}$。网络速率通常用 bit/s,文件大小和存储容量常用 B、KB、MB、GB。
带宽在不同语境下有不同含义:
- 在模拟信号系统中,带宽表示信号占据的频率范围,单位是 Hz。
- 在计算机网络中,带宽表示通信线路传送数据的能力,单位通常是 bit/s。
网络中一次传输的实际速率会受到链路、接口、交换机、路由器等多个环节限制。瓶颈环节决定上限,也就是常说的“木桶效应”。
带宽像“道路最大通行能力”,吞吐量像“实际通过的车辆数”。带宽高不代表某一时刻实际数据量一定高。
吞吐量是在单位时间内通过某个网络、链路或接口的实际数据量。
如果某用户同时有:
- 视频下载:20 Mb/s
- 网页下载:600 kb/s,即 0.6 Mb/s
- 文件上传:1 Mb/s
则该用户此时的吞吐量为:
1 | 20 Mb/s + 0.6 Mb/s + 1 Mb/s = 21.6 Mb/s |
吞吐量通常不超过瓶颈带宽,但会受到协议开销、拥塞、设备性能、应用行为等影响。
时延
一个分组从源主机到目的主机,通常经历四类时延。
| 时延 | 含义 | 常用公式 |
|---|---|---|
| 发送时延 | 把分组所有比特推上链路所需时间 | $\dfrac{\text{分组长度}}{\text{发送速率}}$ |
| 传播时延 | 信号在链路上传播所需时间 | $\dfrac{\text{链路长度}}{\text{传播速率}}$ |
| 排队时延 | 在路由器队列中等待处理或转发的时间 | 通常无法用固定公式计算 |
| 处理时延 | 检查首部、查表、差错检测等处理时间 | 通常无法用固定公式计算 |
发送时延看“分组有多长、接口发得多快”;传播时延看“链路有多长、信号跑得多快”。把 1 bit 送上链路也需要传播时延,把 1 MB 数据推上链路也需要发送时延。
分组交换采用存储转发,其工作过程见 分组交换。路由器通常要收到一个完整分组后,才能继续把该分组转发到下一段链路。
在不考虑排队时延和处理时延,且每段链路发送速率相同、传播时延相同的简化情况下:
- 发送 $m$ 个分组。
- 经过 $n$ 个路由器。
- 每个分组的发送时延为 $d_t$。
- 每段链路传播时延为 $d_p$。
总时间可理解为:
1 | m 个分组从源主机连续发送:m * d_t |
所以:
$$
D=(m+n)d_t+(n+1)d_p
$$
这里的关键是不要把每个路由器转发 $m$ 个分组的发送时延都重复相加。流水线形成后,中间路由器转发前一个分组时,源主机可能已经在发送后一个分组。
时延带宽积
时延带宽积是传播时延与带宽的乘积:
$$
\text{时延带宽积}=\text{传播时延}\times\text{带宽}
$$
它表示链路中正在传播、尚未到达接收端的比特数,也可以理解为第一个比特即将到达终点时,链路上正在传播的比特数。
例如链路长度为 1 km,带宽为 1 Gb/s,光在光纤中的传播速率约为 $2\times10^8$ m/s:
$$
\text{传播时延}=\frac{1000}{2\times10^8}=5\times10^{-6}\text{ s}
$$
$$
\text{时延带宽积}=5\times10^{-6}\times10^9=5000\text{ b}
$$
这表示第一个比特即将到达终点时,链路上大约已经有 5000 个比特正在传播。
RTT
RTT,Round-Trip Time,往返时间,是从发送端发送数据开始,到收到接收端确认所经历的时间。
许多网络应用都不是单向传输,而是请求-响应式交互。RTT 越大,用户感受到的响应越慢。ping 测量的就是一类往返时间。
利用率
利用率分为链路利用率和网络利用率:
- 链路利用率:某条链路有多少比例的时间正在传送数据。
- 网络利用率:网络中各链路利用率的加权平均。
利用率不是越高越好。利用率升高后,排队时延会迅速增大;当利用率接近 1 时,时延可能趋近无穷大。
一条链路长期接近满载,说明资源被充分使用,但也说明几乎没有余量吸收突发流量。此时稍有流量增加,就会排队、时延暴涨甚至丢包。
丢包率是在一定时间范围内,丢失分组数占总分组数的比例:
$$
\text{丢包率}=\frac{\text{丢失分组数}}{\text{总分组数}}
$$
分组丢失常见原因:
- 传输过程中出现误码,被中间结点或目的主机检测后丢弃。
- 路由器、交换机队列溢出,根据丢弃策略主动丢弃分组。
丢包会影响吞吐量、时延和应用体验。实时音视频、网络游戏、交互式远程操作尤其敏感。