128 lines
4.6 KiB
Plaintext
128 lines
4.6 KiB
Plaintext
'\" t
|
|
.\" @(#) $Header: /tcpdump/master/libpcap/pcap-savefile.manfile.in,v 1.2 2008-10-24 07:33:50 guy Exp $
|
|
.\"
|
|
.\" Copyright (c) 1994, 1996, 1997
|
|
.\" The Regents of the University of California. All rights reserved.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that: (1) source code distributions
|
|
.\" retain the above copyright notice and this paragraph in its entirety, (2)
|
|
.\" distributions including binary code include the above copyright notice and
|
|
.\" this paragraph in its entirety in the documentation or other materials
|
|
.\" provided with the distribution, and (3) all advertising materials mentioning
|
|
.\" features or use of this software display the following acknowledgement:
|
|
.\" ``This product includes software developed by the University of California,
|
|
.\" Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
|
|
.\" the University nor the names of its contributors may be used to endorse
|
|
.\" or promote products derived from this software without specific prior
|
|
.\" written permission.
|
|
.\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
|
|
.\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
|
|
.\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
|
.\"
|
|
.TH PCAP-SAVEFILE 5 "21 October 2008"
|
|
.SH NAME
|
|
pcap-savefile \- libpcap savefile format
|
|
.SH DESCRIPTION
|
|
NOTE: applications and libraries should, if possible, use libpcap to
|
|
read savefiles, rather than having their own code to read savefiles.
|
|
If, in the future, a new file format is supported by libpcap,
|
|
applications and libraries using libpcap to read savefiles will be able
|
|
to read the new format of savefiles, but applications and libraries
|
|
using their own code to read savefiles will have to be changed to
|
|
support the new file format.
|
|
.PP
|
|
``Savefiles'' read and written by libpcap and applications using libpcap
|
|
start with a per-file header. The format of the per-file header is:
|
|
.RS
|
|
.TS
|
|
box;
|
|
c s
|
|
c | c
|
|
c s.
|
|
Magic number
|
|
_
|
|
Major version Minor version
|
|
_
|
|
Time zone offset
|
|
_
|
|
Time stamp accuracy
|
|
_
|
|
Snapshot length
|
|
_
|
|
Link-layer header type
|
|
.TE
|
|
.RE
|
|
.PP
|
|
All fields in the per-file header are in the byte order of the host
|
|
writing the file. The first field in the per-file header is a 4-byte
|
|
magic number, with the value 0xa1b2c3d4. The magic number, when read by
|
|
a host with the same byte order as the host that wrote the file, will
|
|
have the value 0xa1b2c3d4, and, when read by a host with the opposite
|
|
byte order as the host that wrote the file, will have the value
|
|
0xd4c3b2a1. That allows software reading the file to determine whether
|
|
the byte order of the host that wrote the file is the same as the byte
|
|
order of the host on which the file is being read, and thus whether the
|
|
values in the per-file and per-packet headers need to be byte-swapped.
|
|
.PP
|
|
Following this are:
|
|
.IP
|
|
A 2-byte file format major version number; the current version number is
|
|
2.
|
|
.IP
|
|
A 2-byte file format minor version number; the current version number is
|
|
4.
|
|
.IP
|
|
A 4-byte time zone offset; this is always 0.
|
|
.IP
|
|
A 4-byte number giving the accuracy of time stamps in the file; this is
|
|
always 0.
|
|
.IP
|
|
A 4-byte number giving the "snapshot length" of the capture; packets
|
|
longer than the snapshot length are truncated to the snapshot length, so
|
|
that, if the snapshot length is
|
|
.IR N ,
|
|
only the first
|
|
.I N
|
|
bytes of a packet longer than
|
|
.I N
|
|
bytes will be saved in the capture.
|
|
.IP
|
|
a 4-byte number giving the link-layer header type for packets in the
|
|
capture; see
|
|
.BR pcap-linktype (7)
|
|
for the
|
|
.B LINKTYPE_
|
|
values that can appear in this field.
|
|
.PP
|
|
Following the per-file header are zero or more packets; each packet
|
|
begins with a per-packet header, which is immediately followed by the
|
|
raw packet data. The format of the per-packet header is:
|
|
.RS
|
|
.TS
|
|
box;
|
|
c.
|
|
Time stamp, seconds value
|
|
_
|
|
Time stamp, microseconds value
|
|
_
|
|
Length of captured packet data
|
|
_
|
|
Un-truncated length of the packet data
|
|
.TE
|
|
.RE
|
|
.PP
|
|
All fields in the per-packet header are in the byte order of the host
|
|
writing the file. The per-packet header begins with a time stamp giving
|
|
the approximate time the packet was captured; the time stamp consists of
|
|
a 4-byte value, giving the time in seconds since January 1, 1970,
|
|
00:00:00 UTC, followed by a 4-byte value, giving the time in
|
|
microseconds since that second. Following that are a 4-byte value
|
|
giving the number of bytes of captured data that follow the per-packet
|
|
header and a 4-byte value giving the number of bytes that would have
|
|
been present had the packet not been truncated by the snapshot length.
|
|
The two lengths will be equal if the number of bytes of packet data are
|
|
less than or equal to the snapshot length.
|
|
.SH SEE ALSO
|
|
pcap(3PCAP), pcap-linktype(7)
|