Почему libpcap перехватывает неполные пакеты? - PullRequest
1 голос
/ 06 сентября 2011

Я использую «tcpdump port 1025 -w out.pcap -s 4000» и все пакеты, отправленные с локального хоста, я вижу «XXX байт на проводе, 54 байта захвачено» (захватываются только заголовки ethernet и tcp, данные не захватили). Очевидно, что snaplen равен 4000, поэтому я не могу понять, почему пакет обрезается посередине. Я также написал программу, которая использует libpcap напрямую, и произошло то же самое явление. Это произошло как на libpcap 1.1.1, так и на 1.2.0rc1, однако на libpcap 0.9.8 это сработало!

Я использую SLE10 с пакетом обновления 3 (SP3), и у меня установлен другой компьютер с точно такой же ОС и программами, где он прекрасно работает.

Вот образец захвата .

1 Ответ

0 голосов
/ 19 октября 2011

Существует ошибка в поддержке libpcap для механизма захвата с отображением памяти в Linux, который исправлен в более новых версиях;это должно быть исправлено в стволе и 1,2 ответвлениях.Эта поддержка отсутствовала в libpcap 0.x, поэтому она отсутствовала в libpcap 0.9.8.

...