另外，BPF支持过滤数据包——用户态的进程可以提供一个过滤程序来声明它想收到哪些数据包。通过这种过滤可以避免从操作系统内核向用户态复制其他对用户态程序无用的数据包，从而极大地提高性能。BPF有时也只表示过滤机制，而不是整个接口。一些系统，比如Linux和Tru64 Unix，提供了数据链路层的原始接口，而不是BPF的接口，但使用了BPF的过滤机制。BSD 内核实现例程如 codice_1和 codice_2，以codice_3和 codice_4等宏定义的形式进行包裹由网卡驱动(以及伪驱动pse