pcap 【packet capture】
概要
pcap(packet capture)とは、ソフトウェアからパケットキャプチャ機能を利用するための標準的なAPIの一つ。libpcapなどのライブラリを呼び出してネットワークを流れるパケットを取得するもので、LANアナライザやネットワークモニタなどで利用されている。オペレーティングシステム(OS)のネットワーク機能にアクセスし、ネットワークインターフェース(NIC)を通じて送受信されるパケットの内容を動作に影響を与えずに読み取って記録することができる。得られた情報はネットワーク監視や侵入検知・防止、プログラムの動作解析などに利用することができる。
ハードウェアに近い低レベル(低レイヤー)で動作する仕組みであり、イーサネット(Ethernet)やWi-Fi(無線LAN)のフレーム、IPデータグラム、TCPセグメント、UDPデータグラム、アプリケーション層プロトコルのメッセージなど、ネットワーク上でやり取りされるすべてのデータを取り込むことができる。
pcapライブラリ
pcapはLinuxなどのUNIX系OS向けに開発されたパケットキャプチャライブラリ「libpcap」の機能を利用するために定義されたもので、オリジナルのAPI仕様はC言語で記述されている。他の言語で利用する場合は適切なラッパーを用意する必要がある。
libpcapはUNIX系OSにおけるパケットキャプチャの事実上の標準として広く普及しており、Windows移植版の「WinPcap」や「Npcap」でも同じ仕組みをpcapの仕様に基づいて利用することができる。libpcap自体や、移植版を含むこれらのpcapライブラリを総称してpcapと呼ぶこともある。
pcapライブラリはキャプチャしたデータを指定されたファイルに保存する機能も提供しており、記録されるデータ形式をpcap形式という。Wiresharkなど多くの解析ソフトが標準的に利用している。標準のファイル拡張子は「.pcap」で、このpcapファイルを指してpcapと呼ぶ場合もある。
(2023.10.5更新)