BPF用於很多的抓包程序,在linux中,一般內核自動編譯進了af_packet這個驅動,因此只需要在用戶態配置一個PACKET的socket,然后將filter配置進內核即可,使用setsockopt的SO_ATTACH_FILTER 命令,這個filter是在用戶空間配制的,比如tcpdump應用程序,tcpdump和內核BPF過濾器的關系類似iptables與netfilter的關系,只是Netfilter實現了match/target的復合配合,而BPF的target則只是選擇是否要與不要