FlossDoc: 請協力 GPLv3 的中文翻譯工作。

柏克萊封包過濾器 (Berkeley Packet Filter, BPF)

FlossDoc,自由中文開源知識庫

Jump to: navigation, search

柏克萊封包過濾器 (Berkeley Packet Filter, BPF)Unix/Linux 上資料連結層 (Data Link Layer) 的一種原始介面,用作收發原始資料連結層封包。

目录

Linux 中的 BPF

Linux 的 BPF 在 net/core/filter.c。[1]

Just-in-Time Compiler

Linux 在 3.0 開始提供 BPF 的 Just-in-Time Compiler (BPF JIT),可以在執行時即時產生有關平台的組合碼來執行如 tcpdump 等工具的網絡封包過濾工作,加快相關工作的執行速度。據早期版本測試結果,可以為每個封包省下 50ns。[2]BPF JIT 由 Eric Dumazet 開發。[3]現時只支援 x86_64 平台。[1]

BPF JIT 預設被停用,可以透改寫入 1 至檔案 /proc/sys/net/core/bpf_jit_enable 啟動:

echo 1 >/proc/sys/net/core/bpf_jit_enable

參考資料

  1. 1.0 1.1 Corbet, Jonathan (2011-04-12) A JIT for packet filters. LWN.net.
  2. Leemhuis, Thorsten (2011-07-22) What's new in Linux 3.0: Graphics. The H Open Source.
  3. Dumazet, Eric (2011-04-03) [PATCH v1] net: filter: Just In Time compiler. Git.Kernel.org.

外部連結

Personal tools