使用iperf和tcpdump的数据包丢失率


10

我测试了一条线的链接质量iperf。测得的速度(UDP端口9005)为96Mbps,这很好,因为两台服务器均以100Mbps的速度连接到Internet。另一方面,数据报丢失率显示为3.3-3.7%,我发现这有点太多。使用高速传输协议,我用记录了双方的数据包tcpdump。比我计算的丢包率-平均0.25%。有谁能解释这个巨大差异可能来自何处?您认为可接受的丢包是什么?


使用tcpdump进行嗅探时使用了哪种协议?是TCP还是UDP?
PiL 2010年

我在两个测试中都使用了udp。
stefita

嗯...您可以尝试使用另一个数据包嗅探器吗?
PiL 2010年

2
Wireshark将使用与tcpdump相同的后端来捕获数据包,因此它不会提供不同的结果(libpcap或winpcap,取决于平台)。
杰德·丹尼尔斯

1
您可以tcpdumpiperf会话期间测量数据包丢失吗?比您的估计更合适。第二个在测试过程中监视服务器状态-可能只是丢弃数据包吗?
lexsys 2010年

Answers:


3

由于CPU无法跟上,我在UDP模式下使用iPerf经历了严重的数据丢失。出于某种原因,iperf的使用UDP似乎是更多的CPU比的iperf与TCP密集。将iPerf设置为损失率的一半时,您是否经历相同的损失百分比?

要回答有关可以接受多少数据包丢失的第二个问题,它实际上取决于您正在运行的应用程序,所拥有的流量。确实,如果您处于带宽限制之内,就不会有任何损失。对于大多数事情,我可能不会抱怨.25%太多,但是如果您以很高的速度运行,那仍然是很多损失。

[编辑1]我对该主题还有其他想法:

  1. 尝试增加iPerf的费率。如果某个地方存在系统性问题,那么无论损失率如何,都可能遭受相同百分比的损失。如果您处于硬件极限,或者您的提供商进行了某种形式的RED,那么在达到一定速率时可能不会有任何损失,而高于您的损失则损失会越来越严重。
  2. 对iPerf会话进行tcpdump测量,只是为了验证测试是否正确。
  3. 尝试将iPerf与TCP配合使用。这不会报告丢失,但是如果您丢失了,则连接将无法扩展得很高。由于延迟也会影响此延迟,因此请确保以尽可能小的延迟对端点进行测试。
  4. 根据连接内部的齿轮,确保尽可能靠近它。例如,如果您的测试系统和边缘路由器之间有多个交换机,请移至直接连接的交换机。
  5. 如果您拥有一台管理型交换机,请检查其统计信息,以确保没有发生丢失。我遇到了一些便宜的交换机,当它们上的UDP流量接近100Mbps时,它们就会开始掉线(不过,大多数都是旧的便宜的非托管交换机)。
  6. 尝试同时从两个不同的客户端到两个不同的主机的iPerfs,以便可以确定限制不是由CPU或便宜的本地NIC卡引起的。

那可能是一个很好的理由。不幸的是,由于防火墙问题,我现在无法测试。我进行了新的测试后,我会尽快回复您的答案。
stefita

0

嗯,使用TCP有一些机制可以最大程度地利用一个流,而使用UDP则没有。因此,每个应用程序都必须创建自己的机制,因此可能每个应用程序都使用不同的方法来做到这一点。Iperf可能会允许丢失更多的数据包,因为它试图达到最大可用带宽,而不用担心是否接收到信息。另一个应用程序可能会尝试不丢失很多数据包,并将数据包速率降低到连接中的可用吞吐量。


0

使用iPerf来确保使用tcpdump计算的数据包丢失与iperf匹配时,是否使用tcpdump检查数据包丢失?

您可能会发现您的测量方法不可比。


0

iperf是否会自动丢弃通过UDP不按顺序到达的数据包?您可能正在查看连接上的一些抖动。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.