为什么libpcap会捕获不完整的数据包?

时间:2011-09-06 10:11:14

标签: network-programming libpcap tcpdump

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

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

这是sample capture

1 个答案:

答案 0 :(得分:0)

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