从内核到用户空间(DMA)

nok*_*tec 7 c networking kernel linux-kernel dma

最近,我一直在阅读很多网站,关于10gb/s NIC的书籍,他们的DMA以及linux内核(10/100 mb/s网卡)处理数据的方式,我想到了一些问题.

将10GB/s数据流从NIC​​发送到用户区的最简单方法是什么(我假设能够以相同的速率处理用户区中的数据).

您是否认为在用户空间内实现DMA缓冲区以直接从那里读取原始数据(并以相同的速率处理它们)是一个好主意

或者是他们没有想到的更好的解决方案:/

谢谢.

ugo*_*ren 6

使用Linux正常套接字最容易的事情.它可能不是最有效的,但它是最简单的.

有框架,可以非常有效地在用户空间中接收和传输数据.它们将相同的缓冲区映射到NIC(DMA)和进程,因此不需要复制数据.
这些框架完全绕过内核 - 您必须直接与NIC进行交互.这样的框架例如是PF-RINGNetmap

  • 谷歌也为Van Jacobson的网络频道. (2认同)