Ich habe tcpdump
unterbrochen mit Strg +C und bekam diese Gesamtzusammenfassung:
579204 packets captured
579346 packets received by filter
142 packets dropped by kernel
Was sind die „vom Kernel gelöschten Pakete“? Warum passiert das?
Akzeptierte Antwort:
Aus dem Handbuch von tcpdump:
Pakete, die „vom Kernel verworfen wurden“ (dies ist die Anzahl der Pakete, die aufgrund von Pufferspeichermangel vom Paketerfassungsmechanismus im Betriebssystem, auf dem tcpdump ausgeführt wird, verworfen wurden, wenn das Betriebssystem diese Informationen an Anwendungen meldet; wenn nicht , wird es als 0 gemeldet).
Eine kleine Erklärung:
Der tcpdump
erfasst Rohpakete, die eine Netzwerkschnittstelle passieren.
Die Pakete müssen gemäß den von Ihnen in der Befehlszeile festgelegten Regeln analysiert und gefiltert werden, und das dauert einige Zeit, daher müssen eingehende Pakete zur Verarbeitung gepuffert (in die Warteschlange gestellt) werden .
Manchmal gibt es zu viele Pakete, sie werden in einem Puffer gespeichert, aber sie werden schneller gespeichert als verarbeitet, so dass der Puffer schließlich keinen Platz mehr hat, sodass der Kernel alle weiteren Pakete verwirft, bis etwas freier Speicherplatz vorhanden ist der Puffer.
Sie können die Puffergröße mit dem -B
erhöhen (--buffer-size
) Option wie folgt:
tcpdump -B 4096 ....
Beachten Sie, dass die Größe in Kilobyte angegeben wird, sodass die obige Zeile die Puffergröße auf 4 MB festlegt.