Çekirdek alanda paketleri yakalamak için arabellek boyutu?


16

Man sayfasına bakıldığında tcpdump, arabellek doluysa çekirdek paketleri bırakabilir. Merak ediyorum eğer:

  1. bu boyut yapılandırılabilir ve / veya
  2. dağıtımımın boyutunu nereden görebilirim?

Kılavuz sayfasından (kolay başvuru için):

`` çekirdek tarafından bırakılan '' paketler (işletim sistemi bu bilgileri uygulamalara rapor ederse, bu, boş alan olmaması nedeniyle, tcpdump'ın çalıştığı işletim sistemindeki paket yakalama mekanizması tarafından atılan paket sayısıdır; değilse, 0 olarak rapor edilecektir).

Yanıtlar:


27

Tcpdump, -Byakalama arabelleği boyutunu ayarlama seçeneğine sahiptir . Değer daha sonra pcap_set_buffer_size()işlev aracılığıyla libpcap'e (tcpdump tarafından gerçek paket yakalama işlemini yapmak için kullanılan kitaplık) iletilir . Tcpdump manpage, tampon boyutunun -B ile hangi birimlerde belirtildiğini belirtmez, ancak kaynaktan KiB olduğu anlaşılır.

manuel sayfası pcap_set_buffer_size()varsayılan arabellek boyutunu belirtmez (bu işlev çağrılmazsa kullanılır), ancak yine libpcap kaynağından kullanılır bu, en azından linux'da 2 MiB gibi görünür (ancak büyük olasılıkla sisteme bağlıdır).

Paket tamponlama ve bırakma ile ilgili olarak, snaplen ( -s) parametresini buna göre ayarlamaya da dikkat etmelisiniz . man tcpdump:

-s     Snarf  snaplen bytes of data from each packet rather than the
default of 65535 bytes.  Packets truncated because of a limited snapshot
are indicated in the output with ``[|proto]'', where proto is the name of
the protocol level at which the truncation has occurred. Note that  taking
larger  snapshots both increases the amount of time it  takes  to
process packets and, effectively, decreases the amount of packet buffering.
This may cause packets to be lost. You should limit snaplen to the
smallest number that will capture the protocol information you're
interested in. Setting snaplen to 0 sets it to the default of 65535, for
back-wards compatibility with recent older versions of tcpdump.

Bu, sabit tampon boyutu ile, snaplen boyutunu azaltarak tampona uyan (ve böylece düşürülmeyen) paket sayısını artırabileceğiniz anlamına gelir.


2
Bunun eski bir iş parçacığı olduğunu biliyorum (ve bu yanıtı beğendim), ancak GitHub'daki kaynaklardan alıntı yaptığınızda, lütfen (ana dalın değişebileceği gibi) mevcut taahhüdün üzerine gelin , örneğin: github.com/mcr/tcpdump/blob/ … .
bruno nery

@brunonery Bu, gönderinin kendisi eski olsa bile kullanıcıları gerçekten cevapları geliştirmeye teşvik ettiğimiz Stack Exchange siteleriyle ilgili bir sorun değil. (Kaşlarını çattığı forumların aksine.)
Léo Lam

güncel olmayan bağlantılar düzeltildi
Eli Heady
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.