## 概要 libpcap(Packet Capture Library)は [[BPF]] の `bpf(4)` インターフェースを抽象化した可搬性ライブラリである。[[tcpdump]]・Wireshark をはじめ多数の解析ツールの基盤となっている。(Source: [[@1993__USENIX__The BSD Packet Filter A New Architecture for User-level Packet Capture]]) ## BPF との関係 BPF は BSD カーネルのネットワークデバイスドライバに組み込まれ、`bpf(4)` デバイスとして公開される。ユーザ空間からは `/dev/bpf0` 等へ open した後 `BIOCSETIF`・`BIOCSETF` などの ioctl でフィルタを設定し、`read()` でパケットを受け取る。libpcap はこの低レベルインターフェースを抽象化し、tcpdump/pcap の基盤フィルタエンジンとして BPF を利用できるようにした。(Source: [[@1993__USENIX__The BSD Packet Filter A New Architecture for User-level Packet Capture]]) ## 関連 - ソース: [[@1993__USENIX__The BSD Packet Filter A New Architecture for User-level Packet Capture]] - 概念: [[BPF]] - エンティティ: [[tcpdump]]