Em sua quantidade de tráfego, eu diria que o libpcap não deve ter problemas com pacotes descartados, a menos que você tenha uma configuração particularmente ineficiente. Se você estiver usando tcpdump
para captura, ele relatará a quantidade de pacotes descartados em sua linha de saída final. Se você ver pacotes descartados, você pode querer aumentar o tamanho do buffer do tcpdump fornecendo a opção -B
para defina um valor consideravelmente maior que o padrão de 2 MB.
No entanto, você pode querer olhar para PF_RING :
Who needs PF_RING™?
Basically everyone who has to handle many packets per second. The term ‘many’ changes according to the hardware you use for traffic analysis. It can range from 80k pkt/sec on a 1,2GHz ARM to 14M pkt/sec and above on a low-end 2,5GHz Xeon. PF_RING™ not only enables you to capture packets faster, it also captures packets more efficiently preserving CPU cycles. Just to give you some figures you can see how fast nProbe, a NetFlow v5/v9 probe, can go using PF_RING™, or have a look at the tables below.
10 Gigabit tests performed on a Core2Duo 1.86 GHz and a low-end Xeon 2,5 Ghz
ixgbe
Application Rate
pfcount (RX, with PF_RING™ DNA) 11 Mpps (Core2Duo), 14.8 Mpps (Xeon)
pfsend (TX, with PF_RING™ DNA) 11 Mpps (Core2Duo), 14.8 Mpps (Xeon)
O Guia do usuário do PF_RING explica como compilar e configurar habilitado para PF_RING bibliotecas libpcap, se você insistir em usar aplicativos libpcap para captura de pacotes.