<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
 which is available here: http://xml2rfc.ietf.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
There has to be one entity for each item to be referenced.
An alternate method (rfc include) is described in the references. -->
<!--ENTITY RFC3605 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3605.xml">-->
<!ENTITY RFC3168 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3168.xml">
<!ENTITY RFC2474 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2474.xml">
<!ENTITY RFC3234 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3234.xml">
<!ENTITY RFC3135 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3135.xml">
<!ENTITY RFC3550 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3550.xml">
<!ENTITY RFC8087 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8087.xml">
<!ENTITY RFC4585 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4585.xml">
<!ENTITY RFC5246 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5246.xml">
<!ENTITY RFC7525 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7525.xml">
<!ENTITY RFC4301 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4301.xml">
<!ENTITY RFC7713 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7713.xml">
<!ENTITY RFC7567 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7567.xml">
<!ENTITY RFC6437 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6437.xml">
<!ENTITY RFC7624 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7624.xml">
<!ENTITY RFC3449 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3449.xml">
<!ENTITY RFC5925 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5925.xml">
<!ENTITY RFC6347 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6347.xml">
<!ENTITY RFC8086 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8086.xml">
<!ENTITY RFC7258 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7258.xml">
<!ENTITY RFC4303 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4303.xml">
<!ENTITY RFC6679 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6679.xml">
<!ENTITY RFC7928 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7928.xml">
<!ENTITY RFC3819 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3819.xml">
<!ENTITY RFC5559 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5559.xml">
<!ENTITY RFC8085 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8085.xml">
<!ENTITY RFC4302 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4302.xml">
<!ENTITY RFC8084 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8084.xml">
<!ENTITY RFC5236 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5236.xml">
<!ENTITY RFC4737 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4737.xml">
<!ENTITY I-D.mm-wg-effect-encrypt SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-mm-wg-effect-encrypt-11.xml">
<!ENTITY I-D.ietf-quic-transport SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ietf-quic-transport-03.xml">
<!ENTITY I-D.dolson-plus-middlebox-benefits SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-dolson-plus-middlebox-benefits-03.xml">
<!ENTITY I-D.trammell-plus-abstract-mech SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-trammell-plus-abstract-mech-00.xml">
<!ENTITY I-D.trammell-plus-statefulness SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-trammell-plus-statefulness-02.xml">
<!ENTITY I-D.ietf-aqm-fq-codel SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ietf-aqm-fq-codel-00.xml">
<!ENTITY I-D.ietf-aqm-pie SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ietf-aqm-pie-00.xml">
<!ENTITY I-D.ietf-aqm-codel SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ietf-aqm-codel-00.xml">
<!ENTITY I-D.ietf-tcpm-dctcp SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ietf-tcpm-dctcp-06.xml">
<!ENTITY I-D.ietf-tcpm-accurate-ecn SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ietf-tcpm-accurate-ecn-00.xml">
<!ENTITY I-D.ietf-tsvwg-l4s-arch SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ietf-tsvwg-l4s-arch-00.xml">
<!ENTITY I-D.ietf-ippm-6man-pdm-option SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ietf-ippm-6man-pdm-option-10.xml">
<!ENTITY RFC2119 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!--<!ENTITY RFC2119 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
 -->
<!-- http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml-->
<!--- ENTITY RFC0793 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.0793.xml">
<!ENTITY RFC0854 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.0854.xml">
<!ENTITY RFC1122 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.1122.xml">
<!ENTITY RFC2119 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC3260 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3260.xml">
<!ENTITY RFC3758 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3758.xml">
<!ENTITY RFC4895 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4895.xml">
<!ENTITY RFC4960 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4960.xml">
<!ENTITY RFC5061 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5061.xml">
<!ENTITY RFC5482 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5482.xml">
<!ENTITY RFC5461 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5461.xml">
<!ENTITY RFC5925 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5925.xml">
<!ENTITY RFC6093 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6093.xml">
<!ENTITY RFC6182 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6182.xml">
<!ENTITY RFC6458 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6458.xml">
<!ENTITY RFC6525 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6525.xml">
<!ENTITY RFC6817 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6817.xml">
<!ENTITY RFC6824 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6824.xml">
<!ENTITY RFC6897 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6897.xml">
<!ENTITY RFC6951 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6951.xml">
<!ENTITY RFC7053 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7053.xml">
<!ENTITY RFC7413 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7413.xml">
<!ENTITY RFC7414 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7414.xml">
<!ENTITY RFC7657 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7657.xml">
<!ENTITY RFC7496 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7496.xml">
<!ENTITY RFC7829 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7829.xml">
<!ENTITY RFC8085 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8085.xml">
<!ENTITY RFC8095 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8095.xml">
<!ENTITY I-D.narten-iana-considerations-rfc2434bis SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.narten-iana-considerations-rfc2434bis.xml">
<!ENTITY I-D.draft-ietf-tsvwg-sctp-ndata SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ietf-tsvwg-sctp-ndata-08.xml">
 -->
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs),
 please see http://xml2rfc.tools.ietf.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
 (Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="3"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space
 (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="yes" ?>
<!-- do not keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt"?>
<rfc category="info" docName="draft-fairhurst-tsvwg-transport-encrypt-02"
     ipr="trust200902">
  <!--	noModificationTrust200902 noDerivativesTrust200902 pre5378Trust200902">-->

  <!-- updates="6298"> -->

  <!-- ipr="full3978"> -->

  <!-- category values: std, bcp, info, exp, and historic
     ipr values: full3667, noModification3667, noDerivatives3667
     you can add the attributes updates="NNNN" and obsoletes="NNNN"
     they will automatically be output with "(if approved)" -->

  <!-- ***** FRONT MATTER ***** -->

  <front>
    <!-- The abbreviated title is used in the page header - it is only necessary if the
         full title is longer than 39 characters -->

    <!-- <title abbrev="Abbreviated Title">Coupled congestion control</title> -->

    <title abbrev="Transport Encryption">The Impact of Transport Header
    Encryption on Operation and Evolution of the Internet</title>

    <!-- add 'role="editor"' below for the editors if appropriate -->

    <!-- Another author who claims to be an editor -->

    <author fullname="Godred Fairhurst" initials="G." surname="Fairhurst">
      <organization>University of Aberdeen</organization>

      <address>
        <postal>
          <street>Department of Engineering</street>

          <street>Fraser Noble Building</street>

          <city>Aberdeen</city>

          <code>AB24 3UE</code>

          <country>Scotland</country>
        </postal>

        <email>gorry@erg.abdn.ac.uk</email>

        <uri>http://www.erg.abdn.ac.uk/</uri>
      </address>
    </author>

    <!-- <date day="06" month="June" year="2015" /> -->

    <date day="07" month="June" year="2017" />

    <!-- If the month and year are both specified and are the current ones, xml2rfc will fill
         in the current day for you. If only the current year is specified, xml2rfc will fill
         in the current day and month for you. If the year is not the current one, it is
         necessary to specify at least a month (xml2rfc assumes day="1" if not specified for the
         purpose of calculating the expiry date).  With drafts it is normally sufficient to
         specify just the year. -->

    <!-- Meta-data Declarations -->

    <area>Transport</area>

    <workgroup>TSVWG</workgroup>

    <!-- WG name at the upperleft corner of the doc,
         IETF is fine for individual submissions.
         If this element is not present, the default is "Network Working Group",
         which is used by the RFC Editor as a nod to the history of the IETF. -->

    <keyword>transport design, operations and management</keyword>

    <!-- Keywords will be incorporated into HTML output
         files in a meta tag but they have no effect on text or nroff
         output. If you submit your draft to the RFC Editor, the
         keywords will be used for the search engine. -->

    <abstract>
      <t>This document describes the implications of applying end-to-end
      encryption at the transport layer. It identifies some in-network uses of
      transport layer header information that can be used with a transport
      header integrity check. It reviews the implication of developing
      encrypted end-to-end transport protocols and examines the implication of
      developing and deploying encrypted end-to-end transport protocols.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="sec-intro" title="Introduction">
      <t>This document discusses the implications of end-to-end encryption
      applied at the transport layer, and examines the impact on transport
      protocol design, transport use, and network operations and management.
      It also considers some anticipated implications on transport and
      application evolution.</t>

      <t>The transport layer is the first end-to-end layer in the network
      stack. Despite headers having end-to-end meaning, some transport headers
      have come to be used in various ways within the Internet. In response to
      pervasive monitoring <xref target="RFC7624"></xref> revelations and the
      IETF consensus that "Pervasive Monitoring is an Attack" <xref
      target="RFC7258"></xref>, efforts are underway to increase encryption of
      Internet traffic, which would prevent visibility of transport headers.
      This has implications on how network protocols are designed and used
      <xref target="I-D.mm-wg-effect-encrypt"></xref>.</t>

      <t>Transport information that is sent without end-to-end integrity check
      could be modified by "middleboxes" - defined as any intermediary box
      performing functions apart from normal, standard functions of an IP
      router on the data path between a source host and destination host <xref
      target="RFC3234"> </xref>. When transport headers are modified by
      network devices on the path, this can change the end-to-end protocol
      transport protocol behaviour in a way that may have benefits (e.g., to
      user performance/cost) or may hinder (e.g., disrupting application
      experience). Whatever the outcome, modification of packets by a
      middlebox was not usually intended when the protocol was specified and
      is usually not known by the sending or receiving endpoints.</t>

      <t>Middleboxes have been deployed for a variety of reasons <xref
      target="RFC3234"></xref>, including protocol enhancement, proxies such
      as Protocol Enhancing Proxies (PEPs) <xref target="RFC3135"> </xref>,
      TCP acknowledgement (ACK) enhancement <xref target="RFC3449"> </xref>,
      use by application protocol caches <xref
      target="I-D.mm-wg-effect-encrypt"> </xref>, application layer gateways
      <xref target="I-D.mm-wg-effect-encrypt"> </xref>, etc. <xref
      target="I-D.dolson-plus-middlebox-benefits"> </xref> summarizes some of
      the functions provided by such middleboxes, and benefits that may arise
      when used in specific deployment scenarios. Such methods, which involve
      in-network modification of transport headers, are not further
      discussed.</t>

      <t>Transport protocols can be designed to encrypt or authenticate
      transport header fields. Authentication methods at the transport layer
      can detect any changes to an immutable header field that were made by a
      network device along a path. These methods do not require encryption of
      the header fields, and hence authenticated fields may remain visible to
      network devices. A receiving transport endpoint can use an integrity
      check to avoid accepting modified protocol headers. This document
      therefore considers the case where transport header fields are not
      altered as a packet traverses the network path.</t>

      <t>Authentication methods (that provide integrity checks of protocols
      fields) have also been specified at the network layer, and this also
      protects transport header fields. The network layer itself carries
      protocol header fields that are increasingly used to help forwarding
      decisions reflect the need of transport protocols, such the IPv6 Flow
      Label <xref target="RFC6437"> </xref>, the Differentiated Services Code
      Point (DSCP) <xref target="RFC2474"> </xref> and Explicit Congestion
      Notification (ECN) <xref target="RFC3168"> </xref>.</t>

      <t>Encryption methods can hide information from an eavesdropper in the
      network. Encryption can also help protect the privacy of a user, by
      hiding data relating to user/device identity or location. Neither an
      integrity check nor encryption methods prevent traffic analysis, and
      usage needs to reflect that profiling of users and fingerprinting of
      behaviour can take place even on encrypted traffic flows.</t>

      <t>This document seeks to identify the implications of various
      approaches to transport protocol authentication and encryption.</t>

      <!--NOTE:
The intention here is not to take a position on whether encryption of the transport payload is desirable,
or the implications of authentication on middlebox function. These topics are covered by other IDs.
                -->

      <t></t>
    </section>

    <section anchor="Transport-encrypt"
             title="Internet Transports and Pervasive Encryption">
      <t>End-to-end encryption can be applied at various protocol layers. It
      can be applied above the transport to encrypt the transport payload. One
      motive to use encryption is a response to perceptions that the network
      has become ossified by over-reliance on middleboxes that prevent new
      protocols and mechanisms from being deployed. This has lead to a common
      perception that there is too much &ldquo;manipulation&rdquo; of protocol
      headers within the network, and that designing to deploy in such
      networks is preventing transport evolution. In the light of this, a
      method that authenticates transport headers may help improve the pace of
      transport development, by eliminating the need to always consider
      deployed middleboxes <xref target="I-D.trammell-plus-abstract-mech">
      </xref>, or potentially to only explicitly enable middlebox use for
      particular paths with particular middleboxes <xref target="RFC3135">
      </xref>.</t>

      <t>Another perspective stems from increased concerns about privacy and
      surveillance. Some Internet users have valued the ability to protect
      identity and defend against traffic analysis, and have used methods such
      as IPsec ESP and Tor <xref target="Tor"></xref>. Revelations about the
      use of pervasive surveillance <xref target="RFC7624"></xref> have, to
      some extent, eroded trust in the service offered by network operators,
      and following the Snowden revelation in the USA in 2013 has led to an
      increased desire for people to employ encryption to avoid unwanted
      "eavesdropping" on their communications. Whatever the reasons, there are
      now activities in the IETF to design new protocols that may include some
      form of transport header encryption (e.g., QUIC <xref
      target="I-D.ietf-quic-transport"> </xref>).</t>

      <t>The use of transport layer authentication and encryption exposes a
      tussle between middlebox vendors, operators, applications developers and
      users. <list style="symbols">
          <t>On the one hand, future Internet protocols that enable
          large-scale encryption assist in the restoration of the end-to-end
          nature of the Internet by returning complex processing to the
          endpoints, since middleboxes cannot modify what they cannot see.</t>

          <t>On the other hand, encryption of transport layer header
          information has implications to people responsible for operating
          networks and researchers and analysts seeking to understand the
          dynamics of protocols and traffic patterns.</t>
        </list></t>

      <t>Whatever the motives, a decision to use pervasive of transport header
      encryption will have implications on the way in which design and
      evaluation is performed, and which can in turn impact the direction of
      evolution of the TCP/IP stack.</t>

      <t>The next subsections briefly review some security design options for
      transport protocols.</t>

      <section anchor="Auth-method"
               title="Authenticating the Transport Protocol Header">
        <t>Transport layer header information can be authenticated. An
        integrity check that protects the immutable transport header fields,
        but can still expose the transport protocol header information in the
        clear, allowing in-network devices to observes these fields. An
        integrity check can not prevent in-network modification, but can avoid
        accepting changes and avoid impact on the transport protocol
        operation.</t>

        <t>An example transport authentication mechanism is TCP-Authentication
        (TCP-AO) <xref target="RFC5925"> </xref>. This TCP option
        authenticates TCP segments, including the IP pseudo header, TCP
        header, and TCP data. TCP-AO protects the transport layer, preventing
        attacks from disabling the TCP connection itself. TCP-AO may interact
        with middleboxes, depending on their behavior <xref target="RFC3234">
        </xref>.</t>

        <t>The IPSec Authentication Header (AH) <xref target="RFC4302">
        </xref> works at the network layer and authenticates the IP payload.
        This therefore also authenticates all transport headers, and verifies
        their integrity at the receiver, preventing in-network
        modification.</t>
      </section>

      <section anchor="Encrypt-method"
               title="Encrypting the Transport Payload">
        <t>The transport layer payload can be encrypted to protect the content
        of transport segments. This leaves transport protocol header
        information in the clear. The integrity of immutable transport header
        fields could be protected by combining this with an integrity check
        (<xref target="Auth-method"></xref>).</t>

        <t>Examples of encrypting the payload include Transport Layer Security
        (TLS) over TCP <xref target="RFC5246"> </xref> <xref target="RFC7525">
        </xref> or Datagram TLS (DTLS) over UDP <xref target="RFC6347">
        </xref> <xref target="RFC7525"> </xref>.</t>

        <!--
                 -->
      </section>

      <section anchor="Encrypt" title="Encrypting the Transport Header">
        <t>The network layer payload could be encrypted (including the entire
        transport header and payload). This method does not expose any
        transport information to devices in the network, which also prevents
        modification along the network path.</t>

        <t>The IPSec Encapsulating Security Payload (ESP) <xref
        target="RFC4303"> </xref> is an example of encryption at the network
        layer, it encrypts and authenticates all transport headers, preventing
        visibility of the headers by in-network devices. Some Virtual Private
        Network (VPN) methods also encrypt these headers.</t>
      </section>

      <section anchor="Auth_and_Encrypt"
               title="Authenticating Transport Information and Selectively Encrypting the Transport Header">
        <t>A transport protocol design can encrypt selected header fields,
        while also choosing to authenticate fields in the transport header.
        This allows specific transport header fields to be made observable by
        network devices. End-to end integrity checks can prevent an endpoint
        from undetected modification of the immutable transport headers.</t>

        <t>The choice of which fields to expose and which to encrypt is a
        design choice for the transport protocol. Any selective encryption
        method requires trading two conflicting goals for a transport protocol
        designer to decide which header fields to encrypt. On the one hand,
        security work typically employs a design technique that seeks to
        expose only what is needed. On the other hand, there may be
        performance and operational benefits in exposing selected information
        to network tools.</t>

        <t>Mutable fields in the transport header provide opportunities for
        middleboxes to modify the transport behaviour (e.g., the extended
        headers described in <xref
        target="I-D.trammell-plus-abstract-mech"></xref>). This considers only
        immutable fields in the transport headers, that is, fields that may be
        authenticated end-to-end across a path.</t>

        <t>An example of a method that encrypts some, but not all, transport
        information is UDP-in-GRE <xref target="RFC8086"> </xref> when used
        with GRE encryption.</t>
      </section>

      <section title="Adding Transport Information to Network-Layer Protocol Headers">
        <t>The transport information can be made visible in a network-layer
        header. This has the advantage that this information can then be
        observed by in-network devices. This has the advantage that a single
        header can support all transport protocols, but there may also be less
        desirable implications of separating the operation of the transport
        protocol from the measurement framework.</t>

        <t>Some measurements may be made by adding additional protocol headers
        carrying operations, administration and management (OAM) information
        to packets at the ingress to a maintenance domain (e.g., an Ethernet
        protocol header with timestamps and sequence number information using
        a method such as 802.11ag) and removing the additional header at the
        egress of the maintenance domain. This approach enables some types of
        measurements, but does not cover the entire range of measurements
        described in this document.</t>

        <t>Another example of a network-layer approach is the IPv6 Performance
        and Diagnostic Metrics (PDM) Destination Option <xref
        target="I-D.ietf-ippm-6man-pdm-option"></xref>. This allows a sender
        to optionally include a destination option that caries header fields
        that can be used to observe timestamps and packet sequence numbers.
        This information could be authenticated by receiving transport
        endpoints when the information is added at the sender and visible at
        the receiving endpoint, although methods to do this have not currently
        been proposed. This method needs to be explicitly enabled at the
        sender.</t>

        <t>A drawback of using extension headers is that IPv4 network options
        are often not supported (or are carried on a slower processing path)
        and some IPv6 networks are also known to drop packets that set an IPv6
        header extension. Another disadvantage is that protocols that
        separately expose header information do not necessarily have an
        advantage to expose the information that is utilised by the protocol
        itself, and could manipulate this header information to gain an
        advantage from the network.</t>
      </section>
    </section>

    <section anchor="network" title="Use of Transport Headers in the Network">
      <t>This section identifies ways that actors can benefit by observing
      (non-encrypted) transport header fields at devices in the network. The
      list of actors who perform measurements include:</t>

      <t><list style="symbols">
          <t>Protocol developers and implementors of TCP/IP stacks;</t>

          <t>Researchers working on new mechanisms;</t>

          <t>Use of new applications using existing applications;</t>

          <t>Analysis researching the impact of mechanisms on network
          equipment or specific network topologies;</t>

          <t>Staff supporting operation of a network.</t>
        </list></t>

      <t>One approach is to use active measurement using dedicated tools to
      generate and measure test traffic. To test a transport path, such active
      tools need to be run from an endpoint, and most operators do not have
      access to user equipment. There may also be costs associated with
      running such tests (e.g., the implications of bandwidth tests in a
      mobile network are obvious). Some active measurements (e.g., response
      under load or particular workloads) may perturb other traffic, and could
      require dedicated access to the network segment. An alternative approach
      is to use in-network techniques that observe transport packet headers in
      operational networks to make the measurements.</t>

      <t>Transport layer information can help identify whether the
      link/network tuning is effective and alert to potential problems that
      can be hard to derive from link or device measurements alone. The design
      trade offs for radio networks are often very different to those of wired
      networks. A radio-based network (e.g., cellular mobile, enterprise WiFi,
      satellite access/backhaul, point-to-point radio) has the complexity of a
      subsystem that performs radio resource management - with direct impact
      on the available capacity, and potentially loss/reordering of packets.
      The impact of the pattern of loss and congestion, differs for different
      traffic types, correlation with propagation and interference can all
      have significant impact on the cost and performance of a provided
      service. The need for this type of information is expected to increase
      as operators bring together heterogeneous types of network equipment and
      seek to deploy opportunistic methods to access radio spectrum.</t>

      <t>In-network observation of transport protocol headers requires
      knowledge of the format of the transport header:</t>

      <t><list style="symbols">
          <t>Flows, need to be identified at the level required for
          monitoring;</t>

          <t>The protocol and version of the header that is being used. As
          protocols evolve over time and there may be a need to introduce new
          transport headers. This may require interpretation of protocol
          version information or connection setup information;</t>

          <t>The position and syntax of any transport headers that need to be
          observed. IETF transport protocols specify this information.</t>
        </list></t>

      <t>The following subsections describe various ways that observable
      transport information may be utilised.</t>

      <section anchor="demux" title="Use to Identify Flows and Packet Formats">
        <t>Transport protocol header information can identify a flow and the
        connection state of the flow, together with the protocol options being
        used. In some usages, a low-numbered (well-known ) port that can
        identify a protocol (although port information alone is not sufficient
        to guarantee identification of a protocol). Transport protocols, such
        as TCP and SCTP specify a standard base header that includes sequence
        number information and other data, with the possibility to negotiate
        additional headers at connection setup and identified by an option
        number in the transport header. UDP-based protocols sometimes do not
        use well-known ports but also can instead be identified by signalling
        protocols or through the use of magic numbers placed in the first
        byte(s) of the datagram payload.</t>
      </section>

      <section anchor="stats"
               title="Measurements derived from Transport Header Information">
        <t>Some actors have a need to characterise the performance of
        link/network segments. Passive monitoring uses observed traffic to
        makes inferences from transport headers to derive measurements. A
        variety of open source and commercial tools can utilise this
        information. Transport fields in the Real Time Protocol (RTP)
        header<xref target="RFC3550"></xref> <xref target="RFC4585"></xref>
        can be observed to derive traffic volume measurements and provide
        information on the progress and quality of a session using RTP. Key
        performance indicators are retransmission rate, packet drop rate,
        sector utilization level, a measure of reordering, peak rate, the
        CE-marking rate, etc. Metadata is often important to understand the
        context under which the data was collected, including the time,
        observation point, and way in which metrics were accumulated.</t>

        <t>Some Internet transports report summary performance data that is
        observable in the network (e.g., RTCP feedback<xref
        target="RFC3550"></xref>). A user of summary measurement data needs to
        trust the source of this data and the method used to generate the
        summary information.</t>

        <t>When encryption conceals information in packet headers,
        measurements need to rely on pattern inferences and other heuristics
        grows, and accuracy suffers <xref
        target="I-D.mm-wg-effect-encrypt"></xref>.</t>

        <section title="Use to Characterise Traffic Rate and Volume">
          <t>Transport headers may be observed to derive volume measures
          per-application, to characterise the traffic using a network segment
          and pattern of network usage. This may be measured per endpoint or
          aggregate of endpoint (e.g., by an operator to assess subscriber
          usage). This can also be used to trigger measurement-based traffic
          shaping and to implement QoS support within the network and lower
          layers. Volume measures can be valuable for capacity planning
          (providing detail of trends rather than the volume per
          subscriber).</t>
        </section>

        <section title="Measuring Loss Rate and Loss Pattern">
          <t>Flow loss rate is often used as a metric for performance
          assessment and to characterise the transport behaviour.
          Understanding the root cause of loss can help an operator determine
          whether this requires corrective action.</t>

          <t>There are various cause of loss, including: corruption on a link
          (e.g., interference on a radio link), buffer overflow (e.g., due to
          congestion), policing (traffic management), buffer management (e.g.,
          Active Queue Management (AQM). Loss can be monitored at the
          interface level by devices in the network. It is often important to
          understand the conditions under which packet loss occurs, which
          usually means relating loss to the traffic flowing on the network
          segment at the time of loss. Understanding flow loss rate requires
          either maintaining per flow packet counters or by observing sequence
          numbers in transport headers.</t>

          <t>Observation of transport feedback information (observing loss
          reports, e.g., RTCP, TCP SACK) can increase understanding of the
          impact of loss and help identify cases where loss may have been
          wrongly identified, or the transport did not require the lost
          packet. It is sometimes more important to understand the pattern of
          loss, than the loss rate - since losses can often occur as bursts,
          rather than randomly timed events.</t>
        </section>

        <section title="Measuring Throughput and Goodput">
          <t>The throughput observed by a flow can be determined even when a
          flow is encrypted, providing the individual flow can be identified.
          Goodput <xref target="RFC7928"> </xref> is a measure of useful data
          exchanged (the ratio of useful/total volume of traffic sent by a
          flow), which requires ability to differentiate loss and
          retransmission of packets (e.g., by observing packet sequence
          numbers in TCP or RTP).</t>
        </section>

        <section anchor="Latency-Sect"
                 title="Measuring Latency (Network Transit Delay and Jitter)">
          <t>Latency is a key performance metric that impacts application
          response time and user-perceived response time. It also often
          indirectly impacts throughput and flow completion time. Latency
          determines the reaction time of the transport protocol itself,
          impacting flow setup, congestion control, loss recovery, and other
          transport mechanisms. The observed latency can have many components
          <xref target="Latency"></xref>. Of these, unnecessary/unwanted
          queuing in network buffers has often been observed as a significant
          factor. Once the cause of unwanted latency has been identified, this
          can often be eliminated, and determining latency metrics is a key
          driver in the deployment of AQM <xref target="RFC7567"> </xref>,
          DiffServ <xref target="RFC2474"> </xref>, and ECN <xref
          target="RFC3168"> </xref> <xref target="RFC8087"> </xref>.</t>

          <t>To measure latency across a part of the path, an observation
          point can measure the experienced round trip time (RTT) using packet
          sequence numbers, and acknowledgements, or by observing header
          timestamp information. Such information allows an observation point
          in the network to determine not only the path RTT, but also to
          measure the upstream and downstream contribution to the RTT. This
          may be used to locate a source of latency, e.g., by observing cases
          where the ratio of median to minimum RTT is large for a part of a
          path.</t>

          <t>An example usage of this method could be to identify excessive
          buffers and to deploy or configure Active Queue Management (AQM)
          <xref target="RFC7567"> </xref> <xref target="RFC7928"> </xref>.
          Operators deploying such tools can effectively eliminate unnecessary
          queuing in routers and other devices. AQM methods need to be
          deployed at the capacity bottleneck, but are often deployed in
          combination with other techniques, such as scheduling <xref
          target="RFC7567"> </xref> <xref target="I-D.ietf-aqm-fq-codel">
          </xref> and although parameter-less methods are desired <xref
          target="RFC7567"> </xref>, current methods <xref
          target="I-D.ietf-aqm-fq-codel"> </xref> <xref
          target="I-D.ietf-aqm-codel"> </xref> <xref
          target="I-D.ietf-aqm-pie"> </xref> often cannot scale across all
          possible deployment scenarios. The service offered by operators can
          therefore benefit from latency information to understand the impact
          of deployment and tune deployed services.</t>

          <t>Some network applications are sensitive to packet jitter, and it
          can be necessary to measure the jitter observed along a portion of
          the path. The requirements to measure jitter resemble those for the
          measurement of latency.</t>
        </section>

        <section title="Measuring Flow Reordering">
          <t>Significant flow reordering can impact time-critical applications
          and can be interpreted as loss by reliable transports. Many
          transport protocol techniques are impacted by reordering (e.g.,
          triggering TCP retransmission, or rebuffering of real-time
          applications). Packet reordering can occur for many reasons (from
          equipment design to misconfiguration of forwarding rules).</t>

          <t>As in the drive to reduce network latency, there is a need for
          operational tools to be able to detect misordered packet flows and
          quantify the degree or reordering. Techniques for measuring
          reordering typically observe packet sequence numbers. Metrics have
          been defined that evaluate whether a network has maintained packet
          order on a packet-by-packet basis <xref target="RFC4737"></xref> and
          <xref target="RFC5236"></xref>.</t>

          <t>There has been initiatives in the IETF transport area to reduce
          the impact of reordering withing a transport flow, possibly leading
          to reduced the requirements for ordering. These have promise to
          simplify network equipment design as well as the potential to
          improve robustness of the transport service. Measurements of
          reordering can help understand the level of reordering within
          deployed infrastructure, and inform decisions about how to progress
          such mechanisms.</t>
        </section>
      </section>

      <section title="Measurements derived from Network-Transport Information">
        <t>This section describes transport information that is already
        observable in network-layer header fields.</t>

        <section anchor="Flow" title="Use of IPv6 Network-Layer Flow Label">
          <t>Endpoints should expose flow information in the IPv6 Flow Label
          field of the network-layer header (e..g. <xref target="RFC8085">
          </xref>). This can be used to inform network-layer queuing,
          forwarding (e.g., for equal cost multi-path (ECMP) routing, and Link
          Aggregation (LAG)). This can provide useful information to assign
          packets to flows in the data collected by measurement campaigns.
          Although important to characterising a path, it does not directly
          provide any performance data.</t>
        </section>

        <section anchor="DSCP"
                 title="Use Network-Layer Differentiated Services Code Point Point">
          <t>Application can expose their delivery expectations to the
          network, by setting the Differentiated Services Code Point (DSCP)
          field of IPv4 and IPv6 packets. This can be used to inform
          network-layer queuing and forwarding, and can also provide
          information on the relative importance of packet information
          collected by measurement campaigns, but does not directly provide
          any performance data.</t>

          <t>This field provides explicit information that can be used in
          place of inferring traffic requirements (e.g., by inferring QoS
          requirements from port information via a multi-field classifier).
          The DSCP value can therefore impact the quality of experience for a
          flow. Observations of service performance need to consider this
          field when a network path has support for differentiated service
          treatment.</t>
        </section>

        <section anchor="ECN" title="Use of Explicit Congestion Marking">
          <t>Explicit Congestion Notification (ECN)<xref target="RFC3168">
          </xref> uses a codepoint in the network-layer header. Use of ECN can
          offer gains in terms of increased throughput, reduced delay, and
          other benefits when used over a path that includes equipment that
          supports an AQM method that performs Congestion Experienced (CE)
          marking of IP packets <xref target="RFC8087"> </xref>.</t>

          <t>This exposes the presence of congestion on a network path to the
          transport and network layer. The reception of Congestion Experienced
          (CE) marked packets can therefore be used to monitor the presence
          and estimate the level of incipient congestion on the upstream
          portion of the path from the point of observation (Section 2.5 of
          <xref target="RFC8087"> </xref>). Because ECN marks carried in the
          IP protocol header, measuring ECN can be much easier than metering
          packet loss. However, interpreting the marking behaviour (i.e.,
          assessing congestion and diagnosing faults) requires context from
          the transport layer (path RTT, visibility of loss - that could be
          due to queue overflow, congestion response, etc)<xref
          target="RFC7567"> </xref>.</t>

          <t>Some ECN-capable network devices can provide richer (more
          frequent and fine-grained) indication of their congestion state.
          Setting congestion marks proportional to the level of congestion
          (e.g., DCTP <xref target="I-D.ietf-tcpm-dctcp"> </xref>, and L4S
          <xref target="I-D.ietf-tsvwg-l4s-arch"> </xref>).</t>

          <t>AQM and ECN offer a range of algorithms and configuration
          options, it is therefore important for tools to be available to
          network operators and researchers to understand the implication of
          configuration choices and transport behaviour as use of ECN
          increases and new methods emerge <xref target="RFC7567"> </xref>
          <xref target="RFC8087"> </xref>. ECN-monitoring is expected to
          become important as AQM is deployed that supports ECN <xref
          target="RFC8087"> </xref></t>

          <t><xref target="ECN-feedback"></xref> describes the transport layer
          feedback information that accompanies the use of ECN.</t>
        </section>
      </section>
    </section>

    <section title="Transport Measurement">
      <t>The common language between network operators and application/content
      providers/users is packet transfer performance at a layer that all can
      view and analyze. For most packets, this has been transport layer, until
      the emergence of QUIC, with the obvious exception of VPNs and IPsec.
      When encryption conceals more layers in a packet, people seeking
      understanding of the network operation need to rely more on pattern
      inferences and other heuristics. The accuracy of measurements therefore
      suffers, as does the ability to investigate and troubleshoot
      interactions between different anomalies. For example, the traffic
      patterns between server and browser are dependent on browser supplier
      and version, even when the sessions use the same server application
      (e.g., web e-mail access). Even when measurement datasets are made
      available (e.g., from endpoints) additional metadata, such as the state
      of the network, is often required to interpret the data. Collecting and
      coordinating such metadata is more difficult when the observation point
      is at a different location to the bottleneck/device under
      evaluation.</t>

      <t>Packet sampling techniques can be used to scale processing involved
      in observing packets on high rate links. This only exports the packet
      header information of (randomly) selected packets. The utility of these
      measurements depends on the type of bearer and number of mechanisms used
      by network devices. Simple routers are relatively easy to manage, a
      device with more complexity demands understanding of the choice of many
      system parameters. This level of complexity exists when several network
      methods are combined.</t>

      <t>This section discusses topics concerning transport measurement.</t>

      <section anchor="point" title="Point of Measurement">
        <t>Often measurements can only be understood in the context of the
        other flows that share a bottleneck. A simple example is the
        monitoring of AQM. For example, FQ-CODEL <xref
        target="I-D.ietf-aqm-fq-codel"></xref>, combines sub queues
        (statistically assigned per flow), management of the queue length
        (CODEL), flow-scheduling, and a starvation prevention mechanism.
        Usually such algorithms are designed to be self-tuning, but current
        methods typically employ heuristics that can result in more loss under
        certain path conditions (e.g., large RTT, effects of multiple
        bottlenecks <xref target="RFC7567"></xref>).</t>

        <t>In-network measurements that can distinguish between upstream and
        downstream metrics with respect to the measurement point. They are
        particularly useful for locating the source of problems or to assess
        the performance of a network segment or a particular device
        configuration.</t>
      </section>

      <section title="Use by Operators to Plan and Provision Networks ">
        <t>Traffic measurements (e.g. Traffic volume, loss, latency) is used
        by operators to help plan deployment of new equipment and
        configurations in their networks. Data is also important to equipment
        vendors who need to understand traffic trends traffic and patterns of
        usage as inputs to decisions about planning products and provisioning
        for new deployments. This measurement information can also be
        correlated with billing information when this is also collected by an
        operator.</t>

        <t>A network operator supporting traffic that uses transport header
        encryption may not have access to per-flow measurement data. Trends in
        aggregate traffic can be observed and can be related this to the
        endpoint addresses being used, but it may not be possible to correlate
        patterns in measurements with changes in transport protocols (e.g.,
        the impact of changes in introducing a new transport protocol
        mechanism). This increases the dependency on other indirect sources of
        information to inform planning and provisioning.</t>
      </section>

      <section title="Service Performance Measurement">
        <t>Traffic measurements (e.g., traffic volume, loss, latency) can be
        used by various actors to help understand the performance available to
        users of a network segment. While active measurements may be used
        in-network passive measurements can have advantages in terms of
        eliminating unproductive traffic, reducing the influence of test
        traffic on the overall traffic mix, and the ability to choose the
        point of measurement <xref target="point"></xref>.</t>
      </section>

      <section title="Use for Network Diagnostics and Troubleshooting ">
        <t>Transport header information is useful for a variety of operational
        tasks <xref target="I-D.mm-wg-effect-encrypt"> </xref>: to diagnose
        network problems, assess performance, capacity planning, management of
        denial of service threats, and responding to user performance
        questions. These tasks seldom involve the need to determine the
        contents of the transport payload, or other application details.</t>

        <t>A network operator supporting traffic that uses transport header
        encryption can see only encrypted transport headers. This prevents
        deployment of performance measurement tools that rely on transport
        protocol information. Choosing to encrypt all information may be
        expected to reduce the ability for networks to &ldquo;help&rdquo;
        (e.g., in response to tracing issues, making appropriate Quality of
        Service, QoS, decisions). For some this will be blessing, for others
        it may be a curse. For example, operational performance data about
        encrypted flows needs to be determined by traffic pattern analysis,
        rather than relying on traditional tools. This can impact the ability
        of the operator to respond to faults, it could require reliance on
        endpoint diagnostic tools or user involvement in diagnosing and
        troubleshooting unusual use cases or non-trivial problems. Although
        many network operators utilise transport information as a part of
        their operational practice, the network will not break because
        transport headers are encrypted.</t>
      </section>

      <section title="Acceptable Response to Congestion">
        <t>Congestion control is a key transport function. Many network
        operators implicitly accept that TCP traffic to comply with a
        behaviour that is acceptable for use in the shared Internet. TCP
        algorithms have been continuously improved over decades, and they have
        reached a level of efficiency and correctness that custom
        application-layer mechanisms will struggle to easily duplicate <xref
        target="RFC8085"> </xref>. A standards-compliant TCP stack provides
        congestion control that is therefore judged safe for use across the
        Internet. Applications developed on top of well-designed transports
        can be expected to appropriately control their network usage, reacting
        when the network experiences congestion, by back-off and reduce the
        load placed on the network. This is the normal expected behaviour for
        TCP and other IETF-defined transports.</t>

        <t>Tools exist that can interpret the transport protocol header
        information to help understand the impact of specific transport
        protocols (or protocol mechanisms) on other traffic that shares their
        network. An observation in the network can gain understanding of the
        dynamics of a flow and its congestion control behaviour. Analysing
        observed packet sequence numbers can be used to help build confidence
        that an application flow backs-off its share of the network load in
        the face of persistent congestion, and hence to understand whether the
        behaviour is appropriate for sharing limited network capacity. For
        example, it is common to visualise plots of TCP sequence numbers
        versus time for a flow to understand how a flow shares available
        capacity, deduce its dynamics in response to congestion, etc.</t>

        <section title="Measuring Compliance of UDP Traffic">
          <t>UDP provides a minimal message-passing transport that has no
          inherent congestion control mechanisms. Because congestion control
          is critical to the stable operation of the Internet, applications
          and other protocols that choose to use UDP as an Internet transport
          must employ mechanisms to prevent congestion collapse, avoid
          unacceptable contributions to jitter/latency, and to establish an
          acceptable share of capacity with concurrent traffic <xref
          target="RFC8085"></xref>. </t>

          <t>A network operator has no way of knowing the specific methods
          used by a UDP application, unless the header format can be
          determined. Tools are needed to understand if UDP flows comply with
          congestion control expectations and therefore whether there is a
          need to deploy methods such as rate-limiters, transport circuit
          breakers or other methods to enforce acceptable usage. UDP flows
          that expose a well-known header by specifying the format of header
          fields can allow information to be observed that gains understanding
          of the dynamics of a flow and its congestion control behaviour. For
          example, tools exist to monitor various aspects of the RTP and RTCP
          header information of real-time flows (see <xref
          target="stats"></xref>).</t>
        </section>

        <section title="Measuring Transport to Support Network Operations">
          <t>By correlating observations at multiple points along the path
          (e.g., at the ingress and egress of a network segment), an observer
          can determine the contribution of a portion of the path to an
          observed metric (to locate a source of delay, jitter, loss,
          reordering, congestion marking, etc).</t>

          <t>Information provided by tools can help determine whether
          mechanisms are needed in the network to prevent flows from acquiring
          excessive network capacity. Operators can manage traffic flows
          (e.g., to prevent flows from acquiring excessive network capacity
          under severe congestion) by deploying rate-limiters, traffic shaping
          or network transport circuit breakers <xref target="RFC8084">
          </xref>.</t>
        </section>
      </section>
    </section>

    <section title="Observing Transport Flows with Encrypted Transport Header Fields">
      <t>This section examines implications of encrypting specific transport
      header information.</t>

      <section title="Transport Information at the Network Layer">
        <t>Some transport information is made visible in the network-layer
        protocol header. These header fields are not encrypted and can be used
        to make flow observations. Endpoints should expose flow information in
        the IPv6 Flow Label <xref target="Flow"></xref> in the network-layer
        header. This can be used to inform network-layer queuing, forwarding
        (e.g., for equal cost multi-path (ECMP) routing, and Link Aggregation
        (LAG)). For transport measurement, this can provide useful information
        to assign packets to flows in the data collected by measurement
        campaigns, but does not directly provide any performance data.
        Similarly the Differentiated Services CodePoint (DCSP) indicates
        expected forwarding treatment <xref target="DSCP"></xref>. The ECN
        field provides observable congestion data and can help inform
        measurement of flow congestion <xref target="ECN"></xref>.</t>
      </section>

      <section title="An Observable Transport Flow Identifier">
        <t>To measure and analyse a transport protocol, a measurement tool
        needs to be able to identify traffic flows. Aggregation of sessions,
        and persistent use of established transport flows by multiple sessions
        means that a flow at the transport layer is not necessarily the same
        as a flow seen at the application layer. This is usually not a
        consequence. Data is measured for the aggregate transport flow.</t>

        <t>Some measurement methods sample traffic, rather than collecting all
        packets passing through a measurement point. These methods still
        require a way to determine the presence, size and position of any
        observable header fields - but may need to do this without observing a
        protocol exchange for a connection setup.</t>

        <section title="A Method to Determine Header Format">
          <t>If flow information is observed from transport headers, then
          there needs to be a way to identify the format of the header <xref
          target="demux"></xref>. Some IETF transport protocols are identified
          by an IP protocol number (e.g. ,TCP, SCTP, UDP). All IETF-defined
          transport protocols include a transport port field in their
          transport header. Higher layer protocols (e.g., HTTP) can be
          sometimes be observed by a well-known port value, which can be
          indicative of the protocol being encapsulated, but there is no way
          to enforce this usage. This can be used to configure decapsulation,
          alternatives include a "magic" number placed at the start of each
          UDP datagram.</t>

          <t>Once the protocol has been determined, the transport header can
          be determined from a published specification. If multiple formats
          are permitted, this may also require observing the protocol version
          being used and possibly parameter negotiation at connection
          setup.</t>
        </section>

        <section anchor="substrate" title="Use of a Transport as a Substrate">
          <t>When a transport is used as a substrate, the transport provides
          an encapsulation that allows another transport flow to be within the
          payload of a transport flow. The transported protocol header may
          provide additional information for multiplexing multiple flows over
          the same 5-tuple. The UDP Guidelines <xref target="RFC8085"> </xref>
          provides some guidance on using UDP as a substrate protocol. If
          there is no additional information about the protocol transported by
          the substrate, this may be viewed as an opaque traffic aggregate,
          and prevents transport measurement in the network. Examples include
          GRE-in-UDP <xref target="RFC8086"></xref>, SCTP-in-UDP. The
          GRE-in-UDP encapsulation may encrypt the payload, but does not
          encrypt the GRE protocol header.</t>
        </section>

        <section anchor="Mobility"
                 title="Support for Mobility and Flow Migration">
          <t>With the proliferation of mobile connected devices, there is a
          stated need for connection-oriented protocols to maintain
          connections after a network migration by an endpoint. The ability
          and desirability of in-network devices to track such migration
          depends on the context. On the one hand, a load-balancer device in
          front of server may find it useful to map a migrated connection to
          the same server endpoint. On the other hand, a user performing
          migration to avoid detection may prefer the network not to be able
          to correlate the different parts of a migrating session. Care must
          then be exercised to make sure that the information encoded by the
          endpoints is not sufficient to identify unique flows and facilitate
          a persistent surveillance attack vector <xref
          target="I-D.mm-wg-effect-encrypt"> </xref>.</t>

          <t>The impact of flow migration on measurement activities depends on
          the data being measured, rate of migration and level of encryption
          that is employed. Requirements for load balancing and mobility can
          lead to complex protocol interactions.</t>
        </section>

        <section title="Flow Start and Stop">
          <t>Transports can expose that start and end of flows in a transport
          header field (e.g., TCP SYN, FIN, RST). This can also help
          measurement devices identify the start of flows, or to remove stale
          flow information. This information is supplemental - flows can start
          and end at any time, the Internet network layer provides only a best
          effort service that allows alternate routing, reordering, loss, etc,
          so a network measurement tool can not rely upon observing these
          indicators. The time to complete a protocol connection and/or
          session setup can be reported.</t>

          <t>Flow information can provide in-network devices to manage their
          forwarding state <xref
          target="I-D.trammell-plus-statefulness"></xref>. It can assist a
          firewall in deciding which flows are permitted through a security
          gateway, or to help maintain the network address translation (NAT)
          bindings in a NAPT or application layer gateway. This information
          may also find use in load balancers, where visibility of the 5-tuple
          could assist in selecting a server <xref
          target="I-D.mm-wg-effect-encrypt"></xref>.</t>

          <t>Access to flow information and an observable start/stop
          indication <xref target="I-D.trammell-plus-statefulness"></xref> can
          avoid stateful middleboxes relying on timeouts to remove old state.
          Without this, middleboxes are unaware when a particular flow ceases
          to be used by an application<xref target="RFC8085"> </xref>. This
          can lead to the state table entries keeping state for less time for
          flows that are not identifiable.</t>
        </section>
      </section>

      <section title="Observable Transport Sequence Number">
        <t>The TCP or RTP sequence number can be observed in one direction
        (the direction that carries data segments). An authenticated header
        prevents this field being modified or terminated/split <xref
        target="RFC3135"> </xref> by a network device, but allows this still
        to be used to observe progress of the network flow.</t>

        <t>An incrementing sequence number enables detection of loss (either
        by correlating ingress and egress value, or when assuming that all
        packets follow a single path), duplication and reordering (with
        understanding that not necessarily all packets of a flow follow the
        same path, and reordering can complicate processing of observations).
        Tools are widely available to interpret RTP and TCP sequence numbers,
        ranging from open source tools to dedicated commercial packages. As
        for TCP, use by in-network measurement devices needs to account for
        the impact of load-balancing of flows, changes in forwarding
        behaviour, measurement loss (rather than observed packet loss),
        etc.</t>
      </section>

      <section title="Observable Transport Reception">
        <t>Acknowledgement (ACK) data provides information about the path from
        the network device to the remote endpoint. The information can help
        identify packet loss (or the point of loss), RTT, and other
        network-related performance parameters (e.g., throughput, jitter,
        reordering). Unless this information is correlated with other data
        there is no way to disambiguate the cause of impairments (congestion
        loss, link transmission loss, equipment failure).</t>

        <t>An in-network device must not modify the flow of end-to-end ACK
        data when using an authenticated protocol. That is, must not use the
        in-network methods described in <xref target="RFC3449"> </xref>. This
        can impact the performance and/or efficiency (e.g., cost) of using
        paths where the return capacity is limited or has implications on the
        overall design (e.g., using TCP with cellular mobile uplinks, DOCSIS
        uplinks).</t>

        <t>The TCP stream can be observed by correlating the stream of TCP
        ACKs that flow from a receiver in the return direction. Although these
        ACKs are cumulative, and are not necessarily sent on the same path as
        the forward data, when visible, their sequence can confirm successful
        transmission and the path RTT. In the case of TCP they may also
        indicate packet loss (duplicate ACKs).</t>

        <t>An RTP session can provide reception information <xref
        target="RFC3550"> </xref> <xref target="RFC4585"> </xref> feedback
        using the RTCP framework. This reception information and can be
        observed by in-network measurement devices and can be interpreted to
        provide a variety of quality of experience information for the related
        RTP flow, as well as basic network performance data (RTT, loss,
        jitter, etc).</t>
      </section>

      <section title="Observable Transport Timestamps">
        <t>The use of timestamps for latency and jitter measurements <xref
        target="Latency-Sect"></xref> is discussed in other sections of the
        current version of the document.</t>
      </section>

      <section anchor="ECN-feedback"
               title="Observable ECN Transport Feedback Information">
        <t>Transport protocols that use ECN <xref target="ECN"></xref> need to
        provide ECN feedback information in the transport header to inform the
        sender whether packets have been received with an ECN CE-mark <xref
        target="RFC3819"> </xref>. This information can be in the form of
        feedback once each RTT <xref target="RFC3819"> </xref> or more
        frequent. The latter may involve sending a detailed list of all
        ECN-marked packets (e.g., <xref target="I-D.ietf-tcpm-accurate-ecn">
        </xref> and <xref target="RFC6679"> </xref>). The detailed information
        can provide detail about the pattern and rate of marking. The
        information provided in these protocol headers can help a network
        operator to understand the congestion status of the forward path and
        the impact of marking algorithms on the traffic that is carried <xref
        target="RFC8087"> </xref>.</t>

        <t>IETF specifications for Congestion Exposure (CONVEX) <xref
        target="RFC7713"> </xref> is an example of a framework that monitors
        reception reports for CE-marked packets to support network
        operations.</t>
      </section>

      <section title="Other Observable Transport Fields">
        <t>This section is not complete - later revision may determine other
        fields or remove this section.</t>
      </section>

      <section title="Interpretation of Transport Header Fields ">
        <t>Understanding and analysing transport protocol behaviour typically
        demands tracking changes to the protocol state at the transport
        endpoints. Although protocols communicate state information in their
        protocol headers, a protocol implementation typically also contains
        internal state that is not directly visible from observing transport
        protocol headers. Effective measurement tools need to consider that
        not all packets may be observed (due to drops at the capture tap or
        because packets take an alternate route that does not pass the tap).
        Some flows of packets may also be encapsulated within a maintenance
        domain in other protocols, which further complicates analysis.</t>

        <t>Some examples of using network measurements of transport headers to
        infer internal TCP transport state information include:</t>

        <t><list style="symbols">
            <t>The TCP congestion window (cwnd) and slow start threshold
            (ssthresh). Tools for analysing in-network performance of TCP may
            observe sequence number to infer the current congestion controller
            state.</t>

            <t>The TCP RTT estimator and TCP Retransmission Time Out (RTO)
            value. This can be estimated by correlating sequence and
            acknowledgement numbers, or possibly by observing TCP timestamp
            options.</t>

            <t>Use of pacing (and pacing rate) and use of methods such as
            Proportional Rate Reduction (PRR) and Congestion Window validation
            (CWV). This may be estimated from observing timing of segments
            with TCP sequence numbers. This is important to some congestion
            control mechanisms and can be important for applications that are
            rate limited or send traffic bursts.</t>

            <t>Receiver window and flow control state. This may be inferred
            from information in TCP ACK segments. It is important to
            applications where the remote endpoint is resource constrained, or
            the path exhibits a large RTT.</t>

            <t>Retransmission state and receiver buffer. This may be inferred
            from information in TCP ACK segments (especially when SACK blocks
            are provided), this can be important to the performance of
            applications that send traffic bursts.</t>

            <t>Use of ACK delay and Nagle algorithm. This may be estimated
            from observing timing of segments with TCP sequence numbers, and
            is important to the performance of thin application flows.</t>
          </list></t>
      </section>

      <section title="Requirements for Transport Measurement">
        <t>Transport measurement introduces the following requirements to
        identify the observable information:</t>

        <t><list style="symbols">
            <t>Observable protocol type and version information is needed to
            identify the protocol being used when characterising the traffic,
            and to enable further observation of the flow.</t>

            <t>Observable format information is needed to allow an observer to
            determine the presence of any observable header fields.</t>

            <t>A published specification is needed to allow an observer to
            determine the size and position of any observable header fields so
            that these fields may be decoded by a measurement tool.</t>

            <t>Observable flow start/stop information can assist some forms of
            measurement and has utility for middleboxes that track state.</t>
          </list></t>

        <t>The need for in-network transport measurement introduces the
        following requirements for observable information in transport header
        fields:</t>

        <t><list style="symbols">
            <t>Observable transport information to determine the progress of
            flows for each direction of communication. This requires
            observable packet numbers.</t>

            <t>Observable transport information to determine loss, and
            understand the response to congestion for a network segment. This
            requires observable reception information (e.g., packet
            acknowledgment information).</t>

            <t>Observable transport information is needed for more advanced
            measurement of latency, jitter, etc. This requires an observable
            field and a method to correlating return information with the
            observed field. This could utilise a packet number and/or
            transmission timestamp information. This information needs to be
            available in both directions of transmission.</t>

            <t>Exposure of Transport ECN feedback provides a powerful tool to
            understand ECN-enabled AQM-based networks. (Forward ECN
            information is already observable in the network header).</t>
          </list></t>
      </section>
    </section>

    <section title="The Effect of Encrypting Transport Header Fields">
      <t>This section explores key implications of working with encrypted
      transport protocols.</t>

      <section title="Independent Measurement">
        <t>Independent observation by multiple actors is important for
        scientific analysis. Encrypting transport header encryption changes
        the ability for other actors to collect and independently analyse
        data. Internet transport protocols employ a set of mechanisms. Some of
        these need to work in cooperation with the network layer - loss
        detection and recovery, congestion detection and congestion control,
        some of these need to work only end-to-end (e.g., parameter
        negotiation, flow-control).</t>

        <t>When encryption conceals information in the transport header, it
        could be possible for an applications to provide summary data on
        performance and usage of the network. This data could be made
        available to other actors. However, this data needs to contain
        sufficient detail to understand (and possibly reconstruct the network
        traffic pattern for further testing) and to be correlated with the
        configuration of the network paths being measured. Sharing information
        between actors needs also to consider the privacy of the user and the
        incentives for providing accurate and detailed information. Protocols
        that expose the state information used by the transport protocol in
        their header information (e.g., timestamps used to calculate RTT,
        packet numbers used to asses congestion and requests for
        retransmission) provide an incentive for the sending endpoint to
        provide correct information, increasing confidence that the observer
        understands the transport interaction with the network. This becomes
        important when considering changes to transport protocols, changes in
        network infrastructure, or the emergence of new traffic patterns.</t>
      </section>

      <section title="Characterising &quot;Unknown&quot; Network Traffic">
        <t>If "unknown" or "uncharacterised" traffic patterns form a small
        part of the traffic aggregate passing through a network device or
        segment of the network the path, the dynamics of the uncharacterised
        traffic may not have a significant collateral impact on the
        performance of other traffic that shares this network segment. Once
        the proportion of this traffic increases, the need to monitor the
        traffic and determine if appropriate safety measures need to be put in
        place.</t>

        <t>Tracking the impact of new mechanisms and protocols requires
        traffic volume to be measured and new transport behaviours to be
        identified. This is especially true of protocols operating over a UDP
        substrate. The level and style of encryption needs to be considered in
        determining how this activity is performed. On a shorter timescale,
        information may also need to be collected to manage denial of service
        attacks against the infrastructure.</t>
      </section>

      <section title="Accountability and Internet Transport Portocols">
        <t>Attention therefore needs to be paid to the expected scale of
        deployment of new protocols and protocol mechanisms. Whatever the
        mechanism, experience has shown that it is often difficult to
        correctly implement combination of mechanisms <xref
        target="RFC8085"></xref>. These mechanisms therefore typically evolve
        as a protocol matures, or in response to changes in network
        conditions, changes in network traffic or changes to application
        usage.</t>

        <t>The growth and diversity of applications and protocols using the
        Internet continues to expand - and there has been recent interest in a
        wide range of new transport methods, e.g., Larger Initial Window,
        Proportional Rate Reduction (PRR), congestion control methods based on
        measuring bottleneck bandwidth and round-trip propagation time, the
        introduction of AQM techniques and new forms of ECN response (e.g.,
        Data Centre TCP, DCTP <xref target="I-D.ietf-tcpm-dctcp"></xref>, and
        methods proposed for Low Latency Low Loss Scalable throughput, L4S).
        For each new method it is desirable to build a body of data reflecting
        its behaviour under a wide range of deployment scenarios, traffic
        load, and interactions with other deployed/candidate methods.</t>

        <t>Measurement therefore has a critical role in the design of
        transport protocol mechanisms and their acceptance by the wider
        community (e.g., as a method to judge the safety for Internet
        deployment. Open standards suggest that such evaluation needs to
        include independent observation and evaluation of performance
        data.</t>
      </section>
    </section>

    <section title="Implications on Evolution of the Internet Transport">
      <t>The transport layer provides the first end-to-end interactions across
      the Internet. Transport protocols are layered directly over the network
      service and are sent in the payload of network-layer packets. However,
      this simple architectural view hides one of the core functions of the
      transport &ndash; to discover and adapt to the properties of the
      Internet path that is currently being used. The design of Internet
      transport protocols is as much about trying to avoid the unwanted side
      effects of congestion on a flow and other capacity-sharing flows,
      avoiding congestion collapse, adapting to changes in the path
      characteristics, etc., as it is about end-to-end feature negotiation,
      flow control and optimising for performance of a specific
      application.</t>

      <t>To achieve stable Internet operations the IETF transport community,
      has to date, relied heavily on measurement and insight provided from the
      wider community to understand the trade-offs and to inform selection of
      select appropriate mechanisms to ensure a safe, reliable and robust
      Internet since the 1990's.</t>

      <t>There are many motivations for deploying encrypted transports, and
      encryption of transport payloads. The increasing public concerns about
      the interference with Internet traffic have led to a rapidly expanding
      deployment of encryption to protect end-user privacy, in protocols like
      QUIC. At the same time, network operators and access providers,
      especially in mobile networks, have come to rely on the in-network
      functionality provided by middleboxes both to enhance performance and
      support network operations. </t>

      <t>This document has expanded upon the expected implications on
      operational practices when working with encrypted transport protocols,
      and offers insight into the potential benefit of authentication,
      encryption and techniques that require in-network devices to interpret
      specific protocol header fields. It presents a need for architectural
      changes and consideration of approaches to the way network transport
      protocols are designed when using encryption<xref
      target="Measure"></xref>.</t>

      <t>The use of encryption at the transport layer comes with implications
      that need to be considered:</t>

      <t><list style="hanging">
          <t hangText="Troubleshooting and diagnostics:">Encrypting all
          transport information eliminates the incentive for operators to
          troubleshoot what they cannot interpret: one flow experiencing
          packet loss looks like any other. When transport header encryption
          prevents decoding the transport header (if sequence numbers and flow
          ID are obscured), and hence understanding the impact on a particular
          flow or flows that share a common network segment. Encrypted traffic
          therefore implies "don't touch", and a likely first response will be
          "can't help, no trouble found", or the need to add complexity that
          comes with an additional operational cost <xref
          target="I-D.mm-wg-effect-encrypt"> </xref>.</t>

          <t hangText=""><vspace blankLines="1" /></t>

          <t hangText="Open verifyable data:">The use of transport header
          encryption may reduce the range of actors who can capture useful
          measurement data. This may in future restrict the information
          sources available to the Internet community to understand the
          operation of the network and transport protocols, necessary to
          inform standardisation and design decisions for new protocols,
          equipment and operational practices. There are dangers in a model
          where transport information is only observable at endpoints: i.e.,
          at user devices and within service platforms and a need for
          independently captured data to develop open standards and stimulate
          research into new methods.</t>

          <t hangText=""><vspace blankLines="1" /></t>

          <t hangText="Operational practice:">Published transport
          specifications allow operators to check compliance. This can bring
          assurance to those operating networks, often avoiding the need to
          deploy complex techniques that routinely monitor and manage TCP/IP
          traffic flows (e.g. Avoiding the capital and operational costs of
          deploying flow rate-limiting and network circuit-breaker methods).
          This should continue when encrypted transport headers are used, but
          methods need to confirm that the traffic produced conforms to the
          expectations of the operator or developer.</t>

          <t hangText=""><vspace blankLines="1" /></t>

          <t hangText="Traffic analysis:">The use of encryption could make it
          harder to determine which transport methods are being used across a
          network segment and the trends in usage. This could impact the
          ability for an operator to anticipate the need for network upgrades
          and roll-out. It can also impact on-going traffic engineering
          activities. Although the impact in many case may be small, there are
          cases where operators directly support services (e.g., in radio
          links, or to troubleshoot QoS-related issues). The more complex the
          underlying infrastructure the more important this impact.</t>

          <t hangText=""><vspace blankLines="1" /></t>

          <t hangText="Interactions between mechanisms:">An appropriate
          vantage point, coupled with timing information for the flow
          (fine-grained timestamps) is a valuable tool in benchmarking
          equipment/configurations and understanding non-trivial interactions.
          Encryption restricts the ability to explore interactions between
          functions at different protocol layers. This is a side-effect of not
          allowing a choice of the vantage point from which this information
          is observed. This can be important (e.g., in examining collateral
          impact of flows sharing a bottleneck, or where the intention is to
          understand the interaction between a layer 2 function (e.g., radio
          resource management policy, a channel impairment, an AQM
          configuration, a Per Hop Behaviour (PHB) or scheduling method, and a
          transport protocol).</t>

          <t><vspace blankLines="1" /></t>

          <t hangText="Common specifications:">Since the introduction of
          congestion control, TCP has continued to be the predominate
          transport, with a consistent approach to avoiding congestion
          collapse. There is a risk that the diversity of transport mechanisms
          could also increase, with incentives to use a wide range of methods,
          this is not in itself a problem, nor is this a direct result of
          encryption. Encryption of all headers places the onus on validation
          in the hands of developers. While there is little to doubt that
          developers will seek to produce high quality code for their target
          use, it is not clear whether there is sufficient incentive to ensure
          good practice that benefits the wide diversity of requirements from
          the Internet community as a whole. The use of encryption needs to be
          weighed against the reduced visibility of the interactions between
          traffic, the network and the mechanisms. Especially, if a
          development cycle could focus on specific protocols/applications and
          then offer incentives for optimisations that could prove suboptimal
          for users or operators that utilise a network segments with
          different characteristics than targeted by the developer.</t>

          <t><vspace blankLines="1" /></t>

          <t hangText="Restricting research and development:">The use of
          encryption may impede independent research into new mechanisms,
          measurement of behaviour, and development initiatives. Experience
          shows that transport protocols are complicated to design and complex
          to deploy, and that individual mechanisms need to be evaluated while
          considering other mechanism, across a broad range of network
          topologies and with attention to the impact on traffic sharing the
          capacity. Adopting pervasive encryption of transport information
          could eliminate the independent self-checks that have previously
          been in place from research and academic contributors (e.g., the
          role of the IRTF ICCRG, and research publications in reviewing new
          transport mechanisms and assessing the impact of their experimental
          deployment).</t>
        </list></t>

      <t>Pervasive use of transport header encryption can impact the ways that
      future protocols are designed and deployed. The choice of whether
      candidate transport designs should encrypt their protocol headers
      therefore needs to be taken based not just on security considerations,
      but also on the impact on operating networks and the constrictions this
      may place on evolution of Internet protocols. While encryption of all
      transport information can help reduce ossification of the transport
      layer, it could result in ossification of the network service. There can
      be advantages in providing a level of ossification of the header in
      terms of providing a set of open specified header fields that are
      observable from in-network devices.</t>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>The author would like to thank all who have talked to him
      face-to-face or via email. ...</t>

      <t>This work has received funding from the European Union&rsquo;s
      Horizon 2020 research and innovation programme under grant agreement No
      688421.The opinions expressed and arguments employed reflect only the
      authors' view. The European Commission is not responsible for any use
      that may be made of that information.</t>
    </section>

    <!-- Possibly a 'Contributors' section ... -->

    <section anchor="IANA" title="IANA Considerations">
      <t>XX RFC ED - PLEASE REMOVE THIS SECTION XXX</t>

      <t>This memo includes no request to IANA.</t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>This document is about design and deployment considerations for
      transport protocols. Authentication, confidentiality protection, and
      integrity protection are identified as Transport Features by RFC8095".
      As currently deployed in the Internet, these features are generally
      provided by a protocol or layer on top of the transport protocol; no
      current full-featured standards-track transport protocol provides these
      features on its own. Therefore, these features are not considered in
      this document, with the exception of native authentication capabilities
      of TCP and SCTP for which the security considerations in RFC4895.</t>

      <t>Like congestion control mechanisms, security mechanisms are difficult
      to design and implement correctly. It is hence recommended that
      applications employ well-known standard security mechanisms such as
      DTLS, TLS or IPsec, rather than inventing their own.</t>
    </section>
  </middle>

  <!--  *****BACK MATTER ***** -->

  <back>
    <!-- References split into informative and normative -->

    <!-- There are 2 ways to insert reference entries from the citation libraries:
             1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
             2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
             (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")

             Both are cited textually in the same manner: by using xref elements.
             If you use the PI option, xml2rfc will, by default, try to find included files in the same
             directory as the including file. You can also define the XML_LIBRARY environment variable
             with a value containing a set of directories to search.  These can be either in the local
             filing system or remote ones accessed by http (http://domain/dir/... ).-->

    <references title="Normative References">
      &RFC2119;
    </references>

    <references title="Informative References">
      &RFC3168;

      &RFC2474;

      &RFC3234;

      &RFC3135;

      &RFC8087;

      &RFC4585;

      &RFC5246;

      &RFC7525;

      &RFC4301;

      &RFC7567;

      &RFC7713;

      &RFC6437;

      &RFC7624;

      &RFC3449;

      &RFC4302;

      &RFC6347;

      &RFC8084;

      &RFC8085;

      &RFC8086;

      &RFC7258;

      &RFC4303;

      &RFC6679;

      &RFC7928;

      &RFC3819;

      &RFC5925;

      &RFC5559;

      &RFC3550;

      &RFC5236;

      &RFC4737;

      &I-D.mm-wg-effect-encrypt;

      &I-D.ietf-quic-transport;

      &I-D.dolson-plus-middlebox-benefits;

      &I-D.trammell-plus-abstract-mech;

      &I-D.trammell-plus-statefulness;

      &I-D.ietf-aqm-fq-codel;

      &I-D.ietf-aqm-codel;

      &I-D.ietf-aqm-pie;

      &I-D.ietf-tcpm-dctcp;

      &I-D.ietf-tcpm-accurate-ecn;

      &I-D.ietf-tsvwg-l4s-arch;

      &I-D.ietf-ippm-6man-pdm-option;

      <reference anchor="Measure">
        <front>
          <title>Measurement-based Protocol Design</title>

          <author initials="G" surname="Fairhurst"></author>

          <author initials="M" surname="Kuehlewind"></author>

          <author initials="D" surname="Lopez"></author>

          <date month="June" year="2017" />
        </front>
      </reference>

      <reference anchor="Latency">
        <front>
          <title>Reducing Internet Latency: A Survey of Techniques and Their
          Merits</title>

          <author initials="B" surname="Briscoe"></author>

          <date month="November" year="2014" />
        </front>
      </reference>

      <reference anchor="Tor">
        <front>
          <title>https://www.torproject.org</title>

          <author initials=" " surname="The Tor Project"></author>

          <date month="June" year="2017" />
        </front>
      </reference>
    </references>

    <section title="Revision information">
      <t>-00 This is an individual draft for the IETF community</t>

      <t>-01 This draft was a result of walking away from the text for a few
      days and then reorganising the content. </t>

      <t>-01 This draft fixes textua errors. </t>

      <t>Comments from the community are welcome on the text and
      recommendations.</t>
    </section>
  </back>
</rfc>
