Tun / tap设备会避免安装netmap / pf_ring / dpdk吗?如果tun / tap允许绕过内核,那不是一回事吗?
或者那些代码带来了如此多的优化,以至于它们超越了操作系统旁路策略?
最终目标是将tcp / ip从内核移植到用户空间,用于测试目的。
我在这里不太明白。
由于
答案 0 :(得分:1)
没有。 对于userspace tcpip实现,请参阅lwip或rumpkernel。 您可能知道的dpdk / pfring / netmap是关于尽快将数据包发送到用户空间的。 tun / tap是虚拟接口的东西。可能不是你追求的目标。
答案 1 :(得分:1)
Tun / tap不是特别高效。他们错过了IP堆栈,但仍然涉及很多复制。使用它们来查看一些代码。我认为直接用户空间网络的最佳选择可能是使用环形缓冲区选项的AF_PACKET,但这仍然是一个间接的环形缓冲区,它被复制到网卡环缓冲区而不是直接像dpdk这样的解决方案。这取决于您的性能要求 - 如果只是为了测试正确性,任何解决方案都应该没问题。