当我在 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 之间共享它。