GNU/Linux >> Tutoriales Linux >  >> Linux

¿Por qué el kernel soltaría paquetes?

Interrumpí tcpdump con Ctrl +C y obtuve este resumen total:

579204 packets captured
579346 packets received by filter
142 packets dropped by kernel

¿Qué son los "paquetes arrojados por el kernel"? ¿Por qué sucede eso?

Respuesta aceptada:

Del manual de tcpdump:

paquetes "descartados por kernel" (esta es la cantidad de paquetes que se descartaron, debido a la falta de espacio en el búfer, por el mecanismo de captura de paquetes en el sistema operativo en el que se ejecuta tcpdump, si el sistema operativo informa esa información a las aplicaciones; si no , se informará como 0).

Un poco de explicación:

El tcpdump captura paquetes sin procesar que pasan a través de una interfaz de red.
Los paquetes deben analizarse y filtrarse de acuerdo con las reglas especificadas por usted en la línea de comando, y eso lleva algún tiempo, por lo que los paquetes entrantes deben almacenarse en búfer (ponerse en cola) para su procesamiento .
A veces hay demasiados paquetes, se guardan en un búfer, pero se guardan más rápido de lo que se procesan, por lo que eventualmente el búfer se queda sin espacio, por lo que el kernel descarta todos los paquetes adicionales hasta que haya algo de espacio libre en el búfer.

Puede aumentar el tamaño del búfer con -B (--buffer-size ) opción como esta:

tcpdump -B 4096 ....

Tenga en cuenta que el tamaño se especifica en kilobytes, por lo que la línea anterior establece el tamaño del búfer en 4 MB.


Linux
  1. ¿Por qué el servidor bloqueó mi IP?

  2. Linux:¿por qué no hay un sistema de archivos Rootfs presente en el sistema?

  3. Linux:¿qué sucedería si fallara un disco duro mientras se ejecutaba el kernel de Linux?

  4. Linux:¿participa en la lista de correo del kernel?

  5. ¿Por qué Apt ya no actualiza el kernel?

Analizar el kernel de Linux con ftrace

¿Por qué necesita eliminar ifconfig para ip?

Cómo verificar la versión del kernel en Linux

¿Cómo verificar HZ en la terminal?

¿Por qué pr_debug del kernel de Linux no da ningún resultado?

¿Por qué proteger el kernel de Linux del usuario root?