답변:
Tcpdump에는 -B
캡처 버퍼 크기를 설정 하는 옵션 이 있습니다. 그런 다음 값은 pcap_set_buffer_size()
함수 를 통해 libpcap (tcpdump가 실제 패킷 캡처를 수행하는 데 사용하는 라이브러리)으로 전달 됩니다. Tcpdump 맨 페이지는 -B로 버퍼 크기가 지정된 단위를 지정하지 않지만 소스 에서 KiB 인 것으로 보입니다.
manual 페이지는 pcap_set_buffer_size()
기본 버퍼 크기 (이 함수가 호출되지 않은 경우 사용됨)를 지정하지 않지만 libpcap source 에서 적어도 Linux에서는 2 MiB 인 것으로 보입니다 (그러나 대부분 시스템에 따라 다름).
패킷 버퍼링 및 삭제와 관련하여 snaplen ( -s
) 매개 변수 설정에주의해야합니다 . man tcpdump
:
-s Snarf snaplen bytes of data from each packet rather than the
default of 65535 bytes. Packets truncated because of a limited snapshot
are indicated in the output with ``[|proto]'', where proto is the name of
the protocol level at which the truncation has occurred. Note that taking
larger snapshots both increases the amount of time it takes to
process packets and, effectively, decreases the amount of packet buffering.
This may cause packets to be lost. You should limit snaplen to the
smallest number that will capture the protocol information you're
interested in. Setting snaplen to 0 sets it to the default of 65535, for
back-wards compatibility with recent older versions of tcpdump.
즉, 고정 버퍼 크기를 사용하면 snaplen 크기를 줄여 버퍼에 맞는 패킷 수를 늘릴 수 있습니다 (따라서 삭제되지 않음).