Skip to content

第2章:分组交换与网络性能

四种时延

长度为 LL bit 的分组经过速率为 RR bit/s 的链路,发送时延为 L/RL/R。这是把整个分组推上链路所需的时间。传播时延为 d/vd/v,由距离和介质中的传播速度决定,与分组长度无关。

处理时延来自查表、校验等操作,排队时延来自等待输出链路。提高带宽会降低发送时延,但不直接缩短地理距离产生的传播时延。

对存储转发、无排队、无处理开销的 hh 条相同链路,单个分组到达需

T=hLR+i=1hdivi.T=h\frac LR+\sum_{i=1}^h\frac{d_i}{v_i}.

若连续发送 kk 个等长分组,链路能够流水工作,总时间变为 (h+k1)L/R(h+k-1)L/R 加总传播时延,而不是 khL/RkhL/R

一个计算例子

1500 B 分组通过三条 10 Mbit/s 链路,每条传播时延为 2 ms。单跳发送用时 12000/107=1.212000/10^7=1.2 ms。一个分组完整到达用时 3×1.2+3×2=9.63\times1.2+3\times2=9.6 ms。

若连续发送十个分组,在中间设备可以同时收发、没有竞争流量的假设下,最后一个分组于 (3+101)×1.2+6=20.4(3+10-1)\times1.2+6=20.4 ms 到达。例子忽略协议头;若 1500 B 是应用数据,则需要另计各层开销。

带宽、吞吐量与窗口

带宽表示链路容量,吞吐量表示实际完成的数据率。多跳路径持续传输时通常受最慢链路约束,但丢包、窗口、应用速度和协议开销都可能进一步降低吞吐量。

若发送方最多允许 WW bit 未确认数据在途,往返时间为 RTTRTT,忽略其他限制时吞吐量至多约为

min(R,WRTT).\min\left(R,\frac W{RTT}\right).

100 Mbit/s、RTT 为 40 ms 的路径,带宽时延积为 4 Mbit,即 500 kB。窗口明显小于此值时,发送方即使不丢包也常在等待确认。扩大窗口不能让吞吐量超过瓶颈容量。

排队与拥塞

多个输入共享一个输出端口时,短期突发会形成队列。无限缓冲的简单 M/M/1 模型中,分组到达率为 λ\lambda,服务率为 μ\mu,在 λ<μ\lambda<\mu 时平均系统逗留时间为 1/(μλ)1/(\mu-\lambda)。这依赖泊松到达和指数服务时间,不能直接当作所有互联网流量的精确公式。

公式揭示的现象具有普遍性:利用率逼近满载时,排队可能急剧增长。增加缓冲可吸收突发,却不能解决长期输入超过输出的情况;它还可能造成持续高时延,即 bufferbloat。

练习

  1. 将例子中的链路速率提高十倍,单个分组总时延减少到原来的十分之一吗?
  2. RTT 为 80 ms,窗口为 64 kB,忽略丢包时窗口限制的吞吐量是多少?
  3. 一个缓冲区持续满载,增加一倍容量为什么可能只增加等待时间?

上次更新: