FlossDoc: 請協力 GPLv3 的中文翻譯工作。
柏克萊封包過濾器 (Berkeley Packet Filter, BPF)
FlossDoc,自由中文開源知識庫
柏克萊封包過濾器 (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.0 1.1 Corbet, Jonathan (2011-04-12) A JIT for packet filters. LWN.net.
- ↑ Leemhuis, Thorsten (2011-07-22) What's new in Linux 3.0: Graphics. The H Open Source.
- ↑ Dumazet, Eric (2011-04-03) [PATCH v1] net: filter: Just In Time compiler. Git.Kernel.org.
[编辑]
外部連結
- USENIX'93: The BSD Packet Filter: A New Architecture for User-level Packet Capture (Steven McCanne & Van Jacobson 1992-12-19)
- 維基百科: Berkeley_Packet_Filter[Eng][中文] - 維基百科對 Berkeley Packet Filter 的說明

