<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.3.8) -->
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc inline="yes"?>
<?rfc strict="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-opsawg-pcap-09" category="historic" tocInclude="true" sortRefs="false" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.32.0 -->
  <front>
    <title abbrev="pcap">PCAP Capture File Format</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-opsawg-pcap-09"/>
    <author initials="G." surname="Harris" fullname="Guy Harris" role="editor">
      <organization/>
      <address>
        <email>gharris@sonic.net</email>
      </address>
    </author>
    <author initials="M." surname="Richardson" fullname="Michael C. Richardson">
      <organization abbrev="Sandelman">Sandelman Software Works Inc</organization>
      <address>
        <email>mcr+ietf@sandelman.ca</email>
        <uri>http://www.sandelman.ca/</uri>
      </address>
    </author>
    <date year="2026" month="September" day="19"/>
    <abstract>
      <?line 40?>

<t>This document describes the format used by the libpcap library to
record captured packets to a file.  Programs using the libpcap
library to read and write those files, and thus reading and writing
files in that format, include tcpdump.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-opsawg-pcap/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        opsawg Working Group mailing list (<eref target="mailto:opsawg@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/opsawg/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/opsawg/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/IETF-OPSAWG-WG/pcapng"/>.</t>
    </note>
  </front>
  <middle>
    <?line 47?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>In the late 1980's, Van Jacobson, Steve McCanne, and others at the
Network Research Group at Lawrence Berkeley National Laboratory
developed the tcpdump program to capture and dissect network traces.
The code to capture traffic, using low-level mechanisms in various
operating systems, and to read and write network traces to a file was
later put into a library named libpcap.</t>
      <t>This document describes the historical format used by tcpdump, and other
programs using libpcap, to read and write network traces.
This document describes version 2 of the pcap format.</t>
      <t>This document is published as historical, as there has existed for some time, an updated format called "pcapng", that replaces this file format.  See <xref target="I-D.ietf-opsawg-pcapng"/>.
No new extensions for this format are expected, although new LINKLAYER types that are registered using <xref target="I-D.ietf-opsawg-pcaplinktype"/> can be included in pcap files.</t>
      <t>A major limitation of the pcap v2 format described here is that files consist of a header which is different than the other blocks in the file.
This prevents pcap v2 files from being simply concatenated for processing.
It is also difficult to break pcap v2 files apart, as a new header always needs to be placed at the beginning of any new file.  The pcapng format does not suffer from these problems.</t>
      <t>More significantly, pcap v2 files can only contain packets in a single LINKTYPE format, and this often means that packets are often from a single network interface as not all LINKTYPEs include a way to indicate which interface a packet is from.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.
<?line -6?>
      </t>
      <t>This document uses the term octet in a way consistent with the word "byte".</t>
    </section>
    <section anchor="general-file-structure">
      <name>General File Structure</name>
      <t>A capture file begins with a File Header, followed by zero or more
Packet Records, one per packet.</t>
      <t>All fields in the File Header and in the headers of Packet Records will
always be written according to the characteristics (little-endian / big-
endian) of the machine that is writing the file.  This refers to all the
fields that are written as numbers and that span over two or more
octets.</t>
      <t>The approach of having the file written in the native format of the host
writing the file is more efficient because it avoids translation of data
when writing the file or reading the file on the host that wrote the
file, which is the most common case when generating or processing
packet captures.</t>
      <t>When hosts with a different native endian format read a file, they must swap octets as appropriate.
This is less efficient, but less common, and if repeated access to the files are important, then files can be translated and saved.</t>
    </section>
    <section anchor="file-header">
      <name>File Header</name>
      <t>The File Header has the following format, with the octet offset of
fields shown to the left of the field:</t>
      <figure anchor="fig-header">
        <name>File Header</name>
        <artwork align="left"><![CDATA[
                           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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    0 |                          Magic Number                         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    4 |         Major Version         |         Minor Version         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    8 |                           Reserved1                           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   12 |                           Reserved2                           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   16 |                            SnapLen                            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   20 |               LinkType and additional information             |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      </figure>
      <t>The File Header length is 24 octets.</t>
      <t>The meaning of the fields in the File Header is:</t>
      <dl>
        <dt>Magic Number (32 bits):</dt>
        <dd>
          <t>an unsigned magic number, whose value is either the hexadecimal number
0xA1B2C3D4 or the hexadecimal number 0xA1B23C4D.</t>
        </dd>
        <dt/>
        <dd>
          <t>If the value is 0xA1B2C3D4, timestamps in Packet Records (see Figure
3) are in seconds and microseconds; if it is 0xA1B23C4D, timestamps in
Packet Records are in seconds and nanoseconds.</t>
        </dd>
        <dt/>
        <dd>
          <t>These numbers can be used to distinguish sessions that have been
written on little-endian machines from the ones written on big-endian
machines, and to heuristically identify pcap files.</t>
        </dd>
        <dt>Major Version (16 bits):</dt>
        <dd>
          <t>an unsigned integer, giving the number of the current major version of
the format.  The value for the current version of the format is 2
(big-endian 0x00 0x02 or little-endian 0x02 0x00).  This
value should change if the format changes in such a way that code that
reads the new format could not read the old format (i.e., code to read
both formats would have to check the version number and use different
code paths for the two formats) and code that reads the old format could
not read the new format.  As this document is historical, and no newer formats were publicly released,
this value will not change again.</t>
        </dd>
        <dt>Minor Version (16 bits):</dt>
        <dd>
          <t>an unsigned integer, giving the number of the current minor version of
the format.  The value for the current version of the format is 4
(big-endian 0x00 0x04 or little-endian 0x04 0x00).
This value should change if the format changes in such a way that code
that reads the new format could read the old format without checking the
version number but code that reads the old format could not read all
files in the new format. As this document is historical, and no newer formats exist,
this value will not change again.</t>
        </dd>
        <dt>Reserved1 (32 bits):</dt>
        <dd>
          <t>not used - SHOULD be filled with 0 by pcap file writers, and MUST be
ignored by pcap file readers.  This value was documented by some older
implementations as "gmt to local correction" or "time zone offset".
Some older pcap file writers stored non-zero values in this field.</t>
        </dd>
        <dt>Reserved2 (32 bits):</dt>
        <dd>
          <t>not used - SHOULD be filled with 0 by pcap file writers, and MUST be
ignored by pcap file readers.  This value was documented by some older
implementations as "accuracy of timestamps".  Some older pcap file
writers stored non-zero values in this field.</t>
        </dd>
        <dt>SnapLen (32 bits):</dt>
        <dd>
          <t>an unsigned integer that indicates the maximum number of octets captured
from each packet.  The portion of each packet that exceeds this value
will not be stored in the file.  This value MUST NOT be zero; if no
limit was specified, the value SHOULD be a number greater than or equal
to the largest packet length in the file.</t>
        </dd>
        <dt>LinkType and additional information (32 bits):</dt>
        <dd>
          <t>an unsigned integer that contains the link-layer type of packets
in the file and may contain additional information.</t>
        </dd>
      </dl>
      <t>The LinkType and additional information field is in the form</t>
      <figure anchor="fig-linktype">
        <name>LinkType and additional information</name>
        <artwork align="left"><![CDATA[
                           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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |FCS len|R|P|     Reserved3     |            LinkType           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      </figure>
      <t>The field is shown as if it were in the octet order of the host reading
or writing the file, with bit 0 being the most-significant bit of the
field and bit 31 being the least-significant bit of the field.</t>
      <dl>
        <dt>FCS len (4 bits):</dt>
        <dd>
          <t>an unsigned integer that indicates the number of 16-bit (2-octet) words
of FCS that are appended to each packet, if the P bit is set; if the P
bit is not set, and the FCS length is not indicated by the link-layer
type value, the FCS length is unknown.  The valid values of the FCS len
field are between 0 and 15; Ethernet, for example, would have an FCS
length value of 2, corresponding to a 4-octet FCS.</t>
        </dd>
        <dt>R (1 bit):</dt>
        <dd>
          <t>not used - MUST be set to zero by pcap writers, and MUST NOT be
interpreted by pcap readers; a reader SHOULD treat a non-zero value as
an error.</t>
        </dd>
        <dt>P (1 bit):</dt>
        <dd>
          <t>a bit that, if set, indicates that the Frame Check Sequence (FCS)
length value is present and, if not set, indicates that the FCS value is
not present.</t>
        </dd>
        <dt>Reserved3 (10 bits):</dt>
        <dd>
          <t>not used - MUST be set to zero by pcap writers, and MUST NOT be
interpreted by pcap readers; a reader SHOULD treat a non-zero value as
an error.</t>
        </dd>
        <dt>LinkType (16 bits):</dt>
        <dd>
          <t>an unsigned integer that indicates the link layer type for packets in the file;
it is a value as defined in the PCAP-related LinkType List registry, as defined in <xref target="I-D.ietf-opsawg-pcaplinktype"/>.</t>
        </dd>
      </dl>
      <section anchor="file-endianness-information">
        <name>File Endianness Information</name>
        <t>The magic number is stored in native endian format. The list below shows
the octet sequences that correspond to the magic number values for
big-endian and little-endian files with different time stamp
resolutions.</t>
        <ul spacing="normal">
          <li>
            <t>0xA1,0xB2,0xC3,0xD4: big-endian file, with timestamps in seconds/microseconds.</t>
          </li>
          <li>
            <t>0xA1,0xB2,0x3C,0x4D: big-endian file, with timestamps in seconds/nanoseconds.</t>
          </li>
          <li>
            <t>0xD4,0xC3,0xB2,0xA1: little-endian file, with timestamps in seconds/microseconds.</t>
          </li>
          <li>
            <t>0x4D,0x3C,0xB2,0xA1: little-endian file, with timestamps in seconds/nanoseconds.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="packet-record">
      <name>Packet Record</name>
      <t>A Packet Record is the standard container for storing the packets
coming from the network.</t>
      <figure anchor="fig-record">
        <name>Packet Record</name>
        <artwork align="left"><![CDATA[
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    0 |                      Timestamp (Seconds)                      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    4 |            Timestamp (Microseconds or nanoseconds)            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    8 |                    Captured Packet Length                     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   12 |                    Original Packet Length                     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   16 /                                                               /
      /                          Packet Data                          /
      /                  variable length, not padded                  /
      /                                                               /
]]></artwork>
      </figure>
      <t>The Packet Record begins with a 16-octet header, followed by data from
the packet.</t>
      <t>The meaning of the fields in the Packet Record is:</t>
      <dl>
        <dt>Timestamp (Seconds) and Timestamp (Microseconds or nanoseconds):</dt>
        <dd>
          <t>seconds and fraction of a seconds values of a timestamp.</t>
        </dd>
        <dt/>
        <dd>
          <t>The seconds value is a 32-bit unsigned integer that represents the
number of seconds that have elapsed since 1970-01-01 00:00:00 UTC, and
the microseconds or nanoseconds value is a 32-bit unsigned integer that
represents the number of microseconds or nanoseconds that have elapsed
since that seconds.</t>
        </dd>
        <dt/>
        <dd>
          <t>The Magic Number field in the File Header of a file indicates
whether the values of the Timestamp (Microseconds or nanoseconds) fields
of packets in that file are in units of microseconds or nanoseconds.</t>
        </dd>
        <dt>Captured Packet Length (32 bits):</dt>
        <dd>
          <t>an unsigned integer that indicates the number of octets captured from
the packet (i.e., the length of the Packet Data field).  It will be the
minimum value among the Original Packet Length and the snapshot length
for the interface (SnapLen, defined in Figure 1).</t>
        </dd>
        <dt>Original Packet Length (32 bits):</dt>
        <dd>
          <t>an unsigned integer that indicates the number of octets of packet data
that would have been provided had the packet not been truncated to the
snapshot length for the interface or to a length limit imposed by the
capture mechanism. If no truncation was done, it will be the same as
the Captured Packet Length, but it will be different from the Captured
Packet Length if the packet has been truncated by the capture process.
It SHOULD NOT be less than the Captured Packet Length.</t>
        </dd>
        <dt/>
        <dd>
          <t>A pcap file writer MAY write an Original Packet Length that is less
than the Captured Packet Length if both the Captured Packet Length and
the Original Packet length came from a file in which a packet had an
Original Packet Length less than the Captured Packet Length; otherwise,
it MUST write an Original Packet Length that is greater than or equal to
the Captured Packet Length.</t>
        </dd>
        <dt/>
        <dd>
          <t>A pcap file reader MAY convert an Original Packet Length that is less
than the Captured Packet Length to a value that is greater than or equal
to the Captured Packet Length.</t>
        </dd>
        <dt>Packet Data:</dt>
        <dd>
          <t>the data coming from the network, including link-layer headers. The
actual length of this field is the Captured Packet Length. The format
of the link-layer headers depends on the LinkType field specified in the
file header (see Figure 1) and it is specified in
<xref target="I-D.ietf-opsawg-pcaplinktype"/>.</t>
        </dd>
      </dl>
      <t>Packet Records are not padded to a 4-octet boundary; if the number of
octets of packet data is not a multiple of 4, there are no padding
octets following it, so Packet Records are not guaranteed to begin on a
4-octet boundary within a file.</t>
    </section>
    <section anchor="recommended-file-name-extension-pcap">
      <name>Recommended File Name Extension: .pcap</name>
      <t>The recommended file name extension for the "PCAP Capture File Format"
specified in this document is ".pcap".</t>
      <t>On Windows and macOS, files are distinguished by an extension to their
filename. Such an extension is technically not actually required, as
applications should be able to automatically detect the pcap file format
through the Magic Number field in the File Header, as some desktop
environments other than those of Windows and macOS do. However, using
name extensions makes it easier to work with files (e.g. visually
distinguish file formats) so it is recommended - though not required -
to use .pcap as the name extension for files following this
specification.</t>
      <t>Please note: To avoid confusion (such as the current usage of .cap for a
plethora of different capture file formats) file name extensions other
than <tt>.pcap</tt> should be avoided.</t>
      <t>There is new work to create the PCAP Now Generic capture File Format
(see <xref target="I-D.ietf-opsawg-pcapng"/>).  The new file format is not
compatible with this specification, but many programs read both
transparently.  Files of that type will start with a Section
Header Block, the first four octets of which are 0x0A 0x0D 0x0D 0x0A,
which does not match any of the Magic Number values in a pcap File
Header, allowing code that reads both file formats to determine the
format of a file.</t>
    </section>
    <section anchor="security_considerations">
      <name>Security Considerations</name>
      <t>A pcap file reader MUST validate the File Header and Packet Record headers.
If it analyzes the Packet Data according to the LINKTYPE for the packets, it must also validate all of that data.
A reader can receive as input not only valid headers or packets, but any arbitrary
random sequence of octets:
Headers or packets may be intentionally malformed by a sender, and capture files from outside sources may contain intentionally malformed contents, for malicious reasons.</t>
      <t>See also:
https://www.iana.org/assignments/media-types/application/vnd.tcpdump.pcap</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document requires one IANA action:</t>
      <section anchor="media-type-registry">
        <name>Media-Type Registry</name>
        <t>This section registers the 'application/pcap' in the "Media Types"
registry.  These media types are used to indicate that the content is
packet capture as described in this document.</t>
        <section anchor="applicationpcap">
          <name>application/pcap</name>
          <dl spacing="compact">
            <dt>Type name:</dt>
            <dd>
              <t>application</t>
            </dd>
            <dt>Subtype name:</dt>
            <dd>
              <t>pcap</t>
            </dd>
            <dt>Required parameters:</dt>
            <dd>
              <t>none</t>
            </dd>
            <dt>Optional parameters:</dt>
            <dd>
              <t>none</t>
            </dd>
            <dt>Encoding considerations:</dt>
            <dd>
              <t>binary</t>
            </dd>
            <dt>Security considerations:</dt>
            <dd>
              <t>See <xref target="security_considerations" format="counter"/> of THIS RFC.</t>
            </dd>
            <dt>Interoperability considerations:</dt>
            <dd>
              <t>The format is designed to be broadly interoperable.</t>
            </dd>
            <dt>Published specification:</dt>
            <dd>
              <t>THIS RFC</t>
            </dd>
            <dt>Applications that use this media type:</dt>
            <dd>
              <t>tcpdump, wireshark, others</t>
            </dd>
            <dt>Additional information:</dt>
            <dd>
              <t><br/>
              </t>
              <dl spacing="compact">
                <dt>Magic number(s):</dt>
                <dd>
                  <t>0xA1B2C3D4 and 0xA1B23C4D, in both big-endian and little-endian orders</t>
                </dd>
                <dt>File extension(s):</dt>
                <dd>
                  <t>.pcap</t>
                </dd>
                <dt>Macintosh file type code(s):</dt>
                <dd>
                  <t>none</t>
                </dd>
                <dt>Person &amp; email address to contact for further information:</dt>
                <dd>
                  <t>The Tcpdump Group, www.tcpdump.org</t>
                </dd>
                <dt>Intended usage:</dt>
                <dd>
                  <t>LIMITED</t>
                </dd>
                <dt>Restrictions on usage:</dt>
                <dd>
                  <t>NONE</t>
                </dd>
                <dt>Author:</dt>
                <dd>
                  <t>Guy Harris and Michael Richardson</t>
                </dd>
                <dt>Change controller:</dt>
                <dd>
                  <t>The Tcpdump Group</t>
                </dd>
                <dt>Provisional registration? (standards tree only):</dt>
                <dd>
                  <t>NO</t>
                </dd>
              </dl>
            </dd>
          </dl>
        </section>
      </section>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors wish to thank Michael Tuexen for document shepherding as well as being the original impetus for starting this work.</t>
      <t>Carsten Bormann, Joe Clarke, Mohamed Boucadair, John Thacker, and Paul Aitken  provided review comments and suggested text and diagrams.</t>
      <t>The TCPDUMP Group team, led by Denis Ovsienko, and Francois-Xavier Le Bail contributed to this document and helped motivate its forward progress.</t>
      <!--
COMMENTS.
1) if editing with emacs, please use markdown-mode
2) with gin (auto-wrap) *TURNED OFF*,
3) and visual-line-mode *ON*
4) start each sentence on a new line, and mostly keep it on one line.

INSERT GVIM settings.
-->

</section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="I-D.ietf-opsawg-pcaplinktype">
          <front>
            <title>Link-Layer Types for PCAP-related Capture File Formats</title>
            <author fullname="Guy Harris" initials="G." surname="Harris">
         </author>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works Inc</organization>
            </author>
            <date day="6" month="April" year="2026"/>
            <abstract>
              <t>   This document describes a set of Packet CAPture (PCAP)-related
   LinkType values and creates an IANA registry for those values.  These
   values are used by the PCAP and PCAP-Now-Generic specifications.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-opsawg-pcaplinktype-18"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.ietf-opsawg-pcapng">
          <front>
            <title>PCAP Now Generic (pcapng) Capture File Format</title>
            <author fullname="Michael Tüxen" initials="M." surname="Tüxen">
              <organization>Muenster University of Applied Sciences</organization>
            </author>
            <author fullname="Fulvio Risso" initials="F." surname="Risso">
              <organization>Politecnico di Torino</organization>
            </author>
            <author fullname="Guy Harris" initials="G." surname="Harris">
         </author>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <date day="19" month="September" year="2026"/>
            <abstract>
              <t>   This document describes a format to record captured packets to a
   file.  This format is extensible; Wireshark can currently read and
   write it, and libpcap can currently read some pcapng files.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-opsawg-pcapng-06"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
