来减少拷贝的数量，它会尽量早地丢弃不想要的数据包。早先的数据包过滤器被实现为基于栈的虚拟机，在RISC CPU上性能不佳。BPF使用了一种新的基于寄存器的虚拟机，在性能上有显着提升。
过滤.BPF的过滤功能是以对于BPF虚拟机机器语言的一种解释器的形式实现的，使用这种语言编写的程序可以抓取数据包，对数据包中的数据采取算术操作，并将结果与常量或数据包中的数据或结果中的测试位比较，根据比较的结果决定接受还是拒绝封包。传统的Unix BPF实现能够被用于用户态，尽管它是为内核态编写。