有人能告诉我一个很好的起点,来了解libpcap是如何从网络驱动程序中获取数据包的吗?我的意图是用快速实现替换接收函数。
发布于 2014-04-21 22:29:00
“接收功能”是:
一些英特尔在DPDK上的幻灯片似乎表明DPDK允许用户空间代码更直接地与网络适配器对话。这意味着使用libpcap的正确方法是编写一个使用DPDK的libpcap“模块”。
一段时间以来,Libpcap一直支持拥有多个“模块”来捕获流量的能力。这些不是可以在运行时加载的插件模块(这可能会在某一天发生,但是,由于libpcap可能需要额外的特权才能捕获通信量,因此必须非常小心地执行支持第三方插件模块,以防止不受信任的代码以这些权限运行!);它们被编译成libpcap。
libpcap中的一些模块的例子,除了用于各种OSes的“默认”模块之外,是用于Myricom的pcap-snf.c和用于Endace卡的pcap-dag.c。
如果您想进一步研究这个问题,最好是订阅tcpdump-员工邮件列表并在那里继续讨论。(这不是一个很高的流量列表,尽管它的名称是为libpcap和tcpdump的用户和开发人员提供的;您可能会被归入“libpcap的开发人员”类别,比如编写一个捕获模块。)
https://stackoverflow.com/questions/23189078
复制相似问题