Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 测量每个接口的TX重传量_Linux_Network Programming_Libpcap - Fatal编程技术网

Linux 测量每个接口的TX重传量

Linux 测量每个接口的TX重传量,linux,network-programming,libpcap,Linux,Network Programming,Libpcap,我正在尝试获取Linux 2.6.33.3内核上特定网络接口的TX重新传输量。 是否有任何Linux原始数据可用于获取/计算此类信息? 我尝试了netstat,但找不到一种方法来获取特定接口的重传值。 在没有其他“快速”选择的情况下,构建一个小型应用程序需要我做些什么?使用任何捕获库侦听所有传出数据包并计数。。什么?重复数据包?通过某种数据包id? 我不是网络专家。。我在这种任务中会遇到麻烦吗?(顺便说一句,我可能会尝试使用python。有什么理由不这样做吗?如果您想要每个接口,请尝试ifcon

我正在尝试获取Linux 2.6.33.3内核上特定网络接口的TX重新传输量。
是否有任何Linux原始数据可用于获取/计算此类信息?
我尝试了
netstat
,但找不到一种方法来获取特定接口的重传值。
在没有其他“快速”选择的情况下,构建一个小型应用程序需要我做些什么?使用任何捕获库侦听所有传出数据包并计数。。什么?重复数据包?通过某种数据包id?

我不是网络专家。。我在这种任务中会遇到麻烦吗?(顺便说一句,我可能会尝试使用python。有什么理由不这样做吗?

如果您想要每个接口,请尝试ifconfig eth0,您可能已经得到了您想要的。只需通过python解析即可。

如果您想要每个接口,请尝试ifconfig eth0,您可能已经得到了您想要的。只需通过python解析即可。

您可以使用以下命令检查界面的配置:

mii-tool eth0
ethtool eth0
mii-diag eth0
并非所有这些都默认安装在任何Linux系统中,但它们肯定是分布式的,并且是可安装的

当您想测量界面的实际速度时,可以使用
dd
+
netcat

host1$ cat /dev/zero | nc -l -p 3000
host2$ nc host1 3000 | dd of=/dev/null
^C

dd
将向您写入
host1
host2
之间的重传速度。您可以使用以下命令检查界面的配置:

mii-tool eth0
ethtool eth0
mii-diag eth0
并非所有这些都默认安装在任何Linux系统中,但它们肯定是分布式的,并且是可安装的

当您想测量界面的实际速度时,可以使用
dd
+
netcat

host1$ cat /dev/zero | nc -l -p 3000
host2$ nc host1 3000 | dd of=/dev/null
^C

dd
将告诉您在
host1
host2

之间的重传速度是多少。好吧,这是一个很好的技巧,我将用于速度测试,但在这里,我试图获得已在传输的接口的重传量。我尝试了建议的工具,但找不到有用的东西。我错过了吗?你是说有多少数据包被重新传输了?此信息必须在
ifconfig
outputi中。我几乎不相信ifconfig会显示此数据,因为它不在“接口”范围内,而是协议范围内。对于“ifconfig”我通常使用的所有内容-没有错误,没有删除。我试图测量接口的TCP重新传输总量(由未确认的数据包而不是线路错误引起)。对不起,我误解了这个问题。您可以在
/proc/net/snmp
RetransSegs
字段)中找到tcp重新传输的次数,但它适用于wole系统及其所有接口。我不确定是否可以分别为每个接口找到这些信息。另一个想法是:您可以为接口编写
pcap
-文件,然后分析它并确定重新传输了多少数据包。要进行此分析,您可以尝试使用scapy(),或者您可以将pcap文件转换为xml,然后使用您最喜欢的语言进行分析。好的,这是一个很好的技巧,我将用于速度测试,但在这里,我试图获得已传输接口的重新传输量。我尝试了建议的工具,但找不到有用的东西。我错过了吗?你是说有多少数据包被重新传输了?此信息必须在
ifconfig
outputi中。我几乎不相信ifconfig会显示此数据,因为它不在“接口”范围内,而是协议范围内。对于“ifconfig”我通常使用的所有内容-没有错误,没有删除。我试图测量接口的TCP重新传输总量(由未确认的数据包而不是线路错误引起)。对不起,我误解了这个问题。您可以在
/proc/net/snmp
RetransSegs
字段)中找到tcp重新传输的次数,但它适用于wole系统及其所有接口。我不确定是否可以分别为每个接口找到这些信息。另一个想法是:您可以为接口编写
pcap
-文件,然后分析它并确定重新传输了多少数据包。要进行此分析,您可以尝试使用scapy(),或者您可以将pcap文件转换为xml,然后使用您最喜欢的语言进行分析ifconfig确实有一些关于接口的信息,但我找不到任何可靠的信息来测量重传。它包含有关错误、删除等的详细信息,但不包含重新传输。使用ifconfig的唯一方法是从发送的总字节数中减少发送的应用程序数据长度。但是它非常不可靠。ifconfig确实有一些关于接口的信息,但是我找不到任何可靠的信息来测量重传。它包含有关错误、删除等的详细信息,但不包含重新传输。使用ifconfig的唯一方法是从发送的总字节数中减少发送的应用程序数据长度。但是它是非常不可靠的。你找到了解决方案来查找每个接口的重传数据包吗?实际上我也面临着同样的问题。你找到了解决方案来查找每个接口的重传数据包吗?实际上我也面临着同样的问题。。。。