EN JA
PCAP-SAVEFILE(5)
PCAP-SAVEFILE(5) FreeBSD File Formats Manual PCAP-SAVEFILE(5)

名称

pcap-savefile - libpcap savefile の形式

解説

注: アプリケーションとライブラリは、savefiles を読み込むためにそれら自体のコードを所有するのではなく、できれば、savefiles を読み込むために libpcap を使用するべきです。将来、新しいファイル形式が libpcap によってサポートされるなら、 savefiles を読み込むために libpcap を使用するアプリケーションとライブラリは、 savefiles の新しい形式を読み込むことができますが、 savefiles を読み込むためのそれら自体のコードを使用するアプリケーションとライブラリは、新しいファイル形式をサポートするように変更されなければなりません。

``Savefiles'' は、libpcap によって読み書きされ、 libpcap を使用するアプリケーションには、ファイル毎のヘッダに始まります。ファイル毎のヘッダの形式は、次の通りです:

マジック番号
メジャーバージョン マイナバージョン
タイムゾーンオフセット
タイムスタンプ精度
スナップショットの長さ
リンクレイヤヘッダタイプ
 

ファイル毎のヘッダのすべてのフィールドは、ファイルを書き込むホストのバイト順序となります。ファイル毎のヘッダの最初のフィールドは、値 0xa1b2c3d4 がある 4 バイトのマジック番号です。ファイルを書き込んだホストと同じバイト順序があるホストによって読み込まれるとき、マジック番号は、値 0xa1b2c3d4 となり、ファイルを書き込んだホストと反対のバイト順序があるホストによって読み込まれるとき、値 0xd4c3b2a1 となります。それによって、ファイルを読み込むソフトウェアは、ファイルを書き込んだホストのバイト順序が、ファイルが読み込まれているホストのバイト順序と同じであるかどうかと、そして、ファイルとパケットヘッダ毎の値が、バイトスワップされる必要があるかどうかを決定することができます。

これは、次の通りです:

2 バイトのファイル形式メジャーバージョン番号。現在のバージョン番号は、2 です。
2 バイトのファイル形式マイナバージョン番号。現在のバージョン番号は、4 です。
4 バイトのタイムゾーンオフセット。これは、常に 0 です。
ファイル中のタイムスタンプの精度を与える 4 バイトの数。これは、常に 0 です。
キャプチャの "スナップショットの長さ"を与える 4 バイトの数。スナップショットの長さより長いパケットは、スナップショットの長さが N であるなら、 N バイトより長いパケットの最初の N バイトが、キャプチャに保存されるように、スナップショットの長さに切り詰められます。
キャプチャでパケットのためのリンクレイヤヘッダタイプに与える 4 バイトの数。このフィールドに出現することができる LINKTYPE_ 値については、 pcap-linktype(7) を参照してください。

次のファイル毎のヘッダは、0 またはより多いパケットです。パケット毎のヘッダで始まる各パケットの直後に生のパケットデータが続きます。パケット毎のヘッダの形式は、次の通りです:

タイムスタンプ, 秒の値
タイムスタンプ, マイクロ秒の値
キャプチャされたパケットデータの長さ
パケットデータの切り詰められたいない長さ
 

パケット毎のヘッダのすべてのフィールドは、ファイルを書き込んでいるホストのバイト順序です。パケットのだいたいの時間を与えられるタイムスタンプで始まるパケット毎のヘッダは、キャプチャされます。協定世界時 (UTC) 1970 年 1 月 1 日 0 時 0 分 0 秒以来の秒の時間で与えられる、タイムスタンプは、4 バイトの値から成り、その秒以来のマイクロ秒単位の時間で与えられる 4 バイトの値が続きます。それに続くのは、パケット毎のヘッダが続くキャプチャされるデータのバイト数が与えられる 4 バイトの値であり、パケットがスナップショットの長さによって切り詰められていない存在しているバイト数を与えられる 4 バイトの値です。 2 つの長さは、パケットデータのバイト数がスナップショットの長さ以下であるなら、等しくなります。

関連項目

pcap(3), pcap-linktype(7)
21 October 2008