Компанія Cloudflare
Утиліта xdpcap сумісна з виразами фільтрації tcpdump/libpcap і дозволяє обробляти на тому ж обладнанні значно більші обсяги трафіку. Xdpcap також може застосовуватися для налагодження в умовах, в яких звичайний tcpdump не застосовується, наприклад, коли застосовуються системи фільтрації, захисту від DoS-атак і балансування навантаження, що використовують підсистему ядра Linux XDP, що обробляє пакети на стадії до обробки мережевим стеком ядра Linux (tcd не бачить пакети, відкинуті обробником XDP).
Висока продуктивність досягається завдяки застосуванню підсистем eBPF та XDP. eBPF є вбудованим в ядро Linux інтерпретатором байткоду, що дозволяє створювати високопродуктивні обробники вхідних/вихідних пакетів з прийняттям рішень про їх перенаправлення або відкидання. За допомогою JIT-компілятора байткод eBPF на льоту транслюється в машинні інструкції та виконується з продуктивністю нативного коду. Підсистема XDP (eXpress Data Path) доповнює eBPF можливістю запускати BPF-програми на рівні мережного драйвера, з підтримкою прямого доступу до DMA-буфера пакетів та роботою на стадії до виділення буфера skbuff мережевим стеком.
Як і tcpdump утиліта xdpcap спочатку транслює високорівневі правила фільтрації трафіку в класичну виставу BPF (cBPF) за допомогою штатної бібліотеки libpcap, після чого перетворює їх у форму підпрограм eBPF, використовуючи компілятор
Джерело: opennet.ru