存储转发分组交换延迟

网络工程 路由器 网络 速度 包路径
2022-02-18 14:52:40

我在阅读Computer Networking a Top Down Approach时出现了我的问题。关于分组交换,作者说了以下几点:

L = 数据包长度(位)
R = 传输速率(位/秒)

并且整个数据包已被目的地接收。因此,总延迟为 2L/R。如果交换机在比特一到达就转发它们(而不是首先接收整个数据包),那么总延迟将是 L/R,因为比特没有在路由器上保留。”

但是,当他说:

如果交换机在比特一到达就转发它们(而不是首先接收整个数据包),那么总延迟将是 L/R,因为比特没有在路由器上保留。”

但是,这对我来说并不重要,因为如果一个数据包从源 PC 到目标 PC 需要 2L/R 并且路由器存储和转发数据包,那么如果路由器只是转发比特,为什么需要 L/R在将整个数据包传输到出站链路之前立即不缓冲整个数据包?考虑到我们知道两台 PC 是通过路由器连接的,第一条链路将源 PC 连接到路由器,第二条链路将路由器连接到目标 PC,并且两条链路都在 R 处传输,是否仍需要 2L/ R 时间量与缓冲无关?

2个回答

它试图传达的是,一旦在一个接口上接收到一个位,它就可以在下一个接口上传输。

把数据包想象成一条蛇,把门的门槛想象成路由器。如果整条蛇在穿过门槛前蜷缩在门槛上,也就是向前移动,蛇完全穿过门口所需的时间是蛇直接滑过门口所需时间的两倍。

蛇的长度和速度决定了整条蛇直接滑过门槛进入门口需要多长时间,但如果它必须先完全爬上门槛,则需要两倍的时间。

使用存储转发,路由器仅在从源接收到最后一个比特后才开始将数据包的第一个比特发送到最终目的地。

不缓冲时,路由器会在收到数据包后立即开始发送数据包的第一个比特。当第二个比特到达路由器时,第一个比特到达最终目的地。

通过并行接收和发送数据包,路由器可以更快地完成工作。有人可能会争辩说,这种情况下的实际延迟是 (L+1)/R,因为发送只能在接收到一位后开始,因此在 1/R 时间之后。