【发布时间】:2014-10-13 07:16:47
【问题描述】:
Tun/tap 设备会避免安装 netmap/pf_ring/dpdk 吗?如果 tun/tap 允许绕过内核,难道不是一回事吗?
或者那些代码带来了太多的优化,以至于它们超过了 tun os 绕过策略?
最终目标是将 tcp/ip 从内核移植到用户空间,用于测试目的。
这里我不太明白。
谢谢
【问题讨论】:
标签: networking tcp c stack
Tun/tap 设备会避免安装 netmap/pf_ring/dpdk 吗?如果 tun/tap 允许绕过内核,难道不是一回事吗?
或者那些代码带来了太多的优化,以至于它们超过了 tun os 绕过策略?
最终目标是将 tcp/ip 从内核移植到用户空间,用于测试目的。
这里我不太明白。
谢谢
【问题讨论】:
标签: networking tcp c stack
没有。 对于用户空间 tcpip 实现,请参见 lwip 或 rumpkernel。 您可能知道的 dpdk/pfring/netmap 是关于尽快将数据包发送到用户空间。 tun/tap 是虚拟接口的东西。可能不是你想要的。
【讨论】:
Tun/tap 的性能不是特别好。他们错过了 IP 堆栈,但仍然涉及大量复制。 Profile 一些代码使用它们来查看。我认为直接用户空间网络的最佳选择可能是使用环形缓冲区选项的 AF_PACKET,但这仍然是一个间接环形缓冲区,它会被复制到网卡环形缓冲区,而不是像 dpdk 这样的解决方案那样直接。这取决于您的性能要求 - 如果只是为了测试正确性,任何解决方案都应该没问题。
【讨论】: