如何LIBPCAP收到来自驾驶员的包?(How libpcap receive a packet f

2019-11-03 03:57发布

可有人请点我一个很好的起点,学习如何从的libpcap的网络驱动程序获取其数据包? 我的打算是,以取代接收功能与快速实施。

Answer 1:

“接收功能”是:

  • 标准驱动程序接收功能,从什么是用于接收数据包,并将其交给常规网络堆栈没有什么不同;
  • 常规网络堆栈的“包插座”的一部分。

在DPDK一些英特尔的幻灯片似乎表明DPDK更直接地让用户空间代码聊到网络适配器。 这意味着,以正确的方式使用,与libpcap的是写一个libpcap的“模块”,它使用DPDK。

libpcap的都有,一会儿,支持有多个“模块”来捕获流量的能力。 这些可以在运行时加载不插件模块(也可能有一天会发生,但正如libpcap的可能,以捕捉交通需要额外的特权,为第三方插件模块的支持就必须做得非常仔细,以防止不可信从这些特权运行的代码)!; 他们编译成libpcap的。

在libpcap的源模块的一些实例中,比关于各种操作系统的“默认”模块等,是pcap-snf.c为Myricom的NIC和pcap-dag.c为了Endace DAG卡。

如果您想进一步追究,它很可能是最好的,如果你订阅了tcpdump的工人邮件列表 ,并继续讨论那里。 (这不是一个非常高流量的名单,尽管它的名字,它是为用户和两个libpcap的和tcpdump的开发商,你会落入类别“的libpcap的开发商”,因为有人写捕获模块。)



文章来源: How libpcap receive a packet from the driver?