<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC1273 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.1273.xml">
<!ENTITY RFC2474 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2474.xml">
<!ENTITY RFC2914 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2914.xml">
<!ENTITY RFC3135 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3135.xml">
<!ENTITY RFC3168 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3168.xml">
<!ENTITY RFC3234 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3234.xml">
<!ENTITY RFC3393 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3393.xml">
<!ENTITY RFC3550 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3550.xml">
<!ENTITY RFC3819 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3819.xml">
<!ENTITY RFC4302 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4302.xml">
<!ENTITY RFC4303 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4303.xml">
<!ENTITY RFC4585 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4585.xml">
<!ENTITY RFC4737 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4737.xml">
<!ENTITY RFC5218 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5218.xml">
<!ENTITY RFC5236 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5236.xml">
<!ENTITY RFC8446 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8446.xml">
<!ENTITY RFC5481 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5481.xml">
<!ENTITY RFC5925 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5925.xml">
<!ENTITY RFC6056 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6056.xml">
<!ENTITY RFC6294 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6294.xml">
<!ENTITY RFC6269 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6269.xml">
<!ENTITY RFC6347 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6347.xml">
<!ENTITY RFC6437 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6437.xml">
<!ENTITY RFC7258 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7258.xml">
<!ENTITY RFC7525 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7525.xml">
<!ENTITY RFC7567 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7567.xml">
<!ENTITY RFC7624 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7624.xml">
<!ENTITY RFC7713 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7713.xml">
<!ENTITY RFC7872 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7872.xml">
<!ENTITY RFC7928 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7928.xml">
<!ENTITY RFC8033 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8033.xml">
<!ENTITY RFC8084 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8084.xml">
<!ENTITY RFC8085 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8085.xml">
<!ENTITY RFC8086 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8086.xml">
<!ENTITY RFC8087 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8087.xml">
<!ENTITY RFC8095 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8095.xml">
<!ENTITY RFC8404 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8404.xml">
<!ENTITY RFC8250 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8250.xml">
<!ENTITY RFC8257 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8257.xml">
<!ENTITY RFC8289 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8289.xml">
<!ENTITY RFC8290 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8290.xml">
<!ENTITY I-D.ietf-quic-transport SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ietf-quic-transport-14.xml">
<!ENTITY I-D.thomson-quic-grease SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-thomson-quic-grease-00.xml">
<!ENTITY I-D.trammell-plus-abstract-mech SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-trammell-plus-abstract-mech-00.xml">
<!ENTITY I-D.ietf-tcpm-accurate-ecn SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ietf-tcpm-accurate-ecn-07.xml">
<!ENTITY I-D.ietf-tsvwg-l4s-arch SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ietf-tsvwg-l4s-arch-02.xml">
<!ENTITY I-D.ietf-ippm-ioam-data SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ietf-ippm-ioam-data-03.xml">
<!ENTITY I-D.ietf-taps-transport-security SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ietf-taps-transport-security-02.xml">
<!ENTITY I-D.ietf-tcpinc-tcpcrypt SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ietf-tcpinc-tcpcrypt-12.xml">
<!ENTITY I-D.trammell-wire-image SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-trammell-wire-image-04.xml">
<!ENTITY I-D.ietf-tsvwg-rtcweb-qos SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ietf-tsvwg-rtcweb-qos-18.xml">
]>
<?rfc toc="yes"?>
<?rfc strict="yes"?>
<?rfc tocompact="yes"?>
<?rfc rfcedstyle="yes"?>
<?rfc subcompact="no"?>
<?rfc tocdepth="2"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc comments="yes"?>
<?rfc inline="yes" ?>
<?rfc compact='yes'?>
<rfc category="info" docName="draft-ietf-tsvwg-transport-encrypt-02"
     ipr="trust200902">
  <front>
    <title abbrev="Transport Encryption">The Impact of Transport Header
    Confidentiality on Network Operation and Evolution of the Internet</title>

    <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>

    <author fullname="Colin Perkins" initials="C.S." surname="Perkins">
      <organization>University of Glasgow</organization>

      <address>
        <postal>
          <street>School of Computing Science</street>

          <city>Glasgow</city>

          <code>G12 8QQ</code>

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

        <email>csp@csperkins.org</email>

        <uri>https://csperkins.org//</uri>
      </address>
    </author>

    <date day="25" month="November" year="2018" />

    <area>Transport</area>

    <workgroup>TSVWG</workgroup>

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

    <abstract>
      <t>This document describes implications of applying end-to-end
      encryption at the transport layer. It identifies in-network uses of
      transport layer header information. It then reviews the implications of
      developing end-to-end transport protocols that use authentication to
      protect the integrity of transport information or encryption to provide
      confidentiality of the transport protocol header and expected
      implications of transport protocol design and network operation. Since
      transport measurement and analysis of the impact of network
      characteristics have been important to the design of current transport
      protocols, it also considers the impact on transport and application
      evolution.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>There is increased interest in, and deployment of, new protocols that
      employ end-to-end encryption at the transport layer, including the
      transport layer headers. An example of such a transport is the QUIC
      transport protocol <xref target="I-D.ietf-quic-transport"></xref>,
      currently being standardised in the IETF. Encryption of transport layer
      headers and payload data has many benefits in terms of protecting user
      privacy. These benefits have been widely discussed, and we strongly
      support them. There are also, however, some costs, in that the wide use
      of transport encryption requires changes to network operations, and
      complicates network measurement for research, operational, and
      standardisation purposes.</t>

      <t>This document discusses some consequences of applying end-to-end
      encryption at the transport layer. It reviews the implications of
      developing end-to-end transport protocols that use encryption to provide
      confidentiality of the transport protocol header, and consider the
      effect of such changes on transport protocol design and network
      operation. It also considers anticipated implications on transport and
      application evolution.</t>
    </section>

    <section title="Context and Rationale">
      <t>The transport layer provides end-to-end interactions between
      endpoints (processes) using an Internet path. Transport protocols layer
      directly over the network-layer service and are sent in the payload of
      network-layer packets. They support end-to-end communication between
      applications, supported by higher-layer protocols, running on the end
      systems (or transport endpoints). This simple architectural view hides
      one of the core functions of the transport, however, 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 insights of the network
      operations community to understand the trade-offs, and to inform
      selection of appropriate mechanisms, to ensure a safe, reliable, and
      robust Internet (e.g., <xref target="RFC1273"></xref>). In turn, the
      network operations community relies on being able to understand the
      pattern and requirements of traffic passing over the Internet, both in
      aggregate and at the flow level.</t>

      <t>There are many motivations for deploying encrypted transports <xref
      target="RFC7624"></xref> (i.e., transport protocols that use encryption
      to provide confidentiality of some or all of the transport-layer header
      information), and encryption of transport payloads (i.e. confidentiality
      of the payload data). The increasing public concerns about interference
      with Internet traffic have led to a rapidly expanding deployment of
      encryption to protect end-user privacy, e.g., QUIC <xref
      target="I-D.ietf-quic-transport"></xref>. Encryption is also expected to
      form a basis of future transport protocol designs.</t>

      <t>Some network operators and access providers have come to rely on the
      in-network measurement of transport properties and the functionality
      provided by middleboxes to both support network operations and enhance
      performance. There can therefore be implications when working with
      encrypted transport protocols that hide transport header information
      from the network. These present architectural challenges and
      considerations in the way transport protocols are designed, and ability
      to characterise and compare different transport solutions <xref
      target="Measure"></xref>. Implementations of network devices are
      encouraged to avoid side-effects when protocols are updated. Introducing
      cryptographic integrity checks to header fields can also prevent
      undetected manipulation of the field by network devices, or undetected
      addition of information to a packet. However, this does not prevent
      inspection of the information by a device on path, and it is possible
      that such devices could develop mechanisms that rely on the presence of
      such a field, or a known value in the field.</t>

      <t>Reliance on the presence and semantics of specific header information
      leads to ossification. An endpoint could be required to supply a
      specific header to receive the network service that it desires. In some
      cases, this could be benign or advantageous to the protocol (e.g.,
      recognising the start of a connection, or explicitly exposing protocol
      information can be expected to provide more consistent decisions by
      on-path devices than the use of diverse methods to infer semantics from
      other flow properties); in other cases this is not beneficial (e.g., a
      mechanism implemented in a network device, such as a firewall, that
      required a header field to have only a specific known set of values
      could prevent the device from forwarding packets using a different
      version of a protocol that introduces a new feature that changes the
      value present in this field, preventing evolution of the protocol).</t>

      <t>Examples of the impact of ossification on transport protocol design
      and ease of deployment can be seen in the case of Multipath TCP (MPTCP)
      and the TCP Fast Open option. The design of MPTCP had to be revised to
      account for middleboxes, so called "TCP Normalizers", that monitor the
      evolution of the window advertised in the TCP headers and that reset
      connections if the window does not grow as expected. Similarly, TCP Fast
      Open has had issues with middleboxes that remove unknown TCP options,
      that drop segments with unknown TCP options, that drop segments that
      contain data and have the SYN bit set, that drop packets with SYN/ACK
      that acknowledge data, or that disrupt connections that send data before
      the three-way handshake completes. In both cases, the issue was caused
      by middleboxes that had a hard-coded understanding of transport
      behaviour, and that interacted poorly with transports that tried to
      change that behaviour. Other examples have included middleboxes that
      rewrite TCP sequence and acknowledgement numbers but are unaware of the
      (newer) SACK option and don't correctly rewrite selective
      acknowledgements to match the changes made to the fixed TCP header.</t>

      <t>A protocol design that uses header encryption can provide
      confidentiality of some or all of the protocol header information. This
      prevents an on-path device from knowledge of the header field. It
      therefore prevents mechanisms being built that directly rely on the
      information or seek to infer semantics of an exposed header field. Using
      encryption to provide confidentiality of the transport layer brings some
      well-known privacy and security benefits and can therefore help reduce
      ossification of the transport layer. In particular, it is important that
      protocols either do not expose information where the usage could change
      in future protocols, or that methods that utilise the information are
      robust to potential changes as protocols evolve over time. To avoid
      unwanted inspection, a protocol could also intentionally vary the format
      and/or value of header fields (sometimes known as Greasing <xref
      target="I-D.thomson-quic-grease"></xref>). However, while encryption
      hides the protocol header information, it does not prevent ossification
      of the network service: People seeking understanding of network traffic
      could come to rely on pattern inferences and other heuristics as the
      basis for network decision and to derive measurement data, creating new
      dependencies on the transport protocol.</t>

      <t>Specification of non-encrypted transport header fields explicitly
      allows protocol designers to make specific header information observable
      in the network. This supports other uses of this information by on-path
      devices, and at the same time this can be expected to lead to
      ossification of the transport header, because network forwarding could
      evolve to depend on the presence and/or value of these fields. The
      decision about which transport headers fields are made observable offers
      trade-offs around authentication, and confidentiality. For example, a
      design that provides confidentiality of protocol header information can
      impact the following activities that rely on measurement and analysis of
      traffic flows:</t>

      <t><list style="hanging">
          <t hangText="Network Operations and Research:">Observable transport
          headers enable both operators and the research community to measure
          and analyse protocol performance, network anomalies, and failure
          pathologies.</t>

          <t>This information can help inform capacity planning, and assist in
          determining the need for equipment and/or configuration changes by
          network operators.</t>

          <t>The data can also inform Internet engineering research, and help
          in the development of new protocols, methodologies, and procedures.
          Concealing the transport protocol header information makes the
          stream performance unavailable to passive observers along the path,
          and likely leads to the development of alternative methods to
          collect or infer that data.</t>

          <t>Providing confidentiality of the transport payload, but leaving
          some, or all, of the transport headers unencrypted, possibly with
          authentication, can provide the majority of the privacy and security
          benefits while supporting operations and research.</t>

          <t hangText="Protection from Denial of Service:">Observable
          transport headers currently provide useful input to classify traffic
          and detect anomalous events (e.g., changes in application behaviour,
          distributed denial of service attacks). To be effective, this
          protection needs to be able to uniquely disambiguate unwanted
          traffic. An inability to separate this traffic using packet header
          information could result in less-efficient identification of
          unwanted traffic or development of different methods (e.g.
          rate-limiting of uncharacterised traffic).</t>

          <t hangText="Network Troubleshooting and Diagnostics: ">Encrypting
          transport header information eliminates the incentive for operators
          to troubleshoot what they cannot interpret. A flow experiencing
          packet loss or jitter looks like an unaffected flow when only
          observing network layer headers (if transport sequence numbers and
          flow identifiers are obscured). This limits understanding of the
          impact of packet loss or latency on the flows, or even localizing
          the network segment causing the packet loss or latency. Encrypted
          traffic could imply "don't touch" to some, and could limit a
          trouble-shooting response to "can't help, no trouble found". The
          additional mechanisms that will need to be introduced to help
          reconstruct transport-level metrics add complexity and operational
          costs (e.g., in deploying additional functions in equipment or
          adding traffic overhead).</t>

          <t hangText="Network Traffic Analysis:">Hiding transport protocol
          header information can make it harder to determine which transport
          protocols and features are being used across a network segment and
          to measure trends in the pattern of usage. This could impact the
          ability for an operator to anticipate the need for network upgrades
          and roll-out. It can also impact the on-going traffic engineering
          activities performed by operators (such as determining which parts
          of the path contribute delay, jitter or loss). While the impact
          could, in many cases, be small there are scenarios where operators
          directly support particular services (e.g., to troubleshoot issues
          relating to Quality of Service, QoS; the ability to perform fast
          re-routing of critical traffic, or support to mitigate the
          characteristics of specific radio links). The more complex the
          underlying infrastructure the more important this impact.</t>

          <t hangText="Open and Verifiable Network Data: ">Hiding transport
          protocol header information can reduce the range of actors that can
          capture useful measurement data. For example, one approach could be
          to employ an existing transport protocol that reveals little
          information (e.g., UDP), and perform traditional transport functions
          at higher layers protecting the confidentiality of transport
          information. Such a design, limits the information sources available
          to the Internet community to understand the operation of new
          transport protocols, so preventing access to the information
          necessary to inform design decisions and standardisation of the new
          protocols and related operational practices.</t>

          <t>The cooperating dependence of network, application, and host to
          provide communication performance on the Internet is uncertain when
          only endpoints (i.e., at user devices and within service platforms)
          can observe performance, and performance cannot be independently
          verified by all parties. The ability of other stakeholders to review
          code can help develop deeper insight. In the heterogeneous Internet,
          this helps extend the range of topologies, vendor equipment, and
          traffic patterns that are evaluated.</t>

          <t>Independently captured data is important to help ensure the
          health of the research and development communities. It can provide
          input and test scenarios to support development of new transport
          protocol mechanisms, especially when this analysis can be based on
          the behaviour experienced in a diversity of deployed networks.</t>

          <t>Independently verifiable performance metrics might also be
          utilised to demonstrate regulatory compliance in some jurisdictions,
          and provides a basis for informing design decisions.</t>
        </list></t>

      <t>The last point leads us to consider the impact of hiding transport
      headers in the specification and development of protocols and standards.
      This has potential impact on: <list style="symbols">
          <t>Understanding Feature Interactions: An appropriate vantage point,
          coupled with timing information about traffic flows, provides a
          valuable tool for benchmarking equipment, functions, and/or
          configurations, and to understand complex feature interactions. An
          inability to observe transport protocol information can limit the
          ability to diagnose and explore interactions between features at
          different protocol layers, a side-effect of not allowing a choice of
          vantage point from which this information is observed.</t>

          <t>Supporting Common Specifications: Transmission Control Protocol
          (TCP) is currently the predominant transport protocol used over
          Internet paths. Its many variants have broadly consistent approaches
          to avoiding congestion collapse, and to ensuring the stability of
          the Internet. Increased use of transport layer encryption can
          overcome ossification, allowing deployment of new transports and
          different types of congestion control. This flexibility can be
          beneficial, but it can come at the cost of fragmenting the
          ecosystem. There is little doubt that developers will try to produce
          high quality transports for their intended target uses, but it is
          not clear there are sufficient incentives to ensure good practice
          that benefits the wide diversity of requirements for the Internet
          community as a whole. Increased diversity, and the ability to
          innovate without public scrutiny, risks point solutions that
          optimise for specific needs, but accidentally disrupt operations
          of/in different parts of the network. The social contract that
          maintains the stability of the Internet relies on accepting common
          specifications.</t>

          <t>Operational Practice: The network operations community relies on
          being able to understand the pattern and requirements of traffic
          passing over the Internet, both in aggregate and at the flow level.
          These operational practices have developed based on the information
          available from unencrypted transport headers. If this information is
          only carried in encrypted transport headers, operators will not be
          able to use this information directly, but if operators still wish
          to use these practices, they may turn to more ambitious ways of
          discovering this information. For example, if an operator wants to
          know that traffic is audio traffic, and no longer has access to
          Session Description Protocol (SDP) session descriptions that would
          explicitly say a flow "is audio", the operator might use heuristics
          to guess that short UDP packets with regular spacing are carrying
          audio traffic. Operational practices aimed at guessing transport
          parameters are out of scope for this document, and are only
          mentioned here to recognize that encryption may not prevent
          operators from attempting to apply the same practices they used with
          unencrypted transport headers.</t>

          <t>Compliance: Published transport specifications allow operators
          and regulators 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 <xref
          target="RFC8084"></xref>). When it is not possible to observe
          transport header information, methods are still needed to confirm
          that the traffic produced conforms to the expectations of the
          operator or developer.</t>

          <t>Restricting research and development: Hiding transport
          information can 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 mechanisms, across a broad range of network
          topologies and with attention to the impact on traffic sharing the
          capacity. If this results in reduced availability of open data, it
          could eliminate the independent self-checks to the standardisation
          process 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>In summary, there are trade offs. On the one hand, protocol
      designers have often ignored the implications of whether the information
      in transport header fields can or will be used by in-network devices,
      and the implications this places on protocol evolution. This motivates a
      design that provides confidentiality of the header information. On the
      other hand, it can be expected that a lack of visibility of transport
      header information can impact the ways that protocols are deployed,
      standardised, and their operational support.</t>

      <t>To achieve stable Internet operations the IETF transport community
      has to date relied heavily on measurement and insights of the network
      operations community to understand the trade-offs, and to inform
      selection of appropriate mechanisms, to ensure a safe, reliable, and
      robust Internet (e.g., <xref target="RFC1273"></xref>,<xref
      target="RFC2914"></xref>).</t>

      <t>The choice of whether future transport protocols encrypt their
      protocol headers therefore needs to be taken based not solely on
      security and privacy considerations, but also taking into account the
      impact on operations, standards, and research. Any new Internet
      transport will need to provide appropriate transport mechanisms and
      operational support to assure the resulting traffic can not result in
      persistent congestion collapse <xref target="RFC2914"></xref>. This
      document suggests that the balance between information exposed and
      concealed should be carefully considered when specifying new
      protocols.</t>
    </section>

    <section anchor="network"
             title="Current uses of Transport Headers within the Network">
      <t>Despite transport headers having end-to-end meaning, some of these
      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,.
      Applying confidentiality to transport header fields would affect how
      protocol information is used <xref target="RFC8404"></xref>. To
      understand these implications, it is first necessary to understand how
      transport layer headers are currently observed and/or modified by
      middleboxes within the network.</t>

      <t>Transport protocols can be designed to encrypt or authenticate
      transport header fields. Authentication at the transport layer can be
      used to detect any changes to an immutable header field that were made
      by a network device along a path. The intentional modification of
      transport headers by middleboxes (such as Network Address Translation,
      NAT, or Firewalls) is not considered. Common issues concerning IP
      address sharing are described in <xref target="RFC6269"></xref>.</t>

      <section title="Observing Transport Information in the Network">
        <t>If in-network observation of transport protocol headers is needed,
        this requires knowledge of the format of the transport header:</t>

        <t><list style="symbols">
            <t>Flows need to be identified at the level required to perform
            the observation;</t>

            <t>The protocol and version of the header need to be visible,
            e.g., by defining the wire image <xref
            target="I-D.trammell-wire-image"></xref>. As protocols evolve over
            time and there could be a need to introduce new transport headers.
            This could require interpretation of protocol version information
            or connection setup information;</t>

            <t>The location and syntax of any observed transport headers needs
            to be known. IETF transport protocols can specify this
            information.</t>
          </list><vspace blankLines="1" />The following subsections describe
        various ways that observable transport information has been
        utilised.</t>

        <section anchor="demux" title="Flow Identification">
          <t>Transport protocol header information (together with information
          in the network header), has been used to 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) transport
          port number has been used to identify a protocol (although port
          information alone is not sufficient to guarantee identification of a
          protocol, since applications can use arbitrary ports, multiple
          sessions can be multiplexed on a single port, and ports can be
          re-used by subsequent sessions).</t>

          <t>Transport protocols, such as TCP and Stream Control Transport
          Protocol (SCTP) specify a standard base header that includes
          sequence number information and other data, with the possibility to
          negotiate additional headers at connection setup, identified by an
          option number in the transport header. UDP-based protocols can use,
          but sometimes do not use, well-known port numbers. Some flows 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>

          <t>Flow identification is a common function. For example, performed
          by measurement activities, QoS classification, firewalls, Denial of
          Service, DOS, prevention. It becomes more complex and less easily
          achieved when multiplexing is used at or above the transport
          layer.</t>
        </section>

        <section anchor="stats"
                 title="Metrics derived from Transport Layer Headers">
          <t>Some actors manage their portion of the Internet by
          characterizing the performance of link/network segments. Passive
          monitoring uses observed traffic to makes inferences from transport
          headers to derive these measurements. A variety of open source and
          commercial tools have been deployed that utilise this information.
          The following metrics can be derived from transport header
          information:</t>

          <t><list style="hanging">
              <t hangText="Traffic Rate and Volume:">Header information e.g.,
              (sequence number, length) allows derivation of volume measures
              per-application, to characterise the traffic that uses a network
              segment or the pattern of network usage. This can be measured
              per endpoint or for an aggregate of endpoints (e.g., by an
              operator to assess subscriber usage). It 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>

              <t hangText="Loss Rate and Loss Pattern:">Flow loss rate can be
              derived (e.g., from sequence number) and has been used as a
              metric for performance assessment and to characterise transport
              behaviour. Understanding the root cause of loss can help an
              operator determine whether this requires corrective action.
              Network operators have used the variation in patterns of loss as
              a key performance metric, utilising this to detect changes in
              the offered service.</t>

              <t>There are various causes of loss, including: corruption of
              link frames (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 <xref target="RFC7567"></xref>), inadequate provision of
              traffic preemption. Understanding flow loss rate requires either
              maintaining per flow packet counters or by observing sequence
              numbers in transport headers. Loss can be monitored at the
              interface level by devices in the network. It is often valuable
              to understand the conditions under which packet loss occurs.
              This usually requires relating loss to the traffic flowing on
              the network node/segment at the time of loss.</t>

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

              <t hangText="Throughput and Goodput:">The throughput achieved 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).
              This requires ability to differentiate loss and retransmission
              of packets (e.g., by observing packet sequence numbers in the
              TCP or the Real-time Transport Protocol, RTP, headers <xref
              target="RFC3550"></xref>).</t>

              <t hangText="Latency:">Latency is a key performance metric that
              impacts application response time and user-perceived response
              time. It 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.</t>

              <t>To measure latency across a part of a 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 could be used to locate a source
              of latency, e.g., by observing cases where the median RTT is
              much greater than the minimum RTT for a part of a path.</t>

              <t>The service offered by operators can benefit from latency
              information to understand the impact of deployment and tune
              deployed services. Latency metrics are key to evaluating and
              deploying AQM <xref target="RFC7567"></xref>, DiffServ <xref
              target="RFC2474"></xref>, and Explicit Congestion Notification
              (ECN) <xref target="RFC3168"></xref> <xref
              target="RFC8087"></xref>. Measurements could identify
              excessively large buffers, indicating where to deploy or
              configure AQM. An AQM method is often deployed in combination
              with other techniques, such as scheduling <xref
              target="RFC7567"> </xref> <xref target="RFC8290"> </xref> and
              although parameter-less methods are desired <xref
              target="RFC7567"> </xref>, current methods <xref
              target="RFC8290"> </xref> <xref target="RFC8289"> </xref> <xref
              target="RFC8033"> </xref> often cannot scale across all possible
              deployment scenarios.</t>

              <t hangText="Variation in delay:">Some network applications are
              sensitive to small changes in packet timing. To assess the
              performance of such applications, it can be necessary to measure
              the variation in delay observed along a portion of the path
              <xref target="RFC3393"></xref> <xref target="RFC5481"></xref>.
              The requirements resemble those for the measurement of
              latency.</t>

              <t hangText="Flow Reordering:">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
              re-buffering of real-time applications). Packet reordering can
              occur for many reasons (from equipment design to
              misconfiguration of forwarding rules). Since this impacts
              transport performance, network tools are needed to detect and
              measure unwanted/excessive reordering.</t>

              <t>There have been initiatives in the IETF transport area to
              reduce the impact of reordering within a transport flow,
              possibly leading to a reduction in the requirements for
              preserving 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 present level of reordering within deployed
              infrastructure, and inform decisions about how to progress such
              mechanisms.</t>
            </list></t>

          <t>Operational tools to detect mis-ordered packet flows and quantify
          the degree or reordering. Key performance indicators are
          retransmission rate, packet drop rate, sector utilisation level, a
          measure of reordering, peak rate, the ECN congestion experienced
          (CE) marking rate, etc.</t>

          <t>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>Techniques for measuring reordering typically observe packet
          sequence numbers. Some protocols provide in-built monitoring and
          reporting functions. Transport fields in the 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. As
          with other measurement, metadata is often needed to understand the
          context under which the data was collected, including the time,
          observation point, and way in which metrics were accumulated. The
          RTCP protocol directly reports some of this information in a form
          that can be directly visible in the network. A user of summary
          measurement data needs to trust the source of this data and the
          method used to generate the summary information.</t>
        </section>

        <section title="Transport use of Network Layer Header Fields">
          <t>Network-layer classification methods that rely on a multi-field
          classifier (e.g. infering QoS from the 5-tuple or choice of
          application protocol) are incompatible with transport protocols that
          encrypt the transport information.</t>

          <t>In contrast, network-layer header fields are not encrypted and
          can explicitly provide information from the transport layer to
          enable a different forwarding treatment by the network. This
          information can be provided by a transport that employs
          encryption.</t>

          <t>When a transport multiplexes multiple subflows, the user of the
          transport could wish to hide the presence and characteristics of
          these subflows. other uses of an encrypted transport could set the
          network-layer information to indicate the presence of subflows and
          to reflect the network needs of individual subflows (e.g., a WebRTC
          can identify different forwarding treatments for individual packets
          based on the value of the Differentiated Services Code Point (DSCP)
          field <xref target="I-D.ietf-tsvwg-rtcweb-qos"></xref>).</t>

          <t><list style="hanging">
              <t hangText="Use of IPv6 Network-Layer Flow Label:">Endpoints
              are encouraged to set the IPv6 Flow Label field of the
              network-layer header (e.g., <xref target="RFC8085"> </xref>).
              The label can provide information that can help inform
              network-layer queuing, forwarding (e.g., for Equal Cost
              Multi-Path, ECMP, routing, and Link Aggregation, LAG) <xref
              target="RFC6294"></xref>. A multiplexing transport could choose
              to use multiple flow labels to allow the network to
              independently forward subflows.</t>

              <t
              hangText="Use Network-Layer Differentiated Services Code Point Point:">Applications
              can expose their delivery expectations to the network by setting
              the DSCP field of IPv4 and IPv6 packets <xref
              target="RFC2474"></xref>.This provides explicit information to
              inform network-layer queuing and forwarding, rather than an
              operator inferring traffic requirements from transport and
              application headers via a multi-field classifier.</t>

              <t hangText="">Since the DSCP value can 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>

              <t hangText="Use of Explicit Congestion Marking:">ECN <xref
              target="RFC3168"> </xref> is a transport mechanism that utilises
              the ECN field in the network-layer header. Use of ECN explicitly
              informs the network-layer that a transport is ECN-capable, and
              requests ECN treatment of the flows packets. An ECN-capable
              transport can offer benefits when used over a path with
              equipment taht implements an AQM method with Congestion
              Experienced (CE) marking of IP packets <xref
              target="RFC8087"></xref>.</t>

              <t>ECN exposes the presence of congestion. The reception of
              CE-marked packets can be used to 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>).
              Interpreting the marking behaviour (i.e., assessing congestion
              and diagnosing faults) requires context from the transport layer
              (such as path RTT).</t>

              <t>AQM and ECN offer a range of algorithms and configuration
              options. Tools therefore need 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>.</t>
            </list></t>
        </section>
      </section>

      <section anchor="measure" 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 analyse. For most packets, this has been
        transport layer, until the emergence of QUIC, with the obvious
        exception of Virtual Private Networks (VPNs) and IPsec.</t>

        <t>When encryption conceals more layers in each packet, people seeking
        understanding of the network operation rely more on pattern inferences
        and other heuristics reliance on pattern inferences and accuracy
        suffers. 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). It remains
        to be seen whether more complex inferences can be mastered to produce
        the same monitoring accuracy (see section 2.1.1 of <xref
        target="RFC8404"></xref>).</t>

        <t>When measurement datasets are made available by servers or client
        endpoints, additional metadata, such as the state of the network, is
        often required to interpret this 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 the processing
        involved in observing packets on high rate links. This exports only
        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 observation of transport
        flows, with a focus on transport measurement.</t>

        <section anchor="point" title="Point of Observation">
          <t>On-path measurements are particularly useful for locating the
          source of problems or to assess the performance of a network segment
          or a particular device configuration. Often issues can only be
          understood in the context of the other flows that share a particular
          path, common network device, interface port, etc. A simple example
          is monitoring of a network device that uses a scheduler or active
          queue management technique <xref target="RFC7567"></xref>, where it
          could be desirable to understand whether algorithms are correctly
          controlling latency, or overload protection. This understanding
          implies knowledge of how traffic is assigned to any sub-queues used
          for flow scheduling, but can also require information about how the
          traffic dynamics impact active queue management, starvation
          prevention mechanisms and circuit-breakers.</t>

          <t>Sometimes multiple on-path observation points are needed. By
          correlating observations of headers 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>
        </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 valuable to equipment
          vendors who want to understand traffic trends 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 to the
          endpoint addresses being used, but it may be impossible 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 analyse the performance offered to
          the users of a network segment, and inform operational practice.</t>

          <t>While active measurements may be used in-network, passive
          measurements can have advantages in terms of eliminating
          unproductive test traffic, reducing the influence of test traffic on
          the overall traffic mix, and the ability to choose the point of
          observation <xref target="point"></xref>. However, passive
          measurements can rely on observing transport headers.</t>
        </section>

        <section anchor="Compliance"
                 title="Measuring Transport to Support Network Operations">
          <t>Information provided by tools observing transport headers can
          help determine whether mechanisms are needed in the network to
          prevent flows from acquiring excessive network capacity. Operators
          can implement operational practices to 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>

          <t><list style="hanging">
              <t
              hangText="Congestion Control Compliance of Traffic:">Congestion
              control is a key transport function <xref
              target="RFC2914"></xref>. Many network operators implicitly
              accept that TCP traffic complies 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>.</t>

              <t>A standards-compliant TCP stack provides congestion control
              may therefore be 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 IETF-specified transport (e.g., TCP and SCTP).</t>

              <t>However, when anomalies are detected, tools can interpret the
              transport protocol header information to help understand the
              impact of specific transport protocols (or protocol mechanisms)
              on the other traffic that shares a network. An observation in
              the network can gain understanding of the dynamics of a flow and
              its congestion control behaviour. Analysing observed flows can
              help to 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. The ability to identify
              sources that contribute excessive congestion is important to
              safe operation of network infrastructure, and mechanisms can
              inform configuration of network devices to complement the
              endpoint congestion avoidance mechanisms <xref
              target="RFC7567"></xref> <xref target="RFC8084"></xref> to avoid
              a portion of the network being driven into congestion collapse
              <xref target="RFC2914"></xref>.</t>

              <t hangText="Congestion Control Compliance for UDP traffic">UDP
              provides a minimal message-passing datagram 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 a
              transport are required to 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 needs tools to understand if datagram
              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 for the offered service.</t>

              <t>UDP flows that expose a well-known header by specifying the
              format of header fields can allow information to be observed to
              gain 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>
            </list></t>
        </section>
      </section>

      <section title="Use for Network Diagnostics and Troubleshooting ">
        <t>Transport header information can be useful for a variety of
        operational tasks <xref target="RFC8404"> </xref>: to diagnose network
        problems, assess network provider performance, evaluate
        equipment/protocol performance, capacity planning, management of
        security threats (including denial of service), and responding to user
        performance questions. Sections 3.1.2 and 5 of <xref
        target="RFC8404"></xref> provide further examples. 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 the information reduces
        the ability of an operator to observe transport performance, and could
        limit the ability of network operators to trace problems, make
        appropriate QoS decisions, or response to other queries about the
        network service. 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. A key need here is for
        tools to provide useful information during network anomalies (e.g.,
        significant reordering, high or intermittent loss). Many network
        operators currently utilise observed transport information as a part
        of their operational practice. However, the network will not break
        just because transport headers are encrypted, although alternative
        diagnostic and troubleshooting tools would need to be developed and
        deployed.</t>

        <section title="Examples of measurements">
          <t>Measurements can be used to monitor the health of a portion of
          the Internet, to provide early warning of the need to take action.
          They can assist in debugging and diagnosing the root causes of
          faults that concern a particular user's traffic. They can also be
          used to support post-mortem investigation after an anomaly to
          determine the root cause of a problem.</t>

          <t>In some case, measurements may involve active injection of test
          traffic to complete a measurement. However, most operators do not
          have access to user equipment, and injection of test traffic may be
          associated with costs in 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)
          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>In other cases, measurement involves dissecting network traffic
          flows. The observed 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/back-haul,
          point-to-point radio) has the complexity of a subsystem that
          performs radio resource management,s 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>
        </section>
      </section>

      <section title="Use of transport information to influence network forwarding">
        <t>Information from the transport protocol can be used by a
        multi-field classifier as a part of policy framework. Policies are
        commonly used for management of the QoS or Quality of Experience (QoE)
        in resource-constrained networks and by firewalls that use the
        information to implement access rules (see also section 2.2.2 of <xref
        target="RFC8404"></xref>). Network-layer classification methods that
        rely on a multi-field classifier (e.g. Inferring QoS from the 5-tuple
        or choice of application protocol) are incompatible with transport
        protocols that encrypt the transport information. Traffic that cannot
        be classified, will typically receive a default treatment.</t>

        <t>Transport information can also be explicitly set in network-layer
        header fields that are not encrypted. This can provide information to
        enable a different forwarding treatment by the network, even when a
        transport employs encryption to protect other header information.</t>

        <t>When a transport multiplexes multiple subflows, a transport could
        choose to hide the presence and characteristics of these subflows from
        the network. However, a transport is permitted to set the
        network-layer information to indicate the presence of subflows and to
        reflect the needs of individual subflows (e.g., a WebRTC can identify
        different forwarding treatments for individual packets based on the
        value of the DS field <xref
        target="I-D.ietf-tsvwg-rtcweb-qos"></xref>).</t>

        <t><list style="hanging">
            <t hangText="Use of IPv6 Network-Layer Flow Label:">Endpoints are
            encouraged to set the IPv6 Flow Label field of the network-layer
            header (e.g., <xref target="RFC8085"> </xref>). The label can
            provide information that can help inform network-layer queuing,
            forwarding (e.g., for Equal Cost Multi-Path, ECMP, routing, and
            Link Aggregation, LAG) <xref target="RFC6294"></xref>. A
            multiplexing transport could choose to use multiple flow labels to
            allow the network to independently forward subflows.</t>

            <t
            hangText="Use Network-Layer Differentiated Services Code Point Point:">Applications
            can expose their delivery expectations to the network by setting
            the DSCP field of IPv4 and IPv6 packets <xref
            target="RFC2474"></xref>. This provides explicit information to
            inform network-layer queuing and forwarding, rather than an
            operator inferring traffic requirements from transport and
            application headers via a multi-field classifier.</t>

            <t hangText="">Since the DSCP value can 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>

            <t hangText="Use of Explicit Congestion Marking:">ECN <xref
            target="RFC3168"> </xref> is a transport mechanism that utilises
            the ECN field in the network-layer header to explicitly inform the
            network-layer that a transport is ECN-capable and request ECN
            treatment of the flows packets. This can offer benefits when used
            over a path with equipment that implements an AQM method with
            Congestion Experienced (CE) marking of IP packets <xref
            target="RFC8087"></xref>.</t>

            <t>The reception of CE-marked packets can be used to 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>). Interpreting the marking behaviour
            (i.e., assessing congestion and diagnosing faults) requires
            context from the transport layer (such as path RTT).</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>.</t>
          </list></t>
      </section>
    </section>

    <section anchor="Transport-encrypt"
             title="Encryption and Authentication of Transport Headers">
      <t>End-to-end encryption can be applied at various protocol layers. It
      can be applied above the transport to encrypt the transport payload.
      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, identification of
      location and fingerprinting of behaviour can take place even on
      encrypted traffic flows. Any header information that has a clear
      definition in the protocol's message format(s), or is implied by that
      definition, and is not cryptographically confidentiality-protected can
      be unambiguously interpreted by on-path observers <xref
      target="I-D.trammell-wire-image"></xref>.</t>

      <t>There are several motivations:</t>

      <t><list style="symbols">
          <t>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 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 that are deliberately deployed to realise a
          useful function for the network and/or users<xref
          target="RFC3135"></xref>.</t>

          <t>Another motivation stems from increased concerns about privacy
          and surveillance. Some Internet users have valued the ability to
          protect identity, user location, and defend against traffic
          analysis, and have used methods such as IPsec Encapsulated Security
          Payload (ESP), Virtual Private Networks (VPNs) and other encrypted
          tunnel technologies. 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. Concerns have also been
          voiced about the addition of information to packets by third parties
          to provide analytics, customization, advertising, cross-site
          tracking of users, to bill the customer, or to selectively allow or
          block content. Whatever the reasons, there are now activities in the
          IETF to design new protocols that could include some form of
          transport header encryption (e.g., QUIC <xref
          target="I-D.ietf-quic-transport"></xref>).</t>
        </list>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 as
      the IPv6 Flow Label <xref target="RFC6437"></xref>, the DSCP and
      ECN.</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 for people who are 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. While the IETF can specify protocols, the
      success in actual deployment is often determined by many factors <xref
      target="RFC5218"></xref> that are not always clear at the time when
      protocols are being defined.</t>

      <t>The following briefly reviews some security design options for
      transport protocols. A Survey of Transport Security Protocols <xref
      target="I-D.ietf-taps-transport-security"></xref> provides more details
      concerning commonly used encryption methods at the transport layer.</t>

      <t><list style="hanging">
          <t
          hangText="Authenticating the Transport Protocol Header:">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 a
          receiving 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 the IP pseudo header, TCP header, and TCP
          data. TCP-AO protects the transport layer, preventing attacks from
          disabling the TCP connection itself and provides replay protection.
          TCP-AO may interact with middleboxes, depending on their behaviour
          <xref target="RFC3234"> </xref>.</t>

          <t>The IPsec Authentication Header (AH) <xref target="RFC4302">
          </xref> was designed to work at the network layer and authenticate
          the IP payload. This approach authenticates all transport headers,
          and verifies their integrity at the receiver, preventing in-network
          modification.</t>

          <t hangText="Greasing">Transport layer header information that is
          observable can be observed in the network. Protocols often provide
          extensibility features, reserving fields or values for use by future
          versions of a specification. The specification of receivers has
          traditionally ignored unspecified values, however in-network devices
          have emerged that ossify to require a certain value in a field, or
          re-use a field for another purpose. When the speicfication is later
          updated, it is impossible to deploy the new use of the field, and
          forwarding of the protocol could even become conditional on a
          specific header field value.</t>

          <t hangText="">A protocol can intentionally vary the value, format,
          and/or presence of observable transport header fields. This
          behaviour, known as GREASE (Generate Random Extensions And Sustain
          Extensibility), is designed to avoid a network device ossifying the
          use of a specific observable field. Greasing seeks to ease
          deployment of new methods. It can be designed to avoid in-network
          devices utilising the information in a transport header, or can make
          an observation robust to a set of changing values, rather than a
          specific set of values.</t>

          <t hangText="Encrypting the Transport Payload:">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.</t>

          <t>Examples of encrypting the payload include Transport Layer
          Security (TLS) over TCP <xref target="RFC8446"> </xref> <xref
          target="RFC7525"> </xref>, Datagram TLS (DTLS) over UDP <xref
          target="RFC6347"> </xref> <xref target="RFC7525"> </xref>, and
          TCPcrypt <xref target="I-D.ietf-tcpinc-tcpcrypt"></xref>, which
          permits opportunistic encryption of the TCP transport payload.</t>

          <t hangText="Encrypting the Transport Headers and Payload:">The
          network layer payload could be encrypted (including the entire
          transport header and the payload). This method provides
          confidentiality of the entire transport packet. It therefore does
          not expose any transport information to devices in the network,
          which also prevents modification along a network path.</t>

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

          <t
          hangText="Selectively Encrypting Transport Headers and Payload:">A
          transport protocol design can encrypt selected header fields, while
          also choosing to authenticate the entire 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>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
          can be authenticated End-to-End across a path.</t>

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

          <t hangText="Optional Encryption of Header Information:">There are
          implications to the use of optional header encryption in the design
          of a transport protocol, where support of optional mechanisms can
          increase the complexity of the protocol and its implementation and
          in the management decisions that are required to use variable format
          fields. Instead, fields of a specific type ought to always be sent
          with the same level of confidentiality or integrity protection.</t>
        </list></t>
    </section>

    <section title="Addition of Transport Information to Network-Layer Protocol Headers">
      <t>Transport protocol 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.</t>

      <section title="Use of transport information to influence network forwarding">
        <t>Information from the transport protocol can be used by a
        multi-field classifier as a part of policy framework. Policies are
        commonly used for management of the QoS or Quality of Experience (QoE)
        in resource-constrained networks and by firewalls that use the
        information to implement access rules (see also section 2.2.2 of <xref
        target="RFC8404"></xref>). Network-layer classification methods that
        rely on a multi-field classifier (e.g. Inferring QoS from the 5-tuple
        or choice of application protocol) are incompatible with transport
        protocols that encrypt the transport information. Traffic that cannot
        be classified, will typically receive a default treatment.</t>

        <t>Transport information can also be explicitly set in network-layer
        header fields that are not encrypted. This can provide information to
        enable a different forwarding treatment by the network, even when a
        transport employs encryption to protect other header information.</t>

        <t>When a transport multiplexes multiple subflows, a transport could
        choose to hide the presence and characteristics of these subflows from
        the network. However, a transport is permitted to set the
        network-layer information to indicate the presence of subflows and to
        reflect the needs of individual subflows (e.g., a WebRTC can identify
        different forwarding treatments for individual packets based on the
        value of the Differentiated Services Code Point (DSCP) field <xref
        target="I-D.ietf-tsvwg-rtcweb-qos"></xref>).</t>

        <t><list style="hanging">
            <t hangText="Use of IPv6 Network-Layer Flow Label:">Endpoints are
            encouraged to set the IPv6 Flow Label field of the network-layer
            header (e.g., <xref target="RFC8085"> </xref>). The label can
            provide information that can help inform network-layer queuing,
            forwarding (e.g., for Equal Cost Multi-Path, ECMP, routing, and
            Link Aggregation, LAG) <xref target="RFC6294"></xref>. A
            multiplexing transport could choose to use multiple flow labels to
            allow the network to independently forward subflows.</t>

            <t
            hangText="Use Network-Layer Differentiated Services Code Point Point:">Applications
            can expose their delivery expectations to the network by setting
            the DSCP field of IPv4 and IPv6 packets <xref
            target="RFC2474"></xref>.This provides explicit information to
            inform network-layer queuing and forwarding, rather than an
            operator inferring traffic requirements from transport and
            application headers via a multi-field classifier.</t>

            <t hangText="">Since the DSCP value can 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>

            <t hangText="Use of Explicit Congestion Marking:">ECN <xref
            target="RFC3168"> </xref> is a transport mechanism that utilises
            the ECN field in the network-layer header. Use of ECN explicitly
            informs the network-layer that a transport is ECN-capable, and
            requests ECN treatment of the flows packets. An ECN-capable
            transport can offer benefits when used over a path with equipment
            that implements an AQM method with Congestion Experienced (CE)
            marking of IP packets <xref target="RFC8087"></xref>.</t>

            <t>ECN exposes the presence of congestion. The reception of
            CE-marked packets can be used to 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>).
            Interpreting the marking behaviour (i.e., assessing congestion and
            diagnosing faults) requires context from the transport layer (such
            as path RTT).</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>.</t>
          </list></t>
      </section>

      <section title="Network-layer measurement">
        <t>Some measurements can 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 or in-situ OAM <xref
        target="I-D.ietf-ippm-ioam-data"></xref>) 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. In some cases, it can be
        difficult to position measurement tools at the required segments/nodes
        and there can be challenges in correlating the downsream/upstream
        information when in-band OAM data is inserted by an on-path device.
        This has the advantage that a single header can support all transport
        protocols, but there could also be less desirable implications of
        separating the operation of the transport protocol from the
        measurement framework.</t>

        <t>Another example of a network-layer approach is the IPv6 Performance
        and Diagnostic Metrics (PDM) Destination Option <xref
        target="RFC8250"></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.XXX</t>

        <t>Current measurements suggest it can be undesirable to rely on
        methods requiring the presence of network options or extension
        headers. 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 (e.g., <xref
        target="RFC7872"></xref>). 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 title="Implications of Protecting the Transport Headers">
      <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. Security work typically
      employs a design technique that seeks to expose only what is needed.
      However, there can be performance and operational benefits in exposing
      selected information to network tools.</t>

      <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.</t>

        <t>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 the 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 can support decisions 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>The patterns and types of traffic that share Internet capacity
        changes with time as networked applications, usage patterns and
        protocols continue to evolve.</t>

        <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 Protocols">
        <t>Information provided by tools observing transport headers can be
        used to classify traffic, and to limit the network capacity used by
        certain flows. Operators can potentially use this information to
        prioritise or de-prioritise certain flows or classes of flow, with
        potential implications for network neutrality, or to rate limit
        malicious or otherwise undesirable flows (e.g., for Distributed Denial
        of Service, DDOS, protection, or to ensure compliance with a traffic
        profile <xref target="Compliance"></xref>). Equally, operators could
        use analysis of transport headers and transport flow state to
        demonstrate that they are not providing differential treatment to
        certain flows. Obfuscating or hiding this information using encryption
        is expected to lead operators and maintainers of middleboxes
        (firewalls, etc.) to seek other methods to classify, and potentially
        other mechanisms to condition, network traffic.</t>

        <t>A lack of data reduces the level of precision with which flows can
        be classified and conditioning mechanisms are applied (e.g., rate
        limiting, circuit breaker techniques <xref target="RFC8084"></xref>,
        or blocking of uncharacterised traffic), and this needs to be
        considered when evaluating the impact of designs for transport
        encryption <xref target="RFC5218"></xref>.</t>
      </section>

      <section title="Impact on Research, Development and Deployment">
        <t>The majority of present Internet applications use two well-known
        transport protocols: e.g., TCP and UDP. Although TCP represents the
        majority of current traffic, some real-time applications use UDP, and
        much of this traffic utilises RTP format headers in the payload of the
        UDP datagram. Since these protocol headers have been fixed for
        decades, a range of tools and analysis methods have became common and
        well-understood. Over this period, the transport protocol headers have
        mostly changed slowly, and so also the need to develop tools track new
        versions of the protocol.</t>

        <t>Looking ahead, there will be a need to update these protocols and
        to develop and deploy new transport mechanisms and protocols. There
        are both opportunities and also challenges to the design, evaluation
        and deployment of new transport protocol mechanisms.</t>

        <t>Integrity checks can protect an endpoint from undetected
        modification of protocol fields by network devices, whereas encryption
        and obfuscation can further prevent these headers being utilised by
        network devices. Hiding headers can therefore provide the opportunity
        for greater freedom to update the protocols and can ease
        experimentation with new techniques and their final deployment in
        endpoints.</t>

        <t>Hiding headers can limit the ability to measure and characterise
        traffic. Measurement data is increasingly being used to inform design
        decisions in networking research, during development of new mechanisms
        and protocols and in standardisation. Measurement 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). Observation of pathologies are also important in
        understanding the interactions between cooperating protocols and
        network mechanism, the implications of sharing capacity with other
        traffic and the impact of different patterns of usage.</t>

        <t>Evolution and the ability to understand (measure) the impact need
        to proceed hand-in-hand. Attention 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>New transport protocol formats are expected to facilitate an
        increased pace of transport evolution, and with it the possibility to
        experiment with and deploy a wide range of protocol mechanisms. 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, and methods
        proposed for L4S).The growth and diversity of applications and
        protocols using the Internet also continues to expand. For each new
        method or application 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>Open standards motivate a desire for this evaluation to include
        independent observation and evaluation of performance data, which in
        turn suggests control over where and when measurement samples are
        collected. This requires consideration of the appropriate balance
        between encrypting all and no transport information.</t>
      </section>
    </section>

    <section title="Conclusions">
      <t>The majority of present Internet applications use two well-known
      transport protocols: e.g., TCP and UDP. Although TCP represents the
      majority of current traffic, some real-time applications have used UDP,
      and much of this traffic utilises RTP format headers in the payload of
      the UDP datagram. Since these protocol headers have been fixed for
      decades, a range of tools and analysis methods have became common and
      well-understood. Over this period, the transport protocol headers have
      mostly changed slowly, and so also the need to develop tools track new
      versions of the protocol.</t>

      <t>Confidentiality and strong integrity checks have properties that are
      being incorporated into new protocols and that have important benefits.
      The pace of development of transports using the WebRTC data channel and
      the rapid deployment of QUIC transport protocol can both be attributed
      to using the combination of UDP as a substrate while providing
      confidentiality and authentication of the encapsulated transport headers
      and payload.</t>

      <t>The traffic that can be observed by on-path network devices is a
      function of transport protocol design/options, network use,
      applications, and user characteristics. In general, when only a small
      proportion of the traffic has a specific (different) characteristic,
      such traffic seldom leads to operational concern, although the ability
      to measure and monitor it is less. The desire to understand the traffic
      and protocol interactions typically grows as the proportion of traffic
      increases in volume. The challenges increase when multiple instances of
      an evolving protocol contribute to the traffic that share network
      capacity.</t>

      <t>An increased pace of evolution therefore needs to be accompanied by
      methods that can be successfully deployed and used across operational
      networks. This leads to a need for network operators (at various level
      (ISPs, enterprises, firewall maintainer, etc) to identify appropriate
      operational support functions and procedures.</t>

      <t>Protocols that change their transport header format (wire format) or
      their behaviour (e.g., algorithms that are needed to classify and
      characterise the protocol), will require new tooling to be developed to
      catch-up with the changes. If the currently deployed tools and methods
      are no longer relevant then it may no longer be posisble to correctly
      measure performance. This can increase the response-time after faults,
      and can impact the ability to manage the network resulting in traffic
      causing traffic to be treated inappropriately (e.g., rate limiting
      because of being incorrectly classified/monitored).</t>

      <t>There are benefits in exposing consistent information to the network
      that avoids traffic being mis-classified and then receiving a default
      treatment by the network. The flow label and DSCP fields provide
      examples of how transport information can be made available for
      network-layer decisions. Extension headers could also be used to carry
      transport information that can inform network-layer decisions.</t>

      <t>As a part of its design a new protocol specification therefore needs
      to weigh the benefits of ossifying common headers, versus the potential
      demerits of exposing specific information that could be observed along
      the network path, to provide tools to manage new variants of protocols.
      This can be done for the entire transport header, or by dividing header
      fields between those that are observable and mutable; those that are
      observable, but imutable; and those that are hidden/obfusticated.</t>

      <t>Several scenarios to illustrate different ways this could evolve are
      provided below:</t>

      <t><list style="symbols">
          <t>One scenario is when transport protocols provide consistent
          information to the network by intentionally exposing a part of the
          transport header. The design fixes the format of this information
          between versions of the protocol. This ossification of the transport
          header allows an operator to establish tooling and procedures that
          enable it to provide consistent traffic management as the protocol
          evolves. In contrast to TCP (where all protocol information is
          exposed), evolution of the transport is facilitated by providing
          cryptographic integrity checks of the transport header fields
          (preventing undetected middlebox changes) and encryption of other
          protocol information (preventing observation within the network, or
          incentivising the use of the exposed information, rather than
          inferring information from other characteristics of the flow
          traffic). The exposed transport information can be used by operators
          to provide troubleshooting, measurement and any necessary functions
          appropriate to the class of traffic (priority, retransmission,
          reordering, circuit breakers, etc).</t>

          <t>An alternative scenario adopts different design goals, with a
          different outcome. A protocol that encrypts all header information
          forces network operators to act independently from apps/transport
          developments to extract the information they need to manage their
          network. A range of approaches could proliferate, as in current
          networks. Some operators can add a shim header to each packet as a
          flow as it crosses the network; other operators/managers could
          develop heuristics and pattern recognition to derive information
          that classifies flows and estimates quality metrics for the service
          being used; some could decide to rate-limit or block traffic until
          new tooling is in place. In many cases, the derived information can
          be used by operators to provide necessary functions appropriate to
          the class of traffic (priority, retransmission, reordering, circuit
          breakers, etc). Troubleshooting, and measurement becomes more
          difficult, and more diverse. This could require additional
          information beyond that visible in the packet header and when this
          information is used to inform decisions by on-path devices it can
          lead to dependency on other characteristics of the flow. In some
          cases, operators might need access to keying information to
          interpret encrypted data that they observe. Some use cases could
          demand use of transports that do not use encryption.</t>
        </list></t>

      <t>The direction in which this evolves could have significant
      implications on the way the Internet architecture develops. It exposes a
      risk that significant actors (e.g., developers and transport designers)
      achieve more control of the way in which the Internet architecture
      develops.In particular, there is a possibility that designs could evolve
      to significantly benefit of customers for a specific vendor, and that
      communities with very different network, applications or platforms could
      then suffer at the expense of benefits to their vendors own customer
      base. In such a scenario, there could be no incentive to support other
      applications/products or to work in other networks leading to reduced
      access for new approaches.</t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>This document is about design and deployment considerations for
      transport protocols. Issues relating to security are discussed in the
      various sections of the document.</t>

      <t>Authentication, confidentiality protection, and integrity protection
      are identified as Transport Features by <xref target="RFC8095"></xref>.
      As currently deployed in the Internet, these features are generally
      provided by a protocol or layer on top of the transport protocol <xref
      target="I-D.ietf-taps-transport-security"></xref>.</t>

      <t>Confidentiality and strong integrity checks have properties that can
      also be incorporated into the deisgn of a transport protocol. Integrity
      checks can protect an endpoint from undetected modification of protocol
      fields by network devices, whereas encryption and obfuscation or
      greasing can further prevent these headers being utilised by network
      devices. Hiding headers can therefore provide the opportunity for
      greater freedom to update the protocols and can ease experimentation
      with new techniques and their final deployment in endpoints. A protocol
      specification needs to weigh the benefits of ossifying common headers,
      versus the potential demerits of exposing specific information that
      could be observed along the network path to provide tools to manage new
      variants of protocols.</t>

      <t>A protocol design that uses header encryption can provide
      confidentiality of some or all of the protocol header information. This
      prevents an on-path device from knowledge of the header field. It
      therefore prevents mechanisms being built that directly rely on the
      information or seeks to infer semantics of an exposed header field.
      Hiding headers can limit the ability to measure and characterise
      traffic.</t>

      <t>Exposed transport headers are sometimes utilised as a part of the
      information to detect anomalies in network traffic. This can be used as
      the first line of defence yo identify potential threats from DOS or
      malware and redirect suspect traffic to dedicated nodes responsible for
      DOS analysis, malware detection, or to perform packet "scrubbing" (the
      normalization of packets so that there are no ambiguities in
      interpretation by the ultimate destination of the packet). These
      techniques are currently used by some operators to also defend from
      distributed DOS attacks.</t>

      <t>Exposed transport header fields are sometimes also utilised as a part
      of the information used by the receiver of a transport protocol to
      protect the transport layer from data injection by an attacker. In
      evaluating this use of exposed header information, it is important to
      consider whether it introduces a significant DOS threat. For example, an
      attacker could construct a DOS attack by sending packets with a sequence
      number that falls within the currently accepted range of sequence
      numbers at the receiving endpoint, this would then introduce additional
      work at the receiving endpoint, even though the data in the attacking
      packet may not finally be delivered by the transport layer. This is
      sometimes known as a &ldquo;shadowing attack&rdquo;. An attack can, for
      example, disrupt receiver processing, trigger loss and retransmission,
      or make a receiving endpoint perform unproductive decryption of packets
      that cannot be successfully decrypted (forcing a receiver to commit
      decryption resources, or to update and then restore protocol state).</t>

      <t>One mitigation to off-path attack is to deny knowledge of what header
      information is accepted by a receiver or obfusticate the accepted header
      information, e.g., setting a non-predictable initial value for a
      sequence number during a protocol handshake, as in <xref
      target="RFC3550"></xref> and <xref target="RFC6056"></xref>, or a port
      value that can not be predicted (see section 5.1 of <xref
      target="RFC8085"></xref>). A receiver could also require additional
      information to be used as a part of check before accepting packets at
      the transport layer (e.g., utilising a part of the sequence number space
      that is encrypted; or by verifying an encrypted token not visible to an
      attacker). This would also mitigate on-path attacks. An additional
      processing cost can be incurred when decryption needs to be attempted
      before a receiver is able to discard injected packets.</t>

      <t>Open standards motivate a desire for this evaluation to include
      independent observation and evaluation of performance data, which in
      turn suggests control over where and when measurement samples are
      collected. This requires consideration of the appropriate balance
      between encrypting all and no transport information. Open data, and
      accessibility to tools that can help understand trends in application
      deployment, network traffic and usage patterns can all contribute to
      understanding security challenges.</t>
    </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="Acknowledgements" title="Acknowledgements">
      <t>The authors would like to thank Mohamed Boucadair, Spencer Dawkins,
      Jana Iyengar, Mirja Kuehlewind, Kathleen Moriarty, Al Morton, Chris
      Seal, Joe Touch, Brian Trammell, and other members of the TSVWG for
      their comments and feedback.</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>

      <t>This work has received funding from the UK Engineering and Physical
      Sciences Research Council under grant EP/R04144X/1.</t>
    </section>
  </middle>

  <back>
    <references title="Informative References">
      &RFC1273;

      &RFC2474;

      &RFC2914;

      &RFC3135;

      &RFC3168;

      &RFC3234;

      &RFC3393;

      &RFC3550;

      &RFC4302;

      &RFC4303;

      &RFC4585;

      &RFC4737;

      &RFC5218;

      &RFC5236;

      &RFC8446;

      &RFC5481;

      &RFC5925;

      &RFC6056;
      &RFC6294;

      &RFC6269;

      &RFC6347;

      &RFC6437;

      &RFC7258;

      &RFC7525;

      &RFC7567;

      &RFC7624;

      &RFC7872;

      &RFC7928;

      &RFC8033;

      &RFC8084;

      &RFC8085;

      &RFC8086;

      &RFC8087;

      &RFC8095;

      &RFC8250;

      &RFC8289;

      &RFC8290;

      &RFC8404;

      &I-D.thomson-quic-grease;

      &I-D.ietf-quic-transport;

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

      &I-D.ietf-tcpinc-tcpcrypt;

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

      &I-D.ietf-ippm-ioam-data;

      &I-D.ietf-taps-transport-security;

      &I-D.trammell-wire-image;

      &I-D.ietf-tsvwg-rtcweb-qos;

      <reference anchor="Measure">
        <front>
          <title>Measurement-based Protocol Design, Eur. Conf. on Networks and
          Communications, Oulu, Finland.</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, IEEE Comm. Surveys &amp; Tutorials. 26;18(3)
          p2149-2196</title>

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

          <date month="November" year="2014" />
        </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>-02 This draft fixes textual errors.</t>

      <t>-03 This draft follows feedback from people reading this draft.</t>

      <t>-04 This adds an additional contributor and includes significant
      reworking to ready this for review by the wider IETF community Colin
      Perkins joined the author list.</t>

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

      <t>-05 Corrections received and helpful inputs from Mohamed
      Boucadair.</t>

      <t>-06 Updated following comments from Stephen Farrell, and feedback via
      email. Added a draft conclusion section to sketch some strawman
      scenarios that could emerge.</t>

      <t>-07 Updated following comments from Al Morton, Chris Seal, and other
      feedback via email.</t>

      <t>-08 Updated to address comments sent to the TSVWG mailing list by
      Kathleen Moriarty (on 08/05/2018 and 17/05/2018), Joe Touch on
      11/05/2018, and Spencer Dawkins.</t>

      <t>-09 Updated security considerations.</t>

      <t>-10 Updated references, split the Introduction, and added a paragraph
      giving some examples of why ossification has been an issue.</t>

      <t>-01 This resolved some reference issues. Updated section on
      observation by devices on the path.</t>

      <t>-02 Comments received from Kyle Rose, Spencer Dawkins and Tom
      Herbert. The network-layer information has also been re-organised after
      comments at IETF-103.</t>
    </section>
  </back>
</rfc>
