【问题标题】:zero copy mechanism and libpcap零拷贝机制和 libpcap
【发布时间】:2012-04-08 09:20:55
【问题描述】:

是否可以使用零拷贝数据包机制在 Linux 上使用 libpcap 读取数据包? (我使用的是 CentOS 6.2) 如果是,我可以看到任何代码示例吗?

【问题讨论】:

    标签: linux network-programming libpcap packet-capture


    【解决方案1】:

    是的,libpcap 1.0 及以后的版本会这样做,虽然以后的 libpcap 版本已经修复了一些错误,所以使用的 libpcap 版本越晚,它的效果就越好。写入标准 libpcap API 的代码将在具有 libpcap 1.0 及更高版本的 Linux 上使用零拷贝捕获。

    (Netsniff-ng 有自己的代码来捕获数据包,而不是使用 libpcap。)

    【讨论】:

    • 你的意思是 libpcap0.8 1.* 有零拷贝吗?
    • “libpcap 1.0 及更高版本执行此操作”包括“非常容易混淆地称为 libpcap0.8 的 Debian 软件包在那些打包 libpcap 1.0 及更高版本的版本中有它”。或者,换句话说,您可以将 Debian 软件包名称中的“0.8”替换为“my hovercraft is full of eels”,新的软件包名称不会或多或少地告诉您实际的 libpcap 版本。包比旧包名; “0.8”应该被认为是装饰性的,而不是任何形式的 libpcap 版本号的指示。
    【解决方案2】:

    是的,显然netsniff-ng 做到了。我建议查看它的代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-12
      • 2017-07-06
      • 1970-01-01
      • 2015-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多