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

Linux libpcap如何从驱动程序接收数据包?,linux,networking,libpcap,Linux,Networking,Libpcap,有人能告诉我一个好的起点来学习libpcap是如何从网络驱动程序获取数据包的吗?我的目的是用快速实现取代接收功能。接收功能是: 标准的驱动程序接收功能,与用于接收数据包并将其交给常规网络堆栈的功能没有区别 常规网络堆栈的“数据包套接字”部分 似乎表明DPDK允许用户空间代码更直接地与网络适配器通信。这意味着使用libpcap的正确方法是编写一个使用DPDK的libpcap“模块” 一段时间以来,Libpcap支持使用多个“模块”来捕获流量。这些不是可以在运行时加载的插件模块(可能有一天会发生

有人能告诉我一个好的起点来学习libpcap是如何从网络驱动程序获取数据包的吗?我的目的是用快速实现取代接收功能。

接收功能是:

  • 标准的驱动程序接收功能,与用于接收数据包并将其交给常规网络堆栈的功能没有区别
  • 常规网络堆栈的“数据包套接字”部分
似乎表明DPDK允许用户空间代码更直接地与网络适配器通信。这意味着使用libpcap的正确方法是编写一个使用DPDK的libpcap“模块”

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

libpcap源中的一些模块示例(不同操作系统的“默认”模块除外)是Myricom NIC的
pcap snf.c
,Endace dag卡的
pcap dag.c

如果您想进一步了解这一点,最好是订阅并继续讨论。(这不是一个流量很高的列表,尽管它的名字叫什么,但它同时面向libpcap和tcpdump的用户和开发人员;如果有人编写一个捕获模块,您将属于“libpcap的开发人员”类别。)

接收功能是:

  • 标准的驱动程序接收功能,与用于接收数据包并将其交给常规网络堆栈的功能没有区别
  • 常规网络堆栈的“数据包套接字”部分
似乎表明DPDK允许用户空间代码更直接地与网络适配器通信。这意味着使用libpcap的正确方法是编写一个使用DPDK的libpcap“模块”

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

libpcap源中的一些模块示例(不同操作系统的“默认”模块除外)是Myricom NIC的
pcap snf.c
,Endace dag卡的
pcap dag.c

如果您想进一步了解这一点,最好是订阅并继续讨论。(这不是一个流量很高的列表,尽管它的名字叫什么,但它同时面向libpcap和tcpdump的用户和开发人员;如果有人编写一个捕获模块,您将属于“libpcap的开发人员”类别。)

接收功能是:

  • 标准的驱动程序接收功能,与用于接收数据包并将其交给常规网络堆栈的功能没有区别
  • 常规网络堆栈的“数据包套接字”部分
似乎表明DPDK允许用户空间代码更直接地与网络适配器通信。这意味着使用libpcap的正确方法是编写一个使用DPDK的libpcap“模块”

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

libpcap源中的一些模块示例(不同操作系统的“默认”模块除外)是Myricom NIC的
pcap snf.c
,Endace dag卡的
pcap dag.c

如果您想进一步了解这一点,最好是订阅并继续讨论。(这不是一个流量很高的列表,尽管它的名字叫什么,但它同时面向libpcap和tcpdump的用户和开发人员;如果有人编写一个捕获模块,您将属于“libpcap的开发人员”类别。)

接收功能是:

  • 标准的驱动程序接收功能,与用于接收数据包并将其交给常规网络堆栈的功能没有区别
  • 常规网络堆栈的“数据包套接字”部分
似乎表明DPDK允许用户空间代码更直接地与网络适配器通信。这意味着使用libpcap的正确方法是编写一个使用DPDK的libpcap“模块”

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

libpcap源中的一些模块示例(不同操作系统的“默认”模块除外)是Myricom NIC的
pcap snf.c
,Endace dag卡的
pcap dag.c

如果您想进一步了解这一点,最好是订阅并继续讨论。(这不是一个流量很高的列表,尽管它的名字叫什么,但它同时面向用户和开发者