首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PF_RING技术和PACKET_RX_RING之间的区别是什么

PF_RING技术和PACKET_RX_RING之间的区别是什么
EN

Stack Overflow用户
提问于 2019-08-13 04:41:20
回答 1查看 331关注 0票数 0

在阅读PACKET_MMAP内核文档(https://www.kernel.org/doc/Documentation/networking/packet_mmap.txt)时,我偶然发现了PF_RING

有没有人能解释一下PF_RING和PACKET_MMAP中的PACKET_RX_RING/PACKET_TX_RING之间的实际技术差异(实现细节和差异

EN

回答 1

Stack Overflow用户

发布于 2020-04-03 12:12:28

PF_RING有两种截然不同的操作模式。

  • 名为"vanilla“的版本运行在”高于“驱动程序级别,因此它应该与PACKET_MMAP非常相似。它们都只是在用户应用程序和网络堆栈之间共享一个缓冲区。我认为PF_RING也会丢弃数据包,所以可以说它是独占的。相反,PACKET_MMAP允许内核堆栈在复制到用户空间之后处理数据包。
  • "DNA“或”零复制“模式实现了内核绕过。驱动程序的缓冲区本身是共享的,而不是将数据复制到共享的环形缓冲区。显然,这需要自定义驱动程序,这意味着没有其他进程能够从受影响的接口接收流量。支持许多常见的卡。由于减少了复制、上下文切换和中断(如果您愿意,您可以进行轮询),您可以压缩更多的性能。最接近的上游技术是AF_XDP。

我可能做错了一些事情(我只是出于好奇在谷歌上搜索了一下,并不是PF_RING方面的专家),所以请注意其他答案。我确实认为我写的大部分内容都是准确的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57467980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档