如何确定具有多个链路的两个主机之间的路径的吞吐量

如何确定具有多个链路的两个主机之间的路径的吞吐量

我在搜索时看到了类似的问题,所以我认为这可能是提出这个问题最合适的地方。

我不确定如何在有多个链接的情况下计算数据传输路径的吞吐量。假设我们在两个主机之间有以下连接:

A <----- L1 -----> * <----- L2 -----> * <----- L3 -----> B

问题指出,三条链路中的每一条都具有给定的传输速率(以 Kbps 为单位)。问题描述要求计算给定路径的吞吐量,并根据此吞吐量计算结果确定传输某个任意长度的文件所需的时间。

假设我们有:L1 = 100Kpbs,L2 = 200Kbps,L3 = 300Kbps

我首先通过查看从主机 A 到 B 传输单个比特所需的总时间来解决这个问题,该总时间为每条链路的传输速率的倒数和。

  • 所用时间 = 传输位数 * (1/L1 + 1/L2 + 1/L3)

但在上述情况下,等效传输速率将为 54.5Kbps!这个结论显然是错误的,因为我们至少数据传输率为 100Kpbs。退一步想一想,我意识到如果将整个链路视为以下类型的单个连续链路,那么这确实是正确的答案:

A <----- L_equivalent -----> B

但事实并非如此,因为在物理空间中我们实际上有三条不同的链路路径。因此,我们应该预期多个比特可能通过不同的链路同时传输。如果我们在任何给定时间将单个比特从 A 传输到 B,并且仅在前者到达后才传输下一个比特,则上述解决方案是正确的。


总结

实际上,难道不是这样吗:我们首先从 A 传输一个比特通过 L1,然后当 L1 将同一个比特发送到 L2 时,我们可能会将另一个比特传输到 L1 并继续进行。那么,A 和 B 之间这条路径的吞吐量仅仅是最慢链路的传输速率 100Kbps,这个结论正确吗?

答案1

您的结论确实有道理。L1 = 100Kpbs在您的示例中,在路径的某个地方会遇到瓶颈。因此,最大吞吐量不会超过此最低值。

一个真实的例子是,一个企业工作站连接到端口速度为 100Mb/s 的接入级交换机。该交换机又连接到速度为 1Gb/s 的分布级交换机。分布交换机连接到具有 10Gb/s 连接能力的核心交换机。

现在我们看一下工作站,尽管某处有 10Gb/s 的连接,但它的连接速度仍然是 100Mb/s。

答案2

在链路未使用的情况下,您最多会获得容量最小的链路的吞吐量。因此是 L1,即 100Kbps。这就是为什么当您拥有 100Mbps 有线互联网链路时,由于您与目的地之间的某些链路拥塞或较小,您获得的吞吐量通常远远低于该吞吐量。

另外,您似乎混淆了吞吐量和速度(或延迟)。吞吐量是指给定间隔(kbps)内有多少数据包,而速度则表示数据包到达给定目的地的速度。卫星链路的吞吐量很大,但由于距离较远,延迟非常严重。

相关内容