Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.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
C++ 更深层次的带宽消耗_C++_C - Fatal编程技术网

C++ 更深层次的带宽消耗

C++ 更深层次的带宽消耗,c++,c,C++,C,我使用的是Ubuntu操作系统,我知道通过读取/proc/net/dev文件可以获得PC的平均带宽使用率。但是,假设我同时向两个节点传输文件(总传输BW:100 Mpbs)。谁能给我一个好主意,如何获取/存储“将BW传输到节点X/Y”(X:50 Mbps/Y:50 Mbps)的信息.C/C++或python中的建议非常受欢迎!:)内核通常只关心数据包的下一跳是什么以及将数据包放到哪个接口上。要做到这一点,您需要linux的一些高端路由功能。请尝试以下方法: DEV=`ip route|sed -

我使用的是Ubuntu操作系统,我知道通过读取/proc/net/dev文件可以获得PC的平均带宽使用率。但是,假设我同时向两个节点传输文件(总传输BW:100 Mpbs)。谁能给我一个好主意,如何获取/存储“将BW传输到节点X/Y”(X:50 Mbps/Y:50 Mbps)的信息.C/C++或python中的建议非常受欢迎!:)

内核通常只关心数据包的下一跳是什么以及将数据包放到哪个接口上。要做到这一点,您需要linux的一些高端路由功能。请尝试以下方法:

DEV=`ip route|sed -nr 's/^default.* dev ([^ ]*).*/\1/p'`
/sbin/tc qdisc del dev $DEV root >/dev/null 2>&1
TQ="/sbin/tc qdisc add dev $DEV"
TC="/sbin/tc class add dev $DEV"
TF="/sbin/tc filter add dev $DEV"
$TQ root handle 1: htb default 0 
$TC parent 1: classid 1:1 htb rate 100mbps # interesting destination 1
$TC parent 1: classid 1:2 htb rate 100mbps # ...
$TF parent 1: protocol ip u32 match ip dst 123.231.132.213 classid 1:1
$TF parent 1: protocol ip u32 match ip dst 1.2.3.4 classid 1:2

然后你可以通过
tc-s class show dev$dev
获得统计数据。对不起,我不知道更简单的方法。内核通常不关心数据包的下一个跃点是什么,以及将数据包放到哪个接口上。要做到这一点,你需要一些linux的高端路由功能。尝试以下方法:

DEV=`ip route|sed -nr 's/^default.* dev ([^ ]*).*/\1/p'`
/sbin/tc qdisc del dev $DEV root >/dev/null 2>&1
TQ="/sbin/tc qdisc add dev $DEV"
TC="/sbin/tc class add dev $DEV"
TF="/sbin/tc filter add dev $DEV"
$TQ root handle 1: htb default 0 
$TC parent 1: classid 1:1 htb rate 100mbps # interesting destination 1
$TC parent 1: classid 1:2 htb rate 100mbps # ...
$TF parent 1: protocol ip u32 match ip dst 123.231.132.213 classid 1:1
$TF parent 1: protocol ip u32 match ip dst 1.2.3.4 classid 1:2

然后你可以通过
tc-s class show dev$dev
获得统计数据。对不起,我不知道更简单的方法。请看一下
jnettop
实用程序,或者直接获取所需信息,或者在其源代码中找到适当的技术。

看看
jnettop
实用程序,或者直接获取您需要的信息,或在其源代码中找到适当的技术。

@jthill…您粘贴的脚本…很抱歉问这样一个基本的问题…我应该复制粘贴脚本还是什么?:)@jthill…您粘贴的脚本…很抱歉问这样一个基本的问题…我应该复制粘贴脚本还是什么?:)