libpcap (& gt; 1.0.0) и эффективность PF_RING

Я использую libpcap 1.4.0 для захвата пакетов с / на устройство (я использую Linux).
Я страдаю от потери пакетов, и после исследования об этом я нашел PF_RING, и теперь я рассматриваю возможность его использования.

Проблема в том, что я не совсем понимаю, почему использование PF_RING более эффективно, чем использование PF_PACKET в libpcap, когда по умолчанию в libpcap используется метод захвата пакетов «zero-copy» (начиная с libpcap 1.0.0), а также PF_RING …

Может кто-нибудь объяснить мне, почему при использовании libpcap 1.0.0 и более поздних версий использование PF_RING было бы еще более эффективным (если оно действительно более эффективным), чем его не использовать?

Заранее спасибо! 🙂

3

Решение

в соответствии с https://stackoverflow.com/a/8897187/288875 есть еще одна копия из буфера сокета ядра (sk_buff) в память, которую вы будете читать. PF_RING кажется не сделать эту копию (насколько я помню, делает pfring байпас обычный механизм ядра обработки данных, полученных с сетевой карты).

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]