2022年8月24日星期三上午8:40
我猜你在用iperf做测试…那么是否显示了大量的丢弃数据包(接收器的统计数据是相关的)?当执行UDP测试时,如果发送方发送的流量速率高于瓶颈(在您的情况下,可能是由于SFP链路上的问题导致的任何交换机),这些都是正常的,但是对于TCP测试,如果唯一的瓶颈是某些链路上的低吞吐量,则应该没有丢包(TCP可以将Tx速率降低到接收方似乎能够处理的速率)。然而,当运行吞吐量低于测试设备(和被测试设备)的UDP测试时,丢弃的数据包能够指示物理层上的问题(例如故障电缆)。
已知的问题是,当不同L2段之间的链路速度发生变化时(例如在交换机之间),在快链路和慢链路之间的切换上可能会发生一些缓冲,因为一些帧可以通过较快的链路到达,而不能通过较慢的链路离开。通常情况下,切换缓存这些帧,但缓存限制在几个帧内,以避免缓冲区膨胀。因此,交换机可能会偶尔丢帧(这会严重影响TCP吞吐量,因为一些数据包必须重新传输,这意味着在崩溃速度时引入了大延迟)。理论上,以太网流量控制(对于Tx和Rx)应该有所帮助,因为开始缓冲数据的交换机可以指示正在传输缓冲数据的合作伙伴暂时停止传输(并且流量控制最终可以暂停原始发送器)。由于这种情况经常发生在L2上,所以应该会有很大的改善。然而,流量控制的实现有时不太理想(也有一些概念上的问题),因此结果有时甚至比禁用流量控制运行网络更糟糕。在这方面,MT似乎处于更糟糕的一面。
注:在ROS设备上运行speedtest本身很容易给出奇怪的(如果不是无效的)结果,因为speedtest进程非常占用CPU,并且可以错误地显示现实中不存在的问题。因此,如果您在两个crse上运行速度测试,请尝试在连接的pc上使用iperf执行测试,以验证您获得了可比较的结果。