<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="info" consensus="true" docName="draft-ietf-ntp-packet-timestamps-09" indexInclude="true" ipr="trust200902" number="8877" prepTime="2020-09-23T11:07:59" scripts="Common,Latin" sortRefs="true" submissionType="IETF" symRefs="true" tocDepth="4" tocInclude="true" xml:lang="en">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-ntp-packet-timestamps-09" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc8877" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="Packet Timestamps">Guidelines for Defining Packet Timestamps</title>
    <seriesInfo name="RFC" value="8877" stream="IETF"/>
    <author fullname="Tal Mizrahi" initials="T." surname="Mizrahi">
      <organization abbrev="" showOnFrontPage="true">Huawei</organization>
      <address>
        <postal>
          <street>8-2 Matam</street>
          <city>Haifa</city>
          <code>3190501</code>
          <country>Israel</country>
        </postal>
        <email>tal.mizrahi.phd@gmail.com</email>
      </address>
    </author>
    <author fullname="Joachim Fabini" initials="J." surname="Fabini">
      <organization showOnFrontPage="true">TU Wien</organization>
      <address>
        <postal>
          <street>Gusshausstrasse 25/E389</street>
          <city>Vienna</city>
          <code>1040</code>
          <country>Austria</country>
        </postal>
        <phone>+43 1 58801 38813</phone>
        <email>Joachim.Fabini@tuwien.ac.at</email>
        <uri>http://www.tc.tuwien.ac.at/about-us/staff/joachim-fabini/</uri>
      </address>
    </author>
    <author fullname="Al Morton" initials="A." surname="Morton">
      <organization showOnFrontPage="true">AT&amp;T Labs</organization>
      <address>
        <postal>
          <street>200 Laurel Avenue South</street>
          <city>Middletown</city>
          <region>NJ</region>
          <code>07748</code>
          <country>United States of America</country>
        </postal>
        <phone>+1 732 420 1571</phone>
        <email>acmorton@att.com</email>
      </address>
    </author>
    <date month="09" year="2020"/>
    <area>General</area>
    <workgroup>NTP Working Group</workgroup>
    <keyword>Timestamps</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">Various network protocols make use of binary-encoded timestamps that
      are incorporated in the protocol packet format, referred to as "packet
      timestamps" for short. This document specifies guidelines for defining
      packet timestamp formats in networking protocols at various layers. It
      also presents three recommended timestamp formats. The target audience
      of this document includes network protocol designers. It is expected
      that a new network protocol that requires a packet timestamp will, in
      most cases, use one of the recommended timestamp formats. If none of the
      recommended formats fits the protocol requirements, the new protocol
      specification should specify the format of the packet timestamp
      according to the guidelines in this document.</t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t indent="0" pn="section-boilerplate.1-1">
            This document is not an Internet Standards Track specification; it is
            published for informational purposes.  
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            This document is a product of the Internet Engineering Task Force
            (IETF).  It represents the consensus of the IETF community.  It has
            received public review and has been approved for publication by the
            Internet Engineering Steering Group (IESG).  Not all documents
            approved by the IESG are candidates for any level of Internet
            Standard; see Section 2 of RFC 7841. 
        </t>
        <t indent="0" pn="section-boilerplate.1-3">
            Information about the current status of this document, any
            errata, and how to provide feedback on it may be obtained at
            <eref target="https://www.rfc-editor.org/info/rfc8877" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2020 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) in effect on the date of
            publication of this document. Please review these documents
            carefully, as they describe your rights and restrictions with
            respect to this document. Code Components extracted from this
            document must include Simplified BSD License text as described in
            Section 4.e of the Trust Legal Provisions and are provided without
            warranty as described in the Simplified BSD License.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.1.2">
              <li pn="section-toc.1-1.1.2.1">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.1.1"><xref derivedContent="1.1" format="counter" sectionFormat="of" target="section-1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-background">Background</xref></t>
              </li>
              <li pn="section-toc.1-1.1.2.2">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.2.1"><xref derivedContent="1.2" format="counter" sectionFormat="of" target="section-1.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-scope-of-this-document">Scope of this Document</xref></t>
              </li>
              <li pn="section-toc.1-1.1.2.3">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.3.1"><xref derivedContent="1.3" format="counter" sectionFormat="of" target="section-1.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-how-to-use-this-document">How to Use This Document</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-terminology">Terminology</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.2.2">
              <li pn="section-toc.1-1.2.2.1">
                <t indent="0" pn="section-toc.1-1.2.2.1.1"><xref derivedContent="2.1" format="counter" sectionFormat="of" target="section-2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-requirements-language">Requirements Language</xref></t>
              </li>
              <li pn="section-toc.1-1.2.2.2">
                <t indent="0" pn="section-toc.1-1.2.2.2.1"><xref derivedContent="2.2" format="counter" sectionFormat="of" target="section-2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-abbreviations">Abbreviations</xref></t>
              </li>
              <li pn="section-toc.1-1.2.2.3">
                <t indent="0" pn="section-toc.1-1.2.2.3.1"><xref derivedContent="2.3" format="counter" sectionFormat="of" target="section-2.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-terms-used-in-this-document">Terms Used in This Document</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-packet-timestamp-specificat">Packet Timestamp Specification Template</xref></t>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-recommended-timestamp-forma">Recommended Timestamp Formats</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2">
              <li pn="section-toc.1-1.4.2.1">
                <t indent="0" pn="section-toc.1-1.4.2.1.1"><xref derivedContent="4.1" format="counter" sectionFormat="of" target="section-4.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-using-a-recommended-timesta">Using a Recommended Timestamp Format</xref></t>
              </li>
              <li pn="section-toc.1-1.4.2.2">
                <t indent="0" pn="section-toc.1-1.4.2.2.1"><xref derivedContent="4.2" format="counter" sectionFormat="of" target="section-4.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ntp-timestamp-formats">NTP Timestamp Formats</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2.2.2">
                  <li pn="section-toc.1-1.4.2.2.2.1">
                    <t indent="0" pn="section-toc.1-1.4.2.2.2.1.1"><xref derivedContent="4.2.1" format="counter" sectionFormat="of" target="section-4.2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ntp-64-bit-timestamp-format">NTP 64-Bit Timestamp Format</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.2.2.2">
                    <t indent="0" pn="section-toc.1-1.4.2.2.2.2.1"><xref derivedContent="4.2.2" format="counter" sectionFormat="of" target="section-4.2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ntp-32-bit-timestamp-format">NTP 32-Bit Timestamp Format</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.4.2.3">
                <t indent="0" pn="section-toc.1-1.4.2.3.1"><xref derivedContent="4.3" format="counter" sectionFormat="of" target="section-4.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-the-ptp-truncated-timestamp">The PTP Truncated Timestamp Format</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-synchronization-aspects">Synchronization Aspects</xref></t>
          </li>
          <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-timestamp-use-cases">Timestamp Use Cases</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.6.2">
              <li pn="section-toc.1-1.6.2.1">
                <t indent="0" pn="section-toc.1-1.6.2.1.1"><xref derivedContent="6.1" format="counter" sectionFormat="of" target="section-6.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-example-1">Example 1</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.2">
                <t indent="0" pn="section-toc.1-1.6.2.2.1"><xref derivedContent="6.2" format="counter" sectionFormat="of" target="section-6.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-example-2">Example 2</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-packet-timestamp-control-fi">Packet Timestamp Control Field</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.7.2">
              <li pn="section-toc.1-1.7.2.1">
                <t indent="0" pn="section-toc.1-1.7.2.1.1"><xref derivedContent="7.1" format="counter" sectionFormat="of" target="section-7.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-high-level-control-field-re">High-Level Control Field Requirements</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="9" format="counter" sectionFormat="of" target="section-9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.10">
            <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="10" format="counter" sectionFormat="of" target="section-10"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.10.2">
              <li pn="section-toc.1-1.10.2.1">
                <t indent="0" pn="section-toc.1-1.10.2.1.1"><xref derivedContent="10.1" format="counter" sectionFormat="of" target="section-10.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.10.2.2">
                <t indent="0" pn="section-toc.1-1.10.2.2.1"><xref derivedContent="10.2" format="counter" sectionFormat="of" target="section-10.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.11">
            <t indent="0" pn="section-toc.1-1.11.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgments">Acknowledgments</xref></t>
          </li>
          <li pn="section-toc.1-1.12">
            <t indent="0" pn="section-toc.1-1.12.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-1.1">
        <name slugifiedName="name-background">Background</name>
        <t indent="0" pn="section-1.1-1">Timestamps are widely used in network protocols for various
        purposes: for logging or reporting the time of an
        event, for messages in delay measurement and clock synchronization
	protocols, and as part of a value that is unlikely to repeat (nonce)
	in security protocols.</t>
        <t indent="0" pn="section-1.1-2">Timestamps are represented in the RFC series in one of two forms:
        text-based timestamps and packet timestamps. Text-based timestamps
        <xref target="RFC3339" format="default" sectionFormat="of" derivedContent="RFC3339"/> are represented as user-friendly strings and
        are widely used in the RFC series -- for example, in information objects
        and data models, e.g., <xref target="RFC5646" format="default" sectionFormat="of" derivedContent="RFC5646"/>, <xref target="RFC6991" format="default" sectionFormat="of" derivedContent="RFC6991"/>, and <xref target="RFC7493" format="default" sectionFormat="of" derivedContent="RFC7493"/>. Packet timestamps,
        on the other hand, are represented by a compact binary field that has
        a fixed size and are not intended to have a human-friendly format.
        Packet timestamps are also very common in the RFC series and are used,
        for example, for measuring delay and for synchronizing clocks, e.g.,
        <xref target="RFC5905" format="default" sectionFormat="of" derivedContent="RFC5905"/>, <xref target="RFC4656" format="default" sectionFormat="of" derivedContent="RFC4656"/>, and <xref target="RFC7323" format="default" sectionFormat="of" derivedContent="RFC7323"/>.</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-1.2">
        <name slugifiedName="name-scope-of-this-document">Scope of this Document</name>
        <t indent="0" pn="section-1.2-1">This document presents guidelines for defining a packet timestamp
        format in network protocols. Three recommended timestamp formats are
        presented. It is expected that a new network protocol that requires a
        packet timestamp will, in most cases, use one of these recommended
        timestamp formats. In some cases, a network protocol may use more than
        one of the recommended timestamp formats. However, if none of the
        recommended formats fits the protocol requirements, the new protocol
        specification should specify the format of the packet timestamp
        according to the guidelines in this document.</t>
        <t indent="0" pn="section-1.2-2">The rationale behind defining a relatively small set of recommended
        formats is that it enables significant reuse; network protocols can
        typically reuse the timestamp format of the Network Time Protocol
        (NTP) <xref target="RFC5905" format="default" sectionFormat="of" derivedContent="RFC5905"/> or the Precision Time Protocol (PTP)
	<xref target="IEEE1588" format="default" sectionFormat="of" derivedContent="IEEE1588"/>, allowing a straightforward
        integration with an NTP- or PTP-based timer. Moreover, since accurate
        timestamping mechanisms are often implemented in hardware, a new
        network protocol that reuses an existing timestamp format can be
        quickly deployed using existing hardware timestamping
        capabilities.</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-1.3">
        <name slugifiedName="name-how-to-use-this-document">How to Use This Document</name>
        <t indent="0" pn="section-1.3-1">This document is intended as a reference for network protocol
        designers. When defining a network protocol that uses a packet
        timestamp, the recommended timestamp formats should be considered
        first (<xref target="Recommended" format="default" sectionFormat="of" derivedContent="Section 4"/>). If one of these formats is used,
        it should be referenced along the lines of the examples in Sections <xref target="Ex1Sec" format="counter" sectionFormat="of" derivedContent="6.1"/> and <xref target="Ex2Sec" format="counter" sectionFormat="of" derivedContent="6.2"/>. If none of the
        recommended formats fits the required functionality, then a new
        timestamp format should be defined using the template in <xref target="format" format="default" sectionFormat="of" derivedContent="Section 3"/>.</t>
      </section>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-2">
      <name slugifiedName="name-terminology">Terminology</name>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-2.1">
        <name slugifiedName="name-requirements-language">Requirements Language</name>
        <t indent="0" pn="section-2.1-1">
    The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>",
    "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>",
    "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
    "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are
    to be interpreted as described in BCP 14 <xref target="RFC2119" format="default" sectionFormat="of" derivedContent="RFC2119"/>
          <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> when, and only when, they appear in all capitals,
    as shown here.
        </t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-2.2">
        <name slugifiedName="name-abbreviations">Abbreviations</name>
        <dl newline="false" spacing="normal" indent="8" pn="section-2.2-1">
          <dt pn="section-2.2-1.1">NTP</dt>
          <dd pn="section-2.2-1.2">Network Time Protocol <xref target="RFC5905" format="default" sectionFormat="of" derivedContent="RFC5905"/></dd>
          <dt pn="section-2.2-1.3">PTP</dt>
          <dd pn="section-2.2-1.4">Precision Time Protocol <xref target="IEEE1588" format="default" sectionFormat="of" derivedContent="IEEE1588"/></dd>
          <dt pn="section-2.2-1.5">TAI</dt>
          <dd pn="section-2.2-1.6">International Atomic Time</dd>
          <dt pn="section-2.2-1.7">UTC</dt>
          <dd pn="section-2.2-1.8">Coordinated Universal Time</dd>
        </dl>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-2.3">
        <name slugifiedName="name-terms-used-in-this-document">Terms Used in This Document</name>
        <dl newline="false" spacing="normal" indent="23" pn="section-2.3-1">
          <dt pn="section-2.3-1.1">Timestamp:</dt>
          <dd pn="section-2.3-1.2">A value that represents a point in time,
            corresponding to an event that occurred or is scheduled to
            occur.</dd>
          <dt pn="section-2.3-1.3">Timestamp error:</dt>
          <dd pn="section-2.3-1.4">The difference between the
            timestamp value and the value of a reference clock at the time of
            the event that the timestamp was intended to indicate.</dd>
          <dt pn="section-2.3-1.5">Timestamp format:</dt>
          <dd pn="section-2.3-1.6">The specification of a timestamp,
            which is represented by a set of attributes that unambiguously
            defines the syntax and semantics of a timestamp.</dd>
          <dt pn="section-2.3-1.7">Timestamp accuracy:</dt>
          <dd pn="section-2.3-1.8">The mean over an ensemble of
            measurements of the timestamp error.</dd>
          <dt pn="section-2.3-1.9">Timestamp precision:</dt>
          <dd pn="section-2.3-1.10">The variation over an ensemble
            of measurements of the timestamp error.</dd>
          <dt pn="section-2.3-1.11">Timestamp resolution:</dt>
          <dd pn="section-2.3-1.12">The minimal time unit used for
            representing the timestamp.</dd>
        </dl>
      </section>
    </section>
    <section anchor="format" numbered="true" toc="include" removeInRFC="false" pn="section-3">
      <name slugifiedName="name-packet-timestamp-specificat">Packet Timestamp Specification Template</name>
      <t indent="0" pn="section-3-1">This document recommends using the timestamp formats defined in
      <xref target="Recommended" format="default" sectionFormat="of" derivedContent="Section 4"/>. In cases where these timestamp formats do
      not satisfy the protocol requirements, the timestamp specification
      should clearly state the reasons for defining a new format. Moreover, it
      is recommended to derive the new timestamp format from an existing
      timestamp format, either a timestamp format from this document or any
      other previously defined timestamp format.</t>
      <t indent="0" pn="section-3-2">The timestamp specification must unambiguously define the syntax and
      semantics of the timestamp. The current section defines the minimum
      set of attributes, but it should be noted that in some cases, additional
      attributes or aspects will need to be defined in the timestamp
      specification.</t>
      <t indent="0" pn="section-3-3">This section defines a template for specifying packet timestamps. A
      timestamp format specification <bcp14>MUST</bcp14> include at least the following
      aspects:</t>
      <dl newline="true" spacing="normal" indent="3" pn="section-3-4">
        <dt pn="section-3-4.1">Timestamp syntax:</dt>
        <dd pn="section-3-4.2">
          <dl newline="false" spacing="normal" indent="3" pn="section-3-4.2.1">
            <dt pn="section-3-4.2.1.1">Size:</dt>
            <dd pn="section-3-4.2.1.2">
              <t indent="0" pn="section-3-4.2.1.2.1"> The number of bits (or octets) used to represent
	the packet timestamp field. If the timestamp is comprised of more than
          one field, the size of each field is specified. Network order (big
          endian) is assumed by default; if this is not the case, then this
          section explicitly specifies the endianity.</t>
            </dd>
          </dl>
        </dd>
      </dl>
      <dl newline="true" spacing="normal" indent="3" pn="section-3-5">
        <dt pn="section-3-5.1">Timestamp semantics:</dt>
        <dd pn="section-3-5.2">
          <dl newline="false" spacing="normal" indent="3" pn="section-3-5.2.1">
            <dt pn="section-3-5.2.1.1">Units:</dt>
            <dd pn="section-3-5.2.1.2">
              <t indent="0" pn="section-3-5.2.1.2.1">The units used to represent the timestamp. If the
          timestamp is comprised of more than one field, the units of each
          field are specified. If a field is limited to a specific range of
          values, this section specifies the permitted range of values.</t>
            </dd>
            <dt pn="section-3-5.2.1.3">Resolution:</dt>
            <dd pn="section-3-5.2.1.4">
              <t indent="0" pn="section-3-5.2.1.4.1">The timestamp resolution; the resolution is equal
          to the timestamp field unit. If the timestamp consists of two or
          more fields using different time units, then the resolution is the
          smallest time unit.</t>
            </dd>
            <dt pn="section-3-5.2.1.5">Wraparound:</dt>
            <dd pn="section-3-5.2.1.6">
              <t indent="0" pn="section-3-5.2.1.6.1">The wraparound period of the timestamp; any further
          wraparound-related considerations should be described here.</t>
            </dd>
            <dt pn="section-3-5.2.1.7">Epoch:</dt>
            <dd pn="section-3-5.2.1.8">
              <t indent="0" pn="section-3-5.2.1.8.1">The origin of the timescale used for the timestamp; the
          moment in time used as a reference for the timestamp value. For
          example, the epoch may be based on a standard time scale, such as
          UTC. Another example is a relative timestamp, in which the epoch
          could be the time at which the device using the timestamp was
          powered up and is not affected by leap seconds (see the next
          attribute).</t>
            </dd>
            <dt pn="section-3-5.2.1.9">Leap seconds:</dt>
            <dd pn="section-3-5.2.1.10">
              <t indent="0" pn="section-3-5.2.1.10.1">This subsection specifies whether the timestamp
          is affected by leap seconds. If the timestamp is affected by leap
          seconds, then it represents the time elapsed since the epoch minus
          the number of leap seconds that have occurred since the epoch.</t>
            </dd>
          </dl>
        </dd>
      </dl>
      <dl newline="true" spacing="normal" indent="3" pn="section-3-6">
        <dt pn="section-3-6.1">Synchronization aspects:</dt>
        <dd pn="section-3-6.2">The specification of a network protocol that makes use of a
          packet timestamp is expected to include the synchronization aspects
          of using the timestamp. While the synchronization aspects are not
          strictly part of the timestamp format specification, these aspects
          provide the necessary context for using the timestamp within the
          scope of the protocol. In some cases, timestamps are used without
          synchronization, e.g., a timestamp that indicates the number of
          seconds since power-up. In such cases, the Synchronization Aspects
          section will specify that the timestamp does not correspond to a
          synchronized time reference and may discuss how this affects the
          usage of the timestamp. Further details about synchronization
          aspects are discussed in <xref target="SynchSec" format="default" sectionFormat="of" derivedContent="Section 5"/>.</dd>
      </dl>
    </section>
    <section anchor="Recommended" numbered="true" toc="include" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-recommended-timestamp-forma">Recommended Timestamp Formats</name>
      <t indent="0" pn="section-4-1">This document defines a set of recommended timestamp formats.
      Clearly, different network protocols may have different requirements and
      constraints; consequently, they may use different timestamp formats. The
      choice of a specific timestamp format for a given protocol may depend
      on various factors. A few examples of factors that may affect the
      choice of the timestamp format include the following:</t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4-2">
        <li pn="section-4-2.1">Timestamp size: While some network protocols use a large
          timestamp field, in some cases, there may be constraints with respect
          to the timestamp size, affecting the choice of the timestamp
          format.</li>
        <li pn="section-4-2.2">Resolution: The time resolution is another factor that may
          directly affect the selected timestamp format. A potentially
          important factor in this context is extensibility; it may be
          desirable to allow a timestamp format to be extensible to a higher
          resolution by extending the field. For example, the resolution of
          the NTP 32-bit timestamp format can be improved by extending it to
          the NTP 64-bit timestamp format in a straightforward way.</li>
        <li pn="section-4-2.3">Wraparound period: The length of the time interval in which the
          timestamp is unique may also be an important factor in choosing the
          timestamp format. Along with the timestamp resolution, these two
          factors determine the required number of bits in the timestamp.</li>
        <li pn="section-4-2.4">Common format for multiple protocols: If there are two or more
          network protocols that use timestamps and are often used together in
          typical systems, using a common timestamp format should be preferred
          if possible. For example, if the network protocol that is being
          defined typically runs on a PC, then an NTP-based timestamp format
          may allow easier integration with an NTP-synchronized timer. In
          contrast, a protocol that is typically deployed on a hardware-based
          platform may make better use of a PTP-based timestamp, allowing
          more efficient integration with a PTP-synchronized timer.</li>
      </ul>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-4.1">
        <name slugifiedName="name-using-a-recommended-timesta">Using a Recommended Timestamp Format</name>
        <t indent="0" pn="section-4.1-1">A specification that uses one of the recommended timestamp formats
        should specify explicitly that this is a recommended timestamp format
        and point to the relevant section in the current document.</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-4.2">
        <name slugifiedName="name-ntp-timestamp-formats">NTP Timestamp Formats</name>
        <section anchor="time-64bit" numbered="true" toc="include" removeInRFC="false" pn="section-4.2.1">
          <name slugifiedName="name-ntp-64-bit-timestamp-format">NTP 64-Bit Timestamp Format</name>
          <t indent="0" pn="section-4.2.1-1">The Network Time Protocol (NTP) 64-bit timestamp format is
          defined in <xref target="RFC5905" format="default" sectionFormat="of" derivedContent="RFC5905"/>. This timestamp format is used
          in several network protocols, including <xref target="RFC6374" format="default" sectionFormat="of" derivedContent="RFC6374"/>,
          <xref target="RFC4656" format="default" sectionFormat="of" derivedContent="RFC4656"/>, and <xref target="RFC5357" format="default" sectionFormat="of" derivedContent="RFC5357"/>. Since this
          timestamp format is used in NTP, it should be
          preferred in network protocols that are typically deployed in
          concert with NTP.</t>
          <t indent="0" pn="section-4.2.1-2">The format is presented in this section according to the template
          defined in <xref target="format" format="default" sectionFormat="of" derivedContent="Section 3"/>.</t>
          <figure anchor="NTPFormat" align="left" suppress-title="false" pn="figure-1">
            <name slugifiedName="name-ntp-64-bit-timestamp-format-2">NTP 64-Bit Timestamp Format</name>
            <artwork align="left" name="" type="" alt="" pn="section-4.2.1-3.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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                            Seconds                            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                            Fraction                           |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
           </artwork>
          </figure>
          <dl newline="true" spacing="normal" indent="3" pn="section-4.2.1-4">
            <dt pn="section-4.2.1-4.1">Timestamp field format:</dt>
            <dd pn="section-4.2.1-4.2">
              <dl newline="false" spacing="normal" indent="3" pn="section-4.2.1-4.2.1">
                <dt pn="section-4.2.1-4.2.1.1">Seconds:</dt>
                <dd pn="section-4.2.1-4.2.1.2">
                  <t indent="0" pn="section-4.2.1-4.2.1.2.1">Specifies the integer portion of the
	    number of seconds since the epoch.</t>
                  <dl newline="false" spacing="normal" indent="3" pn="section-4.2.1-4.2.1.2.2">
                    <dt pn="section-4.2.1-4.2.1.2.2.1">Size:</dt>
                    <dd pn="section-4.2.1-4.2.1.2.2.2">32 bits.</dd>
                    <dt pn="section-4.2.1-4.2.1.2.2.3">Units:</dt>
                    <dd pn="section-4.2.1-4.2.1.2.2.4">Seconds.</dd>
                  </dl>
                </dd>
                <dt pn="section-4.2.1-4.2.1.3">Fraction:</dt>
                <dd pn="section-4.2.1-4.2.1.4">
                  <t indent="0" pn="section-4.2.1-4.2.1.4.1">Specifies the fractional portion of the number of
              seconds since the epoch.</t>
                  <dl newline="false" spacing="normal" indent="3" pn="section-4.2.1-4.2.1.4.2">
                    <dt pn="section-4.2.1-4.2.1.4.2.1">Size:</dt>
                    <dd pn="section-4.2.1-4.2.1.4.2.2">32 bits.</dd>
                    <dt pn="section-4.2.1-4.2.1.4.2.3">Units:</dt>
                    <dd pn="section-4.2.1-4.2.1.4.2.4">The unit is 2<sup>-32</sup> seconds, which is roughly
	    equal to 233 picoseconds.</dd>
                  </dl>
                </dd>
              </dl>
            </dd>
            <dt pn="section-4.2.1-4.3">Epoch:</dt>
            <dd pn="section-4.2.1-4.4">
              <t indent="0" pn="section-4.2.1-4.4.1">The epoch is 1 January 1900 at 00:00 UTC.</t>
              <t indent="0" pn="section-4.2.1-4.4.2">Note: As pointed out in <xref target="RFC5905" format="default" sectionFormat="of" derivedContent="RFC5905"/>, strictly speaking, UTC did
              not exist prior to 1 January 1972, but it is convenient to
              assume it has existed for all eternity. The current epoch
              implies that the timestamp specifies the number of seconds since
              1 January 1972 at 00:00 UTC plus 2272060800 (which is the number
              of seconds between 1 January 1900 and 1 January 1972).</t>
            </dd>
            <dt pn="section-4.2.1-4.5">Leap seconds:</dt>
            <dd pn="section-4.2.1-4.6">
              <t indent="0" pn="section-4.2.1-4.6.1">This timestamp format is affected by leap seconds. The
              timestamp represents the number of seconds elapsed since the
              epoch minus the number of leap seconds. Thus, during and
              possibly before and/or after the occurrence of a leap second,
              the value of the timestamp may temporarily be ambiguous, as
              further discussed in <xref target="SynchSec" format="default" sectionFormat="of" derivedContent="Section 5"/>.</t>
            </dd>
            <dt pn="section-4.2.1-4.7">Resolution: </dt>
            <dd pn="section-4.2.1-4.8">
              <t indent="0" pn="section-4.2.1-4.8.1">The resolution is 2<sup>-32</sup> seconds.</t>
            </dd>
            <dt pn="section-4.2.1-4.9">Wraparound:</dt>
            <dd pn="section-4.2.1-4.10">
              <t indent="0" pn="section-4.2.1-4.10.1">This time format wraps around every 2<sup>32</sup> seconds, which is
              roughly 136 years. The next wraparound will occur in the year
              2036.</t>
            </dd>
          </dl>
        </section>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-4.2.2">
          <name slugifiedName="name-ntp-32-bit-timestamp-format">NTP 32-Bit Timestamp Format</name>
          <t indent="0" pn="section-4.2.2-1">The Network Time Protocol (NTP) 32-bit timestamp format is
          defined in <xref target="RFC5905" format="default" sectionFormat="of" derivedContent="RFC5905"/>. This timestamp format is used
          in <xref target="I-D.ietf-ippm-initial-registry" format="default" sectionFormat="of" derivedContent="METRICS"/> and <xref target="I-D.ietf-sfc-nsh-dc-allocation" format="default" sectionFormat="of" derivedContent="NSHMD"/>. This timestamp format
          should be preferred in network protocols that are typically deployed
          in concert with NTP. The 32-bit format can be used either when space
          constraints do not allow the use of the 64-bit format or when the
          32-bit format satisfies the resolution and wraparound
          requirements.</t>
          <t indent="0" pn="section-4.2.2-2">The format is presented in this section according to the template
          defined in <xref target="format" format="default" sectionFormat="of" derivedContent="Section 3"/>.</t>
          <figure anchor="NTPShortFormat" align="left" suppress-title="false" pn="figure-2">
            <name slugifiedName="name-ntp-32-bit-timestamp-format-2">NTP 32-Bit Timestamp Format</name>
            <artwork align="left" name="" type="" alt="" pn="section-4.2.2-3.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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |          Seconds              |           Fraction            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
           </artwork>
          </figure>
          <dl newline="true" spacing="normal" indent="3" pn="section-4.2.2-4">
            <dt pn="section-4.2.2-4.1">Timestamp field format:</dt>
            <dd pn="section-4.2.2-4.2">
              <dl newline="false" spacing="normal" indent="3" pn="section-4.2.2-4.2.1">
                <dt pn="section-4.2.2-4.2.1.1">Seconds:</dt>
                <dd pn="section-4.2.2-4.2.1.2">
                  <t indent="0" pn="section-4.2.2-4.2.1.2.1">Specifies the integer portion of the number of
              seconds since the epoch.</t>
                  <dl newline="false" spacing="normal" indent="3" pn="section-4.2.2-4.2.1.2.2">
                    <dt pn="section-4.2.2-4.2.1.2.2.1">Size:</dt>
                    <dd pn="section-4.2.2-4.2.1.2.2.2">16 bits.</dd>
                    <dt pn="section-4.2.2-4.2.1.2.2.3">Units:</dt>
                    <dd pn="section-4.2.2-4.2.1.2.2.4">Seconds.</dd>
                  </dl>
                </dd>
                <dt pn="section-4.2.2-4.2.1.3">Fraction:</dt>
                <dd pn="section-4.2.2-4.2.1.4">
                  <t indent="0" pn="section-4.2.2-4.2.1.4.1">Specifies the fractional portion of the number of
              seconds since the epoch.</t>
                  <dl newline="false" spacing="normal" indent="3" pn="section-4.2.2-4.2.1.4.2">
                    <dt pn="section-4.2.2-4.2.1.4.2.1">Size:</dt>
                    <dd pn="section-4.2.2-4.2.1.4.2.2">16 bits.</dd>
                    <dt pn="section-4.2.2-4.2.1.4.2.3">Units:</dt>
                    <dd pn="section-4.2.2-4.2.1.4.2.4">The unit is 2<sup>-16</sup> seconds, which is roughly equal
              to 15.3 microseconds.</dd>
                  </dl>
                </dd>
              </dl>
            </dd>
            <dt pn="section-4.2.2-4.3">Epoch:</dt>
            <dd pn="section-4.2.2-4.4">
              <t indent="0" pn="section-4.2.2-4.4.1">The epoch is 1 January 1900 at 00:00 UTC.</t>
              <t indent="0" pn="section-4.2.2-4.4.2">Note: As pointed out in <xref target="RFC5905" format="default" sectionFormat="of" derivedContent="RFC5905"/>, strictly speaking, UTC did
              not exist prior to 1 January 1972, but it is convenient to
              assume it has existed for all eternity. The current epoch
              implies that the timestamp specifies the number of seconds since
              1 January 1972 at 00:00 UTC plus 2272060800 (which is the number
              of seconds between 1 January 1900 and 1 January 1972).</t>
            </dd>
            <dt pn="section-4.2.2-4.5">Leap seconds: </dt>
            <dd pn="section-4.2.2-4.6">
              <t indent="0" pn="section-4.2.2-4.6.1">
            This timestamp format is affected by leap seconds. The
              timestamp represents the number of seconds elapsed since the
              epoch minus the number of leap seconds. Thus, during and
              possibly before and/or after the occurrence of a leap second, the value of the
              timestamp may temporarily be ambiguous, as further discussed in
              <xref target="SynchSec" format="default" sectionFormat="of" derivedContent="Section 5"/>.</t>
            </dd>
            <dt pn="section-4.2.2-4.7">Resolution: </dt>
            <dd pn="section-4.2.2-4.8">
              <t indent="0" pn="section-4.2.2-4.8.1">
           The resolution is 2<sup>-16</sup> seconds.</t>
            </dd>
            <dt pn="section-4.2.2-4.9">Wraparound:</dt>
            <dd pn="section-4.2.2-4.10">
              <t indent="0" pn="section-4.2.2-4.10.1">
            This time format wraps around every 2<sup>16</sup> seconds, which is
              roughly 18 hours.</t>
            </dd>
          </dl>
        </section>
      </section>
      <section anchor="ptp-trunc" numbered="true" toc="include" removeInRFC="false" pn="section-4.3">
        <name slugifiedName="name-the-ptp-truncated-timestamp">The PTP Truncated Timestamp Format</name>
        <t indent="0" pn="section-4.3-1">The Precision Time Protocol (PTP) <xref target="IEEE1588" format="default" sectionFormat="of" derivedContent="IEEE1588"/> uses an
        80-bit timestamp format. The truncated timestamp format is a 64-bit
        field, which is the 64 least significant bits of the 80-bit PTP
        timestamp. Since this timestamp format is similar to the one used in
        PTP, this timestamp format should be preferred in network protocols
        that are typically deployed in PTP-capable devices.</t>
        <t indent="0" pn="section-4.3-2">The PTP truncated timestamp format was defined in <xref target="IEEE1588v1" format="default" sectionFormat="of" derivedContent="IEEE1588v1"/> and is used in several protocols, such as <xref target="RFC6374" format="default" sectionFormat="of" derivedContent="RFC6374"/>, <xref target="RFC7456" format="default" sectionFormat="of" derivedContent="RFC7456"/>, <xref target="RFC8186" format="default" sectionFormat="of" derivedContent="RFC8186"/>,
        and <xref target="ITU-T-Y.1731" format="default" sectionFormat="of" derivedContent="ITU-T-Y.1731"/>.</t>
        <figure anchor="PTPFormat" align="left" suppress-title="false" pn="figure-3">
          <name slugifiedName="name-ptp-truncated-timestamp-for">PTP Truncated Timestamp Format</name>
          <artwork align="left" name="" type="" alt="" pn="section-4.3-3.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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                            Seconds                            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                          Nanoseconds                          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
           </artwork>
        </figure>
        <dl newline="true" spacing="normal" indent="3" pn="section-4.3-4">
          <dt pn="section-4.3-4.1">Timestamp field format: </dt>
          <dd pn="section-4.3-4.2">
            <dl newline="false" spacing="normal" indent="3" pn="section-4.3-4.2.1">
              <dt pn="section-4.3-4.2.1.1">Seconds:</dt>
              <dd pn="section-4.3-4.2.1.2">
                <t indent="0" pn="section-4.3-4.2.1.2.1"> Specifies the integer portion of the number of seconds
            since the epoch.</t>
                <dl newline="false" spacing="normal" indent="3" pn="section-4.3-4.2.1.2.2">
                  <dt pn="section-4.3-4.2.1.2.2.1">Size:</dt>
                  <dd pn="section-4.3-4.2.1.2.2.2">32 bits.</dd>
                  <dt pn="section-4.3-4.2.1.2.2.3">Units:</dt>
                  <dd pn="section-4.3-4.2.1.2.2.4">Seconds.</dd>
                </dl>
              </dd>
              <dt pn="section-4.3-4.2.1.3">Nanoseconds:</dt>
              <dd pn="section-4.3-4.2.1.4">
                <t indent="0" pn="section-4.3-4.2.1.4.1">Specifies the fractional portion of the number of
            seconds since the epoch.</t>
                <dl newline="false" spacing="normal" indent="3" pn="section-4.3-4.2.1.4.2">
                  <dt pn="section-4.3-4.2.1.4.2.1">Size:</dt>
                  <dd pn="section-4.3-4.2.1.4.2.2">32 bits.</dd>
                  <dt pn="section-4.3-4.2.1.4.2.3">Units:</dt>
                  <dd pn="section-4.3-4.2.1.4.2.4">Nanoseconds. The value of this field is in the range 0
            to (10<sup>9</sup>)-1.</dd>
                </dl>
              </dd>
            </dl>
          </dd>
          <dt pn="section-4.3-4.3">Epoch: </dt>
          <dd pn="section-4.3-4.4">
            <t indent="0" pn="section-4.3-4.4.1">The PTP <xref target="IEEE1588" format="default" sectionFormat="of" derivedContent="IEEE1588"/> epoch is 1 January 1970
            00:00:00 TAI.</t>
          </dd>
          <dt pn="section-4.3-4.5">Leap seconds:</dt>
          <dd pn="section-4.3-4.6">
            <t indent="0" pn="section-4.3-4.6.1">
         This timestamp format is not affected by leap seconds.</t>
          </dd>
          <dt pn="section-4.3-4.7">Resolution:</dt>
          <dd pn="section-4.3-4.8">
            <t indent="0" pn="section-4.3-4.8.1">
         The resolution is 1 nanosecond.</t>
          </dd>
          <dt pn="section-4.3-4.9">Wraparound:</dt>
          <dd pn="section-4.3-4.10">
            <t indent="0" pn="section-4.3-4.10.1">
         This time format wraps around every 2<sup>32</sup> seconds, which is
            roughly 136 years. The next wraparound will occur in the year
            2106.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="SynchSec" numbered="true" toc="include" removeInRFC="false" pn="section-5">
      <name slugifiedName="name-synchronization-aspects">Synchronization Aspects</name>
      <t indent="0" pn="section-5-1">A specification that defines a new timestamp format or uses one of
      the recommended timestamp formats should include a Synchronization
      Aspects section. Note that the recommended timestamp formats
      defined in this document (<xref target="Recommended" format="default" sectionFormat="of" derivedContent="Section 4"/>) do not include
      the synchronization aspects of these timestamp formats, but it is
      expected that specifications of network protocols that make use of these
      formats should include the synchronization aspects. Examples of a
      Synchronization Aspects section can be found in <xref target="UseCaseSec" format="default" sectionFormat="of" derivedContent="Section 6"/>.</t>
      <t indent="0" pn="section-5-2">The Synchronization Aspects section should specify all the
      assumptions and requirements related to synchronization. For example,
      the synchronization aspects may specify whether nodes populating the
      timestamps should be synchronized among themselves and whether the
      timestamp is measured with respect to a central reference clock such as
      an NTP server. If time is assumed to be synchronized to a time standard
      such as UTC or TAI, it should be specified in this section. Further
      considerations may be discussed in this section, such as the required
      timestamp accuracy and precision.</t>
      <t indent="0" pn="section-5-3">Another aspect that should be discussed in this section is leap
      second <xref target="RFC5905" format="default" sectionFormat="of" derivedContent="RFC5905"/> considerations. The timestamp
      specification template (<xref target="format" format="default" sectionFormat="of" derivedContent="Section 3"/>) specifies whether the
      timestamp is affected by leap seconds. It is often the case that further
      details about leap seconds will need to be defined in the
      Synchronization Aspects section. Generally speaking, a leap second is a
      one-second adjustment that is occasionally applied to UTC in order to
      keep it aligned with solar time. A leap second may be either positive
      or negative, i.e., the clock may either be shifted one second forward
      or backward. All leap seconds that have occurred up to the publication
      of this document have been in the backward direction, and although
      forward leap seconds are theoretically possible, the text throughout
      this document focuses on the common case, which is the backward leap
      second. In a timekeeping system that considers leap seconds, the system
      clock may be affected by a leap second in one of three possible
      ways:</t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-5-4">
        <li pn="section-5-4.1">The clock is turned backwards one second at the end of the leap
          second.</li>
        <li pn="section-5-4.2">The clock is frozen during the duration of the leap second.</li>
        <li pn="section-5-4.3">The clock is slowed down during the leap second and adjacent time
          intervals until the new time value catches up. The interval for this
          process, commonly referred to as "leap smear", can range from several
          seconds to several hours before, during, and/or after the occurrence
          of the leap second.</li>
      </ul>
      <t indent="0" pn="section-5-5">The way leap seconds are handled depends on the synchronization
      protocol and is thus not specified in this document. However, if a
      timestamp format is defined with respect to a timescale that is affected
      by leap seconds, the Synchronization Aspects section should specify how
      the use of leap seconds affects the timestamp usage.</t>
    </section>
    <section anchor="UseCaseSec" numbered="true" toc="include" removeInRFC="false" pn="section-6">
      <name slugifiedName="name-timestamp-use-cases">Timestamp Use Cases</name>
      <t indent="0" pn="section-6-1">Packet timestamps are used in various network protocols. Typical
      applications of packet timestamps include delay measurement, clock
      synchronization, and others. The following table presents a
      (non-exhaustive) list of protocols that use packet timestamps and the
      timestamp formats used in each of these protocols.</t>
      <table anchor="tab-1" align="left" pn="table-1">
        <name slugifiedName="name-protocols-that-use-packet-t">Protocols That Use Packet Timestamps</name>
        <thead>
          <tr>
            <th align="center" colspan="1" rowspan="1"/>
            <th align="center" colspan="3" rowspan="1">Recommended Formats</th>
            <th align="center" colspan="1" rowspan="1">Other</th>
          </tr>
          <tr>
            <th align="center" colspan="1" rowspan="1">Protocol</th>
            <th align="center" colspan="1" rowspan="1">NTP 64-Bit</th>
            <th align="center" colspan="1" rowspan="1">NTP 32-Bit</th>
            <th align="center" colspan="1" rowspan="1">PTP Trunc.</th>
            <th align="center" colspan="1" rowspan="1"/>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="center" colspan="1" rowspan="1">NTP <xref target="RFC5905" format="default" sectionFormat="of" derivedContent="RFC5905"/></td>
            <td align="center" colspan="1" rowspan="1">+</td>
            <td align="center" colspan="1" rowspan="1"/>
            <td align="center" colspan="1" rowspan="1"/>
            <td align="center" colspan="1" rowspan="1"/>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">OWAMP <xref target="RFC4656" format="default" sectionFormat="of" derivedContent="RFC4656"/></td>
            <td align="center" colspan="1" rowspan="1">+</td>
            <td align="center" colspan="1" rowspan="1"/>
            <td align="center" colspan="1" rowspan="1"/>
            <td align="center" colspan="1" rowspan="1"/>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">TWAMP <xref target="RFC5357" format="default" sectionFormat="of" derivedContent="RFC5357"/><br/>TWAMP <xref target="RFC8186" format="default" sectionFormat="of" derivedContent="RFC8186"/></td>
            <td align="center" colspan="1" rowspan="1">+<br/>+</td>
            <td align="center" colspan="1" rowspan="1"/>
            <td align="center" colspan="1" rowspan="1">
              <br/>+</td>
            <td align="center" colspan="1" rowspan="1"/>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">TRILL <xref target="RFC7456" format="default" sectionFormat="of" derivedContent="RFC7456"/></td>
            <td align="center" colspan="1" rowspan="1"/>
            <td align="center" colspan="1" rowspan="1"/>
            <td align="center" colspan="1" rowspan="1">+</td>
            <td align="center" colspan="1" rowspan="1"/>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">MPLS <xref target="RFC6374" format="default" sectionFormat="of" derivedContent="RFC6374"/></td>
            <td align="center" colspan="1" rowspan="1"/>
            <td align="center" colspan="1" rowspan="1"/>
            <td align="center" colspan="1" rowspan="1">+</td>
            <td align="center" colspan="1" rowspan="1"/>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">TCP <xref target="RFC7323" format="default" sectionFormat="of" derivedContent="RFC7323"/></td>
            <td align="center" colspan="1" rowspan="1"/>
            <td align="center" colspan="1" rowspan="1"/>
            <td align="center" colspan="1" rowspan="1"/>
            <td align="center" colspan="1" rowspan="1">+</td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">RTP <xref target="RFC3550" format="default" sectionFormat="of" derivedContent="RFC3550"/></td>
            <td align="center" colspan="1" rowspan="1">+</td>
            <td align="center" colspan="1" rowspan="1"/>
            <td align="center" colspan="1" rowspan="1"/>
            <td align="center" colspan="1" rowspan="1">+</td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">IPFIX <xref target="RFC7011" format="default" sectionFormat="of" derivedContent="RFC7011"/></td>
            <td align="center" colspan="1" rowspan="1"/>
            <td align="center" colspan="1" rowspan="1"/>
            <td align="center" colspan="1" rowspan="1"/>
            <td align="center" colspan="1" rowspan="1">+</td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">BinaryTime <xref target="RFC6019" format="default" sectionFormat="of" derivedContent="RFC6019"/></td>
            <td align="center" colspan="1" rowspan="1"/>
            <td align="center" colspan="1" rowspan="1"/>
            <td align="center" colspan="1" rowspan="1"/>
            <td align="center" colspan="1" rowspan="1">+</td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">
              <xref target="I-D.ietf-ippm-initial-registry" format="default" sectionFormat="of" derivedContent="METRICS"/></td>
            <td align="center" colspan="1" rowspan="1">+</td>
            <td align="center" colspan="1" rowspan="1">+</td>
            <td align="center" colspan="1" rowspan="1"/>
            <td align="center" colspan="1" rowspan="1"/>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">
              <xref target="I-D.ietf-sfc-nsh-dc-allocation" format="default" sectionFormat="of" derivedContent="NSHMD"/></td>
            <td align="center" colspan="1" rowspan="1"/>
            <td align="center" colspan="1" rowspan="1">+</td>
            <td align="center" colspan="1" rowspan="1">+</td>
            <td align="center" colspan="1" rowspan="1"/>
          </tr>
        </tbody>
      </table>
      <t indent="0" pn="section-6-3">The rest of this section presents two hypothetical examples of network
      protocol specifications that use one of the recommended timestamp
      formats. The examples include the text that specifies the information
      related to the timestamp format.</t>
      <section anchor="Ex1Sec" numbered="true" toc="include" removeInRFC="false" pn="section-6.1">
        <name slugifiedName="name-example-1">Example 1</name>
        <dl spacing="normal" newline="true" indent="3" pn="section-6.1-1">
          <dt pn="section-6.1-1.1">Timestamp:</dt>
          <dd pn="section-6.1-1.2">The timestamp format used in this specification is the NTP
            <xref target="RFC5905" format="default" sectionFormat="of" derivedContent="RFC5905"/> 64-bit format, as
	  described in <xref target="time-64bit" format="default" sectionFormat="of" derivedContent="Section 4.2.1"/> of RFC 8877.</dd>
          <dt pn="section-6.1-1.3">Synchronization aspects:</dt>
          <dd pn="section-6.1-1.4">It is assumed that the nodes that run this protocol are
            synchronized to UTC using a synchronization mechanism that is
            outside the scope of this document. In typical deployments, this
            protocol will run on a machine that uses NTP <xref target="RFC5905" format="default" sectionFormat="of" derivedContent="RFC5905"/> for synchronization. Thus, the timestamp may be
            derived from the NTP-synchronized clock, allowing the timestamp to
            be measured with respect to the clock of an NTP server. Since the
            NTP time format is affected by leap seconds, the current timestamp
            format is similarly affected. Thus, the value of a timestamp
            during and possibly before and/or after a leap second may be temporarily
            inaccurate.</dd>
        </dl>
      </section>
      <section anchor="Ex2Sec" numbered="true" toc="include" removeInRFC="false" pn="section-6.2">
        <name slugifiedName="name-example-2">Example 2</name>
        <dl spacing="normal" newline="true" indent="3" pn="section-6.2-1">
          <dt pn="section-6.2-1.1">Timestamp: </dt>
          <dd pn="section-6.2-1.2">The timestamp format used in this specification is the PTP
            <xref target="IEEE1588" format="default" sectionFormat="of" derivedContent="IEEE1588"/> truncated format, as described in
            <xref target="ptp-trunc" format="default" sectionFormat="of" derivedContent="Section 4.3"/> of RFC 8877.</dd>
          <dt pn="section-6.2-1.3">Synchronization aspects: </dt>
          <dd pn="section-6.2-1.4">It is assumed that the nodes that run this protocol are
            synchronized among themselves. Nodes may be synchronized to a
            global reference time. Note that if PTP <xref target="IEEE1588" format="default" sectionFormat="of" derivedContent="IEEE1588"/>
            is used for synchronization, the timestamp may be derived from the
            PTP-synchronized clock, allowing the timestamp to be measured with
            respect to a PTP grandmaster clock.</dd>
        </dl>
      </section>
    </section>
    <section anchor="ControlSec" numbered="true" toc="include" removeInRFC="false" pn="section-7">
      <name slugifiedName="name-packet-timestamp-control-fi">Packet Timestamp Control Field</name>
      <t indent="0" pn="section-7-1">In some cases, it is desirable to have a control field that describes
      the structure, format, content, and properties of timestamps. Control
      information about the timestamp format can be conveyed in some protocols
      using a dedicated control plane protocol or may be made available at
      the management plane, for example, using a YANG data model. An optional
      control field allows some of the control information to be attached to
      the timestamp.</t>
      <t indent="0" pn="section-7-2">An example of a packet timestamp control field is the Error Estimate
      field, defined by <xref target="RFC4656" sectionFormat="of" section="4.1.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4656#section-4.1.2" derivedContent="RFC4656"/>, which is
      used in the One-Way Active Measurement Protocol (OWAMP) <xref target="RFC4656" format="default" sectionFormat="of" derivedContent="RFC4656"/> and Two-Way Active Measurement
      Protocol (TWAMP) <xref target="RFC5357" format="default" sectionFormat="of" derivedContent="RFC5357"/>. The Root Dispersion and Root Delay fields in the NTP
      header <xref target="RFC5905" format="default" sectionFormat="of" derivedContent="RFC5905"/> are two examples of fields that provide
      information about the timestamp precision. Another example of an
      auxiliary field is the Correction Field in the PTP header <xref target="IEEE1588" format="default" sectionFormat="of" derivedContent="IEEE1588"/>; its value is used as a correction to the timestamp and may be assigned by the sender of the PTP message and updated by
      transit nodes (Transparent Clocks) in order to account for the delay
      along the path.</t>
      <t indent="0" pn="section-7-3">This section defines high-level guidelines for defining packet
      timestamp control fields in network protocols that can benefit from such
      timestamp-related control information. The word "requirements" is used
      in its informal context in this section.</t>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-7.1">
        <name slugifiedName="name-high-level-control-field-re">High-Level Control Field Requirements</name>
        <t indent="0" pn="section-7.1-1">A control field for packet timestamps must offer an adequate
        feature set and fulfill a series of requirements to be usable and
        accepted. The following list captures the main high-level requirements
        for timestamp fields.</t>
        <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-7.1-2">
          <li pn="section-7.1-2.1" derivedCounter="1.">Extensible Feature Set: Protocols and applications depend on
            various timestamp characteristics. A timestamp control field must
            support a variable number of elements (components) that either
            describe or quantify timestamp-specific characteristics or
            parameters. Examples of potential elements include timestamp size,
            encoding, accuracy, leap seconds, reference clock identifiers,
            etc.</li>
          <li pn="section-7.1-2.2" derivedCounter="2.">Size: Essential for an efficient use of timestamp control
            fields is the trade-off between supported features and control
            field size. Protocols and applications may select the specific
            control field elements that are needed for their operation from
            the set of available elements.</li>
          <li pn="section-7.1-2.3" derivedCounter="3.">Composition: Applications may depend on specific control field
            elements being present in messages. The status of these elements
            may be either mandatory, conditional mandatory, or optional,
            depending on the specific application and context. A control field
            specification must support applications in conveying or
            negotiating (a) the set of control field elements along with (b)
            the status of any element (i.e., mandatory, conditional mandatory,
            or optional) by defining appropriate data structures and identity
            codes.</li>
          <li pn="section-7.1-2.4" derivedCounter="4.">Category: Control field elements can characterize either static
            timestamp information (e.g., timestamp size in bytes and
            timestamp semantics: NTP 64-bit format) or runtime timestamp
            information (e.g., estimated timestamp accuracy at the time
            of sampling: 20 microseconds to UTC). For efficiency reasons, it may
            be meaningful to support separation of these two concepts: while
            the former (static) information is typically valid throughout a
            protocol session and may be conveyed only once, at session
            establishment time, the latter (runtime) information augments any
            timestamp instance and may cause substantial overhead for
            high-traffic protocols.</li>
        </ol>
        <t indent="0" pn="section-7.1-3">Proposals for timestamp control fields will be defined in
        separate documents and are out of scope of this document.</t>
      </section>
    </section>
    <section anchor="IANA" numbered="true" toc="include" removeInRFC="false" pn="section-8">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <t indent="0" pn="section-8-1">This document has no IANA actions.</t>
    </section>
    <section anchor="Security" numbered="true" toc="include" removeInRFC="false" pn="section-9">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-9-1">A network protocol that uses a packet timestamp <bcp14>MUST</bcp14> specify the
      security considerations that result from using the timestamp. This
      section provides an overview of some of the common security
      considerations of using timestamps.</t>
      <t indent="0" pn="section-9-2">Any metadata that is attached to control or data packets, and
      specifically packet timestamps, can facilitate network reconnaissance;
      by passively eavesdropping on timestamped packets, an attacker can gather
      information about the network performance and the level of
      synchronization between nodes.</t>
      <t indent="0" pn="section-9-3">In some cases, timestamps could be spoofed or modified by on-path
      attackers, thus attacking the application that uses the timestamps. For
      example, if timestamps are used in a delay measurement protocol, an
      attacker can modify en route timestamps in a way that manipulates the
      measurement results. Integrity protection mechanisms, such as Message
      Authentication Codes (MACs), can mitigate such attacks. The specification
      of an integrity protection mechanism is outside the scope of this
      document as, typically, integrity protection will be defined on a
      per-network-protocol basis and not specifically for the timestamp
      field.</t>
      <t indent="0" pn="section-9-4">Another potential threat that can have a similar impact is delay
      attacks. An attacker can maliciously delay some or all of the en route
      messages, with the same harmful implications as described in the
      previous paragraph. Mitigating delay attacks is a significant challenge;
      in contrast to spoofing and modification attacks, the delay attack
      cannot be prevented by cryptographic integrity protection mechanisms. In
      some cases, delay attacks can be mitigated by sending the timestamped
      information through multiple paths, allowing detection of and resistance to an attacker that has access to one of the paths.</t>
      <t indent="0" pn="section-9-5">In many cases, timestamping relies on an underlying synchronization
      mechanism. Thus, any attack that compromises the synchronization
      mechanism can also compromise protocols that use timestamping. Attacks
      on time protocols are discussed in detail in <xref target="RFC7384" format="default" sectionFormat="of" derivedContent="RFC7384"/>.</t>
    </section>
  </middle>
  <back>
    <displayreference target="I-D.ietf-ippm-initial-registry" to="METRICS"/>
    <displayreference target="I-D.ietf-sfc-nsh-dc-allocation" to="NSHMD"/>
    <references pn="section-10">
      <name slugifiedName="name-references">References</name>
      <references pn="section-10.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author initials="S." surname="Bradner" fullname="S. Bradner">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="1997" month="March"/>
            <abstract>
              <t indent="0">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" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2017" month="May"/>
            <abstract>
              <t indent="0">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 pn="section-10.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="IEEE1588" quoteTitle="true" target="https://doi.org/10.1109/IEEESTD.2008.4579760" derivedAnchor="IEEE1588">
          <front>
            <title>IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems</title>
            <seriesInfo name="DOI" value="10.1109/IEEESTD.2008.4579760"/>
            <seriesInfo name="IEEE Std." value="1588-2008"/>
            <author>
              <organization showOnFrontPage="true">IEEE</organization>
            </author>
            <date year="2008" month="July"/>
          </front>
        </reference>
        <reference anchor="IEEE1588v1" quoteTitle="true" target="https://doi.org/10.1109/IEEESTD.2002.94144" derivedAnchor="IEEE1588v1">
          <front>
            <title>IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems</title>
            <seriesInfo name="DOI" value="10.1109/IEEESTD.2002.94144"/>
            <seriesInfo name="IEEE Std." value="1588-2002"/>
            <author>
              <organization showOnFrontPage="true">IEEE</organization>
            </author>
            <date month="October" year="2002"/>
          </front>
        </reference>
        <reference anchor="ITU-T-Y.1731" quoteTitle="true" derivedAnchor="ITU-T-Y.1731">
          <front>
            <title>Operations, administration and maintenance (OAM) functions and mechanisms for Ethernet-based networks</title>
            <seriesInfo name="ITU-T Recommendation" value="G.8013/Y.1731"/>
            <author>
              <organization showOnFrontPage="true">ITU-T</organization>
            </author>
            <date year="2015" month="August"/>
          </front>
        </reference>
        <reference anchor="I-D.ietf-ippm-initial-registry" quoteTitle="true" target="https://tools.ietf.org/html/draft-ietf-ippm-initial-registry-16" derivedAnchor="METRICS">
          <front>
            <title>Initial Performance Metrics Registry Entries</title>
            <author initials="A" surname="Morton" fullname="Alfred Morton">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M" surname="Bagnulo" fullname="Marcelo Bagnulo">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="P" surname="Eardley" fullname="Philip Eardley">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="K" surname="D'Souza" fullname="Kevin D'Souza">
              <organization showOnFrontPage="true"/>
            </author>
            <date month="March" day="9" year="2020"/>
            <abstract>
              <t indent="0">This memo defines the set of Initial Entries for the IANA Performance Metrics Registry.  The set includes: UDP Round-trip Latency and Loss, Packet Delay Variation, DNS Response Latency and Loss, UDP Poisson One-way Delay and Loss, UDP Periodic One-way Delay and Loss, ICMP Round-trip Latency and Loss, and TCP round-trip Latency and Loss.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ippm-initial-registry-16"/>
          <format type="TXT" target="http://www.ietf.org/internet-drafts/draft-ietf-ippm-initial-registry-16.txt"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="I-D.ietf-sfc-nsh-dc-allocation" quoteTitle="true" target="https://tools.ietf.org/html/draft-ietf-sfc-nsh-dc-allocation-02" derivedAnchor="NSHMD">
          <front>
            <title>Network Service Header (NSH) MD Type 1: Context Header Allocation (Data Center)</title>
            <author initials="J" surname="Guichard" fullname="Jim Guichard">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M" surname="Smith" fullname="Michael Smith">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S" surname="Kumar" fullname="Surendra Kumar">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S" surname="Majee" fullname="Sumandra Majee">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="T" surname="Mizrahi" fullname="Tal Mizrahi">
              <organization showOnFrontPage="true"/>
            </author>
            <date month="September" day="25" year="2018"/>
            <abstract>
              <t indent="0">This document provides a recommended default allocation for the Network Service Header (NSH) MD Type 1 fixed length context header when NSH is used for Service Function Chaining within a data center.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-sfc-nsh-dc-allocation-02"/>
          <format type="TXT" target="http://www.ietf.org/internet-drafts/draft-ietf-sfc-nsh-dc-allocation-02.txt"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="RFC3339" target="https://www.rfc-editor.org/info/rfc3339" quoteTitle="true" derivedAnchor="RFC3339">
          <front>
            <title>Date and Time on the Internet: Timestamps</title>
            <author initials="G." surname="Klyne" fullname="G. Klyne">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="C." surname="Newman" fullname="C. Newman">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2002" month="July"/>
            <abstract>
              <t indent="0">This document defines a date and time format for use in Internet protocols that is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3339"/>
          <seriesInfo name="DOI" value="10.17487/RFC3339"/>
        </reference>
        <reference anchor="RFC3550" target="https://www.rfc-editor.org/info/rfc3550" quoteTitle="true" derivedAnchor="RFC3550">
          <front>
            <title>RTP: A Transport Protocol for Real-Time Applications</title>
            <author initials="H." surname="Schulzrinne" fullname="H. Schulzrinne">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Casner" fullname="S. Casner">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Frederick" fullname="R. Frederick">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="V." surname="Jacobson" fullname="V. Jacobson">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2003" month="July"/>
            <abstract>
              <t indent="0">This memorandum describes RTP, the real-time transport protocol.  RTP provides end-to-end network transport functions suitable for applications transmitting real-time data, such as audio, video or simulation data, over multicast or unicast network services.  RTP does not address resource reservation and does not guarantee quality-of- service for real-time services.  The data transport is augmented by a control protocol (RTCP) to allow monitoring of the data delivery in a manner scalable to large multicast networks, and to provide minimal control and identification functionality.  RTP and RTCP are designed to be independent of the underlying transport and network layers.  The protocol supports the use of RTP-level translators and mixers. Most of the text in this memorandum is identical to RFC 1889 which it obsoletes.  There are no changes in the packet formats on the wire, only changes to the rules and algorithms governing how the protocol is used. The biggest change is an enhancement to the scalable timer algorithm for calculating when to send RTCP packets in order to minimize transmission in excess of the intended rate when many participants join a session simultaneously.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="64"/>
          <seriesInfo name="RFC" value="3550"/>
          <seriesInfo name="DOI" value="10.17487/RFC3550"/>
        </reference>
        <reference anchor="RFC4656" target="https://www.rfc-editor.org/info/rfc4656" quoteTitle="true" derivedAnchor="RFC4656">
          <front>
            <title>A One-way Active Measurement Protocol (OWAMP)</title>
            <author initials="S." surname="Shalunov" fullname="S. Shalunov">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="B." surname="Teitelbaum" fullname="B. Teitelbaum">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="A." surname="Karp" fullname="A. Karp">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Boote" fullname="J. Boote">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M." surname="Zekauskas" fullname="M. Zekauskas">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2006" month="September"/>
            <abstract>
              <t indent="0">The One-Way Active Measurement Protocol (OWAMP) measures unidirectional characteristics such as one-way delay and one-way loss.  High-precision measurement of these one-way IP performance metrics became possible with wider availability of good time sources (such as GPS and CDMA).  OWAMP enables the interoperability of these measurements.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4656"/>
          <seriesInfo name="DOI" value="10.17487/RFC4656"/>
        </reference>
        <reference anchor="RFC5357" target="https://www.rfc-editor.org/info/rfc5357" quoteTitle="true" derivedAnchor="RFC5357">
          <front>
            <title>A Two-Way Active Measurement Protocol (TWAMP)</title>
            <author initials="K." surname="Hedayat" fullname="K. Hedayat">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Krzanowski" fullname="R. Krzanowski">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="A." surname="Morton" fullname="A. Morton">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="K." surname="Yum" fullname="K. Yum">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Babiarz" fullname="J. Babiarz">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2008" month="October"/>
            <abstract>
              <t indent="0">The One-way Active Measurement Protocol (OWAMP), specified in RFC 4656, provides a common protocol for measuring one-way metrics between network devices.  OWAMP can be used bi-directionally to measure one-way metrics in both directions between two network elements.  However, it does not accommodate round-trip or two-way measurements.  This memo specifies a Two-Way Active Measurement Protocol (TWAMP), based on the OWAMP, that adds two-way or round-trip measurement capabilities.  The TWAMP measurement architecture is usually comprised of two hosts with specific roles, and this allows for some protocol simplifications, making it an attractive alternative in some circumstances.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5357"/>
          <seriesInfo name="DOI" value="10.17487/RFC5357"/>
        </reference>
        <reference anchor="RFC5646" target="https://www.rfc-editor.org/info/rfc5646" quoteTitle="true" derivedAnchor="RFC5646">
          <front>
            <title>Tags for Identifying Languages</title>
            <author initials="A." surname="Phillips" fullname="A. Phillips" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M." surname="Davis" fullname="M. Davis" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2009" month="September"/>
            <abstract>
              <t indent="0">This document describes the structure, content, construction, and semantics of language tags for use in cases where it is desirable to indicate the language used in an information object.  It also describes how to register values for use in language tags and the creation of user-defined extensions for private interchange.  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="47"/>
          <seriesInfo name="RFC" value="5646"/>
          <seriesInfo name="DOI" value="10.17487/RFC5646"/>
        </reference>
        <reference anchor="RFC5905" target="https://www.rfc-editor.org/info/rfc5905" quoteTitle="true" derivedAnchor="RFC5905">
          <front>
            <title>Network Time Protocol Version 4: Protocol and Algorithms Specification</title>
            <author initials="D." surname="Mills" fullname="D. Mills">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Martin" fullname="J. Martin" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Burbank" fullname="J. Burbank">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="W." surname="Kasch" fullname="W. Kasch">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2010" month="June"/>
            <abstract>
              <t indent="0">The Network Time Protocol (NTP) is widely used to synchronize computer clocks in the Internet.  This document describes NTP version 4 (NTPv4), which is backwards compatible with NTP version 3 (NTPv3), described in RFC 1305, as well as previous versions of the protocol. NTPv4 includes a modified protocol header to accommodate the Internet Protocol version 6 address family.  NTPv4 includes fundamental improvements in the mitigation and discipline algorithms that extend the potential accuracy to the tens of microseconds with modern workstations and fast LANs.  It includes a dynamic server discovery scheme, so that in many cases, specific server configuration is not required.  It corrects certain errors in the NTPv3 design and implementation and includes an optional extension mechanism.   [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5905"/>
          <seriesInfo name="DOI" value="10.17487/RFC5905"/>
        </reference>
        <reference anchor="RFC6019" target="https://www.rfc-editor.org/info/rfc6019" quoteTitle="true" derivedAnchor="RFC6019">
          <front>
            <title>BinaryTime: An Alternate Format for Representing Date and Time in ASN.1</title>
            <author initials="R." surname="Housley" fullname="R. Housley">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2010" month="September"/>
            <abstract>
              <t indent="0">This document specifies a new ASN.1 type for representing time: BinaryTime.  This document also specifies an alternate to the signing-time attribute for use with the Cryptographic Message Syntax (CMS) SignedData and AuthenticatedData content types; the binary-signing-time attribute uses BinaryTime.  CMS and the signing-time attribute are defined in RFC 5652.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6019"/>
          <seriesInfo name="DOI" value="10.17487/RFC6019"/>
        </reference>
        <reference anchor="RFC6374" target="https://www.rfc-editor.org/info/rfc6374" quoteTitle="true" derivedAnchor="RFC6374">
          <front>
            <title>Packet Loss and Delay Measurement for MPLS Networks</title>
            <author initials="D." surname="Frost" fullname="D. Frost">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Bryant" fullname="S. Bryant">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2011" month="September"/>
            <abstract>
              <t indent="0">Many service provider service level agreements (SLAs) depend on the ability to measure and monitor performance metrics for packet loss and one-way and two-way delay, as well as related metrics such as delay variation and channel throughput.  This measurement capability also provides operators with greater visibility into the performance characteristics of their networks, thereby facilitating planning, troubleshooting, and network performance evaluation.  This document specifies protocol mechanisms to enable the efficient and accurate measurement of these performance metrics in MPLS networks.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6374"/>
          <seriesInfo name="DOI" value="10.17487/RFC6374"/>
        </reference>
        <reference anchor="RFC6991" target="https://www.rfc-editor.org/info/rfc6991" quoteTitle="true" derivedAnchor="RFC6991">
          <front>
            <title>Common YANG Data Types</title>
            <author initials="J." surname="Schoenwaelder" fullname="J. Schoenwaelder" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2013" month="July"/>
            <abstract>
              <t indent="0">This document introduces a collection of common data types to be used with the YANG data modeling language.  This document obsoletes RFC 6021.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6991"/>
          <seriesInfo name="DOI" value="10.17487/RFC6991"/>
        </reference>
        <reference anchor="RFC7011" target="https://www.rfc-editor.org/info/rfc7011" quoteTitle="true" derivedAnchor="RFC7011">
          <front>
            <title>Specification of the IP Flow Information Export (IPFIX) Protocol for the Exchange of Flow Information</title>
            <author initials="B." surname="Claise" fullname="B. Claise" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="B." surname="Trammell" fullname="B. Trammell" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="P." surname="Aitken" fullname="P. Aitken">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2013" month="September"/>
            <abstract>
              <t indent="0">This document specifies the IP Flow Information Export (IPFIX) protocol, which serves as a means for transmitting Traffic Flow information over the network.  In order to transmit Traffic Flow information from an Exporting Process to a Collecting Process, a common representation of flow data and a standard means of communicating them are required.  This document describes how the IPFIX Data and Template Records are carried over a number of transport protocols from an IPFIX Exporting Process to an IPFIX Collecting Process.  This document obsoletes RFC 5101.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="77"/>
          <seriesInfo name="RFC" value="7011"/>
          <seriesInfo name="DOI" value="10.17487/RFC7011"/>
        </reference>
        <reference anchor="RFC7323" target="https://www.rfc-editor.org/info/rfc7323" quoteTitle="true" derivedAnchor="RFC7323">
          <front>
            <title>TCP Extensions for High Performance</title>
            <author initials="D." surname="Borman" fullname="D. Borman">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="B." surname="Braden" fullname="B. Braden">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="V." surname="Jacobson" fullname="V. Jacobson">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Scheffenegger" fullname="R. Scheffenegger" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2014" month="September"/>
            <abstract>
              <t indent="0">This document specifies a set of TCP extensions to improve performance over paths with a large bandwidth * delay product and to provide reliable operation over very high-speed paths.  It defines the TCP Window Scale (WS) option and the TCP Timestamps (TS) option and their semantics.  The Window Scale option is used to support larger receive windows, while the Timestamps option can be used for at least two distinct mechanisms, Protection Against Wrapped Sequences (PAWS) and Round-Trip Time Measurement (RTTM), that are also described herein.</t>
              <t indent="0">This document obsoletes RFC 1323 and describes changes from it.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7323"/>
          <seriesInfo name="DOI" value="10.17487/RFC7323"/>
        </reference>
        <reference anchor="RFC7384" target="https://www.rfc-editor.org/info/rfc7384" quoteTitle="true" derivedAnchor="RFC7384">
          <front>
            <title>Security Requirements of Time Protocols in Packet Switched Networks</title>
            <author initials="T." surname="Mizrahi" fullname="T. Mizrahi">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2014" month="October"/>
            <abstract>
              <t indent="0">As time and frequency distribution protocols are becoming increasingly common and widely deployed, concern about their exposure to various security threats is increasing.  This document defines a set of security requirements for time protocols, focusing on the Precision Time Protocol (PTP) and the Network Time Protocol (NTP). This document also discusses the security impacts of time protocol practices, the performance implications of external security practices on time protocols, and the dependencies between other security services and time synchronization.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7384"/>
          <seriesInfo name="DOI" value="10.17487/RFC7384"/>
        </reference>
        <reference anchor="RFC7456" target="https://www.rfc-editor.org/info/rfc7456" quoteTitle="true" derivedAnchor="RFC7456">
          <front>
            <title>Loss and Delay Measurement in Transparent Interconnection of Lots of Links (TRILL)</title>
            <author initials="T." surname="Mizrahi" fullname="T. Mizrahi">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="T." surname="Senevirathne" fullname="T. Senevirathne">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Salam" fullname="S. Salam">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Kumar" fullname="D. Kumar">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Eastlake 3rd" fullname="D. Eastlake 3rd">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2015" month="March"/>
            <abstract>
              <t indent="0">Performance Monitoring (PM) is a key aspect of Operations, Administration, and Maintenance (OAM).  It allows network operators to verify the Service Level Agreement (SLA) provided to customers and to detect network anomalies.  This document specifies mechanisms for Loss Measurement and Delay Measurement in Transparent Interconnection of Lots of Links (TRILL) networks.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7456"/>
          <seriesInfo name="DOI" value="10.17487/RFC7456"/>
        </reference>
        <reference anchor="RFC7493" target="https://www.rfc-editor.org/info/rfc7493" quoteTitle="true" derivedAnchor="RFC7493">
          <front>
            <title>The I-JSON Message Format</title>
            <author initials="T." surname="Bray" fullname="T. Bray" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2015" month="March"/>
            <abstract>
              <t indent="0">I-JSON (short for "Internet JSON") is a restricted profile of JSON designed to maximize interoperability and increase confidence that software can process it successfully with predictable results.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7493"/>
          <seriesInfo name="DOI" value="10.17487/RFC7493"/>
        </reference>
        <reference anchor="RFC8186" target="https://www.rfc-editor.org/info/rfc8186" quoteTitle="true" derivedAnchor="RFC8186">
          <front>
            <title>Support of the IEEE 1588 Timestamp Format in a Two-Way Active Measurement Protocol (TWAMP)</title>
            <author initials="G." surname="Mirsky" fullname="G. Mirsky">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="I." surname="Meilik" fullname="I. Meilik">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2017" month="June"/>
            <abstract>
              <t indent="0">This document describes an OPTIONAL feature for active performance measurement protocols that allows use of the Precision Time Protocol timestamp format defined in IEEE 1588v2, as an alternative to the Network Time Protocol that is currently used.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8186"/>
          <seriesInfo name="DOI" value="10.17487/RFC8186"/>
        </reference>
      </references>
    </references>
    <section anchor="Acknowledgments" numbered="false" toc="include" removeInRFC="false" pn="section-appendix.a">
      <name slugifiedName="name-acknowledgments">Acknowledgments</name>
      <t indent="0" pn="section-appendix.a-1">The authors thank <contact fullname="Russ Housley"/>, <contact fullname="Yaakov Stein"/>, <contact fullname="Greg Mirsky"/>, <contact fullname="Warner Losh"/>, <contact fullname="Rodney Cummings"/>,
      <contact fullname="Miroslav Lichvar"/>, <contact fullname="Denis       Reilly"/>, <contact fullname="Daniel Franke"/>, <contact fullname="Éric       Vyncke"/>, <contact fullname="Ben Kaduk"/>, <contact fullname="Ian       Swett"/>, <contact fullname="Francesca Palombini"/>, <contact fullname="Watson Ladd"/>, and other members of the NTP Working Group for
      their many helpful comments. The authors gratefully acknowledge <contact fullname="Harlan Stenn"/> and the people from the Network Time
      Foundation for sharing their thoughts and ideas.</t>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.b">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author fullname="Tal Mizrahi" initials="T." surname="Mizrahi">
        <organization abbrev="" showOnFrontPage="true">Huawei</organization>
        <address>
          <postal>
            <street>8-2 Matam</street>
            <city>Haifa</city>
            <code>3190501</code>
            <country>Israel</country>
          </postal>
          <email>tal.mizrahi.phd@gmail.com</email>
        </address>
      </author>
      <author fullname="Joachim Fabini" initials="J." surname="Fabini">
        <organization showOnFrontPage="true">TU Wien</organization>
        <address>
          <postal>
            <street>Gusshausstrasse 25/E389</street>
            <city>Vienna</city>
            <code>1040</code>
            <country>Austria</country>
          </postal>
          <phone>+43 1 58801 38813</phone>
          <email>Joachim.Fabini@tuwien.ac.at</email>
          <uri>http://www.tc.tuwien.ac.at/about-us/staff/joachim-fabini/</uri>
        </address>
      </author>
      <author fullname="Al Morton" initials="A." surname="Morton">
        <organization showOnFrontPage="true">AT&amp;T Labs</organization>
        <address>
          <postal>
            <street>200 Laurel Avenue South</street>
            <city>Middletown</city>
            <region>NJ</region>
            <code>07748</code>
            <country>United States of America</country>
          </postal>
          <phone>+1 732 420 1571</phone>
          <email>acmorton@att.com</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
