如何在LinuxC中获得接口的最大带宽?

如何在LinuxC中获得接口的最大带宽?,c,linux,network-programming,kernel-module,C,Linux,Network Programming,Kernel Module,假设我有一台有3个网卡的机器;wifi、以太网和3G。我试图得到一条链路在给定时间内每个接口可以传输的估计速度(或带宽),并确定哪一个是最快的。在某个特定的时间。我正在编写一个linux内核模块。我使用的是内核版本2.6.35。有没有办法测量可用带宽?即使这意味着发送一个测试ping来测量我们在测量延迟时所做的事情…iperf可以帮助您测量实际带宽 实际上,这是一个难题。如果您知道所有三个NIC都连接到一个公共站点,那么显而易见的简单测试就是通过每个NIC传输一些数据并计时 然而,考虑到一般问题

假设我有一台有3个网卡的机器;wifi、以太网和3G。我试图得到一条链路在给定时间内每个接口可以传输的估计速度(或带宽),并确定哪一个是最快的。在某个特定的时间。我正在编写一个linux内核模块。我使用的是内核版本2.6.35。有没有办法测量可用带宽?即使这意味着发送一个测试ping来测量我们在测量延迟时所做的事情…

iperf可以帮助您测量实际带宽
实际上,这是一个难题。如果您知道所有三个NIC都连接到一个公共站点,那么显而易见的简单测试就是通过每个NIC传输一些数据并计时


然而,考虑到一般问题的难度,通过每个NIC和时间广播UDP可能“足够好”。这无法显示任何接收性能,但总比没有好。

在Linux上,您应该读取/proc/net/dev(您已经发送了总包数/字节数。在“开始”和“结束”时间获取这些数字)

(来源于此:)