draft-ietf-tsvwg-transport-encrypt-08.txt | draft-ietf-tsvwg-transport-encrypt-09.txt | |||
---|---|---|---|---|
TSVWG G. Fairhurst | TSVWG G. Fairhurst | |||
Internet-Draft University of Aberdeen | Internet-Draft University of Aberdeen | |||
Intended status: Informational C. Perkins | Intended status: Informational C. Perkins | |||
Expires: February 24, 2020 University of Glasgow | Expires: May 6, 2020 University of Glasgow | |||
August 23, 2019 | November 3, 2019 | |||
The Impact of Transport Header Confidentiality on Network Operation and | Considerations around Transport Header Confidentiality, Network | |||
Evolution of the Internet | Operations, and the Evolution of Internet Transport Protocols | |||
draft-ietf-tsvwg-transport-encrypt-08 | draft-ietf-tsvwg-transport-encrypt-09 | |||
Abstract | Abstract | |||
This document describes some implications of applying end-to-end | To protect user data and privacy, Internet transport protocols have | |||
encryption at the transport layer. It first identifies in-network | supported payload encryption and authentication for some time. Such | |||
uses of transport layer header information. Then, it reviews some | encryption and authentication is now also starting to be applied to | |||
implications of developing end-to-end transport protocols that use | the transport protocol headers. This helps avoid transport protocol | |||
encryption to provide confidentiality of the transport protocol | ossification by middleboxes, while also protecting metadata about the | |||
headers, or that use authentication to protect the integrity of | communication. Current operational practice in some networks inspect | |||
transport header information. Since measurement and analysis of the | transport header information within the network, but this is no | |||
impact of network characteristics on transport protocols has been | longer possible when those transport headers are encrypted. This | |||
important to the design of current transports, it also considers the | document discusses the possible impact when network traffic uses a | |||
impact of transport encryption on transport and application | protocol with an encrypted transport header. It suggests issues to | |||
evolution. | consider when designing new transport protocols, to account for | |||
network operations, prevent network ossification, and enable | ||||
transport evolution, while still respecting user privacy. | ||||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on February 24, 2020. | This Internet-Draft will expire on May 6, 2020. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2019 IETF Trust and the persons identified as the | Copyright (c) 2019 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Context and Rationale . . . . . . . . . . . . . . . . . . . . 3 | 2. Context and Rationale . . . . . . . . . . . . . . . . . . . . 4 | |||
2.1. Use of Transport Header Information in the Network . . . 4 | 2.1. Use of Transport Header Information in the Network . . . 5 | |||
2.2. Encryption of Transport Header Information . . . . . . . 5 | 2.2. Authentication of Transport Header Information . . . . . 6 | |||
2.3. Encryption tradeoffs . . . . . . . . . . . . . . . . . . 6 | 2.3. Observable Transport Header Fields . . . . . . . . . . . 7 | |||
3. Current uses of Transport Headers within the Network . . . . 8 | 3. Current uses of Transport Headers within the Network . . . . 10 | |||
3.1. Observing Transport Information in the Network . . . . . 9 | 3.1. Observing Transport Information in the Network . . . . . 11 | |||
3.2. Transport Measurement . . . . . . . . . . . . . . . . . . 15 | 3.2. Transport Measurement . . . . . . . . . . . . . . . . . . 17 | |||
3.3. Use for Network Diagnostics and Troubleshooting . . . . . 19 | 3.3. Use for Network Diagnostics and Troubleshooting . . . . . 21 | |||
3.4. Header Compression . . . . . . . . . . . . . . . . . . . 20 | 3.4. Header Compression . . . . . . . . . . . . . . . . . . . 22 | |||
4. Encryption and Authentication of Transport Headers . . . . . 21 | 4. Encryption and Authentication of Transport Headers . . . . . 23 | |||
5. Addition of Transport Information to Network-Layer Protocol | 5. Addition of Transport Information to Network-Layer Headers . 26 | |||
Headers . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 | 5.1. Use of OAM within a Maintenance Domain . . . . . . . . . 26 | |||
6. Implications of Protecting the Transport Headers . . . . . . 25 | 5.2. Use of OAM across Multiple Maintenance Domains . . . . . 26 | |||
6.1. Independent Measurement . . . . . . . . . . . . . . . . . 26 | 6. Implications of Protecting the Transport Headers . . . . . . 27 | |||
6.2. Characterising "Unknown" Network Traffic . . . . . . . . 28 | 6.1. Independent Measurement . . . . . . . . . . . . . . . . . 27 | |||
6.3. Accountability and Internet Transport Protocols . . . . . 28 | 6.2. Characterising "Unknown" Network Traffic . . . . . . . . 29 | |||
6.4. Impact on Operational Cost . . . . . . . . . . . . . . . 28 | 6.3. Accountability and Internet Transport Protocols . . . . . 30 | |||
6.5. Impact on Research, Development and Deployment . . . . . 29 | 6.4. Impact on Operational Cost . . . . . . . . . . . . . . . 30 | |||
7. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . 30 | 6.5. Impact on Research, Development and Deployment . . . . . 31 | |||
8. Security Considerations . . . . . . . . . . . . . . . . . . . 33 | 7. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . 32 | |||
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 35 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 35 | |||
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 35 | 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 37 | |||
11. Informative References . . . . . . . . . . . . . . . . . . . 36 | 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 37 | |||
Appendix A. Revision information . . . . . . . . . . . . . . . . 43 | 11. Informative References . . . . . . . . . . . . . . . . . . . 38 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 44 | Appendix A. Revision information . . . . . . . . . . . . . . . . 45 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 47 | ||||
1. Introduction | 1. Introduction | |||
There is increased interest in, and deployment of, protocols that | Transport protocols have supported end-to-end encryption of payload | |||
employ end-to-end encryption at the transport layer, including the | data for many years. Examples include Transport Layer Security (TLS) | |||
transport layer headers. An example of such a transport is the QUIC | over TCP [RFC8446], Datagram TLS (DTLS) over UDP [RFC6347], and their | |||
transport protocol [I-D.ietf-quic-transport], currently being | corresponding usage guidelines [RFC7525], Secure RTP [RFC3711], and | |||
standardised in the IETF. Encryption of transport layer headers and | TCPcrypt [RFC8548] which permits opportunistic encryption of the TCP | |||
payload data has many benefits in terms of protecting user privacy. | transport payload. Some of these also provide integrity protection | |||
These benefits have been widely discussed [RFC7258], [RFC7624], and | of all or part of the transport header. | |||
this document strongly supports the increased use of encryption in | ||||
transport protocols. Encryption and authentication can also be used | ||||
to prevent unwanted modification of transport header information by | ||||
middleboxes. There are also, however, some costs, in that the | ||||
widespread use of transport encryption requires changes to network | ||||
operations, and complicates network measurement for research, | ||||
operational, and standardisation purposes. The direction in which | ||||
the use of transport header confidentiality evolves could have | ||||
significant implications on the way the Internet architecture | ||||
develops, and therefore needs to be considered as a part of protocol | ||||
design. | ||||
The remainder of this document discusses some consequences of | This end-to-end transport payload encryption brings many benefits in | |||
applying end-to-end encryption at the transport layer. It reviews | terms of providing confidentiality and protecting user privacy. Such | |||
the implications of developing end-to-end transport protocols that | benefits have been widely discussed [RFC7258] [RFC7624]. This | |||
use encryption to provide confidentiality of the transport protocol | document strongly supports and encourages increased use of end-to-end | |||
headers, and considers the effect of such changes on transport | payload encryption in transport protocols. The implications of | |||
protocol design and network operations. It also considers some | protecting the transport payload data are therefore not further | |||
anticipated implications on transport and application evolution. | discussed in this document. | |||
Transports are also increasingly encrypting and authenticating the | A further level of protection can be achieved by encrypting the | |||
payload (i.e., the application data carried within the transport | entire network layer payload, including both the transport layer | |||
connection) end-to-end. Such protection is encouraged, and the | headers and the payload. This method provides confidentiality for | |||
implications of protecting the payload are not further discussed in | the entire transport packet. It therefore does not expose any | |||
this document. | transport information to devices in the network, and prevents | |||
modification along a network path. An example of encryption at the | ||||
network layer is the IPsec Encapsulating Security Payload (ESP) | ||||
[RFC4303] in tunnel mode. Some Virtual Private Network (VPN) methods | ||||
also encrypt these headers. This form of encryption is not further | ||||
discussed in this document. | ||||
There is also a middle ground, comprising transport protocols that | ||||
encrypt some, or all, of their transport layer header information, in | ||||
addition to the payload. An example of such a protocol, that is | ||||
seeing widespread interest and deployment, is the QUIC transport | ||||
protocol [I-D.ietf-quic-transport]. Encryption and authentication of | ||||
the transport header information can prevent unwanted modification of | ||||
transport headers by middleboxes. It also reduces the amount of | ||||
metadata about the progress of the transport connection that is | ||||
visible to the network. | ||||
As discussed in [RFC7258], Pervasive Monitoring (PM) nis a technical | ||||
attack that needs to be mitigated in the design of IETF protocols. | ||||
This document supports that conclusion and the use of transport | ||||
header encryption to protect against pervasive monitoring. RFC 7258 | ||||
also notes, though, that "Making networks unmanageable to mitigate PM | ||||
is not an acceptable outcome, but ignoring PM would go against the | ||||
consensus documented here. An appropriate balance will emerge over | ||||
time as real instances of this tension are considered". | ||||
The following sections further considers some of the costs and | ||||
changes to network management and research that are implied by | ||||
widespread use of transport protocols that encrypt the transport | ||||
header information. It reviews the implications of developing | ||||
transport protocols that use end-to-end encryption to provide | ||||
confidentiality of their transport layer headers, and considers the | ||||
effect of such changes on transport protocol design and network | ||||
operations. It also considers some anticipated implications on | ||||
transport and application evolution. That is, it considers the | ||||
issues in designing transport protocols that both protect their | ||||
header information and respect user privacy. | ||||
2. Context and Rationale | 2. Context and Rationale | |||
The transport layer provides end-to-end interactions between | The transport layer provides end-to-end interactions between | |||
endpoints (processes) using an Internet path. Transport protocols | endpoints (processes) using an Internet path. Transport protocols | |||
layer directly over the network-layer service, and are sent in the | layer directly over the network-layer service, and are sent in the | |||
payload of network-layer packets. They support end-to-end | payload of network-layer packets. They support end-to-end | |||
communication between applications, supported by higher-layer | communication between applications, using higher-layer protocols | |||
protocols, running on the end systems (transport endpoints). This | running on the end systems (transport endpoints). | |||
simple architectural view hides one of the core functions of the | ||||
This simple architectural view hides one of the core functions of the | ||||
transport: to discover and adapt to the Internet path that is | transport: to discover and adapt to the Internet path that is | |||
currently used. The design of Internet transport protocols is as | currently being used. The design of Internet transport protocols is | |||
much about trying to avoid the unwanted side effects of congestion on | as much about trying to avoid the unwanted side effects of congestion | |||
a flow and other capacity-sharing flows, avoiding congestion | on a flow and other capacity-sharing flows, avoiding congestion | |||
collapse, adapting to changes in the path characteristics, etc., as | collapse, adapting to changes in the path characteristics, etc., as | |||
it is about end-to-end feature negotiation, flow control, and | it is about end-to-end feature negotiation, flow control, and | |||
optimising for performance of a specific application. | optimising for performance of a specific application. | |||
To achieve stable Internet operations, the IETF transport community | To achieve stable Internet operations, the IETF transport community | |||
has to date relied heavily on the results of measurements and the | has to date relied heavily on the results of measurements and the | |||
insights of the network operations community to understand the trade- | insights of the network operations community to understand the trade- | |||
offs, and to inform selection of appropriate mechanisms to ensure a | offs, and to inform selection of appropriate mechanisms to ensure a | |||
safe, reliable, and robust Internet (e.g., [RFC1273]). In turn, the | safe, reliable, and robust Internet (e.g., [RFC1273]). In turn, the | |||
network operator and access provider community has relied on being | network operator and access provider communities have relied on being | |||
able to understand the pattern and requirements of traffic passing | able to understand the pattern and requirements of traffic passing | |||
over the Internet, both in aggregate and at the flow level. The | over the Internet, both in aggregate and at the flow level. The | |||
widespread use of transport header encryption may change this. | widespread use of transport header encryption could change this. | |||
2.1. Use of Transport Header Information in the Network | ||||
In-network measurement of transport flow characteristics can be used | ||||
to enhance performance, and control cost and service reliability. | ||||
Some operators have deployed functionality in middleboxes to both | ||||
support network operations and enhance performance. This reliance on | ||||
the presence and semantics of specific header information leads to | ||||
ossification, where 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, the | ||||
ossification could frustrate the evolution of the protocol (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 | ||||
would prevent the device from forwarding packets using a different | ||||
version of a protocol that introduces a feature that changes the | ||||
value of this field). | ||||
As an example of ossification, consider the experience of developing | ||||
Transport Layer Security (TLS) 1.3 [RFC8446]. This required a design | ||||
that recognised that deployed middleboxes relied on the presence of | ||||
certain header filed exposed in TLS 1.2, and failed if those headers | ||||
were changed. Other examples of the impact of ossification can be | ||||
found in the development 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 all these 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. | ||||
2.2. Encryption of Transport Header Information | ||||
Encryption is expected to form a basis for many future transport | Encryption is expected to form a core part of future transport | |||
protocol designs. These can be in the form of encrypted transport | protocol designs. This can be in the form of encrypted transport | |||
protocols (i.e., transport protocols that use encryption to provide | protocols (i.e., transport protocols that use encryption to provide | |||
confidentiality of some or all of the transport-layer header | confidentiality of some or all of the transport-layer header | |||
information), and/or the encryption of transport payloads (i.e., | information), and/or the encryption of transport payloads (i.e., | |||
confidentiality of the payload data). There are many motivations for | confidentiality of the payload data). There are many motivations for | |||
deploying such transports, and increasing public concerns about | deploying such transports. Increasing public concerns about | |||
interference with Internet traffic [RFC7624] have led to a rapidly | interference with Internet traffic [RFC7624] have led to a rapidly | |||
expanding deployment of encrypted transport protocols such as QUIC | expanding deployment of encrypted transport protocols such as QUIC | |||
[I-D.ietf-quic-transport]. Using encryption to provide | [I-D.ietf-quic-transport]. | |||
confidentiality of the transport layer therefore brings some well- | ||||
known privacy and security benefits. | ||||
Authentication and the introduction of cryptographic integrity checks | Using encryption to provide confidentiality of the transport layer | |||
for header fields can prevent undetected manipulation of transport | therefore brings some well-known privacy and security benefits. | |||
headers by network devices. This does not prevent inspection of the | ||||
information by devices 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. In this context, specification of a non- | ||||
encrypted transport header field explicitly allows protocol designers | ||||
to make the certain header information observable by the network. | ||||
This supports use of this information by on-path devices, but at the | ||||
same time 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. To avoid unwanted inspection, | ||||
a protocol could intentionally vary the format or value of exposed | ||||
header fields [I-D.ietf-tls-grease]. | ||||
A protocol design that uses header encryption with secure key | 2.1. Use of Transport Header Information in the Network | |||
distribution can provide confidentiality for some, or all, of the | ||||
protocol header information. This prevents an on-path device from | ||||
observing the transport headers, and stops mechanisms being built | ||||
that directly rely on transport header information, or that seek to | ||||
infer semantics of exposed header fields. Transport header | ||||
encryption can therefore help reduce ossification of the transport | ||||
layer. | ||||
While encryption can hide transport header information, it does not | In-network measurement of transport flow characteristics can be used | |||
to enhance performance, and control cost and service reliability. To | ||||
support network operations and enhance performance, some operators | ||||
have deployed functionality that utilises on-path observations of the | ||||
transport headers of packets passing through their network. These | ||||
devices can rely on the presence and semantics of specific header | ||||
information, which leads to ossification where an endpoint has to | ||||
supply a specific header to receive the network service that it | ||||
desires. | ||||
In some cases, network-layer use of transport header information can | ||||
be benign or advantageous to the protocol (e.g., recognising the | ||||
start of a TCP connection, providing header compression for a Secure | ||||
RTP flow, or explicitly using exposed protocol information to provide | ||||
consistent decisions by on-path devices). However, in other cases, | ||||
ossification can frustrate the evolution of the transport protocol. | ||||
A mechanism implemented in a network device, such as a firewall, that | ||||
requires a header field to have only a specific known set of values | ||||
(i.e., that regards the field as invariant) can prevent the device | ||||
from forwarding packets using a different version of a protocol that | ||||
introduces a feature that changes the value of the observed field. | ||||
An example of such ossification was observed in the development of | ||||
Transport Layer Security (TLS) 1.3 [RFC8446]. This necessitated a | ||||
design that recognised that deployed middleboxes relied on the | ||||
presence of certain header fields exposed in TLS 1.2, and failed if | ||||
those headers were changed. | ||||
The design of MPTCP also had to be revised to account for middleboxes | ||||
(known as "TCP Normalizers") that monitor the evolution of the window | ||||
advertised in the TCP header and reset connections when the window | ||||
does not grow as expected. Similarly, Issues have been reported with | ||||
TCP Fast Open using middleboxes that modify the transport header of | ||||
packets by removing unknown TCP options, that drop segments with | ||||
unknown TCP options, drop segments that contain data and have the SYN | ||||
bit set, drop packets with SYN/ACK that acknowledge data, or that | ||||
disrupt connections that send data before the three-way handshake | ||||
completes. Other examples of ossification have included middleboxes | ||||
that rewrite TCP sequence and acknowledgement numbers, but are | ||||
unaware of the (newer) TCP selective acknowledgement (SACK) Option | ||||
and therefore fail to correctly rewrite the selective acknowledgement | ||||
header information to match the changes that were made to the fixed | ||||
TCP header. | ||||
In all these cases, the issue was caused by middleboxes that had a | ||||
hard-coded understanding of transport behaviour, and that interacted | ||||
poorly with transport protocols when the transport behaviour changed. | ||||
Many protocol specifications had also failed to clearly indicate the | ||||
invariant parts of the transport header and were designed without | ||||
thought for how header information could be used within the network. | ||||
Transport header encryption can help reduce such ossification of the | ||||
transport layer. A protocol design that uses header encryption with | ||||
secure key distribution can provide confidentiality for some, or all, | ||||
of the protocol header information. This prevents an on-path device | ||||
from observing the transport headers, and stops mechanisms being | ||||
built that directly rely on transport header information, or that | ||||
seek to infer semantics of exposed header fields. This encryption is | ||||
normally combined with authentication of the protected information. | ||||
RFC 8546 summarises this, stating that it is "The wire image, not the | ||||
protocol's specification, determines how third parties on the network | ||||
paths among protocol participants will interact with that protocol" | ||||
[RFC8546]. | ||||
While encryption can hide transport header information and therefore | ||||
help to reduce ossification of the transport protocol, it does not | ||||
prevent ossification of the network service. People seeking to | prevent ossification of the network service. People seeking to | |||
understand network traffic could come to rely on pattern inferences | understand network traffic could come to rely on pattern inferences | |||
and other heuristics as the basis for network decision and to derive | and other heuristics as the basis for network decision and to derive | |||
measurement data. This can create new dependencies on the transport | measurement data. This can create new dependencies on the transport | |||
protocol, or the patterns of traffic it can generate. This use of | protocol, or the patterns of traffic it can generate. This use of | |||
machine-learning methods usually demands large data sets, presenting | machine-learning methods usually demands large data sets, presenting | |||
it own requirements for collecting and distributing the data. | it own requirements for collecting and distributing the data. | |||
2.3. Encryption tradeoffs | 2.2. Authentication of Transport Header Information | |||
The are architectural challenges and considerations in the way | The design of a transport protocol needs to determine whether to | |||
transport protocols are designed, and the ability to characterise and | encrypt all or a part of the transport information. It is possible | |||
compare different transport solutions [Measure]. The decision about | that on-path devices could develop mechanisms that rely on the | |||
which transport headers fields are made observable offers trade-offs | presence of any non-encrypted field, or a known value in the field. | |||
around authentication and confidentiality versus observability, | Section 4 of RFC8558 goes further, to state: "Anything exposed to the | |||
network operations and management, and ossification. The impact | path should be done with the intent that it be used by the network | |||
differs depending on the activity, for example: | elements on the path" [RFC8558]. In this context, specification of a | |||
non-encrypted transport header field explicitly allows protocol | ||||
designers to make the certain header information observable by the | ||||
network. This supports use of this information by on-path devices, | ||||
but at the same time this can lead to ossification of the exposed | ||||
part of a transport header. That is, network forwarding could evolve | ||||
to depend on the presence and/or value of these fields (even if the | ||||
header is not modified by the in-network device). | ||||
Network Operations and Research: Observable transport headers enable | New protocol designs will make use of authentication to provide a | |||
explicit measure and analysis protocol performance, network | cryptographic integrity check for the transport header fields. | |||
anomalies, and failure pathologies at any point along the Internet | Transport header information that is authenticated, but not | |||
path. In many cases, it is important to relate observations to | encrypted, permits inspection of the non-encrypted header fields by | |||
specific equipment/configurations or network segments. | devices on the path, but does prevent undetected manipulation by | |||
network devices. | ||||
Concealing transport header information makes performance/ | Sometimes a protocol design employs a header field that is not | |||
behaviour unavailable to passive observers along the path, | encrypted, but it is desired to avoid unwanted inspection restricting | |||
Operators will be unable to use this information directly and may | the choice of usable values in the field (and the resulting potential | |||
turn to more ambitious ways to collect, estimate, or infer that | for undesirable ossification). In this case, the protocol designers | |||
data. Operational practices aimed at guessing transport | can choose to intentionally vary the format and/or value of exposed | |||
parameters are out of scope for this document, and are only | header fields to reduce the chance of ossification (see Section 4 and | |||
mentioned here to recognize that encryption does not prevent | [I-D.ietf-tls-grease]). | |||
operators from attempting to apply practices that were used with | ||||
unencrypted transport headers. | ||||
Confidentiality of the transport payload could be provided while | 2.3. Observable Transport Header Fields | |||
leaving some, or all, transport headers unencrypted (or providing | ||||
this information in a network-layer extension), possibly with | ||||
authentication. This provides many of the privacy and security | ||||
benefits while supporting operations and research, but at the cost | ||||
of ossifying the exposed headers. | ||||
Protection from Denial of Service: Observable transport headers | Transport headers have end-to-end meaning, but are often observed by | |||
currently provide useful input to classify and detect anomalous | equipment within the network. The decision about which transport | |||
events, such as changes in application behaviour or distributed | headers fields are made observable offers trade-offs around header | |||
denial of service attacks. For this application to be effective, | confidentiality versus header observability (including non-encrypted | |||
it needs to be possible for an operator to uniquely disambiguate | but authenticated header fields) for network operations and | |||
unwanted traffic. Concealing transport header information would | management, and the implications for ossification and user privacy. | |||
prevent disambiguation based on transport information. This could | The impact differs depending on the activity, as discussed below and | |||
result in less-efficient identification of unwanted traffic, the | developed in the remainder of this document: | |||
use of heuristics to identify anomalous flows, or the introduction | ||||
of rate limits for uncharacterised traffic. | ||||
Network Troubleshooting and Diagnostics: Observable transport | Network Operations: Observable transport headers enable explicit | |||
headers can be utilised by operators for network troubleshooting | measurement and analysis of protocol performance, | |||
and diagnostics. Flows experiencing packet loss or jitter are | network anomalies, and failure pathologies at any | |||
hard to distinguish from unaffected flows when only observing | point along the Internet path. In many cases, it | |||
network layer headers. Effective troubleshooting often requires | is important to relate observations to specific | |||
visibility into the transport layer behaviour. | equipment/configurations or a specific network | |||
segment. | ||||
Concealing transport header information reduces the incentive for | Concealing transport header information makes | |||
operators to troubleshoot, since they cannot interpret the data. | performance/behaviour unavailable to passive | |||
It can limit understanding of transport dynamics, such as the | observers along the path. Operators will then be | |||
impact of packet loss or latency on the flows, or make it harder | unable to use this information directly and could | |||
to localise the network segment intoducing the packet loss or | turn to more ambitious ways to collect, estimate, | |||
latency. Additional mechanisms will be needed to help reconstruct | or infer that data. (Operational practices aimed | |||
or replace transport-level metrics for troubleshooting and | at guessing transport parameters are out of scope | |||
diagnostics. These can add complexity and operational costs | for this document, and are only mentioned here to | |||
(e.g., in deploying additional functions in equipment or adding | recognize that encryption does not stop operators | |||
traffic overhead). | from attempting to apply practices that have been | |||
used with unencrypted transport headers.) | ||||
See also Sections 3, 5, and 6.4. | ||||
Network Traffic Analysis: Observable transport headers can support | Traffic Analysis: Observable transport headers can be used to | |||
network traffic analysis to determine which transport protocols | determine which transport protocols and features | |||
and features are being used across a network segment and to | are being used across a network segment, and to | |||
measure trends in the pattern of usage. For some applications | measure trends in the pattern of usage. For some | |||
end-to-end measurements/traces are sufficient, but in other | use cases, end-to-end measurements/traces are | |||
applications it is important to relate observations to specific | sufficient and can assist in developing and | |||
equipment/configurations or particular network segments. | debugging new transports and analysing their | |||
deployment. In other uses, it is important to | ||||
relate observations to specific equipment/ | ||||
configurations or particular network segments. | ||||
Concealing transport header information can make analysis harder | Concealing transport header information can make | |||
or impossible. This could impact the ability for an operator to | analysis harder or impossible. This could impact | |||
anticipate the need for network upgrades and roll-out. It can | the ability to anticipate the need for network | |||
also impact the on-going traffic engineering activities performed | upgrades and roll-out, or affect on-going traffic | |||
by operators, such as determining which parts of the path | engineering activities performed by operators | |||
contribute delay, jitter or loss. While this impact could, in | such as determining which parts of the path | |||
many cases, be small, there are scenarios where operators directly | contribute delay, jitter, or loss. While this | |||
support particular services and need visibility to explore issues | impact could, in many cases, be small, there are | |||
relating to Quality of Service (QoS), the ability to perform fast | scenarios where operators will actively monitor | |||
re-routing of critical traffic, or to mitigate the characteristics | and support particular services, e.g., to explore | |||
of specific radio links, and so on. | issues relating to Quality of Service (QoS), to | |||
perform fast re-routing of critical traffic, to | ||||
mitigate the characteristics of specific radio | ||||
links, and so on. | ||||
Open and Verifiable Network Data: Observable transport headers can | See also Sections 3.1-3.2, and 5. | |||
provide open and verifiable measurement data. The ability of | ||||
other stake holders to review transport header traces helps | ||||
develop insight into performance and traffic contribution of | ||||
specific variants of a protocol. Independently observed data is | ||||
important to help ensure the health of the research and | ||||
development communities. | ||||
Concealing transport header information can reduce the range of | Troubleshooting: Observable transport headers can be utilised by | |||
actors that can observe useful data. This would limit the | operators for network troubleshooting and | |||
information sources available to the Internet community to | diagnostics. Effective troubleshooting often | |||
understand the operation of new transport protocols, reducing | requires visibility into the transport layer | |||
information to inform design decisions and standardisation of the | behaviour. Flows experiencing packet loss or | |||
new protocols and related operational practices. | jitter are hard to distinguish from unaffected | |||
flows when only observing network layer headers. | ||||
Compliance: Observable transport headers coupled with published | Concealing transport header information reduces | |||
transport specifications allow operators and regulators to check | the incentive for operators to troubleshoot, | |||
compliance. Independently verifiable performance metrics can also | since they cannot interpret the data. This can | |||
be utilised to demonstrate regulatory compliance in some | limit understanding of transport dynamics, such | |||
jurisdictions, and as a basis for informing design decisions. | as the impact of packet loss or latency on the | |||
This can bring assurance to those operating networks, often | flows, or make it harder to localise the network | |||
avoiding the need to deploy complex techniques that routinely | segment introducing the packet loss or latency. | |||
monitor and manage Internet traffic flows (e.g., avoiding the | Additional mechanisms will be needed to help | |||
capital and operational costs of deploying flow rate-limiting and | reconstruct or replace transport-level metrics | |||
network circuit-breaker methods [RFC8084]). | for troubleshooting and diagnostics. These can | |||
add complexity and operational costs (e.g., in | ||||
deploying additional functions in equipment or | ||||
adding traffic overhead). | ||||
When transport header information is concealed, it is not possible | See also Section 3.3 and 5. | |||
to observe transport header information. Methods are still needed | ||||
to confirm that the traffic produced conforms to the expectations | ||||
of the operator or developer. | ||||
Different parties will view the relative importance of these issues | Network Protection: Observable transport headers currently provide | |||
differently. For some, the benefits of encrypting some, or all, of | useful input to classify and detect anomalous | |||
the transport headers may outweigh the impact of doing so; others | events, such as changes in application behaviour | |||
might make a different trade-off. The purpose of highlighting the | or distributed denial of service attacks. An | |||
trade-offs is to make such analysis possible. | operator needs to uniquely disambiguate unwanted | |||
traffic. | ||||
Concealing transport header information would | ||||
prevent disambiguation based on transport | ||||
information. This could result in less-efficient | ||||
identification of unwanted traffic, the use of | ||||
heuristics to identify anomalous flows, or the | ||||
introduction of rate limits for uncharacterised | ||||
traffic. | ||||
See also Sections 6.2 and 6.3. | ||||
SLA Compliance: Observable transport headers coupled with | ||||
published transport specifications allow | ||||
operators and regulators to explore teh | ||||
compliance with Service Level Agreements (SLAs). | ||||
Independently verifiable performance metrics can | ||||
also be utilised to demonstrate regulatory | ||||
compliance in some jurisdictions, and as a basis | ||||
for informing design decisions. This can bring | ||||
assurance to those operating networks, often | ||||
avoiding the need to deploy complex techniques | ||||
that routinely monitor and manage Internet | ||||
traffic flows (e.g., avoiding the capital and | ||||
operational costs of deploying flow rate-limiting | ||||
and network circuit-breaker methods [RFC8084]). | ||||
When transport header information is concealed, | ||||
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. | ||||
See also Sections 5 and 6.1-6.3. | ||||
Verifiable Data: Observable transport headers can provide open and | ||||
verifiable measurements to support operations, | ||||
research, and protocol development. The ability | ||||
of other stake holders to review transport header | ||||
traces helps develop insight into performance and | ||||
traffic contribution of specific variants of a | ||||
protocol. Independently observed data is | ||||
important to help ensure the health of the | ||||
research and development communities. | ||||
Concealing transport header information can | ||||
reduce the range of actors that can observe | ||||
useful data. This limits the information sources | ||||
available to the Internet community to understand | ||||
the operation of new transport protocols, | ||||
reducing information to inform design decisions | ||||
and standardisation of the new protocols and | ||||
related operational practices | ||||
See also Section 6. | ||||
There are architectural challenges and considerations in the way | ||||
transport protocols are designed, and the ability to characterise and | ||||
compare different transport solutions [Measure]. Different parties | ||||
will view the relative importance of these differently. For some, | ||||
the benefits of encrypting the transport headers could outweigh the | ||||
impact of doing so; others might make a different trade-off. | ||||
3. Current uses of Transport Headers within the Network | 3. Current uses of Transport Headers within the Network | |||
Despite transport headers having end-to-end meaning, some of these | In response to pervasive monitoring [RFC7624] revelations and the | |||
transport headers have come to be used in various ways within the | IETF consensus that "Pervasive Monitoring is an Attack" [RFC7258], | |||
Internet. In response to pervasive monitoring [RFC7624] revelations | efforts are underway to increase encryption of Internet traffic. | |||
and the IETF consensus that "Pervasive Monitoring is an Attack" | Applying confidentiality to transport header fields affects how | |||
[RFC7258], efforts are underway to increase encryption of Internet | protocol information is used [RFC8404], requiring consideration of | |||
traffic. Applying confidentiality to transport header fields affects | the trade-offs discussed in Section 2.3. To understand the | |||
how protocol information is used [RFC8404], requiring consideration | ||||
of the trade-offs discussed in Section 2.3. To understand the | ||||
implications, it is necessary to understand how transport layer | implications, it is necessary to understand how transport layer | |||
headers are currently observed and/or modified by middleboxes within | headers are currently observed and/or modified by middleboxes within | |||
the network. | the network. | |||
We review some current uses in the following section. This does not | This section reviews some current usage. This review does not | |||
consider the intentional modification of transport headers by | consider the intentional modification of transport headers by | |||
middleboxes (such as in Network Address Translation, NAT, or | middleboxes (such as in Network Address Translation, NAT, or | |||
Firewalls). Common issues concerning IP address sharing are | Firewalls). Common issues concerning IP address sharing are | |||
described in [RFC6269]. | described in [RFC6269]. | |||
3.1. Observing Transport Information in the Network | 3.1. Observing Transport Information in the Network | |||
If in-network observation of transport protocol headers is needed, | If in-network observation of transport protocol headers is needed, | |||
this requires knowledge of the format of the transport header: | this requires knowledge of the format of the transport header: | |||
o Flows need to be identified at the level required to perform the | o Flows need to be identified at the level needed to perform the | |||
observation; | observation; | |||
o The protocol and version of the header need to be visible, e.g., | o The protocol and version of the header need to be visible, e.g., | |||
by defining the wire image [RFC8546]. As protocols evolve over | by defining the wire image [RFC8546]. As protocols evolve over | |||
time and there could be a need to introduce new transport headers. | time and there could be a need to introduce new transport headers. | |||
This could require interpretation of protocol version information | This could require interpretation of protocol version information | |||
or connection setup information; | or connection setup information; | |||
o The location and syntax of any observed transport headers need to | o The location and syntax of any observed transport headers need to | |||
be known. IETF transport protocols can specify this information. | be known. IETF transport protocols can specify this information. | |||
The following subsections describe various ways that observable | The following subsections describe various ways that observable | |||
transport information has been utilised. | transport information has been utilised. | |||
3.1.1. Flow Identification Using Transport Layer Headers | 3.1.1. Flow Identification Using Transport Layer Headers | |||
Flow identification is a common function. For example, performed by | Flow/Session identification [RFC8558] is a common function. For | |||
measurement activities, QoS classification, firewalls, Denial of | example, performed by measurement activities, QoS classification, | |||
Service, DOS, prevention. This becomes more complex and less easily | firewalls, Denial of Service, DOS, prevention. | |||
achieved when multiplexing is used at or above the transport layer. | ||||
Observable transport header information, together with information in | Observable transport header information, together with information in | |||
the network header, has been used to identify flows and their | the network header, has been used to identify flows and their | |||
connection state, together with the protocol options being used. | connection state, together with the protocol options being used. | |||
Transport protocols, such as TCP and the Stream Control Transport | Transport protocols, such as TCP and the Stream Control Transport | |||
Protocol (SCTP), specify a standard base header that includes | Protocol (SCTP), specify a standard base header that includes | |||
sequence number information and other data. They also have the | sequence number information and other data. They also have the | |||
possibility to negotiate additional headers at connection setup, | possibility to negotiate additional headers at connection setup, | |||
identified by an option number in the transport header. | identified by an option number in the transport header. | |||
In some uses, a low-numbered (well-known) transport port number can | In some uses, a low-numbered (well-known) transport port number can | |||
be used to identify the protocol, although port information alone is | identify the protocol. However, port information alone is not | |||
not sufficient to guarantee identification of a protocol since | sufficient to guarantee identification when applications can use | |||
applications can use arbitrary ports, multiple sessions can be | arbitrary ports, multiple sessions can be multiplexed on a single | |||
multiplexed on a single port, and ports can be re-used by subsequent | port, and ports can be re-used by subsequent sessions. UDP-based | |||
sessions. | protocols often do not use well-known port numbers. Some flows can | |||
instead be identified by observing signalling protocol data (e.g., | ||||
UDP-based protocols often do not use well-known port numbers. Some | [RFC3261], [I-D.ietf-rtcweb-overview]) or through the use of magic | |||
flows can instead be identified by observing signalling protocol data | numbers placed in the first byte(s) of the datagram payload | |||
(e.g., [RFC3261], [I-D.ietf-rtcweb-overview]) or through the use of | ||||
magic numbers placed in the first byte(s) of the datagram payload | ||||
[RFC7983]. | [RFC7983]. | |||
Concealing transport header information can remove information used | Concealing transport header information can remove information used | |||
to classify flows by passive observers along the path, so operators | to classify flows by passive observers along the path, so operators | |||
will be unable to use this information directly. Careful use of the | will be unable to use this information directly. Operators could | |||
network layer features can help address provide similar information | turn to more ambitious ways to collect, estimate, or infer that data, | |||
in the case where the network is unable to inspect transport protocol | including heuristics based on the analysis of traffic patterns. For | |||
headers. Operators could also turn to more ambitious ways to | example, an operator that cannot access the Session Description | |||
collect, estimate, or infer that data, including heuristics based on | Protocol (SDP) session descriptions to classify a flow as audio | |||
the analysis of traffic patterns. For example, an operator that no | traffic, might instead use (possibly less-reliable) heuristics to | |||
longer has access to Session Description Protocol (SDP) session | infer that short UDP packets with regular spacing carry audio | |||
descriptions to classify a flow carry as audio traffic might instead | traffic. Operational practices aimed at inferring transport | |||
use heuristics to infer that short UDP packets with regular spacing | parameters are out of scope for this document, and are only mentioned | |||
carry audio traffic. Operational practices aimed at inferring | here to recognize that encryption does not prevent operators from | |||
transport parameters are out of scope for this document, and are only | attempting to apply practices that were used with unencrypted | |||
mentioned here to recognize that encryption does not prevent | transport headers. | |||
operators from attempting to apply practices that were used with | ||||
unencrypted transport headers. | ||||
Confidentiality of the transport payload could be provided while | ||||
leaving some, or all, transport headers unencrypted, or providing | ||||
this information in a network-layer extension, possibly with | ||||
authentication. This provides many of the privacy and security | ||||
benefits while supporting operations and research, but at the cost of | ||||
ossifying the exposed headers. | ||||
3.1.2. Metrics derived from Transport Layer Headers | 3.1.2. Metrics derived from Transport Layer Headers | |||
Observable transport headers enable explicit measurement and analysis | Observable transport headers enable explicit measurement and analysis | |||
of protocol performance, network anomalies, and failure pathologies | of protocol performance, network anomalies, and failure pathologies | |||
at any point along the Internet path. Some operators manage their | at any point along the Internet path. Some operators use passive | |||
portion of the Internet by characterizing the performance of link/ | monitoring to manage their portion of the Internet by characterizing | |||
network segments. Passive monitoring can observe traffic that does | the performance of link/network segments. Inferences from transport | |||
not encrypt the transport header information, and make inferences | headers are used to derive performance metrics. A variety of open | |||
from transport headers to derive performance metrics. | source and commercial tools have been deployed that utilise transport | |||
header information in this way to derive the following metrics: | ||||
A variety of open source and commercial tools have been deployed that | ||||
utilise transport header information in this way. The following | ||||
metrics can be derived: | ||||
Traffic Rate and Volume: Header information (e.g., sequence number | Traffic Rate and Volume: Protocol sequence number and packet size | |||
and packet size) allows derivation of volume measures per- | can be used to derive volume measures per-application, to | |||
application, to characterise the traffic that uses a network | characterise the traffic that uses a network segment or the | |||
segment or the pattern of network usage. This can be measured per | pattern of network usage. Measurements can be per endpoint or for | |||
endpoint or for an aggregate of endpoints (e.g., to assess | an endpoint aggregate (e.g., to assess subscriber usage). | |||
subscriber usage). It can also be used to trigger measurement- | Measurments can also be used to trigger traffic shaping, and to | |||
based traffic shaping, and to implement QoS support within the | associate QoS support within the network and lower layers. Volume | |||
network and lower layers. Volume measures can be valuable for | measures can also be valuable for capacity planning and providing | |||
capacity planning and providing detail of trends, rather than the | detail of trends in usage. | |||
volume per subscriber. | ||||
Loss Rate and Loss Pattern: Flow loss rate can be derived (e.g., | Loss Rate and Loss Pattern: Flow loss rate can be derived (e.g., | |||
from transport sequence numbers) and has been used as a metric for | from transport sequence numbers) and has been used as a metric for | |||
performance assessment and to characterise transport behaviour. | performance assessment and to characterise transport behaviour. | |||
Understanding the location and root cause of loss can help an | Understanding the location and root cause of loss can help an | |||
operator determine whether this requires corrective action. | operator determine whether this requires corrective action. | |||
Network operators have used the variation in patterns of loss as a | Network operators have used the variation in patterns of loss as a | |||
key performance metric, utilising this to detect changes in the | key performance metric, utilising this to detect changes in the | |||
offered service. | offered service. | |||
There are various causes of loss, including corruption of link | There are various causes of loss, including: corruption of link | |||
frames (e.g., interference on a radio link), buffer overflow | frames (e.g., due to interference on a radio link), buffering loss | |||
(e.g., due to congestion), policing (traffic management), buffer | (e.g., overflow due to congestion, Active Queue Management, AQM | |||
management (e.g., Active Queue Management, AQM [RFC7567]), and | [RFC7567], or inadequate provision following traffic pre-emption), | |||
inadequate provision of traffic pre-emption. Understanding flow | and policing (traffic management). Understanding flow loss rates | |||
loss rates requires either observing sequence numbers in transport | requires either observing sequence numbers in transport headers, | |||
headers, or maintaining per-flow packet counters (but note that | or maintaining per-flow packet counters (flow identification often | |||
flow identification often requires transport header information). | requires transport header information). Per-hop loss can also | |||
Per-hop loss can be monitored at the interface level by devices in | sometimes be monitored at the interface level by devices in the | |||
the network. It is often valuable to understand the conditions | network. It is often valuable to understand the conditions under | |||
under which packet loss occurs. This usually requires relating | which packet loss occurs, which usually requires relating loss to | |||
per-flow loss to the traffic flowing on the network node/segment | the traffic flowing on the network node/segment at the time of | |||
at the time of loss. | loss. | |||
Observation of transport feedback information (e.g., RTP Control | Observation of transport feedback information (e.g., RTP Control | |||
Protocol (RTCP) reception reports [RFC3550], TCP SACK blocks) can | Protocol (RTCP) reception reports [RFC3550], TCP SACK blocks) can | |||
increase understanding of the impact of loss and help identify | increase understanding of the impact of loss and help identify | |||
cases where loss could have been wrongly identified, or where the | cases where loss could have been wrongly identified, or where the | |||
transport did not require the lost packet. It is sometimes more | transport did not require transmission of the lost packet. It is | |||
helpful to understand the pattern of loss, than the loss rate, | sometimes more helpful to understand the pattern of loss, than the | |||
because losses can often occur as bursts, rather than randomly- | loss rate, because losses can often occur as bursts, rather than | |||
timed events. | randomly-timed events. | |||
Throughput and Goodput: Throughput is the amount of data sent by a | Throughput and Goodput: Throughput is the amount of data sent by a | |||
flow per time interval. Goodput [RFC7928] is a measure of useful | flow per time interval. Goodput [RFC7928] is a measure of useful | |||
data exchanged (the ratio of useful data to total volume of | data exchanged (the ratio of useful data to total volume of | |||
traffic sent by a flow). The throughput achieved by a flow can be | traffic sent by a flow). The throughput of a flow can be | |||
determined even when transport header information is concealed, | determined even when transport header information is concealed, | |||
providing the individual flow can be identified. Goodput requires | providing the individual flow can be identified. Goodput requires | |||
ability to differentiate loss and retransmission of packets, for | ability to differentiate loss and retransmission of packets, for | |||
example by observing packet sequence numbers in the TCP or the | example by observing packet sequence numbers in the TCP or the | |||
Real-time Transport Protocol (RTP) headers [RFC3550]. | Real-time Transport Protocol (RTP) headers [RFC3550]. | |||
Latency: Latency is a key performance metric that impacts | Latency: Latency is a key performance metric that impacts | |||
application and user-perceived response times. It often | application and user-perceived response times. It often | |||
indirectly impacts throughput and flow completion time. Latency | indirectly impacts throughput and flow completion time. This | |||
determines the reaction time of the transport protocol itself, | determines the reaction time of the transport protocol itself, | |||
impacting flow setup, congestion control, loss recovery, and other | impacting flow setup, congestion control, loss recovery, and other | |||
transport mechanisms. The observed latency can have many | transport mechanisms. The observed latency can have many | |||
components [Latency]. Of these, unnecessary/unwanted queuing in | components [Latency]. Of these, unnecessary/unwanted queuing in | |||
network buffers has often been observed as a significant factor | network buffers has often been observed as a significant factor | |||
[bufferbloat]. Once the cause of unwanted latency has been | [bufferbloat]. Once the cause of unwanted latency has been | |||
identified, this can often be eliminated. | identified, this can often be eliminated. | |||
To measure latency across a part of a path, an observation point | To measure latency across a part of a path, an observation point | |||
[RFC7799] can measure the experienced round trip time (RTT) using | [RFC7799] can measure the experienced round trip time (RTT) using | |||
packet sequence numbers, and acknowledgements, or by observing | packet sequence numbers, and acknowledgements, or by observing | |||
header timestamp information. Such information allows an | header timestamp information. Such information allows an | |||
observation point in the network to determine not only the path | observation point in the network to determine not only the path | |||
RTT, but also to measure the upstream and downstream contribution | RTT, but also allows measurement of the upstream and downstream | |||
to the RTT. This could be used to locate a source of latency, | contribution to the RTT. This could be used to locate a source of | |||
e.g., by observing cases where the median RTT is much greater than | latency, e.g., by observing cases where the median RTT is much | |||
the minimum RTT for a part of a path. | greater than the minimum RTT for a part of a path. | |||
The service offered by network operators can benefit from latency | The service offered by network operators can benefit from latency | |||
information to understand the impact of configuration changes and | information to understand the impact of configuration changes and | |||
to tune deployed services. Latency metrics are key to evaluating | to tune deployed services. Latency metrics are key to evaluating | |||
and deploying AQM [RFC7567], DiffServ [RFC2474], and Explicit | and deploying AQM [RFC7567], DiffServ [RFC2474], and Explicit | |||
Congestion Notification (ECN) [RFC3168] [RFC8087]. Measurements | Congestion Notification (ECN) [RFC3168] [RFC8087]. Measurements | |||
could identify excessively large buffers, indicating where to | could identify excessively large buffers, indicating where to | |||
deploy or configure AQM. An AQM method is often deployed in | deploy or configure AQM. An AQM method is often deployed in | |||
combination with other techniques, such as scheduling [RFC7567] | combination with other techniques, such as scheduling [RFC7567] | |||
[RFC8290] and although parameter-less methods are desired | [RFC8290] and although parameter-less methods are desired | |||
[RFC7567], current methods [RFC8290] [RFC8289] [RFC8033] often | [RFC7567], current methods often require tuning [RFC8290] | |||
cannot scale across all possible deployment scenarios. | [RFC8289] [RFC8033] because they cannot scale across all possible | |||
deployment scenarios. | ||||
Variation in delay: Some network applications are sensitive to | Variation in delay: Some network applications are sensitive to | |||
(small) changes in packet timing (jitter). Short and long-term | (small) changes in packet timing (jitter). Short and long-term | |||
delay variation can impact on the latency of a flow and hence the | delay variation can impact on the latency of a flow and hence the | |||
perceived quality of applications using the network. For example, | perceived quality of applications using the network. For example, | |||
jitter metrics are often cited when characterising paths | jitter metrics are often cited when characterising paths | |||
supporting real-time traffic. To assess the performance of such | supporting real-time traffic. To assess the performance of such | |||
applications, it can be necessary to measure the variation in | applications, it can be necessary to measure the variation in | |||
delay observed along a portion of the path [RFC3393] [RFC5481]. | delay observed along a portion of the path [RFC3393] [RFC5481]. | |||
The requirements for observable transport headers resemble those | The requirements for observable transport headers resemble those | |||
skipping to change at page 13, line 18 ¶ | skipping to change at page 15, line 6 ¶ | |||
have potential to simplify network equipment design as well as the | have potential to simplify network equipment design as well as the | |||
potential to improve robustness of the transport service. | potential to improve robustness of the transport service. | |||
Measurements of reordering can help understand the present level | Measurements of reordering can help understand the present level | |||
of reordering within deployed infrastructure, and inform decisions | of reordering within deployed infrastructure, and inform decisions | |||
about how to progress such mechanisms. Key performance indicators | about how to progress such mechanisms. Key performance indicators | |||
are retransmission rate, packet drop rate, sector utilisation | are retransmission rate, packet drop rate, sector utilisation | |||
level, a measure of reordering, peak rate, the ECN congestion | level, a measure of reordering, peak rate, the ECN congestion | |||
experienced (CE) marking rate, etc. | experienced (CE) marking rate, etc. | |||
Metrics have been defined that evaluate whether a network has | Metrics have been defined that evaluate whether a network has | |||
maintained packet order on a packet-by-packet basis [RFC4737] and | maintained packet order on a packet-by-packet basis [RFC4737] | |||
[RFC5236]. | [RFC5236]. | |||
Techniques for measuring reordering typically observe packet | Techniques for measuring reordering typically observe packet | |||
sequence numbers. Some protocols provide in-built monitoring and | sequence numbers. Some protocols provide in-built monitoring and | |||
reporting functions. Transport fields in the RTP header [RFC3550] | reporting functions. Transport fields in the RTP header [RFC3550] | |||
[RFC4585] can be observed to derive traffic volume measurements | [RFC4585] can be observed to derive traffic volume measurements | |||
and provide information on the progress and quality of a session | and provide information on the progress and quality of a session | |||
using RTP. As with other measurement, metadata is often needed to | using RTP. As with other measurement, metadata is often needed to | |||
understand the context under which the data was collected, | understand the context under which the data was collected, | |||
including the time, observation point [RFC7799], and way in which | including the time, observation point [RFC7799], and way in which | |||
skipping to change at page 14, line 6 ¶ | skipping to change at page 15, line 43 ¶ | |||
for management of the QoS or Quality of Experience (QoE) in resource- | for management of the QoS or Quality of Experience (QoE) in resource- | |||
constrained networks, and by firewalls to implement access rules (see | constrained networks, and by firewalls to implement access rules (see | |||
also section 2.2.2 of [RFC8404]). Network-layer classification | also section 2.2.2 of [RFC8404]). Network-layer classification | |||
methods that rely on a multi-field classifier (e.g., inferring QoS | methods that rely on a multi-field classifier (e.g., inferring QoS | |||
from the 5-tuple or choice of application protocol) are incompatible | from the 5-tuple or choice of application protocol) are incompatible | |||
with transport protocols that encrypt the transport information. | with transport protocols that encrypt the transport information. | |||
Traffic that cannot be classified will typically receive a default | Traffic that cannot be classified will typically receive a default | |||
treatment. | treatment. | |||
Transport information can also be explicitly set in network-layer | Transport information can also be explicitly set in network-layer | |||
header fields that are not encrypted. This can provide information | header fields that are not encrypted, serving as a replacement/ | |||
to enable a different forwarding treatment by the network, even when | addition to the exposed transport information [RFC8558]. This can | |||
a transport employs encryption to protect other header information. | provide information to enable a different forwarding treatment by the | |||
network, even when a transport employs encryption to protect other | ||||
header information. | ||||
The user of a transport that multiplexes multiple sub-flows might | The user of a transport that multiplexes multiple sub-flows might | |||
want to hide the presence and characteristics of these sub-flows. On | want to hide the presence and characteristics of these sub-flows. On | |||
the other hand, an encrypted transport could set the network-layer | the other hand, an encrypted transport could set the network-layer | |||
information to indicate the presence of sub-flows, and to reflect the | information to indicate the presence of sub-flows, and to reflect the | |||
network needs of individual sub-flows. There are several ways this | network needs of individual sub-flows. There are several ways this | |||
could be done: | could be done: | |||
IP Address: Applications expose the addresses used by endpoints, and | IP Address: Applications normally expose the addresses used by | |||
this is used in the forwarding decisions in network devices. | endpoints, and this is used in the forwarding decisions in network | |||
Address and other protocol information can be used by a Multi- | devices. Address and other protocol information can be used by a | |||
Field (MF) classifier to determine how traffic is treated | Multi-Field (MF) classifier to determine how traffic is treated | |||
[RFC2475], and hence the quality of experience for a flow. | [RFC2475], and hence the quality of experience for a flow. | |||
Using the IPv6 Network-Layer Flow Label: A number of Standards Track | Using the IPv6 Network-Layer Flow Label: A number of Standards Track | |||
and Best Current Practice RFCs (e.g., [RFC8085], [RFC6437], | and Best Current Practice RFCs (e.g., [RFC8085], [RFC6437], | |||
[RFC6438]) encourage endpoints to set the IPv6 Flow label field of | [RFC6438]) encourage endpoints to set the IPv6 Flow label field of | |||
the network-layer header. IPv6 "source nodes SHOULD assign each | the network-layer header. IPv6 "source nodes SHOULD assign each | |||
unrelated transport connection and application data stream to a | unrelated transport connection and application data stream to a | |||
new flow" [RFC6437]. A multiplexing transport could choose to use | new flow" [RFC6437]. A multiplexing transport could choose to use | |||
multiple Flow labels to allow the network to independently forward | multiple Flow labels to allow the network to independently forward | |||
subflows. RFC6437 provides further guidance on choosing a flow | subflows. RFC6437 provides further guidance on choosing a flow | |||
label value, stating these "should be chosen such that their bits | label value, stating these "should be chosen such that their bits | |||
exhibit a high degree of variability", and chosen so that "third | exhibit a high degree of variability", and chosen so that "third | |||
parties should be unlikely to be able to guess the next value that | parties should be unlikely to be able to guess the next value that | |||
a source of flow labels will choose". To promote privacy, the | a source of flow labels will choose". | |||
Flow Label assignment needs to avoid introducing linkability that | ||||
a network device may observe. Once set, a flow label can provide | Once set, a flow label can provide information that can help | |||
information that can help inform network-layer queuing and | inform network-layer queuing and forwarding [RFC6438], for example | |||
forwarding [RFC6438], for example with Equal Cost Multi-Path | with Equal Cost Multi-Path routing and Link Aggregation [RFC6294]. | |||
routing and Link Aggregation [RFC6294]. Considerations when using | Considerations when using IPsec are further described in | |||
IPsec are further described in [RFC6438]. | [RFC6438]. | |||
The choice of how to assign a Flow Label needs to avoid | ||||
introducing linkability that a network device could observe. | ||||
Inappropriate use by the transport can have privacy implications | ||||
(e.g., assigning the same label to two independent flows that | ||||
ought not to be classified the same). | ||||
Using the Network-Layer Differentiated Services Code Point: | Using the Network-Layer Differentiated Services Code Point: | |||
Applications can expose their delivery expectations to the network | Applications can expose their delivery expectations to the network | |||
by setting the Differentiated Services Code Point (DSCP) field of | by setting the Differentiated Services Code Point (DSCP) field of | |||
IPv4 and IPv6 packets [RFC2474]. For example, WebRTC applications | IPv4 and IPv6 packets [RFC2474]. For example, WebRTC applications | |||
identify different forwarding treatments for individual sub-flows | identify different forwarding treatments for individual sub-flows | |||
(audio vs. video) based on the value of the DSCP field | (audio vs. video) based on the value of the DSCP field | |||
[I-D.ietf-tsvwg-rtcweb-qos]). This provides explicit information | [I-D.ietf-tsvwg-rtcweb-qos]). This provides explicit information | |||
to inform network-layer queuing and forwarding, rather than an | to inform network-layer queuing and forwarding, rather than an | |||
operator inferring traffic requirements from transport and | operator inferring traffic requirements from transport and | |||
application headers via a multi-field classifier. | application headers via a multi-field classifier. Inappropriate | |||
use can have privacy implications (e.g., assigning the same label | ||||
to two independent flows that ought not to be classified the | ||||
same). Inappropriate use by the transport can have privacy | ||||
implications (e.g., assigning a different DSCP to a subflow could | ||||
assist in a network device discovering the traffic pattern used by | ||||
an application). The field is mutable, i.e., some network devices | ||||
can be expected to change this field (use of each DSCP value is | ||||
defined by an RFC). | ||||
Since the DSCP value can impact the quality of experience for a | Since the DSCP value can impact the quality of experience for a | |||
flow, observations of service performance need to consider this | flow, observations of service performance need to consider this | |||
field when a network path has support for differentiated service | field when a network path has support for differentiated service | |||
treatment. | treatment. | |||
Using Explicit Congestion Marking: ECN [RFC3168] is a transport | Using Explicit Congestion Marking: ECN [RFC3168] is a transport | |||
mechanism that utilises the ECN field in the network-layer header. | mechanism that utilises the ECN field in the network-layer header. | |||
Use of ECN explicitly informs the network-layer that a transport | Use of ECN explicitly informs the network-layer that a transport | |||
is ECN-capable, and requests ECN treatment of the flow. An ECN- | is ECN-capable, and requests ECN treatment of the flow. An ECN- | |||
skipping to change at page 15, line 36 ¶ | skipping to change at page 17, line 40 ¶ | |||
AQM and ECN offer a range of algorithms and configuration options. | AQM and ECN offer a range of algorithms and configuration options. | |||
Tools therefore need to be available to network operators and | Tools therefore need to be available to network operators and | |||
researchers to understand the implication of configuration choices | researchers to understand the implication of configuration choices | |||
and transport behaviour as the use of ECN increases and new | and transport behaviour as the use of ECN increases and new | |||
methods emerge [RFC7567]. | methods emerge [RFC7567]. | |||
When transport headers are concealed, operators will be unable to use | When transport headers are concealed, operators will be unable to use | |||
this information directly. Careful use of the network layer features | this information directly. Careful use of the network layer features | |||
can help address provide similar information in the case where the | can help address provide similar information in the case where the | |||
network is unable to inspect transport protocol headers. | network is unable to inspect transport protocol headers. | |||
Section Section 5 describes use of network extension headers. | ||||
3.2. Transport Measurement | 3.2. Transport Measurement | |||
The common language between network operators and application/content | The common language between network operators and application/content | |||
providers/users is packet transfer performance at a layer that all | providers/users is packet transfer performance at a layer that all | |||
can view and analyse. For most packets, this has been the transport | can view and analyse. For most packets, this has been the transport | |||
layer, until the emergence of QUIC, with the obvious exception of | layer, until the emergence of transport protocols performing header | |||
Virtual Private Networks (VPNs) and IPsec. | encryption, with the obvious exception of VPNs and IPsec. | |||
When encryption conceals more layers in each packet, people seeking | When encryption conceals more layers in each packet, people seeking | |||
understanding of the network operation rely more on pattern inference | understanding of the network operation rely more on pattern inference | |||
and other heuristics. It remains to be seen whether more complex | and other heuristics. It remains to be seen whether more complex | |||
inferences can be mastered to produce the same monitoring accuracy | inferences can be mastered to produce the same monitoring accuracy | |||
(see section 2.1.1 of [RFC8404]). | (see section 2.1.1 of [RFC8404]). | |||
When measurement datasets are made available by servers or client | When measurement datasets are made available by servers or client | |||
endpoints, additional metadata, such as the state of the network, is | endpoints, additional metadata, such as the state of the network, is | |||
often required to interpret this data to answer questions about | often necessary to interpret this data to answer questions about | |||
network performance or understand a pathology. Collecting and | network performance or understand a pathology. Collecting and | |||
coordinating such metadata is more difficult when the observation | coordinating such metadata is more difficult when the observation | |||
point is at a different location to the bottleneck/device under | point is at a different location to the bottleneck/device under | |||
evaluation [RFC7799]. | evaluation [RFC7799]. | |||
Packet sampling techniques are used to scale the processing involved | Packet sampling techniques are used to scale the processing involved | |||
in observing packets on high rate links. This exports only the | in observing packets on high rate links. This exports only the | |||
packet header information of (randomly) selected packets. The | packet header information of (randomly) selected packets. The | |||
utility of these measurements depends on the type of bearer and | utility of these measurements depends on the type of bearer and | |||
number of mechanisms used by network devices. Simple routers are | number of mechanisms used by network devices. Simple routers are | |||
skipping to change at page 16, line 47 ¶ | skipping to change at page 19, line 7 ¶ | |||
Sometimes multiple on-path observation points are needed. By | Sometimes multiple on-path observation points are needed. By | |||
correlating observations of headers at multiple points along the path | correlating observations of headers at multiple points along the path | |||
(e.g., at the ingress and egress of a network segment), an observer | (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 | can determine the contribution of a portion of the path to an | |||
observed metric, to locate a source of delay, jitter, loss, | observed metric, to locate a source of delay, jitter, loss, | |||
reordering, congestion marking, etc. | reordering, congestion marking, etc. | |||
3.2.2. Use by Operators to Plan and Provision Networks | 3.2.2. Use by Operators to Plan and Provision Networks | |||
Traffic measurements (e.g., traffic volume, loss, latency) are used | Traffic measurements are used by operators to help plan deployment of | |||
by operators to help plan deployment of new equipment and | new equipment and configuration in their networks. Data is also | |||
configuration in their networks. Data is also valuable to equipment | valuable to equipment vendors who want to understand traffic trends | |||
vendors who want to understand traffic trends and patterns of usage | and patterns of usage as inputs to decisions about planning products | |||
as inputs to decisions about planning products and provisioning for | and provisioning for new deployments. This measurement information | |||
new deployments. This measurement information can also be correlated | can also be correlated with billing information when this is also | |||
with billing information when this is also collected by an operator. | collected by an operator. | |||
A network operator supporting traffic that uses transport header | A network operator supporting traffic that uses transport header | |||
encryption might not have access to per-flow measurement data. | encryption might not have access to per-flow measurement data. | |||
Trends in aggregate traffic can be observed and can be related to the | Trends in aggregate traffic can be observed and can be related to the | |||
endpoint addresses being used, but it may be impossible to correlate | endpoint addresses being used, but it might be impossible to | |||
patterns in measurements with changes in transport protocols (e.g., | correlate patterns in measurements with changes in transport | |||
the impact of changes in introducing a new transport protocol | protocols (e.g., the impact of changes in introducing a new transport | |||
mechanism). This increases the dependency on other indirect sources | protocol mechanism). This increases the dependency on other indirect | |||
of information to inform planning and provisioning. | sources of information to inform planning and provisioning. | |||
3.2.3. Service Performance Measurement | 3.2.3. Service Performance Measurement | |||
Traffic measurements (e.g., traffic volume, loss, latency) can be | Traffic measurements (e.g., traffic volume, loss, latency) can be | |||
used by various actors to help analyse the performance offered to the | used by various actors to help analyse the performance offered to the | |||
users of a network segment, and to inform operational practice. | users of a network segment, and to inform operational practice. | |||
While active measurements (see section 3.4 of [RFC7799]) may be used | While active measurements (see section 3.4 of [RFC7799]) could be | |||
within a network, passive measurements (see section 3.6 of [RFC7799]) | used within a network, passive measurements (see section 3.6 of | |||
can have advantages in terms of eliminating unproductive test | [RFC7799]) can have advantages in terms of eliminating unproductive | |||
traffic, reducing the influence of test traffic on the overall | test traffic, reducing the influence of test traffic on the overall | |||
traffic mix, and the ability to choose the point of observation (see | traffic mix, and the ability to choose the point of observation (see | |||
Section 3.2.1). However, passive measurements can rely on observing | Section 3.2.1). Passive measurements can rely on observing transport | |||
transport headers which is not possible if those headers are | headers, which is not possible if those headers are encrypted, but | |||
encrypted. | could utilise information about traffic volumes or patterns of | |||
interaction to deduce metrics. | ||||
3.2.4. Measuring Transport to Support Network Operations | 3.2.4. Measuring Transport to Support Network Operations | |||
Information provided by tools observing transport headers can help | Information provided by tools observing transport headers can help | |||
determine whether mechanisms are needed in the network to prevent | determine whether mechanisms are needed in the network to prevent | |||
flows from acquiring excessive network capacity. Operators can | flows from acquiring excessive network capacity. Operators can | |||
implement operational practices to manage traffic flows (e.g., to | implement operational practices to manage traffic flows (e.g., under | |||
prevent flows from acquiring excessive network capacity under severe | severe congestion) by deploying rate-limiters, traffic shaping or | |||
congestion) by deploying rate-limiters, traffic shaping or network | network transport circuit breakers [RFC8084]. | |||
transport circuit breakers [RFC8084]. | ||||
Congestion Control Compliance of Traffic: Congestion control is a | Congestion Control Compliance of Traffic: Congestion control is a | |||
key transport function [RFC2914]. Many network operators | key transport function [RFC2914]. Many network operators | |||
implicitly accept that TCP traffic complies with a behaviour that | implicitly accept that TCP traffic complies with a behaviour that | |||
is acceptable for use in the shared Internet. TCP algorithms have | is acceptable for use in the shared Internet. TCP algorithms have | |||
been continuously improved over decades and they have reached a | been continuously improved over decades and they have reached a | |||
level of efficiency and correctness that custom application-layer | level of efficiency and correctness that custom application-layer | |||
mechanisms will struggle to easily duplicate [RFC8085]. | mechanisms will struggle to easily duplicate [RFC8085]. | |||
A standards-compliant TCP stack provides congestion control that | A standards-compliant TCP stack provides congestion control that | |||
may therefore be judged safe for use across the Internet. | is judged safe for use across the Internet. Applications | |||
Applications developed on top of well-designed transports can be | developed on top of well-designed transports can be expected to | |||
expected to appropriately control their network usage, reacting | appropriately control their network usage, reacting when the | |||
when the network experiences congestion, by back-off and reduce | network experiences congestion, by back-off and reduce the load | |||
the load placed on the network. This is the normal expected | placed on the network. This is the normal expected behaviour for | |||
behaviour for IETF-specified transport (e.g., TCP and SCTP). | IETF-specified transports (e.g., TCP and SCTP). | |||
However, when anomalies are detected, tools can interpret the | However, when anomalies are detected, tools can interpret the | |||
transport protocol header information to help understand the | transport protocol header information to help understand the | |||
impact of specific transport protocols (or protocol mechanisms) on | impact of specific transport protocols (or protocol mechanisms) on | |||
the other traffic that shares a network. An observation in the | the other traffic that shares a network. An observation in the | |||
network can gain an understanding of the dynamics of a flow and | network can gain an understanding of the dynamics of a flow and | |||
its congestion control behaviour. Analysing observed flows can | its congestion control behaviour. Analysing observed flows can | |||
help to build confidence that an application flow backs-off its | help to build confidence that an application flow backs-off its | |||
share of the network load in the face of persistent congestion, | share of the network load in the face of persistent congestion, | |||
and hence to understand whether the behaviour is appropriate for | and hence to understand whether the behaviour is appropriate for | |||
sharing limited network capacity. For example, it is common to | sharing limited network capacity. For example, it is common to | |||
visualise plots of TCP sequence numbers versus time for a flow to | visualise plots of TCP sequence numbers versus time for a flow to | |||
understand how a flow shares available capacity, deduce its | understand how a flow shares available capacity, deduce its | |||
dynamics in response to congestion, etc. | dynamics in response to congestion, etc. | |||
The ability to identify sources that contribute to persistent | The ability to identify sources that contribute to persistent | |||
congestion is important to safe operation of network | congestion is important to the safe operation of network | |||
infrastructure, and mechanisms can inform configuration of network | infrastructure, and can inform configuration of network devices to | |||
devices to complement the endpoint congestion avoidance mechanisms | complement the endpoint congestion avoidance mechanisms [RFC7567] | |||
[RFC7567] [RFC8084] to avoid a portion of the network being driven | [RFC8084] to avoid a portion of the network being driven into | |||
into congestion collapse [RFC2914]. | congestion collapse [RFC2914]. | |||
Congestion Control Compliance for UDP traffic: UDP provides a | Congestion Control Compliance for UDP traffic: UDP provides a | |||
minimal message-passing datagram transport that has no inherent | minimal message-passing datagram transport that has no inherent | |||
congestion control mechanisms. Because congestion control is | congestion control mechanisms. Because congestion control is | |||
critical to the stable operation of the Internet, applications and | critical to the stable operation of the Internet, applications and | |||
other protocols that choose to use UDP as a transport are required | other protocols that choose to use UDP as a transport need to | |||
to employ mechanisms to prevent congestion collapse, avoid | employ mechanisms to prevent collapse, avoid unacceptable | |||
unacceptable contributions to jitter/latency, and to establish an | contributions to jitter/latency, and to establish an acceptable | |||
acceptable share of capacity with concurrent traffic [RFC8085]. | share of capacity with concurrent traffic [RFC8085]. | |||
A network operator needs tools to understand if datagram flows | A network operator needs tools to understand if datagram flows | |||
(e.g., using UDP) comply with congestion control expectations and | (e.g., using UDP) comply with congestion control expectations and | |||
therefore whether there is a need to deploy methods such as rate- | therefore whether there is a need to deploy methods such as rate- | |||
limiters, transport circuit breakers, or other methods to enforce | limiters, transport circuit breakers, or other methods to enforce | |||
acceptable usage for the offered service. | acceptable usage for the offered service. | |||
UDP flows that expose a well-known header by specifying the format | UDP flows that expose a well-known header by specifying the format | |||
of header fields can allow information to be observed to gain | of header fields can allow information to be observed to gain | |||
understanding of the dynamics of a flow and its congestion control | understanding of the dynamics of a flow and its congestion control | |||
skipping to change at page 19, line 16 ¶ | skipping to change at page 21, line 23 ¶ | |||
3.3. Use for Network Diagnostics and Troubleshooting | 3.3. Use for Network Diagnostics and Troubleshooting | |||
Transport header information can be useful for a variety of | Transport header information can be useful for a variety of | |||
operational tasks [RFC8404]: to diagnose network problems, assess | operational tasks [RFC8404]: to diagnose network problems, assess | |||
network provider performance, evaluate equipment/protocol | network provider performance, evaluate equipment/protocol | |||
performance, capacity planning, management of security threats | performance, capacity planning, management of security threats | |||
(including denial of service), and responding to user performance | (including denial of service), and responding to user performance | |||
questions. Section 3.1.2 and Section 5 of [RFC8404] provide further | questions. Section 3.1.2 and Section 5 of [RFC8404] provide further | |||
examples. These tasks seldom involve the need to determine the | examples. These tasks seldom involve the need to determine the | |||
contents of the transport payload, or other application details. | contents of the transport payload, or other application details. The | |||
use of payload encryption has the desirable effect of preventing | ||||
unintended observation of the user data. | ||||
A network operator supporting traffic that uses transport header | A network operator supporting traffic that uses transport header | |||
encryption can see only encrypted transport headers. This prevents | encryption can see only encrypted transport headers. This prevents | |||
deployment of performance measurement tools that rely on transport | deployment of performance measurement tools that rely on transport | |||
protocol information. Choosing to encrypt all the information | protocol information. Choosing to encrypt all the information | |||
reduces the ability of an operator to observe transport performance | reduces the ability of an operator to observe transport performance | |||
and could limit the ability of network operators to trace problems, | and could limit the ability of network operators to trace problems, | |||
make appropriate QoS decisions, or response to other queries about | make appropriate QoS decisions, or response to other queries about | |||
the network service. For some this will be blessing, for others it | the network service. For some this will be blessing, for others it | |||
may be a curse. For example, operational performance data about | might be a curse. For example, operational performance data about | |||
encrypted flows needs to be determined by traffic pattern analysis, | encrypted flows needs to be determined by traffic pattern analysis, | |||
rather than relying on traditional tools. This can impact the | rather than relying on traditional tools. This can impact the | |||
ability of the operator to respond to faults, it could require | ability of the operator to respond to faults, it could require | |||
reliance on endpoint diagnostic tools or user involvement in | reliance on endpoint diagnostic tools or user involvement in | |||
diagnosing and troubleshooting unusual use cases or non-trivial | diagnosing and troubleshooting unusual use cases or non-trivial | |||
problems. A key need here is for tools to provide useful information | problems. A key need here is for tools to provide useful information | |||
during network anomalies (e.g., significant reordering, high or | during network anomalies (e.g., significant reordering, high or | |||
intermittent loss). | intermittent loss). | |||
Measurements can be used to monitor the health of a portion of the | Measurements can be used to monitor the health of a portion of the | |||
skipping to change at page 20, line 46 ¶ | skipping to change at page 23, line 7 ¶ | |||
compression has been specified for use with TCP/IP and RTP/UDP/IP | compression has been specified for use with TCP/IP and RTP/UDP/IP | |||
flows [RFC2507], [RFC2508], [RFC4995]. | flows [RFC2507], [RFC2508], [RFC4995]. | |||
While it is possible to compress only the network layer headers, | While it is possible to compress only the network layer headers, | |||
significant savings can be made if both the network and transport | significant savings can be made if both the network and transport | |||
layer headers are compressed together as a single unit. The Secure | layer headers are compressed together as a single unit. The Secure | |||
RTP extensions [RFC3711] were explicitly designed to leave the | RTP extensions [RFC3711] were explicitly designed to leave the | |||
transport protocol headers unencrypted, but authenticated, since | transport protocol headers unencrypted, but authenticated, since | |||
support for header compression was considered important. Encrypting | support for header compression was considered important. Encrypting | |||
the transport protocol headers does not break such header | the transport protocol headers does not break such header | |||
compression, but does cause it to fall back to compressing only the | compression, but does cause a fall back to compressing only the | |||
network layer headers, with a significant reduction in efficiency. | network layer headers, with a significant reduction in efficiency. | |||
This can impact the efficiency of a link/path. | ||||
4. Encryption and Authentication of Transport Headers | 4. Encryption and Authentication of Transport Headers | |||
End-to-end encryption can be applied at various protocol layers. It | End-to-end encryption can be applied at various protocol layers. It | |||
can be applied above the transport to encrypt the transport payload. | can be applied above the transport to encrypt the transport payload | |||
Encryption methods can hide information from an eavesdropper in the | (e.g., using TLS). This can hide information from an eavesdropper in | |||
network. Encryption can also help protect the privacy of a user, by | the network. It can also help protect the privacy of a user, by | |||
hiding data relating to user/device identity or location. Neither an | hiding data relating to user/device identity or location. | |||
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 [RFC8546]. | ||||
There are several motivations for encryption: | There are several motivations for encryption: | |||
o One motive to use encryption is a response to perceptions that the | o One motive to use encryption is a response to perceptions that the | |||
network has become ossified by over-reliance on middleboxes that | network has become ossified by over-reliance on middleboxes that | |||
prevent new protocols and mechanisms from being deployed. This | prevent new protocols and mechanisms from being deployed. This | |||
has lead to a perception that there is too much "manipulation" of | has lead to a perception that there is too much "manipulation" of | |||
protocol headers within the network, and that designing to deploy | protocol headers within the network, and that designing to deploy | |||
in such networks is preventing transport evolution. In the light | in such networks is preventing transport evolution. In the light | |||
of this, a method that authenticates transport headers could help | of this, a method that authenticates transport headers could help | |||
skipping to change at page 21, line 43 ¶ | skipping to change at page 23, line 41 ¶ | |||
particular middleboxes that are deliberately deployed to realise a | particular middleboxes that are deliberately deployed to realise a | |||
useful function for the network and/or users[RFC3135]. | useful function for the network and/or users[RFC3135]. | |||
o Another motivation stems from increased concerns about privacy and | o Another motivation stems from increased concerns about privacy and | |||
surveillance. Some Internet users have valued the ability to | surveillance. Some Internet users have valued the ability to | |||
protect identity, user location, and defend against traffic | protect identity, user location, and defend against traffic | |||
analysis, and have used methods such as IPsec Encapsulated | analysis, and have used methods such as IPsec Encapsulated | |||
Security Payload (ESP), VPNs and other encrypted tunnel | Security Payload (ESP), VPNs and other encrypted tunnel | |||
technologies. Revelations about the use of pervasive surveillance | technologies. Revelations about the use of pervasive surveillance | |||
[RFC7624] have, to some extent, eroded trust in the service | [RFC7624] have, to some extent, eroded trust in the service | |||
offered by network operators, and following the Snowden revelation | offered by network operators, and following the Snowden | |||
in the USA in 2013 has led to an increased desire for people to | revelations in the USA in 2013 has led to an increased desire for | |||
employ encryption to avoid unwanted "eavesdropping" on their | people to employ encryption to avoid unwanted "eavesdropping" on | |||
communications. Concerns have also been voiced about the addition | their communications. Concerns have also been voiced about the | |||
of information to packets by third parties to provide analytics, | addition of information to packets by third parties to provide | |||
customization, advertising, cross-site tracking of users, to bill | analytics, customization, advertising, cross-site tracking of | |||
the customer, or to selectively allow or block content. Whatever | users, to bill the customer, or to selectively allow or block | |||
the reasons, there are now activities in the IETF to design new | content. Whatever the reasons, the IETF is designing new | |||
protocols that could include some form of transport header | protocols that include transport header encryption (e.g., QUIC | |||
encryption (e.g., QUIC [I-D.ietf-quic-transport]) to supplement | [I-D.ietf-quic-transport]) to supplement the already widespread | |||
the already widespread payload encryption. | payload encryption. | |||
Authentication methods that provide integrity checks of protocols | o Any header information that has a clear definition in the protocol | |||
fields have also been specified at the network layer, and this also | message format(s), or is implied by that definition, and is not | |||
protects transport header fields. The network layer itself carries | cryptographically confidentiality-protected can be unambiguously | |||
protocol header fields that are increasingly used to help forwarding | interpreted by on-path observers [RFC8546]. | |||
decisions reflect the need of transport protocols, such as the IPv6 | ||||
Flow Label [RFC6437], DSCP, and ECN fields. | ||||
The use of transport layer authentication and encryption exposes a | Encryption methods do not prevent traffic analysis, and usage needs | |||
tussle between middlebox vendors, operators, applications developers | to reflect that profiling of users, identification of location, and | |||
and users: | fingerprinting of behaviour can take place even on encrypted traffic | |||
flows. The use of transport layer authentication and encryption | ||||
exposes a tussle between middlebox vendors, operators, applications | ||||
developers and users: | ||||
o On the one hand, future Internet protocols that enable large-scale | o On the one hand, future Internet protocols that enable large-scale | |||
encryption assist in the restoration of the end-to-end nature of | encryption assist in the restoration of the end-to-end nature of | |||
the Internet by returning complex processing to the endpoints, | the Internet by returning complex processing to the endpoints, | |||
since middleboxes cannot modify what they cannot see. | since middleboxes cannot modify what they cannot see. | |||
o On the other hand, encryption of transport layer header | o On the other hand, encryption of transport layer header | |||
information has implications for people who are responsible for | information has implications for people who are responsible for | |||
operating networks and researchers and analysts seeking to | operating networks and researchers and analysts seeking to | |||
understand the dynamics of protocols and traffic patterns. | understand the dynamics of protocols and traffic patterns. | |||
skipping to change at page 23, line 6 ¶ | skipping to change at page 25, line 4 ¶ | |||
expose the transport protocol header information in the clear, | expose the transport protocol header information in the clear, | |||
allows in-network devices to observe these fields. An integrity | allows in-network devices to observe these fields. An integrity | |||
check is not able to prevent in-network modification, but can | check is not able to prevent in-network modification, but can | |||
prevent a receiving from accepting changes and avoid impact on the | prevent a receiving from accepting changes and avoid impact on the | |||
transport protocol operation. | transport protocol operation. | |||
An example transport authentication mechanism is TCP- | An example transport authentication mechanism is TCP- | |||
Authentication (TCP-AO) [RFC5925]. This TCP option authenticates | Authentication (TCP-AO) [RFC5925]. This TCP option authenticates | |||
the IP pseudo header, TCP header, and TCP data. TCP-AO protects | the IP pseudo header, TCP header, and TCP data. TCP-AO protects | |||
the transport layer, preventing attacks from disabling the TCP | the transport layer, preventing attacks from disabling the TCP | |||
connection itself and provides replay protection. TCP-AO may | connection itself and provides replay protection. TCP-AO might | |||
interact with middleboxes, depending on their behaviour [RFC3234]. | interact with middleboxes, depending on their behaviour [RFC3234]. | |||
The IPsec Authentication Header (AH) [RFC4302] was designed to | The IPsec Authentication Header (AH) [RFC4302] was designed to | |||
work at the network layer and authenticate the IP payload. This | work at the network layer and authenticate the IP payload. This | |||
approach authenticates all transport headers, and verifies their | approach authenticates all transport headers, and verifies their | |||
integrity at the receiver, preventing in-network modification. | integrity at the receiver, preventing in-network modification. | |||
Secure RTP [RFC3711] is another example of a transport protocol | Secure RTP [RFC3711] is another example of a transport protocol | |||
that allows header authentication. | that allows header authentication. | |||
Greasing: Protocols often provide extensibility features, reserving | Greasing: Protocols often provide extensibility features, reserving | |||
skipping to change at page 23, line 34 ¶ | skipping to change at page 25, line 32 ¶ | |||
field value. | field value. | |||
A protocol can intentionally vary the value, format, and/or | A protocol can intentionally vary the value, format, and/or | |||
presence of observable transport header fields. This behaviour, | presence of observable transport header fields. This behaviour, | |||
known as GREASE (Generate Random Extensions And Sustain | known as GREASE (Generate Random Extensions And Sustain | |||
Extensibility) is designed to avoid a network device ossifying the | Extensibility) is designed to avoid a network device ossifying the | |||
use of a specific observable field. Greasing seeks to ease | use of a specific observable field. Greasing seeks to ease | |||
deployment of new methods. It can also prevent in-network devices | deployment of new methods. It can also prevent in-network devices | |||
utilising the information in a transport header, or can make an | utilising the information in a transport header, or can make an | |||
observation robust to a set of changing values, rather than a | observation robust to a set of changing values, rather than a | |||
specific set of values. | specific set of values | |||
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. | ||||
Examples of encrypting the payload include Transport Layer | ||||
Security (TLS) over TCP [RFC8446] [RFC7525], Datagram TLS (DTLS) | ||||
over UDP [RFC6347] [RFC7525], Secure RTP [RFC3711], and TCPcrypt | ||||
[RFC8548] which permits opportunistic encryption of the TCP | ||||
transport payload. | ||||
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. | ||||
One example of encryption at the network layer is the use of IPsec | ||||
Encapsulating Security Payload (ESP) [RFC4303] in tunnel mode. | ||||
This encrypts and authenticates all transport headers, preventing | ||||
visibility of the transport headers by in-network devices. Some | ||||
VPN methods also encrypt these headers. | ||||
Selectively Encrypting Transport Headers and Payload: A transport | Selectively Encrypting Transport Headers and Payload: A transport | |||
protocol design can encrypt selected header fields, while also | protocol design can encrypt selected header fields, while also | |||
choosing to authenticate the entire transport header. This allows | choosing to authenticate the entire transport header. This allows | |||
specific transport header fields to be made observable by network | specific transport header fields to be made observable by network | |||
devices. End-to end integrity checks can prevent an endpoint from | devices. End-to end integrity checks can prevent an endpoint from | |||
undetected modification of the immutable transport headers. | undetected modification of the immutable transport headers. | |||
Mutable fields in the transport header provide opportunities for | Mutable fields in the transport header provide opportunities for | |||
middleboxes to modify the transport behaviour (e.g., the extended | middleboxes to modify the transport behaviour (e.g., the extended | |||
headers described in [I-D.trammell-plus-abstract-mech]). This | headers described in [I-D.trammell-plus-abstract-mech]). This | |||
considers only immutable fields in the transport headers, that is, | considers only immutable fields in the transport headers, that is, | |||
fields that can be authenticated End-to-End across a path. | fields that can be authenticated End-to-End across a path. | |||
An example of a method that encrypts some, but not all, transport | An example of a method that encrypts some, but not all, transport | |||
information is GRE-in-UDP [RFC8086] when used with GRE encryption. | information is GRE-in-UDP [RFC8086] when used with GRE encryption. | |||
Optional Encryption of Header Information: There are implications to | Optional Encryption of Header Information: There are implications to | |||
the use of optional header encryption in the design of a transport | the use of optional header encryption in the design of a transport | |||
protocol, where support of optional mechanisms can increase the | protocol, where support of optional mechanisms can increase the | |||
complexity of the protocol and its implementation and in the | complexity of the protocol and its implementation, and in the | |||
management decisions that are required to use variable format | management decisions that are needed to use variable format | |||
fields. Instead, fields of a specific type ought to always be | fields. Instead, fields of a specific type ought to always be | |||
sent with the same level of confidentiality or integrity | sent with the same level of confidentiality or integrity | |||
protection. | protection. | |||
As seen, different transports use encryption to protect their header | As seen, different transports use encryption to protect their header | |||
information to varying degrees. There is, however, a trend towards | information to varying degrees. There is, however, a trend towards | |||
increased protection with newer transport protocols. | increased protection with newer transport protocols. | |||
5. Addition of Transport Information to Network-Layer Protocol Headers | 5. Addition of Transport Information to Network-Layer Headers | |||
An on-path device can make measurements by appending additional | An on-path device can make measurements by utilising additional | |||
protocol headers carrying operations, administration and management | protocol headers carrying operations, administration and management | |||
(OAM) information to packets at the ingress to a maintenance domain | (OAM) information in an additional packet header. Using network- | |||
layer approaches to reveal information has the potential that the | ||||
same method (and hence same observation and analysis tools) can be | ||||
consistently used by multiple transport protocols [RFC8558]. There | ||||
could also be less desirable implications of separating the operation | ||||
of the transport protocol from the measurement framework. | ||||
5.1. Use of OAM within a Maintenance Domain | ||||
OAM information can be added at the ingress to a maintenance domain | ||||
(e.g., an Ethernet protocol header with timestamps and sequence | (e.g., an Ethernet protocol header with timestamps and sequence | |||
number information using a method such as 802.11ag or in-situ OAM | number information using a method such as 802.11ag or in-situ OAM | |||
[I-D.ietf-ippm-ioam-data]) and removing the additional header at the | [I-D.ietf-ippm-ioam-data], or as a part of encapsulation protocol). | |||
egress of the maintenance domain. This approach enables some types | The additional header information is typically removed the at the | |||
of measurements, but does not cover the entire range of measurements | egress of the maintenance domain. | |||
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. | ||||
Another example of a network-layer approach is the IPv6 Performance | Although some types of measurements are supported, this approach does | |||
and Diagnostic Metrics (PDM) Destination Option [RFC8250]. This | not cover the entire range of measurements described in this | |||
allows a sender to optionally include a destination option that | document. In some cases, it can be difficult to position measurement | |||
caries header fields that can be used to observe timestamps and | tools at the appropriate segments/nodes and there can be challenges | |||
packet sequence numbers. This information could be authenticated by | in correlating the downstream/upstream information when in-band OAM | |||
receiving transport endpoints when the information is added at the | data is inserted by an on-path device. | |||
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. | ||||
Current measurement results suggest that it can be undesirable to | 5.2. Use of OAM across Multiple Maintenance Domains | |||
rely on methods requiring end to end support of network options or | ||||
extension headers across the Internet. IPv4 network options are | OAM information can also be added at the network layer as an IPv6 | |||
often not supported (or are carried on a slower processing path) and | extension header or an IPv4 option. This information can be used | |||
some IPv6 networks have been observed to drop packets that set an | across multiple network segments, or between the transport endpoints. | |||
IPv6 header extension (e.g., results from 2016 in [RFC7872]). | ||||
Another possibility is that protocols that separately expose header | One example is the IPv6 Performance and Diagnostic Metrics (PDM) | |||
information do not necessarily have an incentive to expose the actual | Destination Option [RFC8250]. This allows a sender to optionally | |||
information that is utilised by the protocol itself and could | 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. | ||||
Current measurement results suggest that it could currently be | ||||
undesirable to rely on methods requiring end to end support of | ||||
network options or extension headers across the Internet. IPv4 | ||||
network options are often not supported (or are carried on a slower | ||||
processing path) and some IPv6 networks have been observed to drop | ||||
packets that set an IPv6 header extension (e.g., results from 2016 in | ||||
[RFC7872]). | ||||
Another potential issue is that protocols that separately expose | ||||
header information do not necessarily have an incentive to expose the | ||||
actual information that is utilised by the protocol itself and could | ||||
therefore manipulate the exposed header information to gain an | therefore manipulate the exposed header information to gain an | |||
advantage from the network. The incentive to reflect actual | advantage from the network. Where the information is provided by an | |||
transport information needs to be considered when proposing a method | endpoint, the incentive to reflect actual transport information needs | |||
that selectively exposes header information. | to be considered when proposing a method. | |||
6. Implications of Protecting the Transport Headers | 6. Implications of Protecting the Transport Headers | |||
The choice of which fields to expose and which to encrypt is a design | The choice of which fields to expose and which to encrypt is a design | |||
choice for the transport protocol. Any selective encryption method | choice for the transport protocol. Any selective encryption method | |||
requires trading two conflicting goals for a transport protocol | requires trading two conflicting goals for a transport protocol | |||
designer to decide which header fields to encrypt. Security work | designer to decide which header fields to encrypt. Security work | |||
typically employs a design technique that seeks to expose only what | typically employs a design technique that seeks to expose only what | |||
is needed. This approach provides incentives to not reveal any | is needed. This approach provides incentives to not reveal any | |||
information that is not necessary for the end-to-end communication. | information that is not necessary for the end-to-end communication. | |||
skipping to change at page 26, line 13 ¶ | skipping to change at page 27, line 49 ¶ | |||
transport protocols. | transport protocols. | |||
6.1. Independent Measurement | 6.1. Independent Measurement | |||
Independent observation by multiple actors is important if the | Independent observation by multiple actors is important if the | |||
transport community is to maintain an accurate understanding of the | transport community is to maintain an accurate understanding of the | |||
network. Encrypting transport header encryption changes the ability | network. Encrypting transport header encryption changes the ability | |||
to collect and independently analyse data. Internet transport | to collect and independently analyse data. Internet transport | |||
protocols employ a set of mechanisms. Some of these need to work in | protocols employ a set of mechanisms. Some of these need to work in | |||
cooperation with the network layer for loss detection and recovery, | cooperation with the network layer for loss detection and recovery, | |||
congestion detection and congestion control. Others need to work | congestion detection and control. Others need to work only end-to- | |||
only end-to-end (e.g., parameter negotiation, flow-control). | end (e.g., parameter negotiation, flow-control). | |||
The majority of present Internet applications use two well-known | The majority of present Internet applications use two well-known | |||
transport protocols, TCP and UDP. Although TCP represents the | transport protocols, TCP and UDP. Although TCP represents the | |||
majority of current traffic, many real-time applications use UDP, and | majority of current traffic, many real-time applications use UDP, and | |||
much of this traffic utilises RTP format headers in the payload of | much of this traffic utilises RTP format headers in the payload of | |||
the UDP datagram. Since these protocol headers have been fixed for | the UDP datagram. Since these protocol headers have been fixed for | |||
decades, a range of tools and analysis methods have became common and | decades, a range of tools and analysis methods have became common and | |||
well-understood. | well-understood. | |||
Protocols that expose the state information used by the transport | Protocols that expose the state information used by the transport | |||
skipping to change at page 26, line 36 ¶ | skipping to change at page 28, line 25 ¶ | |||
calculate the RTT, packet numbers used to asses congestion and | calculate the RTT, packet numbers used to asses congestion and | |||
requests for retransmission) provide an incentive for the sending | requests for retransmission) provide an incentive for the sending | |||
endpoint to provide correct information, since the protocol will not | endpoint to provide correct information, since the protocol will not | |||
work otherwise. This increases confidence that the observer | work otherwise. This increases confidence that the observer | |||
understands the transport interaction with the network. For example, | understands the transport interaction with the network. For example, | |||
when TCP is used over an unencrypted network path (i.e., one that | when TCP is used over an unencrypted network path (i.e., one that | |||
does not use IPsec or other encryption below the transport), it | does not use IPsec or other encryption below the transport), it | |||
implicitly exposes header information that can be used for | implicitly exposes header information that can be used for | |||
measurement at any point along the path. This information is | measurement at any point along the path. This information is | |||
necessary for the protocol's correct operation, therefore there is no | necessary for the protocol's correct operation, therefore there is no | |||
incentive for a TCP implementation to put incorrect information in | incentive for a TCP or RTP implementation to put incorrect | |||
this transport header. A network device can have confidence that the | information in this transport header. A network device can have | |||
well-known (and ossified) transport information represents the actual | confidence that the well-known (and ossified) transport information | |||
state of the endpoints. | represents the actual state of the endpoints. | |||
When encryption is used to conceal some or all of the transport | When encryption is used to conceal some or all of the transport | |||
headers, the transport protocol choose what information to reveal to | headers, the transport protocol chooses which information to reveal | |||
the network about its internal state, what information to leave | to the network about its internal state, what information to leave | |||
encrypted, and what fields to grease to protect against future | encrypted, and what fields to grease to protect against future | |||
ossification. Such a transport could be designed, for example, to | ossification. Such a transport could be designed, for example, to | |||
provide summary data regarding its performance, congestion control | provide summary data regarding its performance, congestion control | |||
state, etc., or to make an explicit measurement signal available. | state, etc., or to make an explicit measurement signal available. | |||
For example, a QUIC endpoint could set the spin bit to reflect to | For example, a QUIC endpoint can optionally set the spin bit to | |||
explicitly reveal a session's RTT [I-D.ietf-quic-spin-exp]). | reflect to explicitly reveal the RTT of an encrypted transport | |||
session to the on-path network devices [I-D.ietf-quic-transport]). | ||||
When providing or using such information, it becomes important to | When providing or using such information, it becomes important to | |||
consider the privacy of the user and their incentive for providing | consider the privacy of the user and their incentive for providing | |||
accurate and detailed information. Protocols that selectively reveal | accurate and detailed information. Protocols that selectively reveal | |||
some transport state or measurement signals are choosing to establish | some transport state or measurement signals are choosing to establish | |||
a trust relationship with the network operators. There is no | a trust relationship with the network operators. There is no | |||
protocol mechanism that can guarantee that the information provided | protocol mechanism that can guarantee that the information provided | |||
represents the actual transport state of the endpoints, since those | represents the actual transport state of the endpoints, since those | |||
endpoints can always send additional information in the encrypted | endpoints can always send additional information in the encrypted | |||
part of the header, to update or replace whatever they reveal. This | part of the header, to update or replace whatever they reveal. This | |||
reduces the ability to independently measure and verify that a | reduces the ability to independently measure and verify that a | |||
protocol is behaving as expected. Some operational uses need the | protocol is behaving as expected. Some operational uses need the | |||
information to contain sufficient detail to understand, and possibly | information to contain sufficient detail to understand, and possibly | |||
reconstruct, the network traffic pattern for further testing; such | reconstruct, the network traffic pattern for further testing; such | |||
operators must gain the trust of transport protocol implementers if | operators need to gain the trust of transport protocol implementers | |||
they are to correctly reveal such information. | if they are to correctly reveal such information. | |||
OAM data records [I-D.ietf-ippm-ioam-data] could be embedded into a | Operations, Administration, and Maintenance (OAM) data records | |||
variety of encapsulation methods at different layers to support the | [I-D.ietf-ippm-ioam-data] could be embedded into a variety of | |||
goals of a specific operational domain. OAM-related metadata can | encapsulation methods at different layers to support the goals of a | |||
support functions such as performance evaluation, path-tracing, path | specific operational domain. OAM-related metadata can support | |||
functions such as performance evaluation, path-tracing, path | ||||
verification information, classification and a diversity of other | verification information, classification and a diversity of other | |||
uses. When encryption is used to conceal some or all of the | uses. When encryption is used to conceal some or all of the | |||
transport headers, analysis will require coordination between actors | transport headers, analysis will require coordination between actors | |||
at different layers to successfully characterise flows and correlate | at different layers to successfully characterise flows and correlate | |||
the performance or behaviour of a specific mechanism with the | the performance or behaviour of a specific mechanism with the | |||
configuration and traffic using operational equipment (e.g., | configuration and traffic using operational equipment (e.g., | |||
combining transport and network measurements to explore congestion | combining transport and network measurements to explore congestion | |||
control dynamics, the implications of designs for active queue | control dynamics, the implications of designs for active queue | |||
management or circuit breakers). | management or circuit breakers). | |||
For some usage a standardised endpoint-based logging format (e.g., | Some measurements could be completed by utilising a standardised | |||
based on Quic-Trace [Quic-Trace]) could offer an alternative for some | endpoint-based logging format (e.g., based on Quic-Trace | |||
in-network measurement. Such information will have a diversity of | [Quic-Trace]). Such information will have a diversity of uses, | |||
uses, including developers wishing to debug/understand the transport/ | including developers wishing to debug/understand the transport/ | |||
application protocols with which they work, researchers seeking to | application protocols with which they work, researchers seeking to | |||
spot trends and anomalies, and to characterise variants of protocols. | spot trends and anomalies, and to characterise variants of protocols. | |||
Measurments based on logging will need to establish the validity and | Logs collected at endpoints could be shared (after appropriate | |||
annoymisation) to help understand performance and pathologies. | ||||
Measurements based on logging will need to establish the validity and | ||||
provenance of the logged information to establish how and when traces | provenance of the logged information to establish how and when traces | |||
were captured. | were captured. | |||
However, endpoint logs do not provide equivalent information to in- | However, endpoint logs do not provide equivalent information to in- | |||
network measurements. In particular, endpoint logs contain only a | network measurements. In particular, endpoint logs contain only a | |||
part of the information needed to understand the operation of network | part of the information needed to understand the operation of network | |||
devices and identify issues such as link performance or capacity | devices and identify issues such as link performance or capacity | |||
sharing between multiple flows. Additional information is needed to | sharing between multiple flows. Additional information is needed to | |||
determine which equipment/links are used and the configuration of | determine which equipment/links are used and the configuration of | |||
equipment along the network paths being measured. | equipment along the network paths being measured. | |||
6.2. Characterising "Unknown" Network Traffic | 6.2. Characterising "Unknown" Network Traffic | |||
The patterns and types of traffic that share Internet capacity change | The patterns and types of traffic that share Internet capacity change | |||
over time as networked applications, usage patterns and protocols | over time as networked applications, usage patterns and protocols | |||
continue to evolve. | continue to evolve. | |||
If "unknown" or "uncharacterised" traffic patterns form a small part | If "unknown" or "uncharacterised" traffic patterns form a small part | |||
of the traffic aggregate passing through a network device or segment | of the traffic aggregate passing through a network device or segment | |||
of the network the path, the dynamics of the uncharacterised traffic | of the network the path, the dynamics of the uncharacterised traffic | |||
may not have a significant collateral impact on the performance of | might not have a significant collateral impact on the performance of | |||
other traffic that shares this network segment. Once the proportion | other traffic that shares this network segment. Once the proportion | |||
of this traffic increases, the need to monitor the traffic and | of this traffic increases, the need to monitor the traffic and | |||
determine if appropriate safety measures need to be put in place. | determine if appropriate safety measures need to be put in place. | |||
Tracking the impact of new mechanisms and protocols requires traffic | Tracking the impact of new mechanisms and protocols requires traffic | |||
volume to be measured and new transport behaviours to be identified. | volume to be measured and new transport behaviours to be identified. | |||
This is especially true of protocols operating over a UDP substrate. | This is especially true of protocols operating over a UDP substrate. | |||
The level and style of encryption needs to be considered in | The level and style of encryption needs to be considered in | |||
determining how this activity is performed. On a shorter timescale, | determining how this activity is performed. On a shorter timescale, | |||
information may also need to be collected to manage denial of service | information could also need to be collected to manage denial of | |||
attacks against the infrastructure. | service attacks against the infrastructure. | |||
6.3. Accountability and Internet Transport Protocols | 6.3. Accountability and Internet Transport Protocols | |||
Information provided by tools observing transport headers can be used | Information provided by tools observing transport headers can be used | |||
to classify traffic, and to limit the network capacity used by | to classify traffic, and to limit the network capacity used by | |||
certain flows, as discussed in Section 3.2.4). Equally, operators | certain flows, as discussed in Section 3.2.4). Equally, operators | |||
could use analysis of transport headers and transport flow state to | could use analysis of transport headers and transport flow state to | |||
demonstrate that they are not providing differential treatment to | demonstrate that they are not providing differential treatment to | |||
certain flows. Obfuscating or hiding this information using | certain flows. Obfuscating or hiding this information using | |||
encryption may lead operators and maintainers of middleboxes | encryption could lead operators and maintainers of middleboxes | |||
(firewalls, etc.) to seek other methods to classify, and potentially | (firewalls, etc.) to seek other methods to classify, and potentially | |||
other mechanisms to condition, network traffic. | other mechanisms to condition, network traffic. | |||
A lack of data that reduces the level of precision with which flows | A lack of data that reduces the level of precision with which flows | |||
can be classified also reduces the design space for conditioning | can be classified also reduces the design space for conditioning | |||
mechanisms (e.g., rate limiting, circuit breaker techniques | mechanisms (e.g., rate limiting, circuit breaker techniques | |||
[RFC8084], or blocking of uncharacterised traffic), and this needs to | [RFC8084], or blocking of uncharacterised traffic), and this needs to | |||
be considered when evaluating the impact of designs for transport | be considered when evaluating the impact of designs for transport | |||
encryption [RFC5218]. | encryption [RFC5218]. | |||
skipping to change at page 29, line 12 ¶ | skipping to change at page 30, line 51 ¶ | |||
deployed transports and their applications. Encryption of the | deployed transports and their applications. Encryption of the | |||
transport information prevents tools from directly observing this | transport information prevents tools from directly observing this | |||
information. A variety of open source and commercial tools have been | information. A variety of open source and commercial tools have been | |||
deployed that utilise this information for a variety of short and | deployed that utilise this information for a variety of short and | |||
long term measurements. | long term measurements. | |||
The network will not break just because transport headers are | The network will not break just because transport headers are | |||
encrypted, although alternative diagnostic and troubleshooting tools | encrypted, although alternative diagnostic and troubleshooting tools | |||
would need to be developed and deployed. Introducing a new protocol | would need to be developed and deployed. Introducing a new protocol | |||
or application can require these tool chains and practice to be | or application can require these tool chains and practice to be | |||
updated, and may in turn impact operational mechanisms, and policies. | updated, and could in turn impact operational mechanisms, and | |||
Each change can introduce associated costs, including the cost of | policies. Each change can introduce associated costs, including the | |||
collecting data, and the tooling needed to handle multiple formats | cost of collecting data, and the tooling needed to handle multiple | |||
(possibly as these co-exist in the network, when measurements need to | formats (possibly as these co-exist in the network, when measurements | |||
span time periods during which changes are deployed, or to compare | need to span time periods during which changes are deployed, or to | |||
with historical data). These costs are incurred by an operator to | compare with historical data). These costs are incurred by an | |||
manage the service and debug network issues. | operator to manage the service and debug network issues. | |||
At the time of writing, the additional operational cost of using | At the time of writing, the additional operational cost of using | |||
encrypted transports is not yet well understood. Design trade-offs | encrypted transports is not yet well understood. Design trade-offs | |||
could mitigate these costs by explicitly choosing to expose selected | could mitigate these costs by explicitly choosing to expose selected | |||
information (e.g., header invariants and the spin-bit in QUIC | information (e.g., header invariants and the spin-bit in QUIC | |||
[I-D.ietf-quic-transport]), the specification of common log formats, | [I-D.ietf-quic-transport]), the specification of common log formats, | |||
and development of alternative approaches. | and development of alternative approaches. | |||
6.5. Impact on Research, Development and Deployment | 6.5. Impact on Research, Development and Deployment | |||
skipping to change at page 30, line 44 ¶ | skipping to change at page 32, line 33 ¶ | |||
as a method to judge the safety for Internet deployment) and provides | as a method to judge the safety for Internet deployment) and provides | |||
valuable input during standardisation. Open standards motivate a | valuable input during standardisation. Open standards motivate a | |||
desire to include independent observation and evaluation of | desire to include independent observation and evaluation of | |||
performance data, which in turn demands control over where and when | performance data, which in turn demands control over where and when | |||
measurement samples are collected. This requires consideration of | measurement samples are collected. This requires consideration of | |||
the methods used to observe data and the appropriate balance between | the methods used to observe data and the appropriate balance between | |||
encrypting all and no transport information. | encrypting all and no transport information. | |||
7. Conclusions | 7. Conclusions | |||
Confidentiality and strong integrity checks have properties that are | Header encryption and strong integrity checks are being incorporated | |||
being incorporated into new protocols and that have important | into new transport protocols and have important benefits. The pace | |||
benefits. The pace of development of transports using the WebRTC | of development of transports using the WebRTC data channel, and the | |||
data channel, and the rapid deployment of the QUIC transport | rapid deployment of the QUIC transport protocol, can both be | |||
protocol, can both be attributed to using the combination of UDP as a | attributed to using the combination of UDP as a substrate while | |||
substrate while providing confidentiality and authentication of the | providing confidentiality and authentication of the encapsulated | |||
encapsulated transport headers and payload. | transport headers and payload. | |||
To achieve stable Internet operations, the IETF transport community | To achieve stable Internet operations, the IETF transport community | |||
has, to date, relied heavily on measurement and insights of the | has, to date, relied heavily on measurement and insights of the | |||
network operations community to understand the trade-offs, and to | network operations community to understand the trade-offs, and to | |||
inform selection of appropriate mechanisms, to ensure a safe, | inform selection of appropriate mechanisms, to ensure a safe, | |||
reliable, and robust Internet (e.g., [RFC1273],[RFC2914]). | reliable, and robust Internet (e.g., [RFC1273],[RFC2914]). | |||
The traffic that can be observed by on-path network devices is a | The traffic that can be observed by on-path network devices (the | |||
function of transport protocol design/options, network use, | "wire image") is a function of transport protocol design/options, | |||
applications, and user characteristics. In general, when only a | network use, applications, and user characteristics. In general, | |||
small proportion of the traffic has a specific (different) | when only a small proportion of the traffic has a specific | |||
characteristic, such traffic seldom leads to operational concern, | (different) characteristic, such traffic seldom leads to operational | |||
although the ability to measure and monitor it is less. The desire | concern, although the ability to measure and monitor it is less. The | |||
to understand the traffic and protocol interactions typically grows | desire to understand the traffic and protocol interactions typically | |||
as the proportion of traffic increases in volume. The challenges | grows as the proportion of traffic increases in volume. The | |||
increase when multiple instances of an evolving protocol contribute | challenges increase when multiple instances of an evolving protocol | |||
to the traffic that share network capacity. | contribute to the traffic that share network capacity. | |||
An increased pace of evolution therefore needs to be accompanied by | An increased pace of evolution therefore needs to be accompanied by | |||
methods that can be successfully deployed and used across operational | methods that can be successfully deployed and used across operational | |||
networks. This leads to a need for network operators at various | networks. This leads to a need for network operators at various | |||
levels (ISPs, enterprises, firewall maintainer, etc.) to identify | levels (ISPs, enterprises, firewall maintainer, etc.) to identify | |||
appropriate operational support functions and procedures. | appropriate operational support functions and procedures. Protocols | |||
that change their transport header format (wire image) or their | ||||
Protocols that change their transport header format (wire format) or | behaviour (e.g., algorithms that are needed to classify and | |||
their behaviour (e.g., algorithms that are needed to classify and | characterise the protocol), will require new network tooling to be | |||
characterise the protocol), will require new tooling to be developed | developed to catch-up with each change. If a protocol changes so | |||
to catch-up with the change. If the currently deployed tools and | that the currently deployed tools and methods are no longer relevant, | |||
methods are no longer relevant, then it may no longer be possible to | then these tools can not be used to measure performance. This can | |||
correctly measure performance. This can increase the response-time | increase the response-time after faults, and can impact the ability | |||
after faults, and can impact the ability to manage the network | to manage the network resulting in traffic causing traffic to be | |||
resulting in traffic causing traffic to be treated inappropriately | treated inappropriately (e.g., rate-limiting as a result of incorrect | |||
(e.g., rate limiting because of being incorrectly classified/ | classification or monitoring). | |||
monitored). | ||||
There are benefits in exposing consistent information to the network | There are benefits in exposing consistent information to the network | |||
that avoids traffic being inappropriately classified and then | that avoids traffic being inappropriately classified and then | |||
receiving a default treatment by the network. The flow label and | receiving a default treatment by the network. The flow label and | |||
DSCP fields provide examples of how transport information can be made | DSCP fields provide examples of how transport information can be made | |||
available for network-layer decisions. Extension headers could also | available for network-layer decisions. Extension headers could also | |||
be used to carry transport information that can inform network-layer | be used to carry transport information that can inform network-layer | |||
decisions. Other information may also be useful to various | decisions. Other information might also be useful to various | |||
stakeholders, however this document does not make recommendations | stakeholders, however this document does not make recommendations | |||
about what information should be exposed, to whom it should be | about what information ought to be exposed, to whom it ought to be | |||
observable, or how this will be achieved. | observable, or how this will be achieved. | |||
There are trade-offs and implications of increased use of encryption | There are trade-offs and implications of increased use of transport | |||
when designing a protocol. Transport protocol designers have often | header encryption when designing a protocol. Transport protocol | |||
ignored the implications of whether the information in transport | designers have often ignored the implications of whether the | |||
header fields can or will be used by in-network devices, and the | information in transport header fields can or will be used by in- | |||
implications this places on protocol evolution. This motivates a | network devices, and the implications this places on protocol | |||
design that provides confidentiality of header information. This | evolution. This motivates a design that provides confidentiality of | |||
lack of visibility of transport header information can be expected to | header information. This lack of visibility of transport header | |||
impact the ways that protocols are deployed, standardised, and their | information can be expected to impact the ways that protocols are | |||
operational support. The impact of hiding transport headers | deployed, standardised, and their operational support. The impact of | |||
therefore needs to be considered in the specification and development | hiding transport headers therefore needs to be considered in the | |||
of protocols and standards. This has a potential impact on the way | specification and development of protocols and standards. This has a | |||
in which the IRTF and IETF develop new protocols, specifications, and | potential impact on the way in which the IRTF and IETF develop new | |||
guidelines: | protocols, specifications, and guidelines: | |||
o Coexistence of Transport and Network Device Protocols/ | o Coexistence of Transport Protocols and Configurations: TCP is | |||
Configuration: Transmission Control Protocol (TCP) is currently | currently the predominant transport protocol used over Internet | |||
the predominant transport protocol used over Internet paths. Its | paths. Its many variants have broadly consistent approaches to | |||
many variants have broadly consistent approaches to avoiding | avoiding congestion collapse, and to ensuring the stability of the | |||
congestion collapse, and to ensuring the stability of the | ||||
Internet. Increased use of transport layer encryption can | Internet. Increased use of transport layer encryption can | |||
overcome ossification, allowing deployment of new transports and | overcome ossification, allowing deployment of new transports and | |||
different types of congestion control. This flexibility can be | different types of congestion control. This flexibility can be | |||
beneficial, but it could come at the cost of fragmenting the | beneficial, but it could come at the cost of fragmenting the | |||
ecosystem. There is little doubt that developers will try to | ecosystem. There is little doubt that developers will try to | |||
produce high quality transports for their intended target uses, | produce high quality transports for their intended target uses, | |||
but it is not yet clear there are sufficient incentives to ensure | but it is not yet clear there are sufficient incentives to ensure | |||
good practice that benefits the wide diversity of requirements for | good practice that benefits the wide diversity of requirements for | |||
the Internet community as a whole. | the Internet community as a whole. | |||
o Supporting Common Specifications: Common open specifications can | o Supporting Common Specifications: Common open specifications can | |||
stimulate engagement by developers, users, and researchers. | stimulate engagement by developers, users, and researchers. | |||
Increased diversity, and the ability to innovate without public | Increased diversity, and the ability to innovate without public | |||
scrutiny, risks point solutions that optimise for specific needs, | scrutiny, risks point solutions that optimise for specific needs, | |||
but accidentally disrupt operations of/in different parts of the | but accidentally disrupt operations of/in different parts of the | |||
network. The social contract that maintains the stability of the | network. The social contract that maintains the stability of the | |||
Internet relies on accepting common interworking specifications. | Internet relies on accepting common interworking specifications, | |||
and on it being possible to detect violations. | ||||
o Benchmarking and Understanding Feature Interactions: An | o Benchmarking and Understanding Feature Interactions: An | |||
appropriate vantage point for observation, coupled with timing | appropriate vantage point for observation, coupled with timing | |||
information about traffic flows, provides a valuable tool for | information about traffic flows, provides a valuable tool for | |||
benchmarking network devices, endpoint stacks, functions, and/or | benchmarking network devices, endpoint stacks, functions, and/or | |||
configurations. This can also help understand complex feature | configurations. This can also help with understanding complex | |||
interactions. An inability to observe transport protocol | feature interactions. An inability to observe transport layer | |||
information can limit the ability to diagnose and explore | header information can make it harder to diagnose and explore | |||
interactions between features at different protocol layers, a | interactions between features at different protocol layers, a | |||
side-effect of not allowing a choice of vantage point from which | side-effect of not allowing a choice of vantage point from which | |||
this information is observed. New approaches need to be | this information is observed. New approaches will need to be | |||
developed. | developed. | |||
o Operational Practice: The network operations community relies on | o Operational Practice: The network operations community relies on | |||
being able to understand the pattern and requirements of traffic | being able to understand the pattern and requirements of traffic | |||
passing over the Internet, both in aggregate and at the flow | passing over the Internet, both in aggregate and at the flow | |||
level. These operational practices have developed based on the | level. These operational practices have developed based on the | |||
information available from unencrypted transport headers. The | information available from unencrypted transport headers. The | |||
IETF supports this activity by developing operations and | IETF supports this activity by developing operations and | |||
management specifications, interface specifications, and | management specifications, interface specifications, and | |||
associated Best Current Practice (BCP) specifications. Concealing | associated Best Current Practice (BCP) specifications. Concealing | |||
transport header information impacts current practice and demand | transport header information impacts current practice and demand | |||
new specifications. | new specifications. | |||
o Research and Development: Concealing transport information can | o Research and Development: Concealing transport information can | |||
impede independent research into new mechanisms, measurement of | impede independent research into new mechanisms, measurement of | |||
behaviour, and development initiatives. Experience shows that | behaviour, and development initiatives. Experience shows that | |||
transport protocols are complicated to design and complex to | transport protocols are complicated to design and complex to | |||
deploy, and that individual mechanisms need to be evaluated while | deploy, and that individual mechanisms need to be evaluated while | |||
considering other mechanisms, across a broad range of network | considering other mechanisms, across a broad range of network | |||
topologies and with attention to the impact on traffic sharing the | topologies and with attention to the impact on traffic sharing the | |||
capacity. If this results in reduced availability of open data, | capacity. If increased use of transport header encryption results | |||
it could eliminate the independent self-checks to the | in reduced availability of open data, it could eliminate the | |||
standardisation process that have previously been in place from | independent self-checks to the standardisation process that have | |||
research and academic contributors (e.g., the role of the IRTF | previously been in place from research and academic contributors | |||
Internet Congestion Control Research Groups (ICCRG) and research | (e.g., the role of the IRTF Internet Congestion Control Research | |||
publications in reviewing new transport mechanisms and assessing | Group (ICCRG) and research publications in reviewing new transport | |||
the impact of their experimental deployment). | mechanisms and assessing the impact of their experimental | |||
deployment). | ||||
The choice of whether future transport protocols encrypt their | The design of future transport protocols needs to consider encryption | |||
protocol headers needs to be taken based not solely on security and | of their transport headers to satisfy security and privacy concerns. | |||
privacy considerations, but also taking into account the impact on | This choice to encrypt all, or part, of the transport layer protocol | |||
operations, standards and research. As [RFC7258] notes: "Making | headers needs to also take into account the impact on operations, | |||
networks unmanageable to mitigate (pervasive monitoring) is not an | standards, and research. As [RFC7258] notes, "Making networks | |||
acceptable outcome, but ignoring (pervasive monitoring) would go | unmanageable to mitigate (pervasive monitoring) is not an acceptable | |||
against the consensus documented here." | outcome, but ignoring (pervasive monitoring) would go against the | |||
consensus documented here." | ||||
As part of a protocol's design, the community therefore needs to | As part of a protocol's design, the community therefore needs to | |||
weigh the benefits of ossifying common headers versus the potential | weigh the benefits of ossifying common headers versus the potential | |||
demerits of exposing specific information that could be observed | demerits of exposing specific information that could be observed | |||
along the network path, to ensure network operators, researchers and | along the network path, to ensure network operators, researchers and | |||
other stakeholders have appropriate tools to manage their networks | other stakeholders have appropriate tools to manage their networks | |||
and enable stable operation of the Internet as new protocols are | and enable stable operation of the Internet as new protocols are | |||
deployed. An appropriate balance will emerge over time as real | deployed. An appropriate balance will emerge over time as real | |||
instances of this tension are analysed [RFC7258]. This balance | instances of this tension are analysed [RFC7258]. This balance | |||
between information exposed and information concealed ought to be | between information exposed and information concealed ought to be | |||
skipping to change at page 34, line 13 ¶ | skipping to change at page 36, line 4 ¶ | |||
throughout this document. | throughout this document. | |||
Authentication, confidentiality protection, and integrity protection | Authentication, confidentiality protection, and integrity protection | |||
are identified as Transport Features by [RFC8095]. As currently | are identified as Transport Features by [RFC8095]. As currently | |||
deployed in the Internet, these features are generally provided by a | deployed in the Internet, these features are generally provided by a | |||
protocol or layer on top of the transport protocol | protocol or layer on top of the transport protocol | |||
[I-D.ietf-taps-transport-security]. | [I-D.ietf-taps-transport-security]. | |||
Confidentiality and strong integrity checks have properties that can | Confidentiality and strong integrity checks have properties that can | |||
also be incorporated into the design of a transport protocol. | also be incorporated into the design of a transport protocol. | |||
Integrity checks can protect an endpoint from undetected modification | Integrity checks can protect an endpoint from undetected modification | |||
of protocol fields by network devices, whereas encryption and | of protocol fields by network devices, whereas encryption and | |||
obfuscation or greasing can further prevent these headers being | obfuscation or greasing can further prevent these headers being | |||
utilised by network devices. Hiding headers can therefore provide | utilised by network devices. Hiding headers can therefore provide | |||
the opportunity for greater freedom to update the protocols and can | the opportunity for greater freedom to update the protocols and can | |||
ease experimentation with new techniques and their final deployment | ease experimentation with new techniques and their final deployment | |||
in endpoints. A protocol specification needs to weigh the benefits | in endpoints. A protocol specification needs to weigh the costs of | |||
of ossifying common headers, versus the potential demerits of | ossifying common headers, versus the potential benefits of exposing | |||
exposing specific information that could be observed along the | specific information that could be observed along the network path to | |||
network path to provide tools to manage new variants of protocols. | provide tools to manage new variants of protocols. | |||
A protocol design that uses header encryption can provide | A protocol design that uses header encryption can provide | |||
confidentiality of some or all of the protocol header information. | confidentiality of some or all of the protocol header information. | |||
This prevents an on-path device from knowledge of the header field. | This prevents an on-path device from knowledge of the header field. | |||
It therefore prevents mechanisms being built that directly rely on | It therefore prevents mechanisms being built that directly rely on | |||
the information or seeks to infer semantics of an exposed header | the information or seeks to infer semantics of an exposed header | |||
field. Hiding headers can limit the ability to measure and | field. Hiding headers reduces visibility into transport metadata, | |||
characterise traffic. | and can limit the ability to measure and characterise traffic. It | |||
can also provide privacy benefits in some cases. | ||||
Exposed transport headers are sometimes utilised as a part of the | Exposed transport headers are sometimes utilised as a part of the | |||
information to detect anomalies in network traffic. This can be used | information to detect anomalies in network traffic. This can be used | |||
as the first line of defence to identify potential threats from DOS | as the first line of defence to identify potential threats from DOS | |||
or malware and redirect suspect traffic to dedicated nodes | or malware and redirect suspect traffic to dedicated nodes | |||
responsible for DOS analysis, malware detection, or to perform packet | responsible for DOS analysis, malware detection, or to perform packet | |||
"scrubbing" (the normalization of packets so that there are no | "scrubbing" (the normalization of packets so that there are no | |||
ambiguities in interpretation by the ultimate destination of the | ambiguities in interpretation by the ultimate destination of the | |||
packet). These techniques are currently used by some operators to | packet). These techniques are currently used by some operators to | |||
also defend from distributed DOS attacks. | also defend from distributed DOS attacks. | |||
Exposed transport header fields are sometimes also utilised as a part | Exposed transport header fields are sometimes also utilised as a part | |||
of the information used by the receiver of a transport protocol to | of the information used by the receiver of a transport protocol to | |||
protect the transport layer from data injection by an attacker. In | protect the transport layer from data injection by an attacker. In | |||
evaluating this use of exposed header information, it is important to | evaluating this use of exposed header information, it is important to | |||
consider whether it introduces a significant DOS threat. For | consider whether it introduces a significant DOS threat. For | |||
example, an attacker could construct a DOS attack by sending packets | example, an attacker could construct a DOS attack by sending packets | |||
with a sequence number that falls within the currently accepted range | with a sequence number that falls within the currently accepted range | |||
of sequence numbers at the receiving endpoint, this would then | of sequence numbers at the receiving endpoint, this would then | |||
introduce additional work at the receiving endpoint, even though the | introduce additional work at the receiving endpoint, even though the | |||
data in the attacking packet may not finally be delivered by the | data in the attacking packet might not finally be delivered by the | |||
transport layer. This is sometimes known as a "shadowing attack". | transport layer. This is sometimes known as a "shadowing attack". | |||
An attack can, for example, disrupt receiver processing, trigger loss | An attack can, for example, disrupt receiver processing, trigger loss | |||
and retransmission, or make a receiving endpoint perform unproductive | and retransmission, or make a receiving endpoint perform unproductive | |||
decryption of packets that cannot be successfully decrypted (forcing | decryption of packets that cannot be successfully decrypted (forcing | |||
a receiver to commit decryption resources, or to update and then | a receiver to commit decryption resources, or to update and then | |||
restore protocol state). | restore protocol state). | |||
One mitigation to off-path attack is to deny knowledge of what header | One mitigation to off-path attack is to deny knowledge of what header | |||
information is accepted by a receiver or obfuscate the accepted | information is accepted by a receiver or obfuscate the accepted | |||
header information, e.g., setting a non-predictable initial value for | header information, e.g., setting a non-predictable initial value for | |||
a sequence number during a protocol handshake, as in [RFC3550] and | a sequence number during a protocol handshake, as in [RFC3550] and | |||
skipping to change at page 36, line 9 ¶ | skipping to change at page 37, line 51 ¶ | |||
The authors would like to thank Mohamed Boucadair, Spencer Dawkins, | The authors would like to thank Mohamed Boucadair, Spencer Dawkins, | |||
Tom Herbert, Jana Iyengar, Mirja Kuehlewind, Kyle Rose, Kathleen | Tom Herbert, Jana Iyengar, Mirja Kuehlewind, Kyle Rose, Kathleen | |||
Moriarty, Al Morton, Chris Seal, Joe Touch, Brian Trammell, Chris | Moriarty, Al Morton, Chris Seal, Joe Touch, Brian Trammell, Chris | |||
Wood, Thomas Fossati, and other members of the TSVWG for their | Wood, Thomas Fossati, and other members of the TSVWG for their | |||
comments and feedback. | comments and feedback. | |||
This work has received funding from the European Union's Horizon 2020 | This work has received funding from the European Union's Horizon 2020 | |||
research and innovation programme under grant agreement No 688421, | research and innovation programme under grant agreement No 688421, | |||
and the EU Stand ICT Call 4. The opinions expressed and arguments | and the EU Stand ICT Call 4. The opinions expressed and arguments | |||
employed reflect only the authors' view. The European Commission is | employed reflect only the authors' view. The European Commission is | |||
not responsible for any use that may be made of that information. | not responsible for any use that might be made of that information. | |||
This work has received funding from the UK Engineering and Physical | This work has received funding from the UK Engineering and Physical | |||
Sciences Research Council under grant EP/R04144X/1. | Sciences Research Council under grant EP/R04144X/1. | |||
11. Informative References | 11. Informative References | |||
[bufferbloat] | [bufferbloat] | |||
Gettys, J. and K. Nichols, "Bufferbloat: dark buffers in | Gettys, J. and K. Nichols, "Bufferbloat: dark buffers in | |||
the Internet. Communications of the ACM, 55(1):57-65", | the Internet. Communications of the ACM, 55(1):57-65", | |||
January 2012. | January 2012. | |||
[I-D.ietf-ippm-ioam-data] | [I-D.ietf-ippm-ioam-data] | |||
Brockners, F., Bhandari, S., Pignataro, C., Gredler, H., | Brockners, F., Bhandari, S., Pignataro, C., Gredler, H., | |||
Leddy, J., Youell, S., Mizrahi, T., Mozes, D., Lapukhov, | Leddy, J., Youell, S., Mizrahi, T., Mozes, D., Lapukhov, | |||
P., Chang, R., daniel.bernier@bell.ca, d., and J. Lemon, | P., Chang, R., daniel.bernier@bell.ca, d., and J. Lemon, | |||
"Data Fields for In-situ OAM", draft-ietf-ippm-ioam- | "Data Fields for In-situ OAM", draft-ietf-ippm-ioam- | |||
data-06 (work in progress), July 2019. | data-06 (work in progress), July 2019. | |||
[I-D.ietf-quic-spin-exp] | ||||
Trammell, B. and M. Kuehlewind, "The QUIC Latency Spin | ||||
Bit", draft-ietf-quic-spin-exp-01 (work in progress), | ||||
October 2018. | ||||
[I-D.ietf-quic-transport] | [I-D.ietf-quic-transport] | |||
Iyengar, J. and M. Thomson, "QUIC: A UDP-Based Multiplexed | Iyengar, J. and M. Thomson, "QUIC: A UDP-Based Multiplexed | |||
and Secure Transport", draft-ietf-quic-transport-22 (work | and Secure Transport", draft-ietf-quic-transport-22 (work | |||
in progress), July 2019. | in progress), July 2019. | |||
[I-D.ietf-rtcweb-overview] | [I-D.ietf-rtcweb-overview] | |||
Alvestrand, H., "Overview: Real Time Protocols for | Alvestrand, H., "Overview: Real Time Protocols for | |||
Browser-based Applications", draft-ietf-rtcweb-overview-19 | Browser-based Applications", draft-ietf-rtcweb-overview-19 | |||
(work in progress), November 2017. | (work in progress), November 2017. | |||
skipping to change at page 43, line 5 ¶ | skipping to change at page 44, line 29 ¶ | |||
[RFC8546] Trammell, B. and M. Kuehlewind, "The Wire Image of a | [RFC8546] Trammell, B. and M. Kuehlewind, "The Wire Image of a | |||
Network Protocol", RFC 8546, DOI 10.17487/RFC8546, April | Network Protocol", RFC 8546, DOI 10.17487/RFC8546, April | |||
2019, <https://www.rfc-editor.org/info/rfc8546>. | 2019, <https://www.rfc-editor.org/info/rfc8546>. | |||
[RFC8548] Bittau, A., Giffin, D., Handley, M., Mazieres, D., Slack, | [RFC8548] Bittau, A., Giffin, D., Handley, M., Mazieres, D., Slack, | |||
Q., and E. Smith, "Cryptographic Protection of TCP Streams | Q., and E. Smith, "Cryptographic Protection of TCP Streams | |||
(tcpcrypt)", RFC 8548, DOI 10.17487/RFC8548, May 2019, | (tcpcrypt)", RFC 8548, DOI 10.17487/RFC8548, May 2019, | |||
<https://www.rfc-editor.org/info/rfc8548>. | <https://www.rfc-editor.org/info/rfc8548>. | |||
[RFC8558] Hardie, T., Ed., "Transport Protocol Path Signals", | ||||
RFC 8558, DOI 10.17487/RFC8558, April 2019, | ||||
<https://www.rfc-editor.org/info/rfc8558>. | ||||
Appendix A. Revision information | Appendix A. Revision information | |||
-00 This is an individual draft for the IETF community. | -00 This is an individual draft for the IETF community. | |||
-01 This draft was a result of walking away from the text for a few | -01 This draft was a result of walking away from the text for a few | |||
days and then reorganising the content. | days and then reorganising the content. | |||
-02 This draft fixes textual errors. | -02 This draft fixes textual errors. | |||
-03 This draft follows feedback from people reading this draft. | -03 This draft follows feedback from people reading this draft. | |||
skipping to change at page 44, line 40 ¶ | skipping to change at page 46, line 40 ¶ | |||
Section 2 deserved some work to make it easier to read and avoid | Section 2 deserved some work to make it easier to read and avoid | |||
repetition. This edit finally gets to this, and eliminates some | repetition. This edit finally gets to this, and eliminates some | |||
duplication. This also moves some of the material from section 2 to | duplication. This also moves some of the material from section 2 to | |||
reform a clearer conclusion. The scope remains focussed on the usage | reform a clearer conclusion. The scope remains focussed on the usage | |||
of transport headers and the implications of encryption - not on | of transport headers and the implications of encryption - not on | |||
proposals for new techniques/specifications to be developed. | proposals for new techniques/specifications to be developed. | |||
-08 Addressed feedback and completed editorial work, including | -08 Addressed feedback and completed editorial work, including | |||
updating the text referring to RFC7872, in preparation for a WGLC. | updating the text referring to RFC7872, in preparation for a WGLC. | |||
-09 Updated following WGLC. In particular, thanks to Joe Touch | ||||
(specific comments and commentry on style and tone); Dimitri Tikonov | ||||
(editorial); Christian Huitema (various) David Black (various). | ||||
Ammended privacy considerations based on SECDIR review. Emile | ||||
Stephan (inputs on operations measurement); Various others. | ||||
Added summary text and refs to key sections. Note to editors: The | ||||
section numbers are hard-linked. | ||||
Authors' Addresses | Authors' Addresses | |||
Godred Fairhurst | Godred Fairhurst | |||
University of Aberdeen | University of Aberdeen | |||
Department of Engineering | Department of Engineering | |||
Fraser Noble Building | Fraser Noble Building | |||
Aberdeen AB24 3UE | Aberdeen AB24 3UE | |||
Scotland | Scotland | |||
EMail: gorry@erg.abdn.ac.uk | EMail: gorry@erg.abdn.ac.uk | |||
skipping to change at page 45, line 4 ¶ | skipping to change at page 47, line 16 ¶ | |||
Godred Fairhurst | Godred Fairhurst | |||
University of Aberdeen | University of Aberdeen | |||
Department of Engineering | Department of Engineering | |||
Fraser Noble Building | Fraser Noble Building | |||
Aberdeen AB24 3UE | Aberdeen AB24 3UE | |||
Scotland | Scotland | |||
EMail: gorry@erg.abdn.ac.uk | EMail: gorry@erg.abdn.ac.uk | |||
URI: http://www.erg.abdn.ac.uk/ | URI: http://www.erg.abdn.ac.uk/ | |||
Colin Perkins | Colin Perkins | |||
University of Glasgow | University of Glasgow | |||
School of Computing Science | School of Computing Science | |||
Glasgow G12 8QQ | Glasgow G12 8QQ | |||
Scotland | Scotland | |||
EMail: csp@csperkins.org | EMail: csp@csperkins.org | |||
URI: https://csperkins.org// | URI: https://csperkins.org/ | |||
End of changes. 116 change blocks. | ||||
619 lines changed or deleted | 712 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |