TUN/TAP 使用的用户空间在哪里?

TUN/TAP 使用的用户空间在哪里?

当我在 qemu 中将数据传输到网络上时,什么决定了我可以传输的数据速率的上限?情况是我设置了两台机器 A 和 B

创建两个 tap 接口

openvpn --mktun --dev tap0 --user `id -un`
openvpn --mktun --dev tap1 --user `id -un`

之间的桥梁

/usr/sbin/brctl addbr br0
/usr/sbin/brctl addif br0 tap1
/usr/sbin/brctl addif br0 tap0

架起桥梁

/sbin/ifconfig br0 10.0.0.1 netmask 255.255.255.0 broadcast 10.0.0.255

我用水龙头装置启动它们

qemu -m 256 -hda diskA.img -net nic -net tap,ifname=tap0,script=no
qemu -m 256 -hda diskB.img -net nic -net tap,ifname=tap1,script=no

Tap 设备将数据写入用户空间,但是该用户空间在哪里,它的限制是什么以及如何控制它?

答案1

在您的例子中,用户空间应用程序是 qemu。TUN/TAP 设备是内核空间虚拟设备。要控制 tap 接口,请使用 ifconfig、ip、brctl 等。

传输数据的上限由您的 CPU 决定。如果您想控制该限制,则应使用 tcng(流量控制语言解释器)。

此外,如果您只想在它们之间连接 qemu,您可以只使用 1 个 tap 接口并在 qemu 之间共享它。

相关内容