> For the complete documentation index, see [llms.txt](https://doraemonzzz.gitbook.io/cs-144-introduction-to-computer-networking-notes/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doraemonzzz.gitbook.io/cs-144-introduction-to-computer-networking-notes/unit3-packet-switching/3.13.md).

# 例子

让我们看看一个关于延迟保证的工作实例。

两台终端主机被三台路由器和四条运行速度为100Mb/s的250km的链路分开。终端主机想以15Mb/s的速度向对方发送一个1500字节的数据流，但他们不希望他们的分组从端到端的时间超过10ms。如果每个路由器都以15Mb/s的速度为数据流提供服务，那么分组在每个路由器中会延迟多长时间？(假设传播速度为$$2\times 10 ^8$$m/s，排队延迟在路由器中平均分配)。

从问题中我们知道，三分之一的排队延迟将在每个路由器中。因此，首先，我们需要弄清楚排队延迟是什么。排队延迟将是总延迟，也就是10ms，减去固定延迟，也就是分组延迟和传播延迟的总和。

让我们先计算一下分组延迟，即把一个1500字节的分组传送到路径上的四条链路中的每一条的时间。对于每条链路，分组延迟是1500bytes \* 8bits/byte除以100Mb/s($$10^8$$)，这给了我们一个0.48ms的总分组延迟。

现在我们来计算传播延迟，即一个比特穿越所有四个链路所需的时间。每个链路的时间是250公里乘以每公里1000米，再除以传播速度，所有四个链路的总时间将是5ms：

$$
4\times 250 \mathrm{km} \times 10^3 (\mathrm{m/km}) / (2 \times 10^ 8)(\mathrm {m/s}) = 5\mathrm{ms}
$$

因此，我们的总固定延迟是5.48ms。这意味着排队延迟是10-5.48ms=4.52ms，我们被告知这是由三个路由器平均分配的。

因此，每个路由器的排队延迟不能超过1.507ms，即答案是每个路由器的延迟为1.507ms。

我们可以继续计算每个路由器中需要容纳1.507ms数据的缓冲量。鉴于队列的服务速度为15Mb/s，这相当于1.507ms \* 15Mb/s = 22,605比特。在实际中，我们会将其四舍五入到至少两个分组，即每个路由器需要24,000比特。
