直接从网络驱动程序获取网络数据包

时间:2015-04-16 11:27:17

标签: performance

因此,当数据包到达计算机时,它由驱动程序处理,然后传递给内核yadda yadda,直到它到达程序。我知道发生这种情况的所有完美合理的原因,但这显然会导致时间开销。

对于纯性能系统,是否可以让程序直接读取驱动程序,直接从中获取数据包而不是从内核获取数据包?

1 个答案:

答案 0 :(得分:1)

是的!而且你不是第一个想到这一点的人。一些建议是:

PF_RING(linux): http://www.ntop.org/products/pf_ring/

netmap(freebsd): http://www.freebsd.org/cgi/man.cgi?query=netmap&sektion=4

英特尔(badass)DPDK: http://dpdk.org/

这也是一个很好的阅读,你可能会觉得有趣: http://highscalability.com/blog/2013/5/13/the-secret-to-10-million-concurrent-connections-the-kernel-i.html