2

我正在构建一个离散事件模拟器,并且需要能够计算给定网络拓扑中两个系统之间可用的理论带宽,以便我可以“计时”传输需要多长时间和在预期的完成时间创建一个事件。

目前,为简单起见,我不考虑交换机的背板或网络内发生冲突/拥塞的可能性。我只是对所有通信系统之间的最大传输速率感兴趣。

例如,考虑以下示例网络拓扑: 示例拓扑

我们假设以下连接:

Source 1, Source 2 -> (sending to) Dest 1
Source 3, Source 4 -> (sending to) Dest 2

给定这些连接,所有源的最大有效传输速率是多少?

如果我们将其可视化为图表,我可以通过从源开始并在每个交换机级别评估传入网络流量的最大量与交换机的上行链路来手动计算这一点。

例如,此场景中的 Source #1 到 Dest 1 的有效带宽为 50 Mbps

1 Gbps * S1(1/2) * S2(1) * S3(1/10) = 50 Mbps

但是,我很好奇可以使用哪些其他方法来计算它,或者是否有更有效的方法可以用来“预测”网络流量。

任何反馈表示赞赏 - 谢谢。

4

1 回答 1

1

这本质上是一个最大最小公平问题。

https://en.wikipedia.org/wiki/Max-min_fairness

渐进式填充算法(在 Wiki 文章中描述)是解决此问题的简单方法:

如果在网络节点中预先分配资源,则可以通过渐进式填充算法获得最大最小公平性。您从所有速率等于 0 开始,并以相同的速度一起提高所有速率,直到达到一个或多个链路容量限制。使用这些链接的来源的费率不再增加,您继续提高其他来源的费率。所有被停止的源都有一个瓶颈链接。这是因为它们使用了饱和链接,并且所有其他使用饱和链接的源同时停止,或者之前停止,因此具有较小或相等的速率。该算法一直持续到不可能增加为止。最后,当算法终止时,所有源都在某个时间停止,因此存在瓶颈链接。

于 2013-01-20T06:35:16.003 回答