PF_RING™是一種新型的網絡套接字,可顯着提高數據包捕獲速度,並且具有以下特性:
- 適用於Linux內核2.6.32及更高版本。
- 無需修補內核:只需加載內核模塊。
- 使用商用網絡適配器的10 Gbit硬件數據包過濾
- 用戶空間ZC(新一代DNA,Direct NIC Access,直接NIC訪問)驅動程序可實現極高的數據包捕獲/傳輸速度,這是因爲NIC NPU(網絡處理單元)在沒有任何內核干預的情況下將數據包從用戶域推送/獲取數據包。使用10Gbit ZC驅動程序,您可以以線速發送或接收任何大小的數據包。
- PF_RING ZC庫,用於在線程、應用程序、虛擬機之間以零拷貝分發數據包。
- 設備驅動程序獨立。
- 支持Accolade,Exablaze,Endace,Fiberblaze,Inveatech,Mellanox,Myricom / CSPI,Napatech,Netcope和Intel(ZC)網絡適配器。
- 基於內核的數據包捕獲和採樣。
- Libpcap支持(請參見下文)可與現有的基於pcap的應用程序無縫集成。
- 除BPF外,還可以指定數百個標題過濾器。
- 內容檢查,以便僅通過與有效負載過濾器匹配的數據包。
- PF_RING™插件,用於高級數據包解析和內容過濾。
Vanilla PF_RING™
PF_RING™正在通過Linux NAPI輪詢來自NIC的數據包。這意味着NAPI將數據包從NIC複製到PF_RING™循環緩衝區,然後userland應用程序從環讀取數據包。在這種情況下,有兩個輪詢程序,即應用程序和NAPI,這會導致用於此輪詢的CPU週期。優點是PF_RING™可以將傳入的數據包同時分發到多個環(因此有多個應用程序)。
PF_RING™模塊
PF_RING™具有模塊化架構,可以使用除標準PF_RING™內核模塊以外的其他組件。當前,其他模塊集包括:
- ZC模塊。
查看ZC頁面以獲取更多信息。 - 基於FPGA的板卡模塊。
這些模塊增加了對許多供應商的支持,包括Accolade,Exablaze,Endace,Fiberblaze,Inveatech,Mellanox,Myricom / CSPI,Napatech,Netcope。 - 堆棧模塊。
該模塊可用於將數據包注入linux網絡堆棧。 - 時間軸模塊。
該模塊可用於使用PF_RING™API從n2disk轉儲集中無縫提取流量。 - Sysdig模塊。
該模塊使用sysdig內核模塊捕獲系統事件。