首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >libpcap是如何从驱动程序接收数据包的?

libpcap是如何从驱动程序接收数据包的?
EN

Stack Overflow用户
提问于 2014-04-21 00:19:58
回答 1查看 2.3K关注 0票数 0

有人能告诉我一个很好的起点,来了解libpcap是如何从网络驱动程序中获取数据包的吗?我的意图是用快速实现替换接收函数。

EN

回答 1

Stack Overflow用户

发布于 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的开发人员”类别,比如编写一个捕获模块。)

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

https://stackoverflow.com/questions/23189078

复制
相关文章

相似问题

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