Tcpdump memiliki opsi -B
untuk mengatur ukuran buffer capture. Nilai tersebut kemudian diteruskan ke libpcap (pustaka yang digunakan oleh tcpdump untuk melakukan pengambilan paket aktual) melalui pcap_set_buffer_size()
fungsi. Tcpdump manpage tidak menentukan dalam unit apa ukuran buffer ditentukan dengan -B, tetapi dari sumber sepertinya itu adalah KiB.
halaman manual pcap_set_buffer_size()
tidak menentukan ukuran buffer standar (yang digunakan jika fungsi ini tidak dipanggil), tetapi sekali lagi, dari sumber libpcap , ini tampaknya 2 MiB, setidaknya di linux (tetapi kemungkinan besar tergantung pada sistem).
Sehubungan dengan buffering dan dropping paket, Anda juga harus memperhatikan pengaturan -s
parameter snaplen ( ) yang sesuai. 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.
Ini berarti bahwa dengan ukuran buffer tetap, Anda dapat meningkatkan jumlah paket yang masuk ke buffer (dan dengan demikian tidak dijatuhkan) dengan mengurangi ukuran snaplen.