GNU/Linux >> Belajar Linux >  >> Linux

Mengapa Kernel Menjatuhkan Paket?

Saya menyela tcpdump dengan Ctrl +C dan dapatkan ringkasan total ini:

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

Apa itu "paket yang dijatuhkan oleh kernel"? Mengapa itu terjadi?

Jawaban yang Diterima:

Dari manual tcpdump:

paket "dijatuhkan oleh kernel" (ini adalah jumlah paket yang dijatuhkan, karena kurangnya ruang buffer, oleh mekanisme pengambilan paket di OS tempat tcpdump berjalan, jika OS melaporkan informasi itu ke aplikasi; jika tidak , itu akan dilaporkan sebagai 0).

Sedikit penjelasan:

tcpdump menangkap paket mentah yang melewati antarmuka jaringan.
Paket harus diuraikan dan difilter menurut aturan yang Anda tentukan di baris perintah, dan itu membutuhkan waktu, jadi paket yang masuk harus di-buffer (antri) untuk diproses .
Kadang-kadang ada terlalu banyak paket, mereka disimpan ke buffer, tetapi mereka disimpan lebih cepat daripada diproses, jadi akhirnya buffer kehabisan ruang, sehingga kernel menjatuhkan semua paket lebih lanjut sampai ada beberapa ruang kosong di penyangga.

Anda dapat meningkatkan ukuran buffer dengan -B (--buffer-size ) pilihan seperti ini:

tcpdump -B 4096 ....

Perhatikan bahwa ukurannya ditentukan dalam kilobyte, jadi baris di atas menyetel ukuran buffer menjadi 4 MB.


Linux
  1. Analisis kernel Linux dengan ftrace

  2. Mengapa Server Memblokir IP Saya?

  3. Linux – Apa yang Akan Terjadi Jika Hard Drive Gagal Saat Kernel Linux Berjalan?

  1. Linux – Berpartisipasi Di Milis Kernel?

  2. Mengapa Apt Tidak Lagi Memperbarui Kernel?

  3. Mengapa segmen .bss diperlukan?

  1. Mengapa kernel dipetakan ke ruang alamat yang sama dengan proses?

  2. Mengapa pr_debug dari kernel Linux tidak memberikan hasil apa pun?

  3. Mengapa server Linux NFS diimplementasikan dalam kernel sebagai lawan dari ruang pengguna?