交换网络上的典型吞吐量

网络工程 转变 吞吐量
2021-07-07 05:44:06

我最近开始在一个相当大的交换网络上测量有效吞吐量。我通过使用两台运行 Iperf 的笔记本电脑来测量吞吐量;一个是服务器,另一个是客户端。我确保测量上行和下行链路吞吐量。我的问题来自这样一个事实,即一些 100 Mbit/s 的路径被测量为从 50 到 80 Mbit/s 的所有路径。这似乎有点低,即使考虑到开销和大量活跃用户。

一些有用的信息:

网络使用 RSTP 并且没有路由跃点。从 Iperf 客户端到服务器的路径上至少有 100 个活动用户。吞吐量是在两台笔记本电脑之间具有至少三个 100 Mbit/s 交换机的路径上测量的。我用TCP测量。

所以我的问题可以总结为:这些值是可预期的吗?

另一个问题:我在千兆交换机上也获得了大约 250-300 Mbit/s 的速度,同时将两个节点插入其中。我对两个节点都使用了常规的直通电缆。即使交换机正在被其他机器使用,这也是无法预料的,​​对吗?

3个回答

吞吐量定义为在一段时间内从 A 点传输到 B 点的数据量。吞吐量中的重要变量是:延迟、数据包大小和重传(质量)。这已用马西斯方程证明。

http://www.slac.stanford.edu/comp/net/wan-mon/thru-vs-loss.html

TCP 基础:TCP 连接与 SYN 建立会话,接收机器发送和确认,然后数据流。当窗口(在窗口中设置说明在要求验证/确认接收之前收集多少数据)填满时,将发送另一组确认以启动下一个数据流。

如果您的环境的默认 MTU 为 1500,并且您引入了一个 MTU 为 1460 的设备,这将减慢您的网络速度,因为流经该设备的所有数据包都将被分段;当 1500 数据包到达 MTU 为 1460 的设备时,它会将数据包分成两个数据包并传输。

如果您启用了巨型帧并且您的 MTU 为 9220,您将获得更高的吞吐量,高出 5 倍。即使数据包具有相同的延迟,每个有效载荷也更大。

简而言之:吞吐量是有条件的,取决于主机和网络设备设置。使用 Mathis 方程作为指导,了解您对网络给定数据点的预期结果。验证您的发现并验证单位;兆位/秒和兆字节或千位和千字节不一样。

使用 UDP 进行测试以获得准确的吞吐量测量值。此外,您需要将 UDP 发送速率提高到高于默认值才能获得良好的测量结果。使用 TCP,您将处理窗口化,这将为您的目的提供一个人为的低数字。我通常尝试以高于已知链接速度的方式发送 UDP。然后,您将看到发送速率为 X,实际吞吐量为小于 X 的某个数字。

您可以使用“tcp no-delay”的 -N 选项使用 iperf 关闭 TCP 窗口。根据文档“设置 TCP 无延迟,禁用 Nagle 算法

我强烈建议将此选项与并发 TCP 会话一起使用来模拟更接近实际网络流量的东西,而不是发射 UDP 爆炸。