GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Warum würde der Kernel Pakete fallen lassen?

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.


Linux
  1. Linux – Warum ist kein Rootfs-Dateisystem auf dem System vorhanden?

  2. Linux – Was würde passieren, wenn eine Festplatte ausfällt, während der Linux-Kernel läuft?

  3. Linux – Teilnahme an der Kernel-Mailingliste?

  4. Linux – Warum kann der Kernel Init nicht ausführen?

  5. Warum ist das .bss-Segment erforderlich?

Der Linux-Kernel:Top 5 Innovationen

Der Lebenszyklus des Linux-Kernel-Testens

So überprüfen Sie die Kernel-Version in Linux

Warum wird der Kernel demselben Adressraum wie Prozesse zugeordnet?

Warum den Linux-Kernel vor dem Root-Benutzer schützen?

Warum ist der Linux-NFS-Server im Gegensatz zum Userspace im Kernel implementiert?