通过 ethtool、tcpdump 和 ifconfig 测量数据包丢失

通过 ethtool、tcpdump 和 ifconfig 测量数据包丢失

我有一个关于数据包丢失的问题。

我正在运行测试以确定何时发生数据包丢失。我使用 Spirent TestCenter 通过交换机(需要将来自 5 个端口的以太网流量聚合到一个光纤链路)连接到使用 Myricom 卡的服务器。

在运行我的测试时,如果输入速率低于某个值,ethtool 不会报告任何丢包(dropped_multicast_filtered 除外,其递增速度非常慢)。但是,tcpdump 会报告“内核丢弃”的数据包数量。然后,如果我增加输入速率,ethtool 会报告丢包,但“ifconfig eth2”不会。事实上,ifconfig 似乎根本没有报告任何丢包。它们是否都在不同的“级别”测量丢包,即 ethtool 在 NIC 级别,tcpdump 在内核级别等?

我说得对吗?在传入数据包的旅程中,NIC 级别是“所谓的”第一级,然后是内核,然后是用户应用程序?因此,任何数据包丢失都可能首先发生在 NIC,然后是内核,然后是用户应用程序?因此,如果 NIC 没有数据包丢失,但内核有数据包丢失,那么瓶颈就不在 NIC 上?

谢谢。

问候,雷恩

相关内容