为什么tuntap多队列之间不能平衡?

问题描述 投票:0回答:1

参考 tuntap

我为每个tuntap队列创建了多线程。每个线程使用自己的libev循环。而当使用 ping 来创建低速流,每个队列都会被唤醒。但是当使用 iperf3 创建高速流,所有的数据包将被分配到一个线程。

以下是 ping 日志 140213476759296140213468366592 将收到数据包交。

(140213476759296) tapsw.c +171 tap_recv_cb()
(140213468366592) tapsw.c +171 tap_recv_cb()
(140213476759296) tapsw.c +171 tap_recv_cb()
(140213468366592) tapsw.c +171 tap_recv_cb()

但随着 iperf3:

(140213468366592) tapsw.c +171 tap_recv_cb()
(140213468366592) tapsw.c +171 tap_recv_cb()
(140213468366592) tapsw.c +171 tap_recv_cb()
(140213468366592) tapsw.c +171 tap_recv_cb()

为什么tuntap多队列之间不能平衡?

linux linux-kernel tap tun
1个回答
0
投票

内核tun将使用四个元组哈希键来识别一个流。所以iperf3将只在一个队列中。

© www.soinside.com 2019 - 2024. All rights reserved.