0

我的被​​动network monitoring应用程序需要从网络接口捕获数据包(以更高的数据包速率)。数据包捕获模块应该能够在捕获每个数据包时调用监控函数(并将数据包写入pcap文件)。

我想在我的监控应用程序中DPDK用作数据包捕获模块(分别使用pcap_loop和和),但我不确定这是否是 的用例之一,还是打算像这样使用?pfring_looplibpcappfringDPDKDPDK

所以我的问题是.. 我可以DPDK用来满足我的要求吗?,如果是,如何开始?

操作系统:Linux。
Karnal 版本:4
. DPDK 版本:最新稳定版。
在物理设备上捕获。
捕获应用程序具有 root 权限,将由网络管理员使用(作为被动资产发现的一部分)。
我想使用 DPDK,因为它支持高达 10 Gbps 的线速捕获

谢谢你。

4

2 回答 2

1

根据评论中的更新和澄清,请求是Can one replace an existing application which PF_RING API calls with DPDK API which is written in C?。简单的回答是可以的

这是一个应该如何开始

  1. 识别平台(最好是 Linux/BSD,windows 21.02 仍在进行中)
  2. 识别支持的 CPU 的处理器列表
  3. 从DPDK NIC 的 LIST 中识别要使用的 NIC
  4. 使用 Linux 环境设置Linux 环境
  5. 探索basicfwd 用法的基本示例/骨架
  6. 使用 DPDK API 获取数据包的以太网标头的开头rte_pktmbuf_mtod。DPDK/examples 文件夹中有许多示例,它们的作用相同。
  7. 调用example/skeleton的rx_burst和tx_burst之间的包处理函数逻辑。
于 2021-03-24T14:28:57.947 回答
0

较新版本的 libpcap 本身可以使用 DPDK,至少在 Linux 上是这样。您系统上的 libpcap 可能会或可能不会配置为使用它。(也有一些版本的 libpcap 被修改为使用 PF_RING。)

于 2021-03-26T05:06:07.090 回答