gpt4 book ai didi

c - 是否可以在没有 root 访问权限的情况下在 linux 上使用 packet_mmap?

转载 作者:IT王子 更新时间:2023-10-29 00:31:39 26 4
gpt4 key购买 nike

Linux has a feature通过在内核和用户之间映射一个共享缓冲区来允许有效地捕获网络数据包。我正在尝试以不需要 root 访问权限的方式使用此界面(因为我没有)。

packet_mmap 通常用于直接查看网络上的所有数据包,这需要 root 访问权限。我的应用程序只需要使用标准的 linux UDP 套接字接口(interface)。我希望纯粹为了效率而使用 packet_mmap——现在系统调用占用了我 50% 以上的 CPU 周期。

有没有办法配置 packet_mmap 使其可以从用户空间使用?

最佳答案

虽然这并不能真正回答问题(因为它专门针对 packet_mmap),但给定您的参数:

  1. 接收UDP数据包
  2. 只想减少系统调用,别无其他。
  3. 愿意使用 Linux 特有的功能,但没有 root 用户
  4. packet_mmap 的功能并不是真正需要或不需要的。

我会建议你完全忘掉 packet_mmap,而是看看 recvmmsg (注意拼写,不是错字)。

recvmmsg 不需要特殊权限,它非常直观(没有晦涩难懂的东西,它就像 readv 一样工作),它可以让你在一次调用中接收很多数据包,大大减少了系统调用的开销。

关于c - 是否可以在没有 root 访问权限的情况下在 linux 上使用 packet_mmap?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15157717/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com