Přerušil jsem tcpdump
pomocí Ctrl +C a získal toto celkové shrnutí:
579204 packets captured
579346 packets received by filter
142 packets dropped by kernel
Co jsou to „pakety zahozené jádrem“? Proč se to děje?
Přijatá odpověď:
Z příručky tcpdump:
pakety „zahozené jádrem“ (toto je počet paketů, které byly zahozeny z důvodu nedostatku vyrovnávací paměti mechanismem zachytávání paketů v operačním systému, na kterém běží tcpdump, pokud OS tyto informace hlásí aplikacím; pokud ne , bude hlášena jako 0).
Trochu vysvětlení:
tcpdump
zachycuje nezpracované pakety procházející síťovým rozhraním.
Pakety musí být analyzovány a filtrovány podle pravidel, která jste určili v příkazovém řádku, a to nějakou dobu trvá, takže příchozí pakety musí být ukládány do vyrovnávací paměti (zařazeny do fronty) pro zpracování .
Někdy je paketů příliš mnoho, ukládají se do vyrovnávací paměti, ale ukládají se rychleji, než zpracovávají, takže nakonec dojde ve vyrovnávací paměti místo, takže jádro zahodí všechny další pakety, dokud v ní není volné místo vyrovnávací paměti.
Velikost vyrovnávací paměti můžete zvětšit pomocí -B
(--buffer-size
) možnost takto:
tcpdump -B 4096 ....
Všimněte si, že velikost je uvedena v kilobajtech, takže řádek výše nastavuje velikost vyrovnávací paměti na 4 MB.