gpt4 book ai didi

linux - libpcap 如何从驱动程序接收数据包?

转载 作者:太空宇宙 更新时间:2023-11-04 09:00:04 32 4
gpt4 key购买 nike

有人可以给我指出一个好的起点来了解 libpcap 如何从网络驱动程序获取数据包吗?我打算用快速实现替换接收函数。

最佳答案

“接收函数”是:

  • 标准驱动程序接收函数,与用于接收数据包并将其交给常规网络堆栈的函数没有区别;
  • 常规网络堆栈的“数据包套接字”部分。

Some Intel slides on DPDK似乎表明 DPDK 让用户空间代码更直接地与网络适配器对话。这意味着将它与 libpcap 一起使用的正确方法是编写一个使用 DPDK 的 libpcap“模块”。

一段时间以来,Libpcap 支持使用多个“模块”来捕获流量的能力。这些不是可以在运行时加载的插件模块(这可能有一天会发生,但是,由于 libpcap 可能需要额外的权限才能捕获流量,因此必须完成对第三方插件模块的支持非常小心,以防止不受信任的代码以这些特权运行!);它们被编译成 libpcap。

libpcap 源代码中的一些模块示例,除了各种操作系统的“默认”模块之外,还有用于 Myricom NIC 的 pcap-snf.cpcap-dag.c 用于 Endace DAG 卡。

如果您想进一步研究,最好订阅 tcpdump-workers mailing list并在那里继续讨论。 (这不是一个流量很高的列表,尽管它的名字是为 libpcap 和 tcpdump 的用户和开发人员准备的;作为编写捕获模块的人,您将属于“libpcap 的开发人员”类别。)

关于linux - libpcap 如何从驱动程序接收数据包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23189078/

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