| |
| |
| Network Working Group L. Degioanni |
| Internet-Draft F. Risso |
| Expires: August 30, 2004 Politecnico di Torino |
| March 2004 |
| |
| |
| PCAP New Generation Dump File Format |
| pcap |
| |
| Status of this Memo |
| |
| This document is an Internet-Draft and is in full conformance with |
| all provisions of Section 10 of RFC2026. |
| |
| Internet-Drafts are working documents of the Internet Engineering |
| Task Force (IETF), its areas, and its working groups. Note that other |
| groups may also distribute working documents as Internet-Drafts. |
| |
| Internet-Drafts are draft documents valid for a maximum of six months |
| and may be updated, replaced, or obsoleted by other documents at any |
| time. It is inappropriate to use Internet-Drafts as reference |
| material or to cite them other than as "work in progress." |
| |
| The list of current Internet-Drafts can be accessed at http:// |
| www.ietf.org/ietf/1id-abstracts.txt. |
| |
| The list of Internet-Draft Shadow Directories can be accessed at |
| http://www.ietf.org/shadow.html. |
| |
| This Internet-Draft will expire on August 30, 2004. |
| |
| Copyright Notice |
| |
| Copyright (C) The Internet Society (2004). All Rights Reserved. |
| |
| Abstract |
| |
| This document describes a format to dump captured packets on a file. |
| This format is extensible and it is currently proposed for |
| implementation in the libpcap/WinPcap packet capture library. |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| Degioanni & Risso Expires August 30, 2004 [Page 1] |
| |
| Internet-Draft PCAP New Generation Dump File Format March 2004 |
| |
| |
| Table of Contents |
| |
| 1. Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . 3 |
| 2. General File Structure . . . . . . . . . . . . . . . . . . . . 4 |
| 2.1 General Block Structure . . . . . . . . . . . . . . . . . . . 4 |
| 2.2 Block Types . . . . . . . . . . . . . . . . . . . . . . . . . 5 |
| 2.3 Block Hierarchy and Precedence . . . . . . . . . . . . . . . . 5 |
| 2.4 Data format . . . . . . . . . . . . . . . . . . . . . . . . . 6 |
| 3. Block Definition . . . . . . . . . . . . . . . . . . . . . . . 8 |
| 3.1 Section Header Block (mandatory) . . . . . . . . . . . . . . . 8 |
| 3.2 Interface Description Block (mandatory) . . . . . . . . . . . 9 |
| 3.3 Packet Block (optional) . . . . . . . . . . . . . . . . . . . 13 |
| 3.4 Simple Packet Block (optional) . . . . . . . . . . . . . . . . 15 |
| 3.5 Name Resolution Block (optional) . . . . . . . . . . . . . . . 16 |
| 3.6 Interface Statistics Block (optional) . . . . . . . . . . . . 18 |
| 4. Options . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 |
| 5. Experimental Blocks (deserved to a further investigation) . . 23 |
| 5.1 Other Packet Blocks (experimental) . . . . . . . . . . . . . . 23 |
| 5.2 Compression Block (experimental) . . . . . . . . . . . . . . . 23 |
| 5.3 Encryption Block (experimental) . . . . . . . . . . . . . . . 23 |
| 5.4 Fixed Length Block (experimental) . . . . . . . . . . . . . . 24 |
| 5.5 Directory Block (experimental) . . . . . . . . . . . . . . . . 25 |
| 5.6 Traffic Statistics and Monitoring Blocks (experimental) . . . 25 |
| 5.7 Event/Security Block (experimental) . . . . . . . . . . . . . 25 |
| 6. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . 27 |
| 7. Most important open issues . . . . . . . . . . . . . . . . . . 28 |
| Intellectual Property and Copyright Statements . . . . . . . . 29 |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| Degioanni & Risso Expires August 30, 2004 [Page 2] |
| |
| Internet-Draft PCAP New Generation Dump File Format March 2004 |
| |
| |
| 1. Objectives |
| |
| The problem of exchanging packet traces becomes more and more |
| critical every day; unfortunately, no standard solutions exist for |
| this task right now. One of the most accepted packet interchange |
| formats is the one defined by libpcap, which is rather old and does |
| not fit for some of the nowadays applications especially in terms of |
| extensibility. |
| |
| This document proposes a new format for dumping packet traces. The |
| following goals are being pursued: |
| |
| o Extensibility: aside of some common functionalities, third parties |
| should be able to enrich the information embedded in the file with |
| proprietary extensions, which will be ignored by tools that are |
| not able to understand them. |
| |
| o Portability: a capture trace must contain all the information |
| needed to read data independently from network, hardware and |
| operating system of the machine that made the capture. |
| |
| o Merge/Append data: it should be possible to add data at the end of |
| a given file, and the resulting file must still be readable. |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| Degioanni & Risso Expires August 30, 2004 [Page 3] |
| |
| Internet-Draft PCAP New Generation Dump File Format March 2004 |
| |
| |
| 2. General File Structure |
| |
| 2.1 General Block Structure |
| |
| A capture file is organized in blocks, that are appended one to |
| another to form the file. All the blocks share a common format, which |
| is shown in Figure 1. |
| |
| 0 1 2 3 |
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | Block Type | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | Block Total Length | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| / Block Body / |
| / /* variable length, aligned to 32 bits */ / |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | Block Total Length | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| |
| Figure 1: Basic block structure. |
| |
| The fields have the following meaning: |
| |
| o Block Type (32 bits): unique value that identifies the block. |
| Values whose Most Significant Bit (MSB) is equal to 1 are reserved |
| for local use. They allow to save private data to the file and to |
| extend the file format. |
| |
| o Block Total Length: total size of this block, in bytes. For |
| instance, a block that does not have a body has a length of 12 |
| bytes. |
| |
| o Block Body: content of the block. |
| |
| o Block Total Length: total size of this block, in bytes. This field |
| is duplicated for permitting backward file navigation. |
| |
| This structure, shared among all blocks, makes easy to process a file |
| and to skip unneeded or unknown blocks. Blocks can be nested one |
| inside the others (NOTE: needed?). Some of the blocks are mandatory, |
| i.e. a dump file is not valid if they are not present, other are |
| optional. |
| |
| The structure of the blocks allows to define other blocks if needed. |
| A parser that does non understand them can simply ignore their |
| content. |
| |
| |
| |
| Degioanni & Risso Expires August 30, 2004 [Page 4] |
| |
| Internet-Draft PCAP New Generation Dump File Format March 2004 |
| |
| |
| 2.2 Block Types |
| |
| The currently defined blocks are the following: |
| |
| 1. Section Header Block: it defines the most important |
| characteristics of the capture file. |
| |
| 2. Interface Description Block: it defines the most important |
| characteristics of the interface(s) used for capturing traffic. |
| |
| 3. Packet Block: it contains a single captured packet, or a portion |
| of it. |
| |
| 4. Simple Packet Block: it contains a single captured packet, or a |
| portion of it, with only a minimal set of information about it. |
| |
| 5. Name Resolution Block: it defines the mapping from numeric |
| addresses present in the packet dump and the canonical name |
| counterpart. |
| |
| 6. Capture Statistics Block: it defines how to store some |
| statistical data (e.g. packet dropped, etc) which can be useful |
| to undestand the conditions in which the capture has been made. |
| |
| 7. Compression Marker Block: TODO |
| |
| 8. Encryption Marker Block: TODO |
| |
| 9. Fixed Length Marker Block: TODO |
| |
| The following blocks instead are considered interesting but the |
| authors believe that they deserve more in-depth discussion before |
| being defined: |
| |
| 1. Further Packet Blocks |
| |
| 2. Directory Block |
| |
| 3. Traffic Statistics and Monitoring Blocks |
| |
| 4. Alert and Security Blocks |
| |
| TODO Currently standardized Block Type codes are specified in |
| Appendix 1. |
| |
| 2.3 Block Hierarchy and Precedence |
| |
| The file must begin with a Section Header Block. However, more than |
| |
| |
| |
| Degioanni & Risso Expires August 30, 2004 [Page 5] |
| |
| Internet-Draft PCAP New Generation Dump File Format March 2004 |
| |
| |
| one Section Header Block can be present on the dump, each one |
| covering the data following it till the next one (or the end of |
| file). A Section includes the data delimited by two Section Header |
| Blocks (or by a Section Header Block and the end of the file), |
| including the first Section Header Block. |
| |
| In case an application cannot read a Section because of different |
| version number, it must skip everything until the next Section Header |
| Block. Note that, in order to properly skip the blocks until the next |
| section, all blocks must have the fields Type and Length at the |
| beginning. This is a mandatory requirement that must be maintained in |
| future versions of the block format. |
| |
| Figure 2 shows two valid files: the first has a typical |
| configuration, with a single Section Header that covers the whole |
| file. The second one contains three headers, and is normally the |
| result of file concatenation. An application that understands only |
| version 1.0 of the file format skips the intermediate section and |
| restart processing the packets after the third Section Header. |
| |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | SHB v1.0 | Data | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| Typical configuration with a single Section Header Block |
| |
| |
| |-- 1st Section --|-- 2nd Section --|-- 3rd Section --| |
| | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | SHB v1.0 | Data | SHB V1.1 | Data | SHB V1.0 | Data | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| Configuration with three different Section Header Blocks |
| |
| Figure 2: File structure example: the Section Header Block. |
| |
| NOTE: TO BE COMPLETED with some examples of other blocks |
| |
| 2.4 Data format |
| |
| Data contained in each section will always be saved according to the |
| characteristics (little endian / big endian) of the dumping machine. |
| This refers to all fields that are saved as numbers and that span |
| over two or more bytes. |
| |
| The approach of having each section saved in the native format of the |
| generating host is more efficient because it avoids translation of |
| data when reading / writing on the host itself, which is the most |
| common case when generating/processing capture dumps. |
| |
| |
| |
| Degioanni & Risso Expires August 30, 2004 [Page 6] |
| |
| Internet-Draft PCAP New Generation Dump File Format March 2004 |
| |
| |
| TODO Probably we have to specify something more here. Is what we're |
| saying enough to avoid any kind of ambiguity?. |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| Degioanni & Risso Expires August 30, 2004 [Page 7] |
| |
| Internet-Draft PCAP New Generation Dump File Format March 2004 |
| |
| |
| 3. Block Definition |
| |
| This section details the format of the body of the blocks currently |
| defined. |
| |
| 3.1 Section Header Block (mandatory) |
| |
| The Section Header Block is mandatory. It identifies the beginning of |
| a section of the capture dump file. Its format is shown in Figure 3. |
| |
| 0 1 2 3 |
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | Magic | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | Major | Minor | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| / / |
| / Options (variable) / |
| / / |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| |
| Figure 3: Section Header Block format. |
| |
| The meaning of the fields is: |
| |
| o Magic: magic number, whose value is the hexadecimal number |
| 0x1A2B3C4D. This number can be used to distinguish section that |
| have been saved on little-endian machines from the one saved on |
| big-endian machines. |
| |
| o Major: number of the current mayor version of the format. Current |
| value is 1. |
| |
| o Minor: number of the current minor version of the format. Current |
| value is 0. |
| |
| o Options: optionally, a list of options (formatted according to the |
| rules defined in Section 4) can be present. |
| |
| Aside form the options defined in Section 4, the following options |
| are valid within this block: |
| |
| +----------------+----------------+----------------+----------------+ |
| | Name | Code | Length | Description | |
| +----------------+----------------+----------------+----------------+ |
| | Hardware | 2 | variable | An ascii | |
| | | | | string | |
| |
| |
| |
| Degioanni & Risso Expires August 30, 2004 [Page 8] |
| |
| Internet-Draft PCAP New Generation Dump File Format March 2004 |
| |
| |
| | | | | containing the | |
| | | | | description of | |
| | | | | the hardware | |
| | | | | used to create | |
| | | | | this section. | |
| | | | | | |
| | Operating | 3 | variable | An ascii | |
| | System | | | string | |
| | | | | containing the | |
| | | | | name of the | |
| | | | | operating | |
| | | | | system used to | |
| | | | | create this | |
| | | | | section. | |
| | | | | | |
| | User | 3 | variable | An ascii | |
| | Application | | | string | |
| | | | | containing the | |
| | | | | name of the | |
| | | | | application | |
| | | | | used to create | |
| | | | | this section. | |
| +----------------+----------------+----------------+----------------+ |
| |
| Table 1 |
| |
| The Section Header Block does not contain data but it rather |
| identifies a list of blocks (interfaces, packets) that are logically |
| correlated. This block does not contain any reference to the size of |
| the section it is currently delimiting, therefore the reader cannot |
| skip a whole section at once. In case a section must be skipped, the |
| user has to repeatedly skip all the blocks contained within it; this |
| makes the parsing of the file slower but it permits to append several |
| capture dumps at the same file. |
| |
| 3.2 Interface Description Block (mandatory) |
| |
| The Interface Description Block is mandatory. This block is needed to |
| specify the characteristics of the network interface on which the |
| capture has been made. In order to properly associate the captured |
| data to the corresponding interface, the Interface Description Block |
| must be defined before any other block that uses it; therefore, this |
| block is usually placed immediately after the Section Header Block. |
| |
| An Interface Description Block is valid only inside the section which |
| it belongs to. The structure of a Interface Description Block is |
| shown in Figure 4. |
| |
| |
| |
| |
| Degioanni & Risso Expires August 30, 2004 [Page 9] |
| |
| Internet-Draft PCAP New Generation Dump File Format March 2004 |
| |
| |
| 0 1 2 3 |
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | Interface ID | LinkType | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | SnapLen | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| / / |
| / Options (variable) / |
| / / |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| |
| Figure 4: Interface Description Block format. |
| |
| The meaning of the fields is: |
| |
| o Interface ID: a progressive number that identifies uniquely any |
| interface inside current section. Two Interface Description Blocks |
| can have the same Interface ID only if they are in different |
| sections of the file. The Interface ID is referenced by the packet |
| blocks. |
| |
| o LinkType: a value that defines the link layer type of this |
| interface. |
| |
| o SnapLen: maximum number of bytes dumped from each packet. The |
| portion of each packet that exceeds this value will not be stored |
| in the file. |
| |
| o Options: optionally, a list of options (formatted according to the |
| rules defined in Section 4) can be present. |
| |
| In addition to the options defined in Section 4, the following |
| options are valid within this block: |
| |
| +----------------+----------------+----------------+----------------+ |
| | Name | Code | Length | Description | |
| +----------------+----------------+----------------+----------------+ |
| | if_name | 2 | Variable | Name of the | |
| | | | | device used to | |
| | | | | capture data. | |
| | | | | | |
| | if_IPv4addr | 3 | 8 | Interface | |
| | | | | network | |
| | | | | address and | |
| | | | | netmask. | |
| | | | | | |
| | if_IPv6addr | 4 | 17 | Interface | |
| |
| |
| |
| Degioanni & Risso Expires August 30, 2004 [Page 10] |
| |
| Internet-Draft PCAP New Generation Dump File Format March 2004 |
| |
| |
| | | | | network | |
| | | | | address and | |
| | | | | prefix length | |
| | | | | (stored in the | |
| | | | | last byte). | |
| | | | | | |
| | if_MACaddr | 5 | 6 | Interface | |
| | | | | Hardware MAC | |
| | | | | address (48 | |
| | | | | bits). | |
| | | | | | |
| | if_EUIaddr | 6 | 8 | Interface | |
| | | | | Hardware EUI | |
| | | | | address (64 | |
| | | | | bits), if | |
| | | | | available. | |
| | | | | | |
| | if_speed | 7 | 8 | Interface | |
| | | | | speed (in | |
| | | | | bps). | |
| | | | | | |
| | if_tsaccur | 8 | 1 | Precision of | |
| | | | | timestamps. If | |
| | | | | the Most | |
| | | | | Significant | |
| | | | | Bit is equal | |
| | | | | to zero, the | |
| | | | | remaining bits | |
| | | | | indicates the | |
| | | | | accuracy as as | |
| | | | | a negative | |
| | | | | power of 10 | |
| | | | | (e.g. 6 means | |
| | | | | microsecond | |
| | | | | accuracy). If | |
| | | | | the Most | |
| | | | | Significant | |
| | | | | Bit is equal | |
| | | | | to zero, the | |
| | | | | remaining bits | |
| | | | | indicates the | |
| | | | | accuracy as as | |
| | | | | negative power | |
| | | | | of 2 (e.g. 10 | |
| | | | | means 1/1024 | |
| | | | | of second). If | |
| | | | | this option is | |
| | | | | not present, a | |
| |
| |
| |
| Degioanni & Risso Expires August 30, 2004 [Page 11] |
| |
| Internet-Draft PCAP New Generation Dump File Format March 2004 |
| |
| |
| | | | | precision of | |
| | | | | 10^-6 is | |
| | | | | assumed. | |
| | | | | | |
| | if_tzone | 9 | 4 | Time zone for | |
| | | | | GMT support | |
| | | | | (TODO: specify | |
| | | | | better). | |
| | | | | | |
| | if_flags | 10 | 4 | Interface | |
| | | | | flags. (TODO: | |
| | | | | specify | |
| | | | | better. | |
| | | | | Possible | |
| | | | | flags: | |
| | | | | promiscuous, | |
| | | | | inbound/outbou | |
| | | | | nd, traffic | |
| | | | | filtered | |
| | | | | during | |
| | | | | capture). | |
| | | | | | |
| | if_filter | 11 | variable | The filter | |
| | | | | (e.g. "capture | |
| | | | | only TCP | |
| | | | | traffic") used | |
| | | | | to capture | |
| | | | | traffic. The | |
| | | | | first byte of | |
| | | | | the Option | |
| | | | | Data keeps a | |
| | | | | code of the | |
| | | | | filter used | |
| | | | | (e.g. if this | |
| | | | | is a libpcap | |
| | | | | string, or BPF | |
| | | | | bytecode, and | |
| | | | | more). More | |
| | | | | details about | |
| | | | | this format | |
| | | | | will be | |
| | | | | presented in | |
| | | | | Appendix XXX | |
| | | | | (TODO). | |
| | | | | | |
| | if_opersystem | 12 | variable | An ascii | |
| | | | | string | |
| | | | | containing the | |
| |
| |
| |
| Degioanni & Risso Expires August 30, 2004 [Page 12] |
| |
| Internet-Draft PCAP New Generation Dump File Format March 2004 |
| |
| |
| | | | | name of the | |
| | | | | operating | |
| | | | | system of the | |
| | | | | machine that | |
| | | | | hosts this | |
| | | | | interface. | |
| | | | | This can be | |
| | | | | different from | |
| | | | | the same | |
| | | | | information | |
| | | | | that can be | |
| | | | | contained by | |
| | | | | the Section | |
| | | | | Header Block | |
| | | | | (Section 3.1) | |
| | | | | because the | |
| | | | | capture can | |
| | | | | have been done | |
| | | | | on a remote | |
| | | | | machine. | |
| +----------------+----------------+----------------+----------------+ |
| |
| Table 2 |
| |
| |
| 3.3 Packet Block (optional) |
| |
| A Packet Block is the standard container for storing the packets |
| coming from the network. The Packet Block is optional because packets |
| can be stored either by means of this block or the Simple Packet |
| Block, which can be used to speed up dump generation. The format of a |
| packet block is shown in Figure 5. |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| Degioanni & Risso Expires August 30, 2004 [Page 13] |
| |
| Internet-Draft PCAP New Generation Dump File Format March 2004 |
| |
| |
| 0 1 2 3 |
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | Interface ID | Drops Count | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | Timestamp (High) | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | Timestamp (Low) | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | Captured Len | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | Packet Len | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | | |
| | Packet Data | |
| | | |
| | /* variable length, byte-aligned */ | |
| | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| / / |
| / Options (variable) / |
| / / |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| |
| Figure 5: Packet Block format. |
| |
| The Packet Block has the following fields: |
| |
| o Interface ID: Specifies the interface this packet comes from, and |
| corresponds to the ID of one of the Interface Description Blocks |
| present in this section of the file (see Figure 4). |
| |
| o Drops Count: a local drop counter. It specified the number of |
| packets lost (by the interface and the operating system) between |
| this packet and the preceding one. The value xFFFF (in |
| hexadecimal) is reserved for those systems in which this |
| information is not available. |
| |
| o Timestamp (High): the most significative part of the timestamp. in |
| standard Unix format, i.e. from 1/1/1970. |
| |
| o Timestamp (Low): the less significative part of the timestamp. The |
| way to interpret this field is specified by the 'ts_accur' option |
| (see Figure 4) of the Interface Description block referenced by |
| this packet. If the Interface Description block does not contain a |
| 'ts_accur' option, then this field is expressed in microseconds. |
| |
| o Captured Len: number of bytes captured from the packet (i.e. the |
| |
| |
| |
| Degioanni & Risso Expires August 30, 2004 [Page 14] |
| |
| Internet-Draft PCAP New Generation Dump File Format March 2004 |
| |
| |
| length of the Packet Data field). It will be the minimum value |
| among the actual Packet Length and the snapshot length (defined in |
| Figure 4). |
| |
| o Packet Len: actual length of the packet when it was transmitted on |
| the network. Can be different from Captured Len if the user wants |
| only a snapshot of the packet. |
| |
| o Packet Data: the data coming from the network, including |
| link-layer headers. The length of this field is Captured Len. The |
| format of the link-layer headers depends on the LinkType field |
| specified in the Interface Description Block (see Section 3.2) and |
| it is specified in Appendix XXX (TODO). |
| |
| o Options: optionally, a list of options (formatted according to the |
| rules defined in Section 4) can be present. |
| |
| |
| 3.4 Simple Packet Block (optional) |
| |
| The Simple Packet Block is a lightweight container for storing the |
| packets coming from the network. Its presence is optional. |
| |
| A Simple Packet Block is similar to a Packet Block (see Section 3.3), |
| but it is smaller, simpler to process and contains only a minimal set |
| of information. This block is preferred to the standard Packet Block |
| when performance or space occupation are critical factors, such as in |
| sustained traffic dump applications. A capture file can contain both |
| Packet Blocks and Simple Packet Blocks: for example, a capture tool |
| could switch from Packet Blocks to Simple Packet Blocks when the |
| hardware resources become critical. |
| |
| The Simple Packet Block does not contain the Interface ID field. |
| Therefore, it must be assumed that all the Simple Packet Blocks have |
| been captured on the interface previously specified in the Interface |
| Description Block. |
| |
| Figure 6 shows the format of the Simple Packet Block. |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| Degioanni & Risso Expires August 30, 2004 [Page 15] |
| |
| Internet-Draft PCAP New Generation Dump File Format March 2004 |
| |
| |
| 0 1 2 3 |
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | Packet Len | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | | |
| | Packet Data | |
| | | |
| | /* variable length, byte-aligned */ | |
| | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| |
| Figure 6: Simple Packet Block format. |
| |
| The Packet Block has the following fields: |
| |
| o Packet Len: actual length of the packet when it was transmitted on |
| the network. Can be different from captured len if the packet has |
| been truncated. |
| |
| o Packet data: the data coming from the network, including |
| link-layers headers. The length of this field can be derived from |
| the field Block Total Length, present in the Block Header. |
| |
| The Simple Packet Block does not contain the timestamp because this |
| is one of the most costly operations on PCs. Additionally, there are |
| applications that do not require it; e.g. an Intrusion Detection |
| System is interested in packets, not in their timestamp. |
| |
| The Simple Packet Block is very efficient in term of disk space: a |
| snapshot of length 100 bytes requires only 16 bytes of overhead, |
| which corresponds to an efficiency of more than 86%. |
| |
| 3.5 Name Resolution Block (optional) |
| |
| The Name Resolution Block is used to support the correlation of |
| numeric addresses (present in the captured packets) and their |
| corresponding canonical names and it is optional. Having the literal |
| names saved in the file, this prevents the need of a name resolution |
| in a delayed time, when the association between names and addresses |
| can be different from the one in use at capture time. Moreover, The |
| Name Resolution Block avoids the need of issuing a lot of DNS |
| requests every time the trace capture is opened, and allows to have |
| name resolution also when reading the capture with a machine not |
| connected to the network. |
| |
| The format of the Name Resolution Block is shown in Figure 7. |
| |
| |
| |
| |
| Degioanni & Risso Expires August 30, 2004 [Page 16] |
| |
| Internet-Draft PCAP New Generation Dump File Format March 2004 |
| |
| |
| 0 1 2 3 |
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | Record Type | Record Length | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | Record Value | |
| | /* variable length, byte-aligned */ | |
| | + + + + + + + + + + + + + + + + + + + + + + + + + |
| | | | | | |
| +-+-+-+-+-+-+-+-+ + + + + + + + + + + + + + + + + + + + + + + + + |
| . . . other records . . . |
| | Record Type == end_of_recs | Record Length == 00 | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| / / |
| / Options (variable) / |
| / / |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| |
| Figure 7: Name Resolution Block format. |
| |
| A Name Resolution Block is a zero-terminated list of records (in the |
| TLV format), each of which contains an association between a network |
| address and a name. There are three possible types of records: |
| |
| +----------------+----------------+----------------+----------------+ |
| | Name | Code | Length | Description | |
| +----------------+----------------+----------------+----------------+ |
| | end_of_recs | 0 | 0 | End of records | |
| | | | | | |
| | ip4_rec | 1 | Variable | Specifies an | |
| | | | | IPv4 address | |
| | | | | (contained in | |
| | | | | the first 4 | |
| | | | | bytes), | |
| | | | | followed by | |
| | | | | one or more | |
| | | | | zero-terminate | |
| | | | | d strings | |
| | | | | containing the | |
| | | | | DNS entries | |
| | | | | for that | |
| | | | | address. | |
| | | | | | |
| | ip6_rec | 1 | Variable | Specifies an | |
| | | | | IPv6 address | |
| | | | | (contained in | |
| | | | | the first 16 | |
| | | | | bytes), | |
| |
| |
| |
| Degioanni & Risso Expires August 30, 2004 [Page 17] |
| |
| Internet-Draft PCAP New Generation Dump File Format March 2004 |
| |
| |
| | | | | followed by | |
| | | | | one or more | |
| | | | | zero-terminate | |
| | | | | d strings | |
| | | | | containing the | |
| | | | | DNS entries | |
| | | | | for that | |
| | | | | address. | |
| +----------------+----------------+----------------+----------------+ |
| |
| Table 3 |
| |
| After the list or Name Resolution Records, optionally, a list of |
| options (formatted according to the rules defined in Section 4) can |
| be present. |
| |
| A Name Resolution Block is normally placed at the beginning of the |
| file, but no assumptions can be taken about its position. Name |
| Resolution Blocks can be added in a second time by tools that process |
| the file, like network analyzers. |
| |
| In addiction to the options defined in Section 4, the following |
| options are valid within this block: |
| |
| +----------------+----------------+----------------+----------------+ |
| | Name | Code | Length | Description | |
| +----------------+----------------+----------------+----------------+ |
| | ns_dnsname | 2 | Variable | An ascii | |
| | | | | string | |
| | | | | containing the | |
| | | | | name of the | |
| | | | | machine (DNS | |
| | | | | server) used | |
| | | | | to perform the | |
| | | | | name | |
| | | | | resolution. | |
| +----------------+----------------+----------------+----------------+ |
| |
| |
| 3.6 Interface Statistics Block (optional) |
| |
| The Interface Statistics Block contains the capture statistics for a |
| given interface and it is optional. The statistics are referred to |
| the interface defined in the current Section identified by the |
| Interface ID field. |
| |
| The format of the Interface Statistics Block is shown in Figure 8. |
| |
| |
| |
| |
| Degioanni & Risso Expires August 30, 2004 [Page 18] |
| |
| Internet-Draft PCAP New Generation Dump File Format March 2004 |
| |
| |
| 0 1 2 3 |
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | IfRecv | |
| | (high + low) | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | IfDrop | |
| | (high + low) | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | FilterAccept | |
| | (high + low) | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | OSDrop | |
| | (high + low) | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | UsrDelivered | |
| | (high + low) | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | Interface ID | Reserved | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| / / |
| / Options (variable) / |
| / / |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| |
| Figure 8: Interface Statistics Block format. |
| |
| The fields have the following meaning: |
| |
| o IfRecv: number of packets received from the interface during the |
| capture. This number is reported as a 64 bits value, in which the |
| most significat bits are located in the first four bytes of the |
| field. |
| |
| o IfDrop: number of packets dropped by the interface during the |
| capture due to lack of resources. |
| |
| o FilterAccept: number of packets accepeted by filter during current |
| capture. |
| |
| o OSDrop: number of packets dropped by the operating system during |
| the capture. |
| |
| o UsrDelivered: number of packets delivered to the user. |
| UsrDelivered can be different from the value 'FilterAccept - |
| OSDropped' because some packets could still lay in the OS buffers |
| when the capture ended. |
| |
| |
| |
| |
| Degioanni & Risso Expires August 30, 2004 [Page 19] |
| |
| Internet-Draft PCAP New Generation Dump File Format March 2004 |
| |
| |
| o Interface ID: reference to an Interface Description Block. |
| |
| o Reserved: Reserved to future use. |
| |
| o Options: optionally, a list of options (formatted according to the |
| rules defined in Section 4) can be present. |
| |
| In addiction to the options defined in Section 4, the following |
| options are valid within this block: |
| |
| +----------------+----------------+----------------+----------------+ |
| | Name | Code | Length | Description | |
| +----------------+----------------+----------------+----------------+ |
| | isb_starttime | 2 | 8 | Time in which | |
| | | | | the capture | |
| | | | | started; time | |
| | | | | will be stored | |
| | | | | in two blocks | |
| | | | | of four bytes | |
| | | | | each, | |
| | | | | containing the | |
| | | | | timestamp in | |
| | | | | seconds and | |
| | | | | nanoseconds. | |
| | | | | | |
| | isb_endtime | 3 | 8 | Time in which | |
| | | | | the capture | |
| | | | | started; time | |
| | | | | will be stored | |
| | | | | in two blocks | |
| | | | | of four bytes | |
| | | | | each, | |
| | | | | containing the | |
| | | | | timestamp in | |
| | | | | seconds and | |
| | | | | nanoseconds. | |
| +----------------+----------------+----------------+----------------+ |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| Degioanni & Risso Expires August 30, 2004 [Page 20] |
| |
| Internet-Draft PCAP New Generation Dump File Format March 2004 |
| |
| |
| 4. Options |
| |
| Almost all blocks have the possibility to embed optional fields. |
| Optional fields can be used to insert some information that may be |
| useful when reading data, but that it is not really needed for packet |
| processing. Therefore, each tool can be either read the content of |
| the optional fields (if any), or skip them at once. |
| |
| Skipping all the optional fields at once is straightforward because |
| most of the blocks have a fixed length, therefore the field Block |
| Length (present in the General Block Structure, see Section 2.1) can |
| be used to skip everything till the next block. |
| |
| Options are a list of Type - Length - Value fields, each one |
| containing a single value: |
| |
| o Option Type (2 bytes): it contains the code that specifies the |
| type of the current TLV record. Option types whose Most |
| Significant Bit is equal to one are reserved for local use; |
| therefore, there is no guarantee that the code used is unique |
| among all capture files (generated by other applications). In case |
| of vendor-specific extensions that have to be identified uniquely, |
| vendors must request an Option Code whose MSB is equal to zero. |
| |
| o Option Length (2 bytes): it contains the length of the following |
| 'Option Value' field. |
| |
| o Option Value (variable length): it contains the value of the given |
| option. The length of this field as been specified by the Option |
| Length field. |
| |
| Options may be repeated several times (e.g. an interface that has |
| several IP addresses associated to it). The option list is terminated |
| by a special code which is the 'End of Option'. |
| |
| The format of the optional fields is shown in Figure 9. |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| Degioanni & Risso Expires August 30, 2004 [Page 21] |
| |
| Internet-Draft PCAP New Generation Dump File Format March 2004 |
| |
| |
| 0 1 2 3 |
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | Option Code | Option Length | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | Option Value | |
| | /* variable length, byte-aligned */ | |
| | + + + + + + + + + + + + + + + + + + + + + + + + + |
| | / / / | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| / / |
| / . . . other options . . . / |
| / / |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | Option Code == opt_endofopt | Option Length == 0 | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| |
| Figure 9: Options format. |
| |
| The following codes can always be present in any optional field: |
| |
| +----------------+----------------+----------------+----------------+ |
| | Name | Code | Length | Description | |
| +----------------+----------------+----------------+----------------+ |
| | opt_endofopt | 0 | 0 | End of | |
| | | | | options: it is | |
| | | | | used to | |
| | | | | delimit the | |
| | | | | end of the | |
| | | | | optional | |
| | | | | fields. This | |
| | | | | block cannot | |
| | | | | be repeated | |
| | | | | within a given | |
| | | | | list of | |
| | | | | options. | |
| | | | | | |
| | opt_comment | 1 | variable | Comment: it is | |
| | | | | an ascii | |
| | | | | string | |
| | | | | containing a | |
| | | | | comment that | |
| | | | | is associated | |
| | | | | to the current | |
| | | | | block. | |
| +----------------+----------------+----------------+----------------+ |
| |
| |
| |
| |
| |
| Degioanni & Risso Expires August 30, 2004 [Page 22] |
| |
| Internet-Draft PCAP New Generation Dump File Format March 2004 |
| |
| |
| 5. Experimental Blocks (deserved to a further investigation) |
| |
| 5.1 Other Packet Blocks (experimental) |
| |
| Can some other packet blocks (besides the two described in the |
| previous paragraphs) be useful? |
| |
| 5.2 Compression Block (experimental) |
| |
| The Compression Block is optional. A file can contain an arbitrary |
| number of these blocks. A Compression Block, as the name says, is |
| used to store compressed data. Its format is shown in Figure 10. |
| |
| 0 1 2 3 |
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | Compr. Type | | |
| +-+-+-+-+-+-+-+-+ | |
| | | |
| | Compressed Data | |
| | | |
| | /* variable length, byte-aligned */ | |
| | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| |
| Figure 10: Compression Block format. |
| |
| The fields have the following meaning: |
| |
| o Compression Type: specifies the compression algorithm. Possible |
| values for this field are 0 (uncompressed), 1 (Lempel Ziv), 2 |
| (Gzip), other?? Probably some kind of dumb and fast compression |
| algorithm could be effective with some types of traffic (for |
| example web), but which? |
| |
| o Compressed Data: data of this block. Once decompressed, it is made |
| of other blocks. |
| |
| |
| 5.3 Encryption Block (experimental) |
| |
| The Encryption Block is optional. A file can contain an arbitrary |
| number of these blocks. An Encryption Block is used to sotre |
| encrypted data. Its format is shown in Figure 11. |
| |
| |
| |
| |
| |
| |
| |
| Degioanni & Risso Expires August 30, 2004 [Page 23] |
| |
| Internet-Draft PCAP New Generation Dump File Format March 2004 |
| |
| |
| 0 1 2 3 |
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | Encr. Type | | |
| +-+-+-+-+-+-+-+-+ | |
| | | |
| | Compressed Data | |
| | | |
| | /* variable length, byte-aligned */ | |
| | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| |
| Figure 11: Encryption Block format. |
| |
| The fields have the following meaning: |
| |
| o Compression Type: specifies the encryption algorithm. Possible |
| values for this field are ??? NOTE: this block should probably |
| contain other fields, depending on the encryption algorithm. To be |
| define precisely. |
| |
| o Encrypted Data: data of this block. Once decripted, it consists of |
| other blocks. |
| |
| |
| 5.4 Fixed Length Block (experimental) |
| |
| The Fixed Length Block is optional. A file can contain an arbitrary |
| number of these blocks. A Fixed Length Block can be used to optimize |
| the access to the file. Its format is shown in Figure 12. A Fixed |
| Length Block stores records with constant size. It contains a set of |
| Blocks (normally Packet Blocks or Simple Packet Blocks), of wihich it |
| specifies the size. Knowing this size a priori helps to scan the file |
| and to load some portions of it without truncating a block, and is |
| particularly useful with cell-based networks like ATM. |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| Degioanni & Risso Expires August 30, 2004 [Page 24] |
| |
| Internet-Draft PCAP New Generation Dump File Format March 2004 |
| |
| |
| 0 1 2 3 |
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | Cell Size | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |
| | | |
| | Fixed Size Data | |
| | | |
| | /* variable length, byte-aligned */ | |
| | | |
| | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| |
| Figure 12: Fixed Length Block format. |
| |
| The fields have the following meaning: |
| |
| o Cell size: the size of the blocks contained in the data field. |
| |
| o Fixed Size Data: data of this block. |
| |
| |
| 5.5 Directory Block (experimental) |
| |
| If present, this block contains the following information: |
| |
| o number of indexed packets (N) |
| |
| o table with position and length of any indexed packet (N entries) |
| |
| A directory block must be followed by at least N packets, otherwise |
| it must be considered invalid. It can be used to efficiently load |
| portions of the file to memory and to support operations on memory |
| mapped files. This block can be added by tools like network analyzers |
| as a consequence of file processing. |
| |
| 5.6 Traffic Statistics and Monitoring Blocks (experimental) |
| |
| One or more blocks could be defined to contain network statistics or |
| traffic monitoring information. They could be use to store data |
| collected from RMON or Netflow probes, or from other network |
| monitoring tools. |
| |
| 5.7 Event/Security Block (experimental) |
| |
| This block could be used to store events. Events could contain |
| generic information (for example network load over 50%, server |
| down...) or security alerts. An event could be: |
| |
| |
| |
| Degioanni & Risso Expires August 30, 2004 [Page 25] |
| |
| Internet-Draft PCAP New Generation Dump File Format March 2004 |
| |
| |
| o skipped, if the application doesn't know how to do with it |
| |
| o processed independently by the packets. In other words, the |
| applications skips the packets and processes only the alerts |
| |
| o processed in relation to packets: for example, a security tool |
| could load only the packets of the file that are near a security |
| alert; a monitorg tool could skip the packets captured while the |
| server was down. |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| Degioanni & Risso Expires August 30, 2004 [Page 26] |
| |
| Internet-Draft PCAP New Generation Dump File Format March 2004 |
| |
| |
| 6. Conclusions |
| |
| The file format proposed in this document should be very versatile |
| and satisfy a wide range of applications. In the simplest case, it |
| can contain a raw dump of the network data, made of a series of |
| Simple Packet Blocks. In the most complex case, it can be used as a |
| repository for heterogeneous information. In every case, the file |
| remains easy to parse and an application can always skip the data it |
| is not interested in; at the same time, different applications can |
| share the file, and each of them can benfit of the information |
| produced by the others. Two or more files can be concatenated |
| obtaining another valid file. |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| Degioanni & Risso Expires August 30, 2004 [Page 27] |
| |
| Internet-Draft PCAP New Generation Dump File Format March 2004 |
| |
| |
| 7. Most important open issues |
| |
| o Data, in the file, must be byte or word aligned? Currently, the |
| structure of this document is not consistent with respect to this |
| point. |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| Degioanni & Risso Expires August 30, 2004 [Page 28] |
| |
| Internet-Draft PCAP New Generation Dump File Format March 2004 |
| |
| |
| Intellectual Property Statement |
| |
| The IETF takes no position regarding the validity or scope of any |
| intellectual property or other rights that might be claimed to |
| pertain to the implementation or use of the technology described in |
| this document or the extent to which any license under such rights |
| might or might not be available; neither does it represent that it |
| has made any effort to identify any such rights. Information on the |
| IETF's procedures with respect to rights in standards-track and |
| standards-related documentation can be found in BCP-11. Copies of |
| claims of rights made available for publication and any assurances of |
| licenses to be made available, or the result of an attempt made to |
| obtain a general license or permission for the use of such |
| proprietary rights by implementors or users of this specification can |
| be obtained from the IETF Secretariat. |
| |
| The IETF invites any interested party to bring to its attention any |
| copyrights, patents or patent applications, or other proprietary |
| rights which may cover technology that may be required to practice |
| this standard. Please address the information to the IETF Executive |
| Director. |
| |
| |
| Full Copyright Statement |
| |
| Copyright (C) The Internet Society (2004). All Rights Reserved. |
| |
| This document and translations of it may be copied and furnished to |
| others, and derivative works that comment on or otherwise explain it |
| or assist in its implementation may be prepared, copied, published |
| and distributed, in whole or in part, without restriction of any |
| kind, provided that the above copyright notice and this paragraph are |
| included on all such copies and derivative works. However, this |
| document itself may not be modified in any way, such as by removing |
| the copyright notice or references to the Internet Society or other |
| Internet organizations, except as needed for the purpose of |
| developing Internet standards in which case the procedures for |
| copyrights defined in the Internet Standards process must be |
| followed, or as required to translate it into languages other than |
| English. |
| |
| The limited permissions granted above are perpetual and will not be |
| revoked by the Internet Society or its successors or assignees. |
| |
| This document and the information contained herein is provided on an |
| "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING |
| TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING |
| BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION |
| |
| |
| |
| Degioanni & Risso Expires August 30, 2004 [Page 29] |
| |
| Internet-Draft PCAP New Generation Dump File Format March 2004 |
| |
| |
| HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF |
| MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. |
| |
| |
| Acknowledgment |
| |
| Funding for the RFC Editor function is currently provided by the |
| Internet Society. |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| Degioanni & Risso Expires August 30, 2004 [Page 30] |
| |