【问题标题】:Why libpcap captures incomplete packets?为什么 libpcap 会捕获不完整的数据包?
【发布时间】:2011-09-06 10:11:14
【问题描述】:

我正在运行“tcpdump port 1025 -w out.pcap -s 4000”并且所有从 localhost 发送的数据包我看到“在线上的 XXX 字节,已捕获 54 个字节”(仅捕获以太网和 tcp 标头,数据未捕获捕获)。 显然,snaplen 是 4000,因此我无法弄清楚为什么数据包会在中间切开。 我也写了一个程序,直接使用libpcap,也出现了同样的现象。 这发生在 libpcap 1.1.1 和 1.2.0rc1 上,但是在 libpcap 0.9.8 上它起作用了!

我正在使用带有 SP3 的 SLE10,并在另一台计算机上安装了完全相同的操作系统和程序。

这是sample capture

【问题讨论】:

  • 你用-s0试过了吗?
  • 这真的很奇怪,不应该发生。也许可以从一些现场 CD 上试一试,以确保这是您的软件问题...
  • 刚从live CD试了一下,效果很好。我认为这可能是某些 NIC 配置的问题,因为我有另一台具有相同操作系统和软件的计算机,其中 tcpdump 工作(不同的硬件)。有什么想法吗?

标签: network-programming libpcap tcpdump


【解决方案1】:

libpcap 对 Linux 的内存映射捕获机制的支持存在一个错误,该错误已在较新版本中得到修复;应固定在树干和1.2树枝上。该支持在 libpcap 0.x 中不存在,因此在 libpcap 0.9.8 中不存在。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-23
    • 2011-02-19
    • 2014-03-12
    • 2013-03-04
    • 2012-02-18
    • 1970-01-01
    • 2012-04-24
    • 1970-01-01
    相关资源
    最近更新 更多