rfc9065.original | rfc9065.txt | |||
---|---|---|---|---|
TSVWG G. Fairhurst | Internet Engineering Task Force (IETF) G. Fairhurst | |||
Internet-Draft University of Aberdeen | Request for Comments: 9065 University of Aberdeen | |||
Intended status: Informational C. Perkins | Category: Informational C. Perkins | |||
Expires: October 20, 2021 University of Glasgow | ISSN: 2070-1721 University of Glasgow | |||
April 18, 2021 | June 2021 | |||
Considerations around Transport Header Confidentiality, Network | Considerations around Transport Header Confidentiality, Network | |||
Operations, and the Evolution of Internet Transport Protocols | Operations, and the Evolution of Internet Transport Protocols | |||
draft-ietf-tsvwg-transport-encrypt-21 | ||||
Abstract | Abstract | |||
To protect user data and privacy, Internet transport protocols have | To protect user data and privacy, Internet transport protocols have | |||
supported payload encryption and authentication for some time. Such | supported payload encryption and authentication for some time. Such | |||
encryption and authentication is now also starting to be applied to | encryption and authentication are now also starting to be applied to | |||
the transport protocol headers. This helps avoid transport protocol | the transport protocol headers. This helps avoid transport protocol | |||
ossification by middleboxes, mitigate attacks against the transport | ossification by middleboxes, mitigate attacks against the transport | |||
protocol, and protect metadata about the communication. Current | protocol, and protect metadata about the communication. Current | |||
operational practice in some networks inspect transport header | operational practice in some networks inspect transport header | |||
information within the network, but this is no longer possible when | information within the network, but this is no longer possible when | |||
those transport headers are encrypted. | those transport headers are encrypted. | |||
This document discusses the possible impact when network traffic uses | This document discusses the possible impact when network traffic uses | |||
a protocol with an encrypted transport header. It suggests issues to | a protocol with an encrypted transport header. It suggests issues to | |||
consider when designing new transport protocols or features. | consider when designing new transport protocols or features. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This document is not an Internet Standards Track specification; it is | |||
provisions of BCP 78 and BCP 79. | published for informational purposes. | |||
Internet-Drafts are working documents of the Internet Engineering | ||||
Task Force (IETF). Note that other groups may also distribute | ||||
working documents as Internet-Drafts. The list of current Internet- | ||||
Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Not all documents | |||
approved by the IESG are candidates for any level of Internet | ||||
Standard; see Section 2 of RFC 7841. | ||||
This Internet-Draft will expire on October 20, 2021. | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | ||||
https://www.rfc-editor.org/info/rfc9065. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2021 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 . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction | |||
2. Current uses of Transport Headers within the Network . . . . 4 | 2. Current Uses of Transport Headers within the Network | |||
2.1. To Separate Flows in Network Devices . . . . . . . . . . 5 | 2.1. To Separate Flows in Network Devices | |||
2.2. To Identify Transport Protocols and Flows . . . . . . . . 5 | 2.2. To Identify Transport Protocols and Flows | |||
2.3. To Understand Transport Protocol Performance . . . . . . 6 | 2.3. To Understand Transport Protocol Performance | |||
2.4. To Support Network Operations . . . . . . . . . . . . . . 13 | 2.4. To Support Network Operations | |||
2.5. To Mitigate the Effects of Constrained Networks . . . . . 18 | 2.5. To Mitigate the Effects of Constrained Networks | |||
2.6. To Verify SLA Compliance . . . . . . . . . . . . . . . . 19 | 2.6. To Verify SLA Compliance | |||
3. Research, Development and Deployment . . . . . . . . . . . . 20 | 3. Research, Development, and Deployment | |||
3.1. Independent Measurement . . . . . . . . . . . . . . . . . 20 | 3.1. Independent Measurement | |||
3.2. Measurable Transport Protocols . . . . . . . . . . . . . 21 | 3.2. Measurable Transport Protocols | |||
3.3. Other Sources of Information . . . . . . . . . . . . . . 22 | 3.3. Other Sources of Information | |||
4. Encryption and Authentication of Transport Headers . . . . . 23 | 4. Encryption and Authentication of Transport Headers | |||
5. Intentionally Exposing Transport Information to the Network . 28 | 5. Intentionally Exposing Transport Information to the Network | |||
5.1. Exposing Transport Information in Extension Headers . . . 28 | 5.1. Exposing Transport Information in Extension Headers | |||
5.2. Common Exposed Transport Information . . . . . . . . . . 29 | 5.2. Common Exposed Transport Information | |||
5.3. Considerations for Exposing Transport Information . . . . 29 | 5.3. Considerations for Exposing Transport Information | |||
6. Addition of Transport OAM Information to Network-Layer | 6. Addition of Transport OAM Information to Network-Layer Headers | |||
Headers . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 | 6.1. Use of OAM within a Maintenance Domain | |||
6.1. Use of OAM within a Maintenance Domain . . . . . . . . . 30 | 6.2. Use of OAM across Multiple Maintenance Domains | |||
6.2. Use of OAM across Multiple Maintenance Domains . . . . . 30 | 7. Conclusions | |||
7. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . 31 | 8. Security Considerations | |||
8. Security Considerations . . . . . . . . . . . . . . . . . . . 34 | 9. IANA Considerations | |||
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 36 | 10. Informative References | |||
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 36 | Acknowledgements | |||
11. Informative References . . . . . . . . . . . . . . . . . . . 36 | Authors' Addresses | |||
Appendix A. Revision information . . . . . . . . . . . . . . . . 46 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 49 | ||||
1. Introduction | 1. Introduction | |||
The transport layer supports the end-to-end flow of data across a | The transport layer supports the end-to-end flow of data across a | |||
network path, providing features such as connection establishment, | network path, providing features such as connection establishment, | |||
reliability, framing, ordering, congestion control, flow control, | reliability, framing, ordering, congestion control, flow control, | |||
etc., as needed to support applications. One of the core functions | etc., as needed to support applications. One of the core functions | |||
of an Internet transport is to discover and adapt to the | of an Internet transport is to discover and adapt to the | |||
characteristics of the network path that is currently being used. | characteristics of the network path that is currently being used. | |||
For some years, it has been common for the transport layer payload to | For some years, it has been common for the transport-layer payload to | |||
be protected by encryption and authentication, but for the transport | be protected by encryption and authentication but for the transport- | |||
layer headers to be sent unprotected. Examples of protocols that | layer headers to be sent unprotected. Examples of protocols that | |||
behave in this manner include Transport Layer Security (TLS) over TCP | behave in this manner include Transport Layer Security (TLS) over TCP | |||
[RFC8446], Datagram TLS [RFC6347] [I-D.ietf-tls-dtls13], the Secure | [RFC8446], Datagram TLS [RFC6347] [DTLS], the Secure Real-time | |||
Real-time Transport Protocol [RFC3711], and tcpcrypt [RFC8548]. The | Transport Protocol [RFC3711], and tcpcrypt [RFC8548]. The use of | |||
use of unencrypted transport headers has led some network operators, | unencrypted transport headers has led some network operators, | |||
researchers, and others to develop tools and processes that rely on | researchers, and others to develop tools and processes that rely on | |||
observations of transport headers both in aggregate and at the flow | observations of transport headers both in aggregate and at the flow | |||
level to infer details of the network's behaviour and inform | level to infer details of the network's behaviour and inform | |||
operational practice. | operational practice. | |||
Transport protocols are now being developed that encrypt some or all | Transport protocols are now being developed that encrypt some or all | |||
of the transport headers, in addition to the transport payload data. | of the transport headers, in addition to the transport payload data. | |||
The QUIC transport protocol [I-D.ietf-quic-transport] is an example | The QUIC transport protocol [RFC9000] is an example of such a | |||
of such a protocol. Such transport header encryption makes it | protocol. Such transport header encryption makes it difficult to | |||
difficult to observe transport protocol behaviour from the vantage | observe transport protocol behaviour from the vantage point of the | |||
point of the network. This document discusses some implications of | network. This document discusses some implications of transport | |||
transport header encryption for network operators and researchers | header encryption for network operators and researchers that have | |||
that have previously observed transport headers, and highlights some | previously observed transport headers, and it highlights some issues | |||
issues to consider for transport protocol designers. | to consider for transport protocol designers. | |||
As discussed in [RFC7258], the IETF has concluded that Pervasive | As discussed in [RFC7258], the IETF has concluded that Pervasive | |||
Monitoring (PM) is a technical attack that needs to be mitigated in | Monitoring (PM) is a technical attack that needs to be mitigated in | |||
the design of IETF protocols. This document supports that | the design of IETF protocols. This document supports that | |||
conclusion. It also recognises that RFC7258 states "Making networks | conclusion. It also recognises that [RFC7258] states, "Making | |||
unmanageable to mitigate PM is not an acceptable outcome, but | networks unmanageable to mitigate PM is not an acceptable outcome, | |||
ignoring PM would go against the consensus documented here. An | but ignoring PM would go against the consensus documented here. An | |||
appropriate balance will emerge over time as real instances of this | appropriate balance will emerge over time as real instances of this | |||
tension are considered". This document is written to provide input | tension are considered." This document is written to provide input | |||
to the discussion around what is an appropriate balance, by | to the discussion around what is an appropriate balance by | |||
highlighting some implications of transport header encryption. | highlighting some implications of transport header encryption. | |||
Current uses of transport header information by network devices on | Current uses of transport header information by network devices on | |||
the Internet path are explained. These uses can be beneficial or | the Internet path are explained. These uses can be beneficial or | |||
malicious. This is written to provide input to the discussion around | malicious. This is written to provide input to the discussion around | |||
what is an appropriate balance, by highlighting some implications of | what is an appropriate balance by highlighting some implications of | |||
transport header encryption. | transport header encryption. | |||
2. Current uses of Transport Headers within the Network | 2. Current Uses of Transport Headers within the Network | |||
In response to pervasive monitoring [RFC7624] revelations and the | In response to pervasive surveillance [RFC7624] revelations and the | |||
IETF consensus that "Pervasive Monitoring is an Attack" [RFC7258], | IETF consensus that "Pervasive Monitoring Is an Attack" [RFC7258], | |||
efforts are underway to increase encryption of Internet traffic. | efforts are underway to increase encryption of Internet traffic. | |||
Applying confidentiality to transport header fields can improve | Applying confidentiality to transport header fields can improve | |||
privacy, and can help to mitigate certain attacks or manipulation of | privacy and can help to mitigate certain attacks or manipulation of | |||
packets by devices on the network path, but it can also affect | packets by devices on the network path, but it can also affect | |||
network operations and measurement [RFC8404]. | network operations and measurement [RFC8404]. | |||
When considering what parts of the transport headers should be | When considering what parts of the transport headers should be | |||
encrypted to provide confidentiality, and what parts should be | encrypted to provide confidentiality and what parts should be visible | |||
visible to network devices (including non-encrypted but authenticated | to network devices (including unencrypted but authenticated headers), | |||
headers), it is necessary to consider both the impact on network | it is necessary to consider both the impact on network operations and | |||
operations and management, and the implications for ossification and | management and the implications for ossification and user privacy | |||
user privacy [Measurement]. Different parties will view the relative | [Measurement]. Different parties will view the relative importance | |||
importance of these concerns differently. For some, the benefits of | of these concerns differently. For some, the benefits of encrypting | |||
encrypting all the transport headers outweigh the impact of doing so; | all the transport headers outweigh the impact of doing so; others | |||
others might analyse the security, privacy, and ossification impacts | might analyse the security, privacy, and ossification impacts and | |||
and arrive at a different trade-off. | arrive at a different trade-off. | |||
This section reviews examples of the observation of transport layer | This section reviews examples of the observation of transport-layer | |||
headers within the network by devices on the network path, or using | headers within the network by using devices on the network path or by | |||
information exported by an on-path device. Unencrypted transport | using information exported by an on-path device. Unencrypted | |||
headers provide information that can support network operations and | transport headers provide information that can support network | |||
management, and this section notes some ways in which this has been | operations and management, and this section notes some ways in which | |||
done. Unencrypted transport header information also contributes | this has been done. Unencrypted transport header information also | |||
metadata that can be exploited for purposes unrelated to network | contributes metadata that can be exploited for purposes unrelated to | |||
transport measurement, diagnostics or troubleshooting (e.g., to block | network transport measurement, diagnostics, or troubleshooting (e.g., | |||
or to throttle traffic from a specific content provider), and this | to block or to throttle traffic from a specific content provider), | |||
section also notes some threats relating to unencrypted transport | and this section also notes some threats relating to unencrypted | |||
headers. | transport headers. | |||
Exposed transport information also provides a source of information | Exposed transport information also provides a source of information | |||
that contributes to linked data sets, which could be exploited to | that contributes to linked data sets, which could be exploited to | |||
deduce private information, e.g., user patterns, user location, | deduce private information, e.g., user patterns, user location, | |||
tracking behaviour, etc. This might reveal information the parties | tracking behaviour, etc. This might reveal information the parties | |||
did not intend to be revealed. [RFC6973] aims to make designers, | did not intend to be revealed. [RFC6973] aims to make designers, | |||
implementers, and users of Internet protocols aware of privacy- | implementers, and users of Internet protocols aware of privacy- | |||
related design choices in IETF protocols. | related design choices in IETF protocols. | |||
This section does not consider intentional modification of transport | This section does not consider intentional modification of transport | |||
headers by middleboxes, such as devices performing Network Address | headers by middleboxes, such as devices performing Network Address | |||
Translation (NAT) or Firewalls. | Translation (NAT) or firewalls. | |||
2.1. To Separate Flows in Network Devices | 2.1. To Separate Flows in Network Devices | |||
Some network layer mechanisms separate network traffic by flow, | Some network-layer mechanisms separate network traffic by flow | |||
without resorting to identifying the type of traffic. Hash-based | without resorting to identifying the type of traffic: hash-based load | |||
load-sharing sharing across paths (e..g., equal cost multi path, | sharing across paths (e.g., Equal-Cost Multipath (ECMP)); sharing | |||
ECMP), sharing across a group of links (e.g., using a link | across a group of links (e.g., using a Link Aggregation Group (LAG)); | |||
aggregation group, LAG), ensuring equal access to link capacity | ensuring equal access to link capacity (e.g., Fair Queuing (FQ)); or | |||
(e.g., fair queuing, FQ), or distributing traffic to servers (e.g., | distributing traffic to servers (e.g., load balancing). To prevent | |||
load balancing). To prevent packet reordering, forwarding engines | packet reordering, forwarding engines can consistently forward the | |||
can consistently forward the same transport flows along the same | same transport flows along the same forwarding path, often achieved | |||
forwarding path, often achieved by calculating a hash using an | by calculating a hash using an n-tuple gleaned from a combination of | |||
n-tuple gleaned from a combination of link header information through | link header information through to transport header information. | |||
to transport header information. This n-tuple can use the MAC | This n-tuple can use the Media Access Control (MAC) address and IP | |||
address, IP addresses, and can include observable transport header | addresses and can include observable transport header information. | |||
information. | ||||
When transport header information cannot be observed, there can be | When transport header information cannot be observed, there can be | |||
less information to separate flows at equipment along the path. Flow | less information to separate flows at equipment along the path. Flow | |||
separation might not be possible when, a transport that forms traffic | separation might not be possible when a transport forms traffic into | |||
into an encrypted aggregate. For IPv6, the Flow Label [RFC6437] can | an encrypted aggregate. For IPv6, the Flow Label [RFC6437] can be | |||
be used even when all transport information is encrypted, enabling | used even when all transport information is encrypted, enabling Flow | |||
Flow Label-based ECMP [RFC6438] and Load-Sharing [RFC7098]. | Label-based ECMP [RFC6438] and load sharing [RFC7098]. | |||
2.2. To Identify Transport Protocols and Flows | 2.2. To Identify Transport Protocols and Flows | |||
Information in exposed transport layer headers can be used by the | Information in exposed transport-layer headers can be used by the | |||
network to identify transport protocols and flows [RFC8558]. The | network to identify transport protocols and flows [RFC8558]. The | |||
ability to identify transport protocols, flows, and sessions is a | ability to identify transport protocols, flows, and sessions is a | |||
common function performed, for example, by measurement activities, | common function performed, for example, by measurement activities, | |||
Quality of Service (QoS) classifiers, and firewalls. These functions | Quality of Service (QoS) classifiers, and firewalls. These functions | |||
can be beneficial, and performed with the consent of, and in support | can be beneficial and performed with the consent of, and in support | |||
of, the end user. Alternatively, the same mechanisms could be used | of, the end user. Alternatively, the same mechanisms could be used | |||
to support practises that might be adversarial to the end user, | to support practises that might be adversarial to the end user, | |||
including blocking, de-prioritising, and monitoring traffic without | including blocking, deprioritising, and monitoring traffic without | |||
consent. | consent. | |||
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 set of protocol options being | connection state, together with the set of protocol options being | |||
used. Transport protocols, such as TCP [RFC7414] and the Stream | used. Transport protocols, such as TCP [RFC7414] and the Stream | |||
Control Transport Protocol (SCTP) [RFC4960], specify a standard base | Control Transmission Protocol (SCTP) [RFC4960], specify a standard | |||
header that includes sequence number information and other data. | base header that includes sequence number information and other data. | |||
They also have the possibility to negotiate additional headers at | They also have the possibility to negotiate additional headers at | |||
connection setup, identified by an option number in the transport | connection setup, identified by an option number in the transport | |||
header. | header. | |||
In some uses, an assigned transport port (e.g., 0..49151) can | In some uses, an assigned transport port (e.g., 0..49151) can | |||
identify the upper-layer protocol or service [RFC7605]. However, | identify the upper-layer protocol or service [RFC7605]. However, | |||
port information alone is not sufficient to guarantee identification. | port information alone is not sufficient to guarantee identification. | |||
Applications can use arbitrary ports and do not need to use assigned | Applications can use arbitrary ports and do not need to use assigned | |||
port numbers. The use of an assigned port number is also not limited | port numbers. The use of an assigned port number is also not limited | |||
to the protocol for which the port is intended. Multiple sessions | to the protocol for which the port is intended. Multiple sessions | |||
can also be multiplexed on a single port, and ports can be re-used by | can also be multiplexed on a single port, and ports can be reused by | |||
subsequent sessions. | subsequent sessions. | |||
Some flows can be identified by observing signalling data (e.g., | Some flows can be identified by observing signalling data (e.g., see | |||
[RFC3261], [RFC8837]) or through the use of magic numbers placed in | [RFC3261] and [RFC8837]) or through the use of magic numbers placed | |||
the first byte(s) of a datagram payload [RFC7983]. | in the first byte(s) of a datagram payload [RFC7983]. | |||
When transport header information cannot be observed, this removes | When transport header information cannot be observed, this removes | |||
information that could have been used to classify flows by passive | information that could have been used to classify flows by passive | |||
observers along the path. More ambitious ways could be used to | observers along the path. More ambitious ways could be used to | |||
collect, estimate, or infer flow information, including heuristics | collect, estimate, or infer flow information, including heuristics | |||
based on the analysis of traffic patterns, such as classification of | based on the analysis of traffic patterns, such as classification of | |||
flows relying on timing, volumes of information, and correlation | flows relying on timing, volumes of information, and correlation | |||
between multiple flows. For example, an operator that cannot access | between multiple flows. For example, an operator that cannot access | |||
the Session Description Protocol (SDP) session descriptions [RFC4566] | the Session Description Protocol (SDP) session descriptions [RFC8866] | |||
to classify a flow as audio traffic, might instead use (possibly | to classify a flow as audio traffic might instead use (possibly less- | |||
less-reliable) heuristics to infer that short UDP packets with | reliable) heuristics to infer that short UDP packets with regular | |||
regular spacing carry audio traffic. Operational practises aimed at | spacing carry audio traffic. Operational practises aimed at | |||
inferring transport parameters are out of scope for this document, | inferring transport parameters are out of scope for this document, | |||
and are only mentioned here to recognise that encryption does not | and are only mentioned here to recognise that encryption does not | |||
prevent operators from attempting to apply practises that were used | prevent operators from attempting to apply practises that were used | |||
with unencrypted transport headers. | with unencrypted transport headers. | |||
The IAB [RFC8546] have provided a summary of expected implications of | The IAB [RFC8546] has provided a summary of expected implications of | |||
increased encryption on network functions that use the observable | increased encryption on network functions that use the observable | |||
headers and describe the expected benefits of designs that explicitly | headers and describe the expected benefits of designs that explicitly | |||
declare protocol invariant header information that can be used for | declare protocol-invariant header information that can be used for | |||
this purpose. | this purpose. | |||
2.3. To Understand Transport Protocol Performance | 2.3. To Understand Transport Protocol Performance | |||
This subsection describes use by the network of exposed transport | This subsection describes use by the network of exposed transport- | |||
layer headers to understand transport protocol performance and | layer headers to understand transport protocol performance and | |||
behaviour. | behaviour. | |||
2.3.1. Using Information Derived from Transport Layer Headers | 2.3.1. Using Information Derived from Transport-Layer Headers | |||
Observable transport headers enable explicit measurement and analysis | Observable transport headers enable explicit measurement and analysis | |||
of protocol performance, and detection of network anomalies at any | of protocol performance and detection of network anomalies at any | |||
point along the Internet path. Some operators use passive monitoring | point along the Internet path. Some operators use passive monitoring | |||
to manage their portion of the Internet by characterising the | to manage their portion of the Internet by characterising the | |||
performance of link/network segments. Inferences from transport | performance of link/network segments. Inferences from transport | |||
headers are used to derive performance metrics: | headers are used to derive performance metrics: | |||
Traffic Rate and Volume: Per-application traffic rate and volume | Traffic Rate and Volume: | |||
measures can be used to characterise the traffic that uses a | Per-application traffic rate and volume measures can be used to | |||
network segment or the pattern of network usage. Observing the | characterise the traffic that uses a network segment or the | |||
protocol sequence number and packet size offers one way to measure | pattern of network usage. Observing the protocol sequence number | |||
this (e.g., measurements observing counters in periodic reports | and packet size offers one way to measure this (e.g., measurements | |||
such as RTCP; or measurements observing protocol sequence numbers | observing counters in periodic reports, such as RTCP [RFC3550] | |||
in statistical samples of packet flows, or specific control | [RFC3711] [RFC4585], or measurements observing protocol sequence | |||
numbers in statistical samples of packet flows or specific control | ||||
packets, such as those observed at the start and end of a flow). | packets, such as those observed at the start and end of a flow). | |||
Measurements can be per endpoint, or for an endpoint aggregate. | Measurements can be per endpoint or for an endpoint aggregate. | |||
These could be used to assess usage or for subscriber billing. | These could be used to assess usage or for subscriber billing. | |||
Such measurements can be used to trigger traffic shaping, and to | Such measurements can be used to trigger traffic shaping and to | |||
associate QoS support within the network and lower layers. This | associate QoS support within the network and lower layers. This | |||
can be done with consent and in support of an end user, to improve | can be done with consent and in support of an end user to improve | |||
quality of service; or could be used by the network to de- | quality of service or could be used by the network to deprioritise | |||
prioritise certain flows without user consent. | certain flows without user consent. | |||
The traffic rate and volume can be determined providing that the | The traffic rate and volume can be determined, providing that the | |||
packets belonging to individual flows can be identified, but there | packets belonging to individual flows can be identified, but there | |||
might be no additional information about a flow when the transport | might be no additional information about a flow when the transport | |||
headers cannot be observed. | headers cannot be observed. | |||
Loss Rate and Loss Pattern: Flow loss rate can be derived (e.g., | Loss Rate and Loss Pattern: | |||
from transport sequence numbers or inferred from observing | Flow loss rate can be derived (e.g., from transport sequence | |||
transport protocol interactions) and has been used as a metric for | numbers or inferred from observing transport protocol | |||
performance assessment and to characterise transport behaviour. | interactions) and has been used as a metric for performance | |||
Network operators have used the variation in patterns to detect | assessment and to characterise transport behaviour. Network | |||
changes in the offered service. Understanding the location and | operators have used the variation in patterns to detect changes in | |||
root cause of loss can help an operator determine whether this | the offered service. Understanding the location and root cause of | |||
requires corrective action. | loss can help an operator determine whether this requires | |||
corrective action. | ||||
There are various causes of loss, including: corruption of link | There are various causes of loss, including: corruption of link | |||
frames (e.g., due to interference on a radio link), buffering loss | frames (e.g., due to interference on a radio link); buffering loss | |||
(e.g., overflow due to congestion, Active Queue Management, AQM | (e.g., overflow due to congestion, Active Queue Management (AQM) | |||
[RFC7567], or inadequate provision following traffic pre-emption), | [RFC7567], or inadequate provision following traffic preemption), | |||
and policing (traffic management [RFC2475]). Understanding flow | and policing (e.g., traffic management [RFC2475]). Understanding | |||
loss rates requires maintaining per-flow state (flow | flow loss rates requires maintaining the per-flow state (flow | |||
identification often requires transport layer information) and | identification often requires transport-layer information) and | |||
either observing the increase in sequence numbers in the network | either observing the increase in sequence numbers in the network | |||
or transport headers, or comparing a per-flow packet counter with | or transport headers or comparing a per-flow packet counter with | |||
the number of packets that the flow actually sent. Per-hop loss | the number of packets that the flow actually sent. Per-hop loss | |||
can also sometimes be monitored at the interface level by devices | can also sometimes be monitored at the interface level by devices | |||
on the network path, or using in-situ methods operating over a | on the network path or by using in-situ methods operating over a | |||
network segment (see Section 3.3). | network segment (see Section 3.3). | |||
The pattern of loss can provide insight into the cause of loss. | The pattern of loss can provide insight into the cause of loss. | |||
Losses can often occur as bursts, randomly-timed events, etc. It | Losses can often occur as bursts, randomly timed events, etc. It | |||
can also be valuable to understand the conditions under which loss | can also be valuable to understand the conditions under which loss | |||
occurs. This usually requires relating loss to the traffic | occurs. This usually requires relating loss to the traffic | |||
flowing at a network node or segment at the time of loss. | flowing at a network node or segment at the time of loss. | |||
Transport header information can help identify cases where loss | Transport header information can help identify cases where loss | |||
could have been wrongly identified, or where the transport did not | could have been wrongly identified or where the transport did not | |||
require retransmission of a lost packet. | require retransmission of a lost packet. | |||
Throughput and Goodput: Throughput is the amount of payload data | Throughput and Goodput: | |||
sent by a flow per time interval. Goodput (the subset of | Throughput is the amount of payload data sent by a flow per time | |||
throughput consisting of useful traffic) (see Section 2.5 of | interval. Goodput (the subset of throughput consisting of useful | |||
[RFC7928] and [RFC5166]) is a measure of useful data exchanged. | traffic; see Section 2.5 of [RFC7928] and [RFC5166]) is a measure | |||
The throughput of a flow can be determined in the absence of | of useful data exchanged. The throughput of a flow can be | |||
transport header information, providing that the individual flow | determined in the absence of transport header information, | |||
can be identified, and the overhead known. Goodput requires | providing that the individual flow can be identified, and the | |||
ability to differentiate loss and retransmission of packets, for | overhead known. Goodput requires the ability to differentiate | |||
example by observing packet sequence numbers in the TCP or RTP | loss and retransmission of packets, for example, by observing | |||
headers [RFC3550]. | packet sequence numbers in the TCP or RTP headers [RFC3550]. | |||
Latency: Latency is a key performance metric that impacts | Latency: | |||
application and user-perceived response times. It often | Latency is a key performance metric that impacts application and | |||
indirectly impacts throughput and flow completion time. This | user-perceived response times. It often indirectly impacts | |||
determines the reaction time of the transport protocol itself, | throughput and flow completion time. This determines the reaction | |||
impacting flow setup, congestion control, loss recovery, and other | time of the transport protocol itself, impacting flow setup, | |||
transport mechanisms. The observed latency can have many | congestion control, loss recovery, and other transport mechanisms. | |||
components [Latency]. Of these, unnecessary/unwanted queueing in | The observed latency can have many components [Latency]. Of | |||
buffers of the network devices on the path has often been observed | these, unnecessary/unwanted queueing in buffers of the network | |||
as a significant factor [bufferbloat]. Once the cause of unwanted | devices on the path has often been observed as a significant | |||
latency has been identified, this can often be eliminated. | factor [bufferbloat]. Once the cause of unwanted latency has been | |||
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) by | |||
packet sequence numbers and acknowledgements, or by observing | using packet sequence numbers and acknowledgements or by observing | |||
header timestamp information. Such information allows an | header timestamp information. Such information allows an | |||
observation point on the network path to determine not only the | observation point on the network path to determine not only the | |||
path RTT, but also allows measurement of the upstream and | path RTT but also allows measurement of the upstream and | |||
downstream contribution to the RTT. This could be used to locate | downstream contribution to the RTT. This could be used to locate | |||
a source of latency, e.g., by observing cases where the median RTT | a source of latency, e.g., by observing cases where the median RTT | |||
is much greater than the minimum RTT for a part of a path. | is much 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 often require tuning [RFC8290] | [RFC7567], current methods often require tuning [RFC8290] | |||
[RFC8289] [RFC8033] because they cannot scale across all possible | [RFC8289] [RFC8033] because they cannot scale across all possible | |||
deployment scenarios. | deployment scenarios. | |||
Latency and round-trip time information can potentially expose | Latency and round-trip time information can potentially expose | |||
some information useful for approximate geolocation, as discussed | some information useful for approximate geolocation, as discussed | |||
in [PAM-RTT]. | in [PAM-RTT]. | |||
Variation in delay: Some network applications are sensitive to | Variation in Delay: | |||
(small) changes in packet timing (jitter). Short and long-term | Some network applications are sensitive to (small) changes in | |||
delay variation can impact on the latency of a flow and hence the | packet timing (jitter). Short- and long-term delay variation can | |||
perceived quality of applications using a network path. For | impact the latency of a flow and hence the perceived quality of | |||
example, jitter metrics are often cited when characterising paths | applications using a network path. For example, jitter metrics | |||
supporting real-time traffic. The expected performance of such | are often cited when characterising paths supporting real-time | |||
applications, can be inferred from a measure of the variation in | traffic. The expected performance of such applications can be | |||
delay observed along a portion of the path [RFC3393] [RFC5481]. | inferred from a measure of the variation in delay observed along a | |||
The requirements resemble those for the measurement of latency. | portion of the path [RFC3393] [RFC5481]. The requirements | |||
resemble those for the measurement of latency. | ||||
Flow Reordering: Significant packet reordering within a flow can | Flow Reordering: | |||
impact time-critical applications and can be interpreted as loss | Significant packet reordering within a flow can impact time- | |||
by reliable transports. Many transport protocol techniques are | critical applications and can be interpreted as loss by reliable | |||
impacted by reordering (e.g., triggering TCP retransmission or re- | transports. Many transport protocol techniques are impacted by | |||
buffering of real-time applications). Packet reordering can occur | reordering (e.g., triggering TCP retransmission or rebuffering of | |||
for many reasons, from equipment design to misconfiguration of | real-time applications). Packet reordering can occur for many | |||
reasons, e.g., from equipment design to misconfiguration of | ||||
forwarding rules. Flow identification is often required to avoid | forwarding rules. Flow identification is often required to avoid | |||
significant packet mis-ordering (e.g., when using ECMP, or LAG). | significant packet misordering (e.g., when using ECMP, or LAG). | |||
Network tools can detect and measure unwanted/excessive | Network tools can detect and measure unwanted/excessive reordering | |||
reordering, and the impact on transport performance. | and the impact on transport performance. | |||
There have been initiatives in the IETF transport area to reduce | There have been initiatives in the IETF transport area to reduce | |||
the impact of reordering within a transport flow, possibly leading | the impact of reordering within a transport flow, possibly leading | |||
to a reduction in the requirements for preserving ordering. These | to a reduction in the requirements for preserving ordering. These | |||
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, and inform decisions about how to progress new | of reordering and inform decisions about how to progress new | |||
mechanisms. | mechanisms. | |||
Techniques for measuring reordering typically observe packet | Techniques for measuring reordering typically observe packet | |||
sequence numbers. Metrics have been defined that evaluate whether | sequence numbers. Metrics have been defined that evaluate whether | |||
a network path has maintained packet order on a packet-by-packet | a network path has maintained packet order on a packet-by-packet | |||
basis [RFC4737] [RFC5236]. Some protocols provide in-built | basis [RFC4737] [RFC5236]. Some protocols provide in-built | |||
monitoring and reporting functions. Transport fields in the RTP | monitoring and reporting functions. Transport fields in the RTP | |||
header [RFC3550] [RFC4585] can be observed to derive traffic | header [RFC3550] [RFC4585] can be observed to derive traffic | |||
volume measurements and provide information on the progress and | volume measurements and provide information on the progress and | |||
quality of a session using RTP. Metadata assists in understanding | quality of a session using RTP. Metadata assists in understanding | |||
the context under which the data was collected, including the | the context under which the data was collected, including the | |||
time, observation point [RFC7799], and way in which metrics were | time, observation point [RFC7799], and way in which metrics were | |||
accumulated. The RTCP protocol directly reports some of this | accumulated. The RTCP protocol directly reports some of this | |||
information in a form that can be directly visible by devices on | information in a form that can be directly visible by devices on | |||
the network path. | the network path. | |||
In some cases, measurements could involve active injection of test | In some cases, measurements could involve active injection of test | |||
traffic to perform a measurement (see Section 3.4 of [RFC7799]). | traffic to perform a measurement (see Section 3.4 of [RFC7799]). | |||
However, most operators do not have access to user equipment, | However, most operators do not have access to user equipment; | |||
therefore the point of test is normally different from the transport | therefore, the point of test is normally different from the transport | |||
endpoint. Injection of test traffic can incur an additional cost in | endpoint. Injection of test traffic can incur an additional cost in | |||
running such tests (e.g., the implications of capacity tests in a | running such tests (e.g., the implications of capacity tests in a | |||
mobile network segment are obvious). Some active measurements | mobile network segment are obvious). Some active measurements | |||
[RFC7799] (e.g., response under load or particular workloads) perturb | [RFC7799] (e.g., response under load or particular workloads) perturb | |||
other traffic, and could require dedicated access to the network | other traffic and could require dedicated access to the network | |||
segment. | segment. | |||
Passive measurements (see Section 3.6 of [RFC7799]) can have | Passive measurements (see Section 3.6 of [RFC7799]) can have | |||
advantages in terms of eliminating unproductive test traffic, | advantages in terms of eliminating unproductive test traffic, | |||
reducing the influence of test traffic on the overall traffic mix, | reducing the influence of test traffic on the overall traffic mix, | |||
and the ability to choose the point of observation (see | and having the ability to choose the point of observation (see | |||
Section 2.4.1). Measurements can rely on observing packet headers, | Section 2.4.1). Measurements can rely on observing packet headers, | |||
which is not possible if those headers are encrypted, but could | which is not possible if those headers are encrypted, but could | |||
utilise information about traffic volumes or patterns of interaction | utilise information about traffic volumes or patterns of interaction | |||
to deduce metrics. | to deduce metrics. | |||
Passive packet sampling techniques are also often used to scale the | Passive packet sampling techniques are also often used to scale the | |||
processing involved in observing packets on high rate links. This | processing involved in observing packets on high-rate links. This | |||
exports only the packet header information of (randomly) selected | exports only the packet header information of (randomly) selected | |||
packets. Interpretation of the exported information relies on | packets. Interpretation of the exported information relies on | |||
understanding of the header information. The utility of these | understanding of the header information. The utility of these | |||
measurements depends on the type of network segment/link and number | measurements depends on the type of network segment/link and number | |||
of mechanisms used by the network devices. Simple routers are | of mechanisms used by the network devices. Simple routers are | |||
relatively easy to manage, but a device with more complexity demands | relatively easy to manage, but a device with more complexity demands | |||
understanding of the choice of many system parameters. | understanding of the choice of many system parameters. | |||
2.3.2. Using Information Derived from Network Layer Header Fields | 2.3.2. Using Information Derived from Network-Layer Header Fields | |||
Information from the transport header can be used by a multi-field | Information from the transport header can be used by a multi-field | |||
(MF) classifier as a part of policy framework. Policies are commonly | (MF) classifier as a part of policy framework. Policies are commonly | |||
used for management of the QoS or Quality of Experience (QoE) in | used for management of the QoS or Quality of Experience (QoE) in | |||
resource-constrained networks, or by firewalls to implement access | resource-constrained networks or by firewalls to implement access | |||
rules (see also Section 2.2.2 of [RFC8404]). Policies can support | rules (see also Section 2.2.2 of [RFC8404]). Policies can support | |||
user applications/services or protect against unwanted, or lower | user applications/services or protect against unwanted or lower- | |||
priority traffic (Section 2.4.4). | priority traffic (Section 2.4.4). | |||
Transport layer information can also be explicitly carried in | Transport-layer information can also be explicitly carried in | |||
network-layer header fields that are not encrypted, serving as a | network-layer header fields that are not encrypted, serving as a | |||
replacement/addition to the exposed transport header information | replacement/addition to the exposed transport header information | |||
[RFC8558]. This information can enable a different forwarding | [RFC8558]. This information can enable a different forwarding | |||
treatment by the devices forming the network path, even when a | treatment by the devices forming the network path, even when a | |||
transport employs encryption to protect other header information. | transport employs encryption to protect other header information. | |||
On the one hand, the user of a transport that multiplexes multiple | On the one hand, the user of a transport that multiplexes multiple | |||
sub-flows might want to obscure the presence and characteristics of | subflows might want to obscure the presence and characteristics of | |||
these sub-flows. On the other hand, an encrypted transport could set | these subflows. On the other hand, an encrypted transport could set | |||
the network-layer information to indicate the presence of sub-flows, | the network-layer information to indicate the presence of subflows | |||
and to reflect the service requirements of individual sub-flows. | and to reflect the service requirements of individual subflows. | |||
There are several ways this could be done: | There are several ways this could be done: | |||
IP Address: Applications normally expose the endpoint addresses used | IP Address: | |||
in the forwarding decisions in network devices. Address and other | Applications normally expose the endpoint addresses used in the | |||
protocol information can be used by a MF-classifier to determine | forwarding decisions in network devices. Address and other | |||
how traffic is treated [RFC2475], and hence affect the quality of | protocol information can be used by an MF classifier to determine | |||
how traffic is treated [RFC2475] and hence affects the quality of | ||||
experience for a flow. Common issues concerning IP address | experience for a flow. Common issues concerning IP address | |||
sharing are described in [RFC6269]. | sharing are described in [RFC6269]. | |||
Using the IPv6 Network-Layer Flow Label: A number of Standards Track | Using the IPv6 Network-Layer Flow Label: | |||
and Best Current Practice RFCs (e.g., [RFC8085], [RFC6437], | A number of Standards Track and Best Current Practice RFCs (e.g., | |||
[RFC6438]) encourage endpoints to set the IPv6 flow label field of | [RFC8085], [RFC6437], and [RFC6438]) encourage endpoints to set | |||
the network-layer header. IPv6 "source nodes SHOULD assign each | the IPv6 Flow Label field of the network-layer header. As per | |||
unrelated transport connection and application data stream to a | [RFC6437], IPv6 source nodes "SHOULD assign each unrelated | |||
new flow" [RFC6437]. A multiplexing transport could choose to use | transport connection and application data stream to a new flow." | |||
multiple flow labels to allow the network to independently forward | A multiplexing transport could choose to use multiple flow labels | |||
sub-flows. RFC6437 provides further guidance on choosing a flow | to allow the network to independently forward subflows. [RFC6437] | |||
label value, stating these "should be chosen such that their bits | provides further guidance on choosing a flow label value, stating | |||
exhibit a high degree of variability", and chosen so that "third | these "should be chosen such that their bits exhibit a high degree | |||
parties should be unlikely to be able to guess the next value that | of variability" and chosen so that "third parties should be | |||
a source of flow labels will choose". | unlikely to be able to guess the next value that a source of flow | |||
labels will choose." | ||||
Once set, a flow label can provide information that can help | Once set, a flow label can provide information that can help | |||
inform network-layer queueing and forwarding, including use with | inform network-layer queueing and forwarding, including use with | |||
IPsec, [RFC6294] and use with Equal Cost Multi-Path routing and | IPsec [RFC6294], Equal-Cost Multipath routing, and Link | |||
Link Aggregation[RFC6438]. | Aggregation [RFC6438]. | |||
The choice of how to assign a flow label needs to avoid | The choice of how to assign a flow label needs to avoid | |||
introducing linkages between flows that a network device could not | introducing linkages between flows that a network device could not | |||
otherwise observe. Inappropriate use by the transport can have | otherwise observe. Inappropriate use by the transport can have | |||
privacy implications (e.g., assigning the same label to two | privacy implications (e.g., assigning the same label to two | |||
independent flows that ought not to be classified the same). | independent flows that ought not to be classified similarly). | |||
Using the Network-Layer Differentiated Services Code Point: | Using the Network-Layer Differentiated Services Code Point: | |||
Applications can expose their delivery expectations to network | Applications can expose their delivery expectations to network | |||
devices by setting the Differentiated Services Code Point (DSCP) | devices by setting the Differentiated Services Code Point (DSCP) | |||
field of IPv4 and IPv6 packets [RFC2474]. For example, WebRTC | field of IPv4 and IPv6 packets [RFC2474]. For example, WebRTC | |||
applications identify different forwarding treatments for | applications identify different forwarding treatments for | |||
individual sub-flows (audio vs. video) based on the value of the | individual subflows (audio vs. video) based on the value of the | |||
DSCP field [I-D.ietf-tsvwg-rtcweb-qos]). This provides explicit | DSCP field [RFC8837]). This provides explicit information to | |||
information to inform network-layer queueing and forwarding, | inform network-layer queueing and forwarding, rather than an | |||
rather than an operator inferring traffic requirements from | operator inferring traffic requirements from transport and | |||
transport and application headers via a multi-field classifier. | application headers via a multi-field classifier. Inappropriate | |||
Inappropriate use by the transport can have privacy implications | use by the transport can have privacy implications (e.g., | |||
(e.g., assigning a different DSCP to a subflow could assist in a | assigning a different DSCP to a subflow could assist in a network | |||
network device discovering the traffic pattern used by an | device discovering the traffic pattern used by an application). | |||
application). The field is mutable, i.e., some network devices | The field is mutable, i.e., some network devices can be expected | |||
can be expected to change this field. Since the DSCP value can | to change this field. Since the DSCP value can impact the quality | |||
impact the quality of experience for a flow, observations of | of experience for a flow, observations of service performance have | |||
service performance have to consider this field when a network | to consider this field when a network path supports differentiated | |||
path supports differentiated service treatment. | service treatment. | |||
Using Explicit Congestion Marking: ECN [RFC3168] is a transport | Using Explicit Congestion Notification: | |||
Explicit Congestion Notification (ECN) [RFC3168] is a transport | ||||
mechanism that uses the ECN field in the network-layer header. | mechanism that uses 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- | |||
capable transport can offer benefits when used over a path with | capable transport can offer benefits when used over a path with | |||
equipment that implements an AQM method with CE marking of IP | equipment that implements an AQM method with Congestion | |||
packets [RFC8087], since it can react to congestion without also | Experienced (CE) marking of IP packets [RFC8087], since it can | |||
having to recover from lost packets. | react to congestion without also having to recover from lost | |||
packets. | ||||
ECN exposes the presence of congestion. The reception of CE- | ECN exposes the presence of congestion. The reception of CE- | |||
marked packets can be used to estimate the level of incipient | marked packets can be used to estimate the level of incipient | |||
congestion on the upstream portion of the path from the point of | congestion on the upstream portion of the path from the point of | |||
observation (Section 2.5 of [RFC8087]). Interpreting the marking | observation (Section 2.5 of [RFC8087]). Interpreting the marking | |||
behaviour (i.e., assessing congestion and diagnosing faults) | behaviour (i.e., assessing congestion and diagnosing faults) | |||
requires context from the transport layer, such as path RTT. | requires context from the transport layer, such as path RTT. | |||
AQM and ECN offer a range of algorithms and configuration options. | AQM and ECN offer a range of algorithms and configuration options. | |||
Tools therefore have to be available to network operators and | Tools therefore have 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]. | |||
Network-Layer Options Network protocols can carry optional headers | Network-Layer Options: | |||
(see Section 5.1). These can explicitly expose transport header | Network protocols can carry optional headers (see Section 5.1). | |||
information to on-path devices operating at the network layer (as | These can explicitly expose transport header information to on- | |||
discussed further in Section 6). | path devices operating at the network layer (as discussed further | |||
in Section 6). | ||||
IPv4 [RFC0791] has provision for optional header fields. IP | IPv4 [RFC0791] has provisions for optional header fields. IP | |||
routers can examine these headers and are required to ignore IPv4 | routers can examine these headers and are required to ignore IPv4 | |||
options that they do not recognise. Many current paths include | options that they do not recognise. Many current paths include | |||
network devices that forward packets that carry options on a | network devices that forward packets that carry options on a | |||
slower processing path. Some network devices (e.g., firewalls) | slower processing path. Some network devices (e.g., firewalls) | |||
can be (and are) configured to drop these packets [RFC7126]. BCP | can be (and are) configured to drop these packets [RFC7126]. BCP | |||
186 [RFC7126] provides Best Current Practice guidance on how | 186 [RFC7126] provides guidance on how operators should treat IPv4 | |||
operators should treat IPv4 packets that specify options. | packets that specify options. | |||
IPv6 can encode optional network-layer information in separate | IPv6 can encode optional network-layer information in separate | |||
headers that may be placed between the IPv6 header and the upper- | headers that may be placed between the IPv6 header and the upper- | |||
layer header [RFC8200]. (e.g., the IPv6 Alternate Marking Method | layer header [RFC8200] (e.g., the IPv6 Alternate Marking Method | |||
[I-D.ietf-6man-ipv6-alt-mark], which can be used to measure packet | [IPV6-ALT-MARK], which can be used to measure packet loss and | |||
loss and delay metrics). The Hop-by-Hop options header, when | delay metrics). The Hop-by-Hop Options header, when present, | |||
present, immediately follows the IPv6 header. IPv6 permits this | immediately follows the IPv6 header. IPv6 permits this header to | |||
header to be examined by any node along the path if explicitly | be examined by any node along the path if explicitly configured | |||
configured [RFC8200]. | [RFC8200]. | |||
Careful use of the network layer features (e.g., Extension Headers | Careful use of the network-layer features (e.g., extension headers | |||
can Section 5) help provide similar information in the case where the | can; see Section 5) help provide similar information in the case | |||
network is unable to inspect transport protocol headers. | where the network is unable to inspect transport protocol headers. | |||
2.4. To Support Network Operations | 2.4. To Support Network Operations | |||
Some network operators make use of on-path observations of transport | Some network operators make use of on-path observations of transport | |||
headers to analyse the service offered to the users of a network | headers to analyse the service offered to the users of a network | |||
segment, and to inform operational practice, and can help detect and | segment and inform operational practice and can help detect and | |||
locate network problems. [RFC8517] gives an operator's perspective | locate network problems. [RFC8517] gives an operator's perspective | |||
about such use. | about such use. | |||
When observable transport header information is not available, those | When observable transport header information is not available, those | |||
seeking an understanding of transport behaviour and dynamics might | seeking an understanding of transport behaviour and dynamics might | |||
learn to work without that information. Alternatively, they might | learn to work without that information. Alternatively, they might | |||
use more limited measurements combined with pattern inference and | use more limited measurements combined with pattern inference and | |||
other heuristics to infer network behaviour (see Section 2.1.1 of | other heuristics to infer network behaviour (see Section 2.1.1 of | |||
[RFC8404]). Operational practises aimed at inferring transport | [RFC8404]). Operational practises aimed at inferring transport | |||
parameters are out of scope for this document, and are only mentioned | parameters are out of scope for this document and are only mentioned | |||
here to recognise that encryption does not necessarily stop operators | here to recognise that encryption does not necessarily stop operators | |||
from attempting to apply practises that have been used with | from attempting to apply practises that have been used with | |||
unencrypted transport headers. | unencrypted transport headers. | |||
This section discusses topics concerning observation of transport | This section discusses topics concerning observation of transport | |||
flows, with a focus on transport measurement. | flows, with a focus on transport measurement. | |||
2.4.1. Problem Location | 2.4.1. Problem Location | |||
Observations of transport header information can be used to locate | Observations of transport header information can be used to locate | |||
the source of problems or to assess the performance of a network | the source of problems or to assess the performance of a network | |||
segment. Often issues can only be understood in the context of the | segment. Often issues can only be understood in the context of the | |||
other flows that share a particular path, particular device | other flows that share a particular path, particular device | |||
configuration, interface port, etc. A simple example is monitoring | configuration, interface port, etc. A simple example is monitoring | |||
of a network device that uses a scheduler or active queue management | of a network device that uses a scheduler or active queue management | |||
technique [RFC7567], where it could be desirable to understand | technique [RFC7567], where it could be desirable to understand | |||
whether the algorithms are correctly controlling latency, or if | whether the algorithms are correctly controlling latency or if | |||
overload protection is working. This implies knowledge of how | overload protection is working. This implies knowledge of how | |||
traffic is assigned to any sub-queues used for flow scheduling, but | traffic is assigned to any subqueues used for flow scheduling but can | |||
can require information about how the traffic dynamics impact active | require information about how the traffic dynamics impact active | |||
queue management, starvation prevention mechanisms, and circuit- | queue management, starvation prevention mechanisms, and circuit | |||
breakers. | breakers. | |||
Sometimes correlating observations of headers at multiple points | Sometimes correlating observations of headers at multiple points | |||
along the path (e.g., at the ingress and egress of a network | along the path (e.g., at the ingress and egress of a network segment) | |||
segment), allows an observer to determine the contribution of a | allows an observer to determine the contribution of a portion of the | |||
portion of the path to an observed metric. e.g., to locate a source | path to an observed metric (e.g., to locate a source of delay, | |||
of delay, jitter, loss, reordering, or congestion marking. | jitter, loss, reordering, or congestion marking). | |||
2.4.2. Network Planning and Provisioning | 2.4.2. Network Planning and Provisioning | |||
Traffic rate and volume measurements are used to help plan deployment | Traffic rate and volume measurements are used to help plan deployment | |||
of new equipment and configuration in networks. Data is also | of new equipment and configuration in networks. Data is also | |||
valuable to equipment vendors who want to understand traffic trends | valuable to equipment vendors who want to understand traffic trends | |||
and patterns of usage as inputs to decisions about planning products | and patterns of usage as inputs to decisions about planning products | |||
and provisioning for new deployments. | and provisioning for new deployments. | |||
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 | |||
skipping to change at page 14, line 42 ¶ | skipping to change at line 659 ¶ | |||
network use, applications, and user characteristics. In general, | network use, applications, and user characteristics. In general, | |||
when only a small proportion of the traffic has a specific | when only a small proportion of the traffic has a specific | |||
(different) characteristic, such traffic seldom leads to operational | (different) characteristic, such traffic seldom leads to operational | |||
concern, although the ability to measure and monitor it is lower. | concern, although the ability to measure and monitor it is lower. | |||
The desire to understand the traffic and protocol interactions | The desire to understand the traffic and protocol interactions | |||
typically grows as the proportion of traffic increases. The | typically grows as the proportion of traffic increases. The | |||
challenges increase when multiple instances of an evolving protocol | challenges increase when multiple instances of an evolving protocol | |||
contribute to the traffic that share network capacity. | contribute to the traffic that share network capacity. | |||
Operators can manage traffic load (e.g., when the network is severely | Operators can manage traffic load (e.g., when the network is severely | |||
overloaded) by deploying rate-limiters, traffic shaping, or network | overloaded) by deploying rate limiters, traffic shaping, or network | |||
transport circuit breakers [RFC8084]. The information provided by | transport circuit breakers [RFC8084]. The information provided by | |||
observing transport headers is a source of data that can help to | observing transport headers is a source of data that can help to | |||
inform such mechanisms. | inform such mechanisms. | |||
Congestion Control Compliance of Traffic: Congestion control is a | Congestion Control Compliance of Traffic: | |||
key transport function [RFC2914]. Many network operators | Congestion control is a key transport function [RFC2914]. Many | |||
implicitly accept that TCP traffic complies with a behaviour that | network operators implicitly accept that TCP traffic complies with | |||
is acceptable for the shared Internet. TCP algorithms have been | a behaviour that is acceptable for the shared Internet. TCP | |||
continuously improved over decades, and have reached a level of | algorithms have been continuously improved over decades and have | |||
efficiency and correctness that is difficult to match in custom | reached a level of efficiency and correctness that is difficult to | |||
application-layer mechanisms [RFC8085]. | match in custom application-layer mechanisms [RFC8085]. | |||
A standards-compliant TCP stack provides congestion control that | A standards-compliant TCP stack provides congestion control that | |||
is judged safe for use across the Internet. Applications | is judged safe for use across the Internet. Applications | |||
developed on top of well-designed transports can be expected to | developed on top of well-designed transports can be expected to | |||
appropriately control their network usage, reacting when the | appropriately control their network usage, reacting when the | |||
network experiences congestion, by back-off and reduce the load | network experiences congestion, by backing off and reducing the | |||
placed on the network. This is the normal expected behaviour for | load placed on the network. This is the normal expected behaviour | |||
IETF-specified transports (e.g., TCP and SCTP). | for IETF-specified transports (e.g., TCP and SCTP). | |||
Congestion Control Compliance for UDP traffic: UDP provides a | Congestion Control Compliance for UDP Traffic: | |||
minimal message-passing datagram transport that has no inherent | UDP provides a minimal message-passing datagram transport that has | |||
congestion control mechanisms. Because congestion control is | no inherent congestion control mechanisms. Because congestion | |||
critical to the stable operation of the Internet, applications and | control is critical to the stable operation of the Internet, | |||
other protocols that choose to use UDP as a transport have to | applications and other protocols that choose to use UDP as a | |||
employ mechanisms to prevent collapse, avoid unacceptable | transport have to employ mechanisms to prevent collapse, avoid | |||
contributions to jitter/latency, and to establish an acceptable | unacceptable contributions to jitter/latency, and establish an | |||
share of capacity with concurrent traffic [RFC8085]. | acceptable share of capacity with concurrent traffic [RFC8085]. | |||
UDP flows that expose a well-known header can be observed to gain | UDP flows that expose a well-known header can 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 | |||
behaviour. For example, tools exist to monitor various aspects of | behaviour. For example, tools exist to monitor various aspects of | |||
RTP header information and RTCP reports for real-time flows (see | RTP header information and RTCP reports for real-time flows (see | |||
Section 2.3). The Secure RTP and RTCP extensions [RFC3711] were | Section 2.3). The Secure RTP and RTCP extensions [RFC3711] were | |||
explicitly designed to expose some header information to enable | explicitly designed to expose some header information to enable | |||
such observation, while protecting the payload data. | such observation while protecting the payload data. | |||
A network operator can observe the headers of transport protocols | A network operator can observe the headers of transport protocols | |||
layered above UDP to understand if the datagram flows comply with | layered above UDP to understand if the datagram flows comply with | |||
congestion control expectations. This can help inform a decision | congestion control expectations. This can help inform a decision | |||
on whether it might be appropriate to deploy methods such as rate- | on whether it might be appropriate to deploy methods, such as rate | |||
limiters to enforce acceptable usage. The available information | limiters, to enforce acceptable usage. The available information | |||
determines the level of precision with which flows can be | determines the level of precision with which flows can be | |||
classified and the design space for conditioning mechanisms (e.g., | classified and the design space for conditioning mechanisms (e.g., | |||
rate limiting, circuit breaker techniques [RFC8084], or blocking | rate-limiting, circuit breaker techniques [RFC8084], or blocking | |||
of uncharacterised traffic) [RFC5218]. | uncharacterised traffic) [RFC5218]. | |||
When anomalies are detected, tools can interpret the transport header | When anomalies are detected, tools can interpret the transport header | |||
information to help understand the impact of specific transport | information to help understand the impact of specific transport | |||
protocols (or protocol mechanisms) on the other traffic that shares a | protocols (or protocol mechanisms) on the other traffic that shares a | |||
network. An observer on the network path can gain an understanding | network. An observer on the network path can gain an understanding | |||
of the dynamics of a flow and its congestion control behaviour. | of the dynamics of a flow and its congestion control behaviour. | |||
Analysing observed flows can help to build confidence that an | Analysing observed flows can help to build confidence that an | |||
application flow backs-off its share of the network load under | application flow backs off its share of the network load under | |||
persistent congestion, and hence to understand whether the behaviour | persistent congestion and hence to understand whether the behaviour | |||
is appropriate for sharing limited network capacity. For example, it | is appropriate for sharing limited network capacity. For example, it | |||
is common to visualise plots of TCP sequence numbers versus time for | is common to visualise plots of TCP sequence numbers versus time for | |||
a flow to understand how a flow shares available capacity, deduce its | a flow to 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 and flows that contribute to | The ability to identify sources and flows that contribute to | |||
persistent congestion is important to the safe operation of network | persistent congestion is important to the safe operation of network | |||
infrastructure, and can inform configuration of network devices to | infrastructure and can inform configuration of network devices to | |||
complement the endpoint congestion avoidance mechanisms [RFC7567] | complement the endpoint congestion avoidance mechanisms [RFC7567] | |||
[RFC8084] to avoid a portion of the network being driven into | [RFC8084] to avoid a portion of the network being driven into | |||
congestion collapse [RFC2914]. | congestion collapse [RFC2914]. | |||
2.4.4. To Characterise "Unknown" Network Traffic | 2.4.4. To Characterise "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. | |||
Encryption can increase the volume of "unknown" or "uncharacterised" | Encryption can increase the volume of "unknown" or "uncharacterised" | |||
traffic seen by the network. If these traffic patterns form a small | traffic seen by the network. If these traffic patterns form a small | |||
part of the traffic aggregate passing through a network device or | part of the traffic aggregate passing through a network device or | |||
segment of the network path, the dynamics of the uncharacterised | segment of the network path, the dynamics of the uncharacterised | |||
traffic might not have a significant collateral impact on the | traffic might not have a significant collateral impact on the | |||
performance of other traffic that shares this network segment. Once | performance of other traffic that shares this network segment. Once | |||
the proportion of this traffic increases, monitoring the traffic can | the proportion of this traffic increases, monitoring the traffic can | |||
determine if appropriate safety measures have to be put in place. | determine if appropriate safety measures have to be put in place. | |||
skipping to change at page 16, line 48 ¶ | skipping to change at line 761 ¶ | |||
2.4.5. To Support Network Security Functions | 2.4.5. To Support Network Security Functions | |||
On-path observation of the transport headers of packets can be used | On-path observation of the transport headers of packets can be used | |||
for various security functions. For example, Denial of Service (DoS) | for various security functions. For example, Denial of Service (DoS) | |||
and Distributed DoS (DDoS) attacks against the infrastructure or | and Distributed DoS (DDoS) attacks against the infrastructure or | |||
against an endpoint can be detected and mitigated by characterising | against an endpoint can be detected and mitigated by characterising | |||
anomalous traffic (see Section 2.4.4) on a shorter timescale. Other | anomalous traffic (see Section 2.4.4) on a shorter timescale. Other | |||
uses include support for security audits (e.g., verifying the | uses include support for security audits (e.g., verifying the | |||
compliance with cipher suites), client and application fingerprinting | compliance with cipher suites), client and application fingerprinting | |||
for inventory, and to provide alerts for network intrusion detection | for inventory, and alerts provided for network intrusion detection | |||
and other next generation firewall functions. | and other next generation firewall functions. | |||
When using an encrypted transport, endpoints can directly provide | When using an encrypted transport, endpoints can directly provide | |||
information to support these security functions. Another method, if | information to support these security functions. Another method, if | |||
the endpoints do not provide this information, is to use an on-path | the endpoints do not provide this information, is to use an on-path | |||
network device that relies on pattern inferences in the traffic, and | network device that relies on pattern inferences in the traffic and | |||
heuristics or machine learning instead of processing observed header | heuristics or machine learning instead of processing observed header | |||
information. An endpoint could also explicitly cooperate with an on- | information. An endpoint could also explicitly cooperate with an on- | |||
path device (e.g., a QUIC endpoint could share information about | path device (e.g., a QUIC endpoint could share information about | |||
current uses of connection IDs). | current uses of connection IDs). | |||
2.4.6. Network Diagnostics and Troubleshooting | 2.4.6. Network Diagnostics and Troubleshooting | |||
Operators monitor the health of a network segment to support a | Operators monitor the health of a network segment to support a | |||
variety of operational tasks [RFC8404] including procedures to | variety of operational tasks [RFC8404], including procedures to | |||
provide early warning and trigger action: to diagnose network | provide early warning and trigger action, e.g., to diagnose network | |||
problems, to manage security threats (including DoS), to evaluate | problems, to manage security threats (including DoS), to evaluate | |||
equipment or protocol performance, or to respond to user performance | equipment or protocol performance, or to respond to user performance | |||
questions. Information about transport flows can assist in setting | questions. Information about transport flows can assist in setting | |||
buffer sizes, and help identify whether link/network tuning is | buffer sizes and help identify whether link/network tuning is | |||
effective. Information can also support debugging and diagnosis of | effective. Information can also support debugging and diagnosis of | |||
the root causes of faults that concern a particular user's traffic | the root causes of faults that concern a particular user's traffic | |||
and can support post-mortem investigation after an anomaly. | and can support postmortem investigation after an anomaly. Sections | |||
Section 3.1.2 and Section 5 of [RFC8404] provide further examples. | 3.1.2 and 5 of [RFC8404] provide further examples. | |||
Network segments vary in their complexity. The design trade-offs for | Network segments vary in their complexity. The design trade-offs for | |||
radio networks are often very different from those of wired networks | radio networks are often very different from those of wired networks | |||
[RFC8462]. A radio-based network (e.g., cellular mobile, enterprise | [RFC8462]. A radio-based network (e.g., cellular mobile, enterprise | |||
Wireless LAN (WLAN), satellite access/back-haul, point-to-point | Wireless LAN (WLAN), satellite access/backhaul, point-to-point radio) | |||
radio) adds a subsystem that performs radio resource management, with | adds a subsystem that performs radio resource management, with impact | |||
impact on the available capacity, and potentially loss/reordering of | on the available capacity and potentially loss/reordering of packets. | |||
packets. This impact can differ by traffic type, and can be | This impact can differ by traffic type and can be correlated with | |||
correlated with link propagation and interference. These can impact | link propagation and interference. These can impact the cost and | |||
the cost and performance of a provided service, and is expected to | performance of a provided service and is expected to increase in | |||
increase in importance as operators bring together heterogeneous | importance as operators bring together heterogeneous types of network | |||
types of network equipment and deploy opportunistic methods to access | equipment and deploy opportunistic methods to access a shared radio | |||
shared radio spectrum. | spectrum. | |||
2.4.7. Tooling and Network Operations | 2.4.7. Tooling and Network Operations | |||
A variety of open source and proprietary tools have been deployed | A variety of open source and proprietary tools have been deployed | |||
that use the transport header information observable with widely used | that use the transport header information observable with widely used | |||
protocols such as TCP or RTP/UDP/IP. Tools that dissect network | protocols, such as TCP or RTP/UDP/IP. Tools that dissect network | |||
traffic flows can alert to potential problems that are hard to derive | traffic flows can alert to potential problems that are hard to derive | |||
from volume measurements, link statistics or device measurements | from volume measurements, link statistics, or device measurements | |||
alone. | alone. | |||
Any introduction of a new transport protocol, protocol feature, or | Any introduction of a new transport protocol, protocol feature, or | |||
application might require changes to such tools, and so could impact | application might require changes to such tools and could impact | |||
operational practice and policies. Such changes have associated | operational practice and policies. Such changes have associated | |||
costs that are incurred by the network operators that need to update | costs that are incurred by the network operators that need to update | |||
their tooling or develop alternative practises that work without | their tooling or develop alternative practises that work without | |||
access to the changed/removed information. | access to the changed/removed information. | |||
The use of encryption has the desirable effect of preventing | The use of encryption has the desirable effect of preventing | |||
unintended observation of the payload data and these tools seldom | unintended observation of the payload data, and these tools seldom | |||
seek to observe the payload, or other application details. A flow | seek to observe the payload or other application details. A flow | |||
that hides its transport header information could imply "don't touch" | that hides its transport header information could imply "don't touch" | |||
to some operators. This might limit a trouble-shooting response to | to some operators. This might limit a trouble-shooting response to | |||
"can't help, no trouble found". | "can't help, no trouble found". | |||
An alternative that does not require access to observable transport | An alternative that does not require access to an observable | |||
headers is to access endpoint diagnostic tools or to include user | transport headers is to access endpoint diagnostic tools or to | |||
involvement in diagnosing and troubleshooting unusual use cases or to | include user involvement in diagnosing and troubleshooting unusual | |||
troubleshoot non-trivial problems. Another approach is to use | use cases or to troubleshoot nontrivial problems. Another approach | |||
traffic pattern analysis. Such tools can provide useful information | is to use traffic pattern analysis. Such tools can provide useful | |||
during network anomalies (e.g., detecting significant reordering, | information during network anomalies (e.g., detecting significant | |||
high or intermittent loss), however indirect measurements need to be | reordering, high or intermittent loss); however, indirect | |||
carefully designed to provide information for diagnostics and | measurements need to be carefully designed to provide information for | |||
troubleshooting. | diagnostics and troubleshooting. | |||
If new protocols, or protocol extensions, are made to closely | If new protocols, or protocol extensions, are made to closely | |||
resemble or match existing mechanisms, then the changes to tooling | resemble or match existing mechanisms, then the changes to tooling | |||
and the associated costs can be small. Equally, more extensive | and the associated costs can be small. Equally, more extensive | |||
changes to the transport tend to require more extensive, and more | changes to the transport tend to require more extensive, and more | |||
expensive, changes to tooling and operational practice. Protocol | expensive, changes to tooling and operational practice. Protocol | |||
designers can mitigate these costs by explicitly choosing to expose | designers can mitigate these costs by explicitly choosing to expose | |||
selected information as invariants that are guaranteed not to change | selected information as invariants that are guaranteed not to change | |||
for a particular protocol (e.g., the header invariants and the spin- | for a particular protocol (e.g., the header invariants and the spin | |||
bit in QUIC [I-D.ietf-quic-transport]). Specification of common log | bit in QUIC [RFC9000]). Specification of common log formats and | |||
formats and development of alternative approaches can also help | development of alternative approaches can also help mitigate the | |||
mitigate the costs of transport changes. | costs of transport changes. | |||
2.5. To Mitigate the Effects of Constrained Networks | 2.5. To Mitigate the Effects of Constrained Networks | |||
Some link and network segments are constrained by the capacity they | Some link and network segments are constrained by the capacity they | |||
can offer, by the time it takes to access capacity (e.g., due to | can offer by the time it takes to access capacity (e.g., due to | |||
under-lying radio resource management methods), or by asymmetries in | underlying radio resource management methods) or by asymmetries in | |||
the design (e.g., many link are designed so that the capacity | the design (e.g., many link are designed so that the capacity | |||
available is different in the forward and return directions; some | available is different in the forward and return directions; some | |||
radio technologies have different access methods in the forward and | radio technologies have different access methods in the forward and | |||
return directions resulting from differences in the power budget). | return directions resulting from differences in the power budget). | |||
The impact of path constraints can be mitigated using a proxy | The impact of path constraints can be mitigated using a proxy | |||
operating at or above the transport layer to use an alternate | operating at or above the transport layer to use an alternate | |||
transport protocol. | transport protocol. | |||
In many cases, one or both endpoints are unaware of the | In many cases, one or both endpoints are unaware of the | |||
characteristics of the constraining link or network segment and | characteristics of the constraining link or network segment, and | |||
mitigations are applied below the transport layer: Packet | mitigations are applied below the transport layer. Packet | |||
classification and QoS methods (described in various sections) can be | classification and QoS methods (described in various sections) can be | |||
beneficial in differentially prioritising certain traffic when there | beneficial in differentially prioritising certain traffic when there | |||
is a capacity constraint or additional delay in scheduling link | is a capacity constraint or additional delay in scheduling link | |||
transmissions. Another common mitigation is to apply header | transmissions. Another common mitigation is to apply header | |||
compression over the specific link or subnetwork (see Section 2.5.1). | compression over the specific link or subnetwork (see Section 2.5.1). | |||
2.5.1. To Provide Header Compression | 2.5.1. To Provide Header Compression | |||
Header compression saves link capacity by compressing network and | Header compression saves link capacity by compressing network and | |||
transport protocol headers on a per-hop basis. This has been widely | transport protocol headers on a per-hop basis. This has been widely | |||
used with low bandwidth dial-up access links, and still finds | used with low bandwidth dial-up access links and still finds | |||
application on wireless links that are subject to capacity | application on wireless links that are subject to capacity | |||
constraints. These methods are effective for bit-congestive links | constraints. These methods are effective for bit-congestive links | |||
sending small packets (e.g., reducing the cost for sending control | sending small packets (e.g., reducing the cost for sending control | |||
packets or small data packets over radio links). | packets or small data packets over radio links). | |||
Examples of header compression include use with TCP/IP and RTP/UDP/IP | Examples of header compression include use with TCP/IP and RTP/UDP/IP | |||
flows [RFC2507], [RFC6846], [RFC2508], [RFC5795], [RFC8724]. | flows [RFC2507] [RFC6846] [RFC2508] [RFC5795] [RFC8724]. Successful | |||
Successful compression depends on observing the transport headers and | compression depends on observing the transport headers and | |||
understanding of the way fields change between packets, and is hence | understanding the way fields change between packets and is hence | |||
incompatible with header encryption. Devices that compress transport | incompatible with header encryption. Devices that compress transport | |||
headers are dependent on a stable header format, implying | headers are dependent on a stable header format, implying | |||
ossification of that format. | ossification of that format. | |||
Introducing a new transport protocol, or changing the format of the | Introducing a new transport protocol, or changing the format of the | |||
transport header information, will limit the effectiveness of header | transport header information, will limit the effectiveness of header | |||
compression until the network devices are updated. Encrypting the | compression until the network devices are updated. Encrypting the | |||
transport protocol headers will tend to cause the header compression | transport protocol headers will tend to cause the header compression | |||
to fall back to compressing only the network layer headers, with a | to fall back to compressing only the network-layer headers, with a | |||
significant reduction in efficiency. This can limit connectivity if | significant reduction in efficiency. This can limit connectivity if | |||
the resulting flow exceeds the link capacity, or if the packets are | the resulting flow exceeds the link capacity or if the packets are | |||
dropped because they exceed the link MTU. | dropped because they exceed the link Maximum Transmission Unit (MTU). | |||
The Secure RTP (SRTP) extensions [RFC3711] were explicitly designed | The Secure RTP (SRTP) extensions [RFC3711] were explicitly designed | |||
to leave the transport protocol headers unencrypted, but | to leave the transport protocol headers unencrypted, but | |||
authenticated, since support for header compression was considered | authenticated, since support for header compression was considered | |||
important. | important. | |||
2.6. To Verify SLA Compliance | 2.6. To Verify SLA Compliance | |||
Observable transport headers coupled with published transport | Observable transport headers coupled with published transport | |||
specifications allow operators and regulators to explore and verify | specifications allow operators and regulators to explore and verify | |||
compliance with Service Level Agreements (SLAs). It can also be used | compliance with Service Level Agreements (SLAs). It can also be used | |||
to understand whether a service is providing differential treatment | to understand whether a service is providing differential treatment | |||
to certain flows. | to certain flows. | |||
When transport header information cannot be observed, other methods | When transport header information cannot be observed, other methods | |||
have to be found to confirm that the traffic produced conforms to the | have to be found to confirm that the traffic produced conforms to the | |||
expectations of the operator or developer. | expectations of the operator or developer. | |||
Independently verifiable performance metrics can be utilised to | Independently verifiable performance metrics can be utilised to | |||
demonstrate regulatory compliance in some jurisdictions, and as a | demonstrate regulatory compliance in some jurisdictions and as a | |||
basis for informing design decisions. This can bring assurance to | basis for informing design decisions. This can bring assurance to | |||
those operating networks, often avoiding deployment of complex | those operating networks, often avoiding deployment of complex | |||
techniques that routinely monitor and manage Internet traffic flows | techniques that routinely monitor and manage Internet traffic flows | |||
(e.g., avoiding the capital and operational costs of deploying flow | (e.g., avoiding the capital and operational costs of deploying flow | |||
rate-limiting and network circuit-breaker methods [RFC8084]). | rate-limiting and network circuit breaker methods [RFC8084]). | |||
3. Research, Development and Deployment | 3. Research, Development, and Deployment | |||
Research and development of new protocols and mechanisms need to be | Research and development of new protocols and mechanisms need to be | |||
informed by measurement data (as described in the previous section). | informed by measurement data (as described in the previous section). | |||
Data can also help promote acceptance of proposed standards | Data can also help promote acceptance of proposed standards | |||
specifications by the wider community (e.g., as a method to judge the | specifications by the wider community (e.g., as a method to judge the | |||
safety for Internet deployment). | safety for Internet deployment). | |||
Observed data is important to ensure the health of the research and | Observed data is important to ensure the health of the research and | |||
development communities, and provides data needed to evaluate new | development communities and provides data needed to evaluate new | |||
proposals for standardisation. Open standards motivate a desire to | proposals for standardisation. Open standards motivate a desire to | |||
include independent observation and evaluation of performance and | include independent observation and evaluation of performance and | |||
deployment data. Independent data helps compare different methods, | deployment data. Independent data helps compare different methods, | |||
judge the level of deployment and ensure the wider applicability of | judge the level of deployment, and ensure the wider applicability of | |||
the results. This is important when considering when a protocol or | the results. This is important when considering when a protocol or | |||
mechanism should be standardised for use in the general Internet. | mechanism should be standardised for use in the general Internet. | |||
This, in turn, demands control/understanding about where and when | This, in turn, demands control/understanding about where and when | |||
measurement samples are collected. This requires consideration of | measurement samples are collected. This requires consideration of | |||
the methods used to observe information and the appropriate balance | the methods used to observe information and the appropriate balance | |||
between encrypting all and no transport header information. | between encrypting all and no transport header information. | |||
There can be performance and operational trade-offs in exposing | There can be performance and operational trade-offs in exposing | |||
selected information to network tools. This section explores key | selected information to network tools. This section explores key | |||
implications of tools and procedures that observe transport | implications of tools and procedures that observe transport protocols | |||
protocols, but does not endorse or condemn any specific practises. | but does not endorse or condemn any specific practises. | |||
3.1. Independent Measurement | 3.1. Independent Measurement | |||
Encrypting transport header information has implications on the way | Encrypting transport header information has implications on the way | |||
network data is collected and analysed. Independent observation by | network data is collected and analysed. Independent observations by | |||
multiple actors is currently used by the transport community to | multiple actors is currently used by the transport community to | |||
maintain an accurate understanding of the network within transport | maintain an accurate understanding of the network within transport | |||
area working groups, IRTF research groups, and the broader research | area working groups, IRTF research groups, and the broader research | |||
community. This is important to be able to provide accountability, | community. This is important to be able to provide accountability | |||
and demonstrate that protocols behave as intended, although when | and demonstrate that protocols behave as intended; although, when | |||
providing or using such information, it is important to consider the | providing or using such information, it is important to consider the | |||
privacy of the user and their incentive for providing accurate and | privacy of the user and their incentive for providing accurate and | |||
detailed information. | detailed information. | |||
Protocols that expose the state of the transport protocol in their | Protocols that expose the state of the transport protocol in their | |||
header (e.g., timestamps used to calculate the RTT, packet numbers | header (e.g., timestamps used to calculate the RTT, packet numbers | |||
used to assess congestion and requests for retransmission) provide an | used to assess congestion, and requests for retransmission) provide | |||
incentive for a sending endpoint to provide consistent information, | an incentive for a sending endpoint to provide consistent | |||
because a protocol will not work otherwise. An on-path observer can | information, because a protocol will not work otherwise. An on-path | |||
have confidence that well-known (and ossified) transport header | observer can have confidence that well-known (and ossified) transport | |||
information represents the actual state of the endpoints, when this | header information represents the actual state of the endpoints when | |||
information is necessary for the protocol's correct operation. | this information is necessary for the protocol's correct operation. | |||
Encryption of transport header information could reduce the range of | Encryption of transport header information could reduce the range of | |||
actors that can observe useful data. This would limit the | actors that can observe useful data. This would limit the | |||
information sources available to the Internet community to understand | information sources available to the Internet community to understand | |||
the operation of new transport protocols, reducing information to | the operation of new transport protocols, reducing information to | |||
inform design decisions and standardisation of the new protocols and | inform design decisions and standardisation of the new protocols and | |||
related operational practises. The cooperating dependence of | related operational practises. The cooperating dependence of | |||
network, application, and host to provide communication performance | network, application, and host to provide communication performance | |||
on the Internet is uncertain when only endpoints (i.e., at user | on the Internet is uncertain when only endpoints (i.e., at user | |||
devices and within service platforms) can observe performance, and | devices and within service platforms) can observe performance and | |||
when performance cannot be independently verified by all parties. | when performance cannot be independently verified by all parties. | |||
3.2. Measurable Transport Protocols | 3.2. Measurable Transport Protocols | |||
Transport protocol evolution, and the ability to measure and | Transport protocol evolution and the ability to measure and | |||
understand the impact of protocol changes, have to proceed hand-in- | understand the impact of protocol changes have to proceed hand-in- | |||
hand. A transport protocol that provides observable headers can be | hand. A transport protocol that provides observable headers can be | |||
used to provide open and verifiable measurement data. Observation of | used to provide open and verifiable measurement data. Observation of | |||
pathologies has a critical role in the design of transport protocol | pathologies has a critical role in the design of transport protocol | |||
mechanisms and development of new mechanisms and protocols, and aides | mechanisms and development of new mechanisms and protocols and aides | |||
understanding of the interactions between cooperating protocols and | in understanding the interactions between cooperating protocols and | |||
network mechanisms, the implications of sharing capacity with other | network mechanisms, the implications of sharing capacity with other | |||
traffic and the impact of different patterns of usage. The ability | traffic, and the impact of different patterns of usage. The ability | |||
of other stakeholders to review transport header traces helps develop | of other stakeholders to review transport header traces helps develop | |||
insight into the performance and the traffic contribution of specific | insight into the performance and the traffic contribution of specific | |||
variants of a protocol. | variants of a protocol. | |||
Development of new transport protocol mechanisms has to consider the | Development of new transport protocol mechanisms has to consider the | |||
scale of deployment and the range of environments in which the | scale of deployment and the range of environments in which the | |||
transport is used. Experience has shown that it is often difficult | transport is used. Experience has shown that it is often difficult | |||
to correctly implement new mechanisms [RFC8085], and that mechanisms | to correctly implement new mechanisms [RFC8085] and that mechanisms | |||
often evolve as a protocol matures, or in response to changes in | often evolve as a protocol matures or in response to changes in | |||
network conditions, changes in network traffic, or changes to | network conditions, in network traffic, or to application usage. | |||
application usage. Analysis is especially valuable when based on the | Analysis is especially valuable when based on the behaviour | |||
behaviour experienced across a range of topologies, vendor equipment, | experienced across a range of topologies, vendor equipment, and | |||
and traffic patterns. | traffic patterns. | |||
Encryption enables a transport protocol to choose which internal | Encryption enables a transport protocol to choose which internal | |||
state to reveal to devices on the network path, what information to | state to reveal to devices on the network path, what information to | |||
encrypt, and what fields to grease [RFC8701]. A new design can | encrypt, and what fields to grease [RFC8701]. A new design can | |||
provide summary information regarding its performance, congestion | provide summary information regarding its performance, congestion | |||
control state, etc., or to make available explicit measurement | control state, etc., or make explicit measurement information | |||
information. For example, [I-D.ietf-quic-transport] specifies a way | available. For example, [RFC9000] specifies a way for a QUIC | |||
for a QUIC endpoint to optionally set the spin-bit to explicitly | endpoint to optionally set the spin bit to explicitly reveal the RTT | |||
reveal the RTT of an encrypted transport session to the on-path | of an encrypted transport session to the on-path network devices. | |||
network devices. There is a choice of what information to expose. | There is a choice of what information to expose. For some | |||
For some operational uses, the information has to contain sufficient | operational uses, the information has to contain sufficient detail to | |||
detail to understand, and possibly reconstruct, the network traffic | understand, and possibly reconstruct, the network traffic pattern for | |||
pattern for further testing. The interpretation of the information | further testing. The interpretation of the information needs to | |||
needs to consider whether this information reflects the actual | consider whether this information reflects the actual transport state | |||
transport state of the endpoints. This might require the trust of | of the endpoints. This might require the trust of transport protocol | |||
transport protocol implementers, to correctly reveal the desired | implementers to correctly reveal the desired information. | |||
information. | ||||
New transport protocol formats are expected to facilitate an | New transport protocol formats are expected to facilitate an | |||
increased pace of transport evolution, and with it the possibility to | increased pace of transport evolution and with it the possibility to | |||
experiment with and deploy a wide range of protocol mechanisms. At | experiment with and deploy a wide range of protocol mechanisms. At | |||
the time of writing, there has been interest in a wide range of new | the time of writing, there has been interest in a wide range of new | |||
transport methods, e.g., Larger Initial Window, Proportional Rate | transport methods, e.g., larger initial window, Proportional Rate | |||
Reduction (PRR), congestion control methods based on measuring | Reduction (PRR), congestion control methods based on measuring | |||
bottleneck bandwidth and round-trip propagation time, the | bottleneck bandwidth and round-trip propagation time, the | |||
introduction of AQM techniques and new forms of ECN response (e.g., | introduction of AQM techniques, and new forms of ECN response (e.g., | |||
Data Centre TCP, DCTCP, and methods proposed for L4S). The growth | Data Centre TCP, DCTCP, and methods proposed for Low Latency Low Loss | |||
and diversity of applications and protocols using the Internet also | Scalable throughput (L4S)). The growth and diversity of applications | |||
continues to expand. For each new method or application, it is | and protocols using the Internet also continues to expand. For each | |||
desirable to build a body of data reflecting its behaviour under a | new method or application, it is desirable to build a body of data | |||
wide range of deployment scenarios, traffic load, and interactions | reflecting its behaviour under a wide range of deployment scenarios, | |||
with other deployed/candidate methods. | traffic load, and interactions with other deployed/candidate methods. | |||
3.3. Other Sources of Information | 3.3. Other Sources of Information | |||
Some measurements that traditionally rely on observable transport | Some measurements that traditionally rely on observable transport | |||
information could be completed by utilising endpoint-based logging | information could be completed by utilising endpoint-based logging | |||
(e.g., based on Quic-Trace [Quic-Trace] and qlog | (e.g., based on QUIC trace [Quic-Trace] and qlog [QLOG]). Such | |||
[I-D.marx-qlog-main-schema]). Such information has a diversity of | information has a diversity of uses, including developers wishing to | |||
uses, including developers wishing to debug/understand the transport/ | debug/understand the transport/application protocols with which they | |||
application protocols with which they work, researchers seeking to | work, researchers seeking to spot trends and anomalies, and to | |||
spot trends and anomalies, and to characterise variants of protocols. | characterise variants of protocols. A standard format for endpoint | |||
A standard format for endpoint logging could allow these to be shared | logging could allow these to be shared (after appropriate | |||
(after appropriate anonymisation) to understand performance and | anonymisation) to understand performance and pathologies. | |||
pathologies. | ||||
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 and | endpoints, additional metadata, such as the state of the network and | |||
conditions in which the system was observed, is often necessary to | conditions in which the system was observed, is often necessary to | |||
interpret this data to answer questions about network performance or | interpret this data to answer questions about network performance or | |||
understand a pathology. Collecting and coordinating such metadata is | understand a pathology. Collecting and coordinating such metadata is | |||
more difficult when the observation point is at a different location | more difficult when the observation point is at a different location | |||
to the bottleneck or device under evaluation [RFC7799]. | to the bottleneck or device under evaluation [RFC7799]. | |||
Despite being applicable in some scenarios, endpoint logs do not | Despite being applicable in some scenarios, endpoint logs do not | |||
provide equivalent information to on-path measurements made by | provide equivalent information to on-path measurements made by | |||
devices in the network. In particular, endpoint logs contain only a | devices in the network. In particular, endpoint logs contain only a | |||
part of the information to understand the operation of network | part of the information 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. An analysis can require coordination | sharing between multiple flows. An analysis can require coordination | |||
between actors at different layers to successfully characterise flows | between actors at different layers to successfully characterise flows | |||
and correlate the performance or behaviour of a specific mechanism | and correlate the performance or behaviour of a specific mechanism | |||
with an equipment configuration and traffic using operational | with an equipment configuration and traffic using operational | |||
equipment along a network path (e.g., combining transport and network | equipment along a network path (e.g., combining transport and network | |||
measurements to explore congestion control dynamics, to understand | measurements to explore congestion control dynamics to understand the | |||
the implications of traffic on designs for active queue management or | implications of traffic on designs for active queue management or | |||
circuit breakers). | circuit breakers). | |||
Another source of information could arise from operations, | Another source of information could arise from Operations, | |||
administration and management (OAM) (see Section 6) information data | Administration, and Maintenance (OAM) (see Section 6). Information | |||
records could be embedded into header information at different layers | data records could be embedded into header information at different | |||
to support functions such as performance evaluation, path-tracing, | layers to support functions, such as performance evaluation, path | |||
path verification information, classification and a diversity of | tracing, path verification information, classification, and a | |||
other uses. | diversity of other uses. | |||
In-situ OAM (IOAM) data fields [I-D.ietf-ippm-ioam-data] can be | In-situ OAM (IOAM) data fields [IOAM-DATA] can be encapsulated into a | |||
encapsulated into a variety of protocols to record operational and | variety of protocols to record operational and telemetry information | |||
telemetry information in an existing packet, while that packet | in an existing packet while that packet traverses a part of the path | |||
traverses a part of the path between two points in a network (e.g., | between two points in a network (e.g., within a particular IOAM | |||
within a particular IOAM management domain). The IOAM-Data-Fields | management domain). IOAM-Data-Fields are independent from the | |||
are independent from the protocols into which the IOAM-Data-Fields | protocols into which IOAM-Data-Fields are encapsulated. For example, | |||
are encapsulated. For example, IOAM can provide proof that a certain | IOAM can provide proof that a traffic flow takes a predefined path, | |||
traffic flow takes a pre-defined path, SLA verification for the live | SLA verification for the live data traffic, and statistics relating | |||
data traffic, and statistics relating to traffic distribution. | to traffic distribution. | |||
4. Encryption and Authentication of Transport Headers | 4. Encryption and Authentication of Transport Headers | |||
There are several motivations for transport header encryption. | There are several motivations for transport header encryption. | |||
One motive to encrypt transport headers is to prevent network | One motive to encrypt transport headers is to prevent network | |||
ossification from network devices that inspect well-known transport | ossification from network devices that inspect well-known transport | |||
headers. Once a network device observes a transport header and | headers. Once a network device observes a transport header and | |||
becomes reliant upon using it, the overall use of that field can | becomes reliant upon using it, the overall use of that field can | |||
become ossified, preventing new versions of the protocol and | become ossified, preventing new versions of the protocol and | |||
mechanisms from being deployed. Examples include: | mechanisms from being deployed. Examples include: | |||
o During the development of TLS 1.3 [RFC8446], the design needed to | * During the development of TLS 1.3 [RFC8446], the design needed to | |||
function in the presence of deployed middleboxes that relied on | function in the presence of deployed middleboxes that relied on | |||
the presence of certain header fields exposed in TLS 1.2 | the presence of certain header fields exposed in TLS 1.2 | |||
[RFC5426]. | [RFC5426]. | |||
o The design of Multipath TCP (MPTCP) [RFC8684] had to account for | * The design of Multipath TCP (MPTCP) [RFC8684] had to account for | |||
middleboxes (known as "TCP Normalizers") that monitor the | middleboxes (known as "TCP Normalizers") that monitor the | |||
evolution of the window advertised in the TCP header and then | evolution of the window advertised in the TCP header and then | |||
reset connections when the window did not grow as expected. | reset connections when the window did not grow as expected. | |||
o TCP Fast Open [RFC7413] can experience problems due to middleboxes | * TCP Fast Open [RFC7413] can experience problems due to middleboxes | |||
that modify the transport header of packets by removing "unknown" | that modify the transport header of packets by removing "unknown" | |||
TCP options. Segments with unrecognised TCP options can be | TCP options. Segments with unrecognised TCP options can be | |||
dropped, segments that contain data and set the SYN bit can be | dropped, segments that contain data and set the SYN bit can be | |||
dropped, and some middleboxes that disrupt connections that send | dropped, and some middleboxes that disrupt connections can send | |||
data before completion of the three-way handshake. | data before completion of the three-way handshake. | |||
o Other examples of TCP ossification have included middleboxes that | * Other examples of TCP ossification have included middleboxes that | |||
modify transport headers by rewriting TCP sequence and | modify transport headers by rewriting TCP sequence and | |||
acknowledgement numbers, but are unaware of the (newer) TCP | acknowledgement numbers but are unaware of the (newer) TCP | |||
selective acknowledgement (SACK) option and therefore fail to | selective acknowledgement (SACK) option and therefore fail to | |||
correctly rewrite the SACK information to match the changes made | correctly rewrite the SACK information to match the changes made | |||
to the fixed TCP header, preventing correct SACK operation. | to the fixed TCP header, preventing correct SACK operation. | |||
In all these cases, middleboxes with a hard-coded, but incomplete, | In all these cases, middleboxes with a hard-coded, but incomplete, | |||
understanding of a specific transport behaviour (i.e., TCP), | understanding of a specific transport behaviour (i.e., TCP) | |||
interacted poorly with transport protocols after the transport | interacted poorly with transport protocols after the transport | |||
behaviour was changed. In some cases, the middleboxes modified or | behaviour was changed. In some cases, the middleboxes modified or | |||
replaced information in the transport protocol header. | replaced information in the transport protocol header. | |||
Transport header encryption prevents an on-path device from observing | Transport header encryption prevents an on-path device from observing | |||
the transport headers, and therefore stops ossified mechanisms being | the transport headers and therefore stops ossified mechanisms being | |||
used that directly rely on or infer semantics of the transport header | used that directly rely on or infer semantics of the transport header | |||
information. This encryption is normally combined with | information. This encryption is normally combined with | |||
authentication of the protected information. RFC 8546 summarises | authentication of the protected information. [RFC8546] summarises | |||
this approach, stating that it is "The wire image, not the protocol's | this approach, stating that "[t]he wire image, not the protocol's | |||
specification, determines how third parties on the network paths | specification, determines how third parties on the network paths | |||
among protocol participants will interact with that protocol" | among protocol participants will interact with that protocol" | |||
(Section 1 of [RFC8546]), and it can be expected that header | (Section 1 of [RFC8546]), and it can be expected that header | |||
information that is not encrypted will become ossified. | information that is not encrypted will become ossified. | |||
Encryption does not itself prevent ossification of the network | Encryption does not itself prevent ossification of the network | |||
service. People seeking to understand or classify network traffic | service. People seeking to understand or classify network traffic | |||
could still come to rely on pattern inferences and other heuristics | could still come to rely on pattern inferences and other heuristics | |||
or machine learning to derive measurement data and as the basis for | or machine learning to derive measurement data and as the basis for | |||
network forwarding decisions [RFC8546]. This can also create | network forwarding decisions [RFC8546]. This can also create | |||
dependencies on the transport protocol, or the patterns of traffic it | dependencies on the transport protocol or the patterns of traffic it | |||
can generate, also resulting in ossification of the service. | can generate, also resulting in ossification of the service. | |||
Another motivation for using transport header encryption is to | Another motivation for using transport header encryption is to | |||
improve privacy and to decrease opportunities for surveillance. | improve privacy and to decrease opportunities for surveillance. | |||
Users value the ability to protect their identity and location, and | Users value the ability to protect their identity and location and | |||
defend against analysis of the traffic. Revelations about the use of | defend against analysis of the traffic. Revelations about the use of | |||
pervasive surveillance [RFC7624] have, to some extent, eroded trust | pervasive surveillance [RFC7624] have, to some extent, eroded trust | |||
in the service offered by network operators and have led to an | in the service offered by network operators and have led to an | |||
increased use of encryption. Concerns have also been voiced about | increased use of encryption. Concerns have also been voiced about | |||
the addition of metadata to packets by third parties to provide | the addition of metadata to packets by third parties to provide | |||
analytics, customisation, advertising, cross-site tracking of users, | analytics, customisation, advertising, cross-site tracking of users, | |||
to bill the customer, or to selectively allow or block content. | customer billing, or selectively allowing or blocking content. | |||
Whatever the reasons, the IETF is designing protocols that include | Whatever the reasons, the IETF is designing protocols that include | |||
transport header encryption (e.g., QUIC [I-D.ietf-quic-transport]) to | transport header encryption (e.g., QUIC [RFC9000]) to supplement the | |||
supplement the already widespread payload encryption, and to further | already widespread payload encryption and to further limit exposure | |||
limit exposure of transport metadata to the network. | of transport metadata to the network. | |||
If a transport protocol uses header encryption, the designers have to | If a transport protocol uses header encryption, the designers have to | |||
decide whether to encrypt all, or a part of, the transport layer | decide whether to encrypt all or a part of the transport-layer | |||
information. Section 4 of [RFC8558] states: "Anything exposed to the | information. Section 4 of [RFC8558] states, "Anything exposed to the | |||
path should be done with the intent that it be used by the network | path should be done with the intent that it be used by the network | |||
elements on the path". | elements on the path." | |||
Certain transport header fields can be made observable to on-path | Certain transport header fields can be made observable to on-path | |||
network devices, or can define new fields designed to explicitly | network devices or can define new fields designed to explicitly | |||
expose observable transport layer information to the network. Where | expose observable transport-layer information to the network. Where | |||
exposed fields are intended to be immutable (i.e., can be observed, | exposed fields are intended to be immutable (i.e., can be observed | |||
but not modified by a network device), the endpoints are encouraged | but not modified by a network device), the endpoints are encouraged | |||
to use authentication to provide a cryptographic integrity check that | to use authentication to provide a cryptographic integrity check that | |||
can detect if these immutable fields have been modified by network | can detect if these immutable fields have been modified by network | |||
devices. Authentication can help to prevent attacks that rely on | devices. Authentication can help to prevent attacks that rely on | |||
sending packets that fake exposed control signals in transport | sending packets that fake exposed control signals in transport | |||
headers (e.g., TCP RST spoofing). Making a part of a transport | headers (e.g., TCP RST spoofing). Making a part of a transport | |||
header observable or exposing new header fields can lead to | header observable or exposing new header fields can lead to | |||
ossification of that part of a header as network devices come to rely | ossification of that part of a header as network devices come to rely | |||
on observations of the exposed fields. | on observations of the exposed fields. | |||
The use of transport header authentication and encryption therefore | The use of transport header authentication and encryption therefore | |||
exposes a tussle between middlebox vendors, operators, researchers, | exposes a tussle between middlebox vendors, operators, researchers, | |||
applications developers, and end-users: | applications developers, and end users: | |||
o On the one hand, future Internet protocols that support transport | * On the one hand, future Internet protocols that support transport | |||
header encryption assist in the restoration of the end-to-end | header encryption assist in the restoration of the end-to-end | |||
nature of the Internet by returning complex processing to the | nature of the Internet by returning complex processing to the | |||
endpoints. Since middleboxes cannot modify what they cannot see, | endpoints. Since middleboxes cannot modify what they cannot see, | |||
the use of transport header encryption can improve application and | the use of transport header encryption can improve application and | |||
end-user privacy by reducing leakage of transport metadata to | end-user privacy by reducing leakage of transport metadata to | |||
operators that deploy middleboxes. | operators that deploy middleboxes. | |||
o On the other hand, encryption of transport layer information has | * On the other hand, encryption of transport-layer information has | |||
implications for network operators and researchers seeking to | implications for network operators and researchers seeking to | |||
understand the dynamics of protocols and traffic patterns, since | understand the dynamics of protocols and traffic patterns, since | |||
it reduces the information that is available to them. | it reduces the information that is available to them. | |||
The following briefly reviews some security design options for | The following briefly reviews some security design options for | |||
transport protocols. A Survey of the Interaction between Security | transport protocols. "A Survey of the Interaction between Security | |||
Protocols and Transport Services [RFC8922] provides more details | Protocols and Transport Services" [RFC8922] provides more details | |||
concerning commonly used encryption methods at the transport layer. | concerning commonly used encryption methods at the transport layer. | |||
Security work typically employs a design technique that seeks to | Security work typically employs a design technique that seeks to | |||
expose only what is needed [RFC3552]. This approach provides | expose only what is needed [RFC3552]. This approach provides | |||
incentives to not reveal any information that is not necessary for | incentives to not reveal any information that is not necessary for | |||
the end-to-end communication. The IETF has provided guidelines for | the end-to-end communication. The IETF has provided guidelines for | |||
writing Security Considerations for IETF specifications [RFC3552]. | writing security considerations for IETF specifications [RFC3552]. | |||
Endpoint design choices impacting privacy also need to be considered | Endpoint design choices impacting privacy also need to be considered | |||
as a part of the design process [RFC6973]. The IAB has provided | as a part of the design process [RFC6973]. The IAB has provided | |||
guidance for analyzing and documenting privacy considerations within | guidance for analysing and documenting privacy considerations within | |||
IETF specifications [RFC6973]. | IETF specifications [RFC6973]. | |||
Authenticating the Transport Protocol Header: Transport layer header | Authenticating the Transport Protocol Header: | |||
information can be authenticated. An example transport | Transport-layer header information can be authenticated. An | |||
authentication mechanism is TCP-Authentication (TCP-AO) [RFC5925]. | example transport authentication mechanism is TCP Authentication | |||
This TCP option authenticates the IP pseudo header, TCP header, | Option (TCP-AO) [RFC5925]. This TCP option authenticates the IP | |||
and TCP data. TCP-AO protects the transport layer, preventing | pseudo-header, TCP header, and TCP data. TCP-AO protects the | |||
attacks from disabling the TCP connection itself and provides | transport layer, preventing attacks from disabling the TCP | |||
replay protection. Such authentication might interact with | connection itself and provides replay protection. Such | |||
middleboxes, depending on their behaviour [RFC3234]. | authentication might 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 modification by network | integrity at the receiver, preventing modification by network | |||
devices on the path. The IPsec Encapsulating Security Payload | devices on the path. The IPsec Encapsulating Security Payload | |||
(ESP) [RFC4303] can also provide authentication and integrity | (ESP) [RFC4303] can also provide authentication and integrity | |||
without confidentiality using the NULL encryption algorithm | without confidentiality using the NULL encryption algorithm | |||
[RFC2410]. SRTP [RFC3711] is another example of a transport | [RFC2410]. SRTP [RFC3711] is another example of a transport | |||
protocol that allows header authentication. | protocol that allows header authentication. | |||
Integrity Check Transport protocols usually employ integrity checks | Integrity Check: | |||
on the transport header information. Security method usually | Transport protocols usually employ integrity checks on the | |||
employ stronger checks and can combine this with authentication. | transport header information. Security methods usually employ | |||
An integrity check that protects the immutable transport header | stronger checks and can combine this with authentication. An | |||
integrity check that protects the immutable transport header | ||||
fields, but can still expose the transport header information in | fields, but can still expose the transport header information in | |||
the clear, allows on-path network devices to observe these fields. | the clear, allows on-path network devices to observe these fields. | |||
An integrity check is not able to prevent modification by network | An integrity check is not able to prevent modification by network | |||
devices on the path, but can prevent a receiving endpoint from | devices on the path but can prevent a receiving endpoint from | |||
accepting changes and avoid impact on the transport protocol | accepting changes and avoid impact on the transport protocol | |||
operation, including some types of attack. | operation, including some types of attack. | |||
Selectively Encrypting Transport Headers and Payload: A transport | Selectively Encrypting Transport Headers and Payload: | |||
protocol design that encrypts selected header fields, allows | A transport protocol design that encrypts selected header fields | |||
specific transport header fields to be made observable by network | allows specific transport header fields to be made observable by | |||
devices on the path. This information is explicitly exposed | network devices on the path. This information is explicitly | |||
either in a transport header field or lower layer protocol header. | exposed either in a transport header field or lower layer protocol | |||
A design that only exposes immutable fields can also perform end- | header. A design that only exposes immutable fields can also | |||
to-end authentication of these fields across the path to prevent | perform end-to-end authentication of these fields across the path | |||
undetected modification of the immutable transport headers. | to prevent undetected modification of the immutable transport | |||
headers. | ||||
Mutable fields in the transport header provide opportunities where | Mutable fields in the transport header provide opportunities where | |||
on-path network devices can modify the transport behaviour (e.g., | on-path network devices can modify the transport behaviour (e.g., | |||
the extended headers described in | the extended headers described in [PLUS-ABSTRACT-MECH]). An | |||
[I-D.trammell-plus-abstract-mech]). An example of a method that | example of a method that encrypts some, but not all, transport | |||
encrypts some, but not all, transport header information is GRE- | header information is GRE-in-UDP [RFC8086] when used with GRE | |||
in-UDP [RFC8086] when used with GRE encryption. | encryption. | |||
Optional Encryption of Header Information: There are implications to | Optional Encryption of Header Information: | |||
the use of optional header encryption in the design of a transport | There are implications to the use of optional header encryption in | |||
protocol, where support of optional mechanisms can increase the | the design of a transport protocol, where support of optional | |||
complexity of the protocol and its implementation, and in the | mechanisms can increase the complexity of the protocol and its | |||
management decisions that have to be made to use variable format | implementation and in the management decisions that have to be | |||
fields. Instead, fields of a specific type ought to be sent with | made to use variable format fields. Instead, fields of a specific | |||
the same level of confidentiality or integrity protection. | type ought to be sent with the same level of confidentiality or | |||
integrity protection. | ||||
Greasing: Protocols often provide extensibility features, reserving | Greasing: | |||
fields or values for use by future versions of a specification. | Protocols often provide extensibility features, reserving fields | |||
The specification of receivers has traditionally ignored | or values for use by future versions of a specification. The | |||
unspecified values, however on-path network devices have emerged | specification of receivers has traditionally ignored unspecified | |||
that ossify to require a certain value in a field, or re-use a | values; however, on-path network devices have emerged that ossify | |||
field for another purpose. When the specification is later | to require a certain value in a field or reuse a field for another | |||
updated, it is impossible to deploy the new use of the field, and | purpose. When the specification is later updated, it is | |||
forwarding of the protocol could even become conditional on a | impossible to deploy the new use of the field and forwarding of | |||
specific header field value. | the protocol could even become conditional on a specific header | |||
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 at random | presence of observable transport header fields at random | |||
[RFC8701]. This prevents a network device ossifying the use of a | [RFC8701]. This prevents a network device ossifying the use of a | |||
specific observable field and can ease future deployment of new | specific observable field and can ease future deployment of new | |||
uses of the value or code-point. This is not a security | uses of the value or code point. This is not a security | |||
mechanism, although the use can be combined with an authentication | mechanism, although the use can be combined with an authentication | |||
mechanism. | mechanism. | |||
Different transports use encryption to protect their header | Different transports use encryption to protect their header | |||
information to varying degrees. The trend is towards increased | information to varying degrees. The trend is towards increased | |||
protection. | protection. | |||
5. Intentionally Exposing Transport Information to the Network | 5. Intentionally Exposing Transport Information to the Network | |||
A transport protocol can choose to expose certain transport | A transport protocol can choose to expose certain transport | |||
skipping to change at page 28, line 22 ¶ | skipping to change at line 1313 ¶ | |||
Another approach is to expose transport information in a network- | Another approach is to expose transport information in a network- | |||
layer extension header (see Section 5.1). Both are examples of | layer extension header (see Section 5.1). Both are examples of | |||
explicit information intended to be used by network devices on the | explicit information intended to be used by network devices on the | |||
path [RFC8558]. | path [RFC8558]. | |||
Whatever the mechanism used to expose the information, a decision to | Whatever the mechanism used to expose the information, a decision to | |||
expose only specific information places the transport endpoint in | expose only specific information places the transport endpoint in | |||
control of what to expose outside of the encrypted transport header. | control of what to expose outside of the encrypted transport header. | |||
This decision can then be made independently of the transport | This decision can then be made independently of the transport | |||
protocol functionality. This can be done by exposing part of the | protocol functionality. This can be done by exposing part of the | |||
transport header or as a network layer option/extension. | transport header or as a network-layer option/extension. | |||
5.1. Exposing Transport Information in Extension Headers | 5.1. Exposing Transport Information in Extension Headers | |||
At the network-layer, packets can carry optional headers that | At the network layer, packets can carry optional headers that | |||
explicitly expose transport header information to the on-path devices | explicitly expose transport header information to the on-path devices | |||
operating at the network layer (Section 2.3.2). For example, an | operating at the network layer (Section 2.3.2). For example, an | |||
endpoint that sends an IPv6 Hop-by-Hop option [RFC8200] can provide | endpoint that sends an IPv6 hop-by-hop option [RFC8200] can provide | |||
explicit transport layer information that can be observed and used by | explicit transport-layer information that can be observed and used by | |||
network devices on the path. New hop-by-hop options are not | network devices on the path. New hop-by-hop options are not | |||
recommended in RFC 8200 [RFC8200] "because nodes may be configured to | recommended in [RFC8200] "because nodes may be configured to ignore | |||
ignore the Hop-by-Hop Options header, drop packets containing a Hop- | the Hop-by-Hop Options header, drop packets containing a Hop-by-Hop | |||
by-Hop Options header, or assign packets containing a Hop-by-Hop | Options header, or assign packets containing a Hop-by-Hop Options | |||
Options header to a slow processing path. Designers considering | header to a slow processing path. Designers considering defining new | |||
defining new hop-by-hop options need to be aware of this likely | hop-by-hop options need to be aware of this likely behavior." | |||
behavior." | ||||
Network-layer optional headers explicitly indicate the information | Network-layer optional headers explicitly indicate the information | |||
that is exposed, whereas use of exposed transport header information | that is exposed, whereas use of exposed transport header information | |||
first requires an observer to identify the transport protocol and its | first requires an observer to identify the transport protocol and its | |||
format. (See Section 2.2.) | format. See Section 2.2. | |||
An arbitrary path can include one or more network devices that drop | An arbitrary path can include one or more network devices that drop | |||
packets that include a specific header or option used for this | packets that include a specific header or option used for this | |||
purpose (see [RFC7872]). This could impact the proper functioning of | purpose (see [RFC7872]). This could impact the proper functioning of | |||
the protocols using the path. Protocol methods can be designed to | the protocols using the path. Protocol methods can be designed to | |||
probe to discover whether the specific option(s) can be used along | probe to discover whether the specific option(s) can be used along | |||
the current path, enabling use on arbitrary paths. | the current path, enabling use on arbitrary paths. | |||
5.2. Common Exposed Transport Information | 5.2. Common Exposed Transport Information | |||
skipping to change at page 29, line 18 ¶ | skipping to change at line 1354 ¶ | |||
consistently supply common observable information [RFC8558]. A | consistently supply common observable information [RFC8558]. A | |||
common approach can result in an open definition of the observable | common approach can result in an open definition of the observable | |||
fields. This has the potential that the same information can be | fields. This has the potential that the same information can be | |||
utilised across a range of operational and analysis tools. | utilised across a range of operational and analysis tools. | |||
5.3. Considerations for Exposing Transport Information | 5.3. Considerations for Exposing Transport Information | |||
Considerations concerning what information, if any, it is appropriate | Considerations concerning what information, if any, it is appropriate | |||
to expose include: | to expose include: | |||
o On the one hand, explicitly exposing derived fields containing | * On the one hand, explicitly exposing derived fields containing | |||
relevant transport information (e.g., metrics for loss, latency, | relevant transport information (e.g., metrics for loss, latency, | |||
etc) can avoid network devices needing to derive this information | etc.) can avoid network devices needing to derive this information | |||
from other header fields. This could result in development and | from other header fields. This could result in development and | |||
evolution of transport-independent tools around a common | evolution of transport-independent tools around a common | |||
observable header, and permit transport protocols to also evolve | observable header and permit transport protocols to also evolve | |||
independently of this ossified header [RFC8558]. | independently of this ossified header [RFC8558]. | |||
o On the other hand, protocols and implementations might be designed | * On the other hand, protocols and implementations might be designed | |||
to avoid consistently exposing external information that | to avoid consistently exposing external information that | |||
corresponds to the actual internal information used by the | corresponds to the actual internal information used by the | |||
protocol itself. An endpoint/protocol could choose to expose | protocol itself. An endpoint/protocol could choose to expose | |||
transport header information to optimise the benefit it gets from | transport header information to optimise the benefit it gets from | |||
the network [RFC8558]. The value of this information for | the network [RFC8558]. The value of this information for | |||
analysing operation of the transport layer would be enhanced if | analysing operation of the transport layer would be enhanced if | |||
the exposed information could be verified to match the transport | the exposed information could be verified to match the transport | |||
protocol's observed behavior. | protocol's observed behavior. | |||
The motivation to include actual transport header information and the | The motivation to include actual transport header information and the | |||
implications of network devices using this information has to be | implications of network devices using this information has to be | |||
considered when proposing such a method. RFC 8558 summarises this as | considered when proposing such a method. [RFC8558] summarises this | |||
"When signals from endpoints to the path are independent from the | as: | |||
signals used by endpoints to manage the flow's state mechanics, they | ||||
may be falsified by an endpoint without affecting the peer's | | When signals from endpoints to the path are independent from the | |||
understanding of the flow's state. For encrypted flows, this | | signals used by endpoints to manage the flow's state mechanics, | |||
divergence is not detectable by on-path devices [RFC8558]. | | they may be falsified by an endpoint without affecting the peer's | |||
| understanding of the flow's state. For encrypted flows, this | ||||
| divergence is not detectable by on-path devices. | ||||
6. Addition of Transport OAM Information to Network-Layer Headers | 6. Addition of Transport OAM Information to Network-Layer Headers | |||
Even when the transport headers are encrypted, on-path devices can | Even when the transport headers are encrypted, on-path devices can | |||
make measurements by utilising additional protocol headers carrying | make measurements by utilising additional protocol headers carrying | |||
OAM information in an additional packet header. OAM information can | OAM information in an additional packet header. OAM information can | |||
be included with packets to perform functions such as identification | be included with packets to perform functions, such as identification | |||
of transport protocols and flows, to aide understanding of network or | of transport protocols and flows, to aide understanding of network or | |||
transport performance, or to support network operations or mitigate | transport performance or to support network operations or mitigate | |||
the effects of specific network segments. | the effects of specific network segments. | |||
Using network-layer approaches to reveal information has the | Using network-layer approaches to reveal information has the | |||
potential that the same method (and hence same observation and | potential that the same method (and hence same observation and | |||
analysis tools) can be consistently used by multiple transport | analysis tools) can be consistently used by multiple transport | |||
protocols. This approach also could be applied to methods beyond OAM | protocols. This approach also could be applied to methods beyond OAM | |||
(see Section 5). There can also be less desirable implications from | (see Section 5). There can also be less desirable implications from | |||
separating the operation of the transport protocol from the | separating the operation of the transport protocol from the | |||
measurement framework. | measurement framework. | |||
6.1. Use of OAM within a Maintenance Domain | 6.1. Use of OAM within a Maintenance Domain | |||
OAM information can be restricted to a maintenance domain, typically | OAM information can be restricted to a maintenance domain, typically | |||
owned and operated by a single entity. OAM information can be added | owned and operated by a single entity. OAM information can be added | |||
at the ingress to the maintenance domain (e.g., an Ethernet protocol | at the ingress to the maintenance domain (e.g., an Ethernet protocol | |||
header with timestamps and sequence number information using a method | header with timestamps and sequence number information using a method | |||
such as 802.11ag or in-situ OAM [I-D.ietf-ippm-ioam-data], or as a | such as 802.11ag or in-situ OAM [IOAM-DATA] or as a part of the | |||
part of the encapsulation protocol). This additional header | encapsulation protocol). This additional header information is not | |||
information is not delivered to the endpoints and is typically | delivered to the endpoints and is typically removed at the egress of | |||
removed at the egress of the maintenance domain. | the maintenance domain. | |||
Although some types of measurements are supported, this approach does | Although some types of measurements are supported, this approach does | |||
not cover the entire range of measurements described in this | not cover the entire range of measurements described in this | |||
document. In some cases, it can be difficult to position measurement | document. In some cases, it can be difficult to position measurement | |||
tools at the appropriate segments/nodes and there can be challenges | tools at the appropriate segments/nodes, and there can be challenges | |||
in correlating the downstream/upstream information when in-band OAM | in correlating the downstream/upstream information when in-band OAM | |||
data is inserted by an on-path device. | data is inserted by an on-path device. | |||
6.2. Use of OAM across Multiple Maintenance Domains | 6.2. Use of OAM across Multiple Maintenance Domains | |||
OAM information can also be added at the network layer by the sender | OAM information can also be added at the network layer by the sender | |||
as an IPv6 extension header or an IPv4 option, or in an | as an IPv6 extension header or an IPv4 option or in an encapsulation/ | |||
encapsulation/tunnel header that also includes an extension header or | tunnel header that also includes an extension header or option. This | |||
option. This information can be used across multiple network | information can be used across multiple network segments or between | |||
segments, or between the transport endpoints. | the transport endpoints. | |||
One example is the IPv6 Performance and Diagnostic Metrics (PDM) | One example is the IPv6 Performance and Diagnostic Metrics (PDM) | |||
destination option [RFC8250]. This allows a sender to optionally | destination option [RFC8250]. This allows a sender to optionally | |||
include a destination option that carries header fields that can be | include a destination option that carries header fields that can be | |||
used to observe timestamps and packet sequence numbers. This | used to observe timestamps and packet sequence numbers. This | |||
information could be authenticated by a receiving transport endpoint | information could be authenticated by a receiving transport endpoint | |||
when the information is added at the sender and visible at the | when the information is added at the sender and visible at the | |||
receiving endpoint, although methods to do this have not currently | receiving endpoint, although methods to do this have not currently | |||
been proposed. This needs to be explicitly enabled at the sender. | been proposed. This needs to be explicitly enabled at the sender. | |||
7. Conclusions | 7. Conclusions | |||
Header encryption and strong integrity checks are being incorporated | Header authentication and encryption and strong integrity checks are | |||
into new transport protocols and have important benefits. The pace | being incorporated into new transport protocols and have important | |||
of development of transports using the WebRTC data channel, and the | benefits. The pace of the development of transports using the WebRTC | |||
rapid deployment of the QUIC transport protocol, can both be | data channel and the rapid deployment of the QUIC transport protocol | |||
attributed to using the combination of UDP as a substrate while | can both be attributed to using the combination of UDP as a substrate | |||
providing confidentiality and authentication of the encapsulated | while providing confidentiality and authentication of the | |||
transport headers and payload. | encapsulated transport headers and payload. | |||
This document has described some current practises, and the | This document has described some current practises, and the | |||
implications for some stakeholders, when transport layer header | implications for some stakeholders, when transport-layer header | |||
encryption is used. It does not judge whether these practises are | encryption is used. It does not judge whether these practises are | |||
necessary, or endorse the use of any specific practise. Rather, the | necessary or endorse the use of any specific practise. Rather, the | |||
intent is to highlight operational tools and practises to consider | intent is to highlight operational tools and practises to consider | |||
when designing and modifying transport protocols, so protocol | when designing and modifying transport protocols, so protocol | |||
designers can make informed choices about what transport header | designers can make informed choices about what transport header | |||
fields to encrypt, and whether it might be beneficial to make an | fields to encrypt and whether it might be beneficial to make an | |||
explicit choice to expose certain fields to devices on the network | explicit choice to expose certain fields to devices on the network | |||
path. In making such a decision, it is important to balance: | path. In making such a decision, it is important to balance: | |||
o User Privacy: The less transport header information that is | User Privacy: | |||
exposed to the network, the lower the risk of leaking metadata | The less transport header information that is exposed to the | |||
that might have user privacy implications. Transports that chose | network, the lower the risk of leaking metadata that might have | |||
to expose some header fields need to make a privacy assessment to | user privacy implications. Transports that chose to expose some | |||
understand the privacy cost versus benefit trade-off in making | header fields need to make a privacy assessment to understand the | |||
that information available. The design of the QUIC spin bit to | privacy cost versus benefit trade-off in making that information | |||
the network is an example of such considered analysis. | available. The design of the QUIC spin bit to the network is an | |||
example of such considered analysis. | ||||
o Transport Ossification: Unencrypted transport header fields are | Transport Ossification: | |||
likely to ossify rapidly, as network devices come to rely on their | Unencrypted transport header fields are likely to ossify rapidly, | |||
presence, making it difficult to change the transport in future. | as network devices come to rely on their presence, making it | |||
This argues that the choice to expose information to the network | difficult to change the transport in future. This argues that the | |||
is made deliberately and with care, since it is essentially | choice to expose information to the network is made deliberately | |||
defining a stable interface between the transport and the network. | and with care, since it is essentially defining a stable interface | |||
Some protocols will want to make that interface as limited as | between the transport and the network. Some protocols will want | |||
possible; other protocols might find value in exposing certain | to make that interface as limited as possible; other protocols | |||
information to signal to the network, or in allowing the network | might find value in exposing certain information to signal to the | |||
to change certain header fields as signals to the transport. The | network or in allowing the network to change certain header fields | |||
visible wire image of a protocol should be explicitly designed. | as signals to the transport. The visible wire image of a protocol | |||
should be explicitly designed. | ||||
o Network Ossification: While encryption can reduce ossification of | Network Ossification: | |||
the transport protocol, it does not itself prevent ossification of | While encryption can reduce ossification of the transport | |||
the network service. People seeking to understand network traffic | protocol, it does not itself prevent ossification of the network | |||
could still come to rely on pattern inferences and other | service. People seeking to understand network traffic could still | |||
heuristics or machine learning to derive measurement data and as | come to rely on pattern inferences and other heuristics or machine | |||
the basis for network forwarding decisions [RFC8546]. This | learning to derive measurement data and as the basis for network | |||
creates dependencies on the transport protocol, or the patterns of | forwarding decisions [RFC8546]. This creates dependencies on the | |||
traffic it can generate, resulting in ossification of the service. | transport protocol or the patterns of traffic it can generate, | |||
resulting in ossification of the service. | ||||
o Impact on Operational Practice: The network operations community | Impact on Operational Practice: | |||
has long relied on being able to understand Internet traffic | The network operations community has long relied on being able to | |||
patterns, both in aggregate and at the flow level, to support | understand Internet traffic patterns, both in aggregate and at the | |||
network management, traffic engineering, and troubleshooting. | flow level, to support network management, traffic engineering, | |||
Operational practice has developed based on the information | and troubleshooting. Operational practice has developed based on | |||
available from unencrypted transport headers. The IETF has | the information available from unencrypted transport headers. The | |||
supported this practice by developing operations and management | IETF has supported this practice by developing operations and | |||
specifications, interface specifications, and associated Best | management specifications, interface specifications, and | |||
Current Practises. Widespread deployment of transport protocols | associated Best Current Practices. Widespread deployment of | |||
that encrypt their information will impact network operations, | transport protocols that encrypt their information will impact | |||
unless operators can develop alternative practises that work | network operations unless operators can develop alternative | |||
without access to the transport header. | practises that work without access to the transport header. | |||
o Pace of Evolution: Removing obstacles to change can enable an | Pace of Evolution: | |||
increased pace of evolution. If a protocol changes its transport | Removing obstacles to change can enable an increased pace of | |||
header format (wire image), or its transport behaviour, this can | evolution. If a protocol changes its transport header format | |||
result in the currently deployed tools and methods becoming no | (wire image) or its transport behaviour, this can result in the | |||
longer relevant. Where this needs to be accompanied by | currently deployed tools and methods becoming no longer relevant. | |||
development of appropriate operational support functions and | Where this needs to be accompanied by development of appropriate | |||
procedures, it can incur a cost in new tooling to catch-up with | operational support functions and procedures, it can incur a cost | |||
each change. Protocols that consistently expose observable data | in new tooling to catch up with each change. Protocols that | |||
do not require such development, but can suffer from ossification | consistently expose observable data do not require such | |||
and need to consider if the exposed protocol metadata has privacy | development but can suffer from ossification and need to consider | |||
implications. There is no single deployment context, and | if the exposed protocol metadata has privacy implications. There | |||
therefore designers need to consider the diversity of operational | is no single deployment context; therefore, designers need to | |||
networks (ISPs, enterprises, DDoS mitigation and firewall | consider the diversity of operational networks (ISPs, enterprises, | |||
maintainers, etc.). | DDoS mitigation and firewall maintainers, etc.). | |||
o Supporting Common Specifications: Common, open, transport | Supporting Common Specifications: | |||
specifications can stimulate engagement by developers, users, | Common, open, transport specifications can stimulate engagement by | |||
researchers, and the broader community. Increased protocol | developers, users, researchers, and the broader community. | |||
diversity can be beneficial in meeting new requirements, but the | Increased protocol diversity can be beneficial in meeting new | |||
ability to innovate without public scrutiny risks point solutions | requirements, but the ability to innovate without public scrutiny | |||
that optimise for specific cases, and that can accidentally | risks point solutions that optimise for specific cases and that | |||
disrupt operations of/in different parts of the network. The | can accidentally disrupt operations of/in different parts of the | |||
social contract that maintains the stability of the Internet | network. The social contract that maintains the stability of the | |||
relies on accepting common transport specifications, and on it | Internet relies on accepting common transport specifications and | |||
being possible to detect violations. The existence of independent | on it being possible to detect violations. The existence of | |||
measurements, transparency, and public scrutiny of transport | independent measurements, transparency, and public scrutiny of | |||
protocol behaviour, help the community to enforce the social norm | transport protocol behaviour helps the community to enforce the | |||
that protocol implementations behave fairly and conform (at least | social norm that protocol implementations behave fairly and | |||
mostly) to the specifications. It is important to find new ways | conform (at least mostly) to the specifications. It is important | |||
of maintaining that community trust as increased use of transport | to find new ways of maintaining that community trust as increased | |||
header encryption limits visibility into transport behaviour (see | use of transport header encryption limits visibility into | |||
also Section 5.3). | transport behaviour (see also Section 5.3). | |||
o Impact on Benchmarking and Understanding Feature Interactions: An | Impact on Benchmarking and Understanding Feature Interactions: | |||
appropriate vantage point for observation, coupled with timing | An 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, and/or | benchmarking network devices, endpoint stacks, and/or | |||
configurations. This can help understand complex feature | configurations. This can help understand complex feature | |||
interactions. An inability to observe transport header | interactions. An inability to observe transport header | |||
information can make it harder to diagnose and explore | 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 | |||
side-effect of not allowing a choice of vantage point from which | effect of not allowing a choice of vantage point from which this | |||
this information is observed. New approaches might have to be | information is observed. New approaches might have to be | |||
developed. | developed. | |||
o Impact on Research and Development: Hiding transport header | Impact on Research and Development: | |||
information can impede independent research into new mechanisms, | Hiding transport header information can impede independent | |||
measurement of behaviour, and development initiatives. Experience | research into new mechanisms, measurements of behaviour, and | |||
shows that transport protocols are complicated to design and | development initiatives. Experience shows that transport | |||
complex to deploy, and that individual mechanisms have to be | protocols are complicated to design and complex to deploy and that | |||
evaluated while considering other mechanisms, across a broad range | individual mechanisms have to be evaluated while considering other | |||
of network topologies and with attention to the impact on traffic | mechanisms across a broad range of network topologies and with | |||
sharing the capacity. If increased use of transport header | attention to the impact on traffic sharing the capacity. If | |||
encryption results in reduced availability of open data, it could | increased use of transport header encryption results in reduced | |||
eliminate the independent checks to the standardisation process | availability of open data, it could eliminate the independent | |||
that have previously been in place from research and academic | checks to the standardisation process that have previously been in | |||
contributors (e.g., the role of the IRTF Internet Congestion | place from research and academic contributors (e.g., the role of | |||
Control Research Group (ICCRG) and research publications in | the IRTF Internet Congestion Control Research Group (ICCRG) and | |||
reviewing new transport mechanisms and assessing the impact of | research publications in reviewing new transport mechanisms and | |||
their deployment). | assessing the impact of their deployment). | |||
Observable transport header information might be useful to various | Observable transport header information might be useful to various | |||
stakeholders. Other sets of stakeholders have incentives to limit | stakeholders. Other sets of stakeholders have incentives to limit | |||
what can be observed. This document does not make recommendations | what can be observed. This document does not make recommendations | |||
about what information ought to be exposed, to whom it ought to be | about what information ought to be exposed, to whom it ought to be | |||
observable, or how this will be achieved. There are also design | observable, or how this will be achieved. There are also design | |||
choices about where observable fields are placed. For example, one | choices about where observable fields are placed. For example, one | |||
location could be a part of the transport header outside of the | location could be a part of the transport header outside of the | |||
encryption envelope, another alternative is to carry the information | encryption envelope; another alternative is to carry the information | |||
in a network-layer option or extension header. New transport | in a network-layer option or extension header. New transport | |||
protocol designs ought to explicitly identify any fields that are | protocol designs ought to explicitly identify any fields that are | |||
intended to be observed, consider if there are alternative ways of | intended to be observed, consider if there are alternative ways of | |||
providing the information, and reflect on the implications of | providing the information, and reflect on the implications of | |||
observable fields being used by on-path network devices, and how this | observable fields being used by on-path network devices and how this | |||
might impact user privacy and protocol evolution when these fields | might impact user privacy and protocol evolution when these fields | |||
become ossified. | become ossified. | |||
As [RFC7258] notes, "Making networks unmanageable to mitigate | As [RFC7258] notes, "Making networks unmanageable to mitigate PM is | |||
(pervasive monitoring) is not an acceptable outcome, but ignoring | not an acceptable outcome, but ignoring PM would go against the | |||
(pervasive monitoring) would go against the consensus documented | consensus documented here." Providing explicit information can help | |||
here." Providing explicit information can help avoid traffic being | avoid traffic being inappropriately classified, impacting application | |||
inappropriately classified, impacting application performance. An | performance. An appropriate balance will emerge over time as real | |||
appropriate balance will emerge over time as real instances of this | instances of this tension are analysed [RFC7258]. This balance | |||
tension are analysed [RFC7258]. This balance between information | between information exposed and information hidden ought to be | |||
exposed and information hidden ought to be carefully considered when | carefully considered when specifying new transport protocols. | |||
specifying new transport protocols. | ||||
8. Security Considerations | 8. Security Considerations | |||
This document is about design and deployment considerations for | This document is about design and deployment considerations for | |||
transport protocols. Issues relating to security are discussed | transport protocols. Issues relating to security are discussed | |||
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 [RFC8922]. | protocol or layer on top of the transport protocol [RFC8922]. | |||
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 or to | also be incorporated into the design of a transport protocol or to | |||
modify an existing transport. Integrity checks can protect an | modify an existing transport. Integrity checks can protect an | |||
endpoint from undetected modification of protocol fields by on-path | endpoint from undetected modification of protocol fields by on-path | |||
network devices, whereas encryption and obfuscation or greasing can | network devices, whereas encryption and obfuscation or greasing can | |||
further prevent these headers being utilised by network devices | further prevent these headers being utilised by network devices | |||
[RFC8701]. Preventing observation of headers provides an opportunity | [RFC8701]. Preventing observation of headers provides an opportunity | |||
for greater freedom to update the protocols and can ease | for greater freedom to update the protocols and can ease | |||
experimentation with new techniques and their final deployment in | experimentation with new techniques and their final deployment in | |||
endpoints. A protocol specification needs to weigh the costs of | endpoints. A protocol specification needs to weigh the costs of | |||
ossifying common headers, versus the potential benefits of exposing | ossifying common headers versus the potential benefits of exposing | |||
specific information that could be observed along the network path to | specific information that could be observed along the network path to | |||
provide tools to manage new variants of protocols. | provide tools to manage new variants of protocols. | |||
Header encryption can provide confidentiality of some or all of the | Header encryption can provide confidentiality of some or all of the | |||
transport header information. This prevents an on-path device from | transport header information. This prevents an on-path device from | |||
gaining knowledge of the header field. It therefore prevents | gaining knowledge of the header field. It therefore prevents | |||
mechanisms being built that directly rely on the information or seeks | mechanisms being built that directly rely on the information or seeks | |||
to infer semantics of an exposed header field. Reduced visibility | to infer semantics of an exposed header field. Reduced visibility | |||
into transport metadata can limit the ability to measure and | into transport metadata can limit the ability to measure and | |||
characterise traffic, and conversely can provide privacy benefits. | characterise traffic and conversely can provide privacy benefits. | |||
Extending the transport payload security context to also include the | Extending the transport payload security context to also include the | |||
transport protocol header protects both types of information with the | transport protocol header protects both types of information with the | |||
same key. A privacy concern would arise if this key was shared with | same key. A privacy concern would arise if this key was shared with | |||
a third party, e.g., providing access to transport header information | a third party, e.g., providing access to transport header information | |||
to debug a performance issue, would also result in exposing the | to debug a performance issue would also result in exposing the | |||
transport payload data to the same third party. Such risks would be | transport payload data to the same third party. Such risks would be | |||
mitigated using a layered security design that provides one domain of | mitigated using a layered security design that provides one domain of | |||
protection and associated keys for the transport payload and | protection and associated keys for the transport payload and | |||
encrypted transport headers; and a separate domain of protection and | encrypted transport headers and a separate domain of protection and | |||
associated keys for any observable transport header fields. | associated keys for any observable transport header fields. | |||
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. "While PM is an | information to detect anomalies in network traffic. As stated in | |||
attack, other forms of monitoring that might fit the definition of PM | [RFC7258], "While PM is an attack, other forms of monitoring that | |||
can be beneficial and not part of any attack, e.g., network | might fit the definition of PM can be beneficial and not part of any | |||
management functions monitor packets or flows and anti-spam | attack, e.g., network management functions monitor packets or flows | |||
mechanisms need to see mail message content." [RFC7258]. This can | and anti-spam mechanisms need to see mail message content." This can | |||
be used as the first line of defence to identify potential threats | be used as the first line of defence to identify potential threats | |||
from DoS or malware and redirect suspect traffic to dedicated nodes | from DoS or malware and redirect suspect traffic to dedicated nodes | |||
responsible for DoS analysis, malware detection, or to perform packet | responsible for DoS analysis, for malware detection, or to perform | |||
"scrubbing" (the normalisation of packets so that there are no | packet "scrubbing" (the normalisation 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 can also form a part of the | Exposed transport header fields can also form a part of the | |||
information used by the receiver of a transport protocol to protect | information used by the receiver of a transport protocol to protect | |||
the transport layer from data injection by an attacker. In | 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 | |||
skipping to change at page 35, line 38 ¶ | skipping to change at line 1663 ¶ | |||
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 might 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 attacks is to deny knowledge of what | |||
information is accepted by a receiver or obfuscate the accepted | header information is accepted by a receiver or obfuscate the | |||
header information, e.g., setting a non-predictable initial value for | accepted header information, e.g., setting a nonpredictable initial | |||
a sequence number during a protocol handshake, as in [RFC3550] and | value for a sequence number during a protocol handshake, as in | |||
[RFC6056], or a port value that cannot be predicted (see Section 5.1 | [RFC3550] and [RFC6056], or a port value that cannot be predicted | |||
of [RFC8085]). A receiver could also require additional information | (see Section 5.1 of [RFC8085]). A receiver could also require | |||
to be used as a part of a validation check before accepting packets | additional information to be used as a part of a validation check | |||
at the transport layer (e.g., utilising a part of the sequence number | before accepting packets at the transport layer, e.g., utilising a | |||
space that is encrypted; or by verifying an encrypted token not | part of the sequence number space that is encrypted or by verifying | |||
visible to an attacker). This would also mitigate against on-path | an encrypted token not visible to an attacker. This would also | |||
attacks. An additional processing cost can be incurred when | mitigate against on-path attacks. An additional processing cost can | |||
decryption is attempted before a receiver discards an injected | be incurred when decryption is attempted before a receiver discards | |||
packet. | an injected packet. | |||
The existence of open transport protocol standards, and a research | The existence of open transport protocol standards and a research and | |||
and operations community with a history of independent observation | operations community with a history of independent observation and | |||
and evaluation of performance data, encourages fairness and | evaluation of performance data encourage fairness and conformance to | |||
conformance to those standards. This suggests careful consideration | those standards. This suggests careful consideration will be made | |||
will be made over where, and when, measurement samples are collected. | over where, and when, measurement samples are collected. An | |||
An appropriate balance between encrypting some or all of the | appropriate balance between encrypting some or all of the transport | |||
transport header information needs to be considered. Open data, and | header information needs to be considered. Open data and | |||
accessibility to tools that can help understand trends in application | accessibility to tools that can help understand trends in application | |||
deployment, network traffic and usage patterns can all contribute to | deployment, network traffic, and usage patterns can all contribute to | |||
understanding security challenges. | understanding security challenges. | |||
The Security and Privacy Considerations in the Framework for Large- | The security and privacy considerations in "A Framework for Large- | |||
Scale Measurement of Broadband Performance (LMAP) [RFC7594] contain | Scale Measurement of Broadband Performance (LMAP)" [RFC7594] contain | |||
considerations for Active and Passive measurement techniques and | considerations for Active and Passive measurement techniques and | |||
supporting material on measurement context. | supporting material on measurement context. | |||
Addition of observable transport information to the path increases | Addition of observable transport information to the path increases | |||
the information available to an observer and may, when this | the information available to an observer and may, when this | |||
information can be linked to a node or user, reduce the privacy of | information can be linked to a node or user, reduce the privacy of | |||
the user. See the security considerations of [RFC8558]. | the user. See the security considerations of [RFC8558]. | |||
9. IANA Considerations | 9. IANA Considerations | |||
This memo includes no request to IANA. | This document has no IANA actions. | |||
10. Acknowledgements | ||||
The authors would like to thank Mohamed Boucadair, Spencer Dawkins, | ||||
Tom Herbert, Jana Iyengar, Mirja Kuehlewind, Kyle Rose, Kathleen | ||||
Moriarty, Al Morton, Chris Seal, Joe Touch, Brian Trammell, Chris | ||||
Wood, Thomas Fossati, Mohamed Boucadair, Martin Thomson, David Black, | ||||
Martin Duke, Joel Halpern and members of TSVWG for their comments and | ||||
feedback. | ||||
This work has received funding from the European Union's Horizon 2020 | ||||
research and innovation programme under grant agreement No 688421, | ||||
and the EU Stand ICT Call 4. The opinions expressed and arguments | ||||
employed reflect only the authors' view. The European Commission is | ||||
not responsible for any use that might be made of that information. | ||||
This work has received funding from the UK Engineering and Physical | ||||
Sciences Research Council under grant EP/R04144X/1. | ||||
11. Informative References | 10. 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, Vol. 55, no. 1, | |||
January 2012. | pp. 57-65, DOI 10.1145/2063176.2063196, January 2012, | |||
<https://doi.org/10.1145/2063176.2063196>. | ||||
[I-D.ietf-6man-ipv6-alt-mark] | ||||
Fioccola, G., Zhou, T., Cociglio, M., and F. Qin, "IPv6 | ||||
Application of the Alternate Marking Method", draft-ietf- | ||||
6man-ipv6-alt-mark-00 (work in progress), May 2020. | ||||
[I-D.ietf-ippm-ioam-data] | ||||
Brockners, F., Bhandari, S., and T. Mizrahi, "Data Fields | ||||
for In-situ OAM", draft-ietf-ippm-ioam-data-10 (work in | ||||
progress), July 2020. | ||||
[I-D.ietf-quic-transport] | ||||
Iyengar, J. and M. Thomson, "QUIC: A UDP-Based Multiplexed | ||||
and Secure Transport", draft-ietf-quic-transport-29 (work | ||||
in progress), June 2020. | ||||
[I-D.ietf-tls-dtls13] | [DTLS] Rescorla, E., Tschofenig, H., and N. Modadugu, "The | |||
Rescorla, E., Tschofenig, H., and N. Modadugu, "The | ||||
Datagram Transport Layer Security (DTLS) Protocol Version | Datagram Transport Layer Security (DTLS) Protocol Version | |||
1.3", draft-ietf-tls-dtls13-38 (work in progress), May | 1.3", Work in Progress, Internet-Draft, draft-ietf-tls- | |||
2020. | dtls13-43, 30 April 2021, | |||
<https://datatracker.ietf.org/doc/html/draft-ietf-tls- | ||||
[I-D.ietf-tsvwg-rtcweb-qos] | dtls13-43>. | |||
Jones, P., Dhesikan, S., Jennings, C., and D. Druta, "DSCP | ||||
Packet Markings for WebRTC QoS", draft-ietf-tsvwg-rtcweb- | ||||
qos-18 (work in progress), August 2016. | ||||
[I-D.marx-qlog-main-schema] | [IOAM-DATA] | |||
Marx, R., "Main logging schema for qlog", draft-marx-qlog- | Brockners, F., Bhandari, S., and T. Mizrahi, "Data Fields | |||
main-schema-02 (work in progress), November 2020. | for In-situ OAM", Work in Progress, Internet-Draft, draft- | |||
ietf-ippm-ioam-data-12, 21 February 2021, | ||||
<https://datatracker.ietf.org/doc/html/draft-ietf-ippm- | ||||
ioam-data-12>. | ||||
[I-D.trammell-plus-abstract-mech] | [IPV6-ALT-MARK] | |||
Trammell, B., "Abstract Mechanisms for a Cooperative Path | Fioccola, G., Zhou, T., Cociglio, M., Qin, F., and R. | |||
Layer under Endpoint Control", draft-trammell-plus- | Pang, "IPv6 Application of the Alternate Marking Method", | |||
abstract-mech-00 (work in progress), September 2016. | Work in Progress, Internet-Draft, draft-ietf-6man-ipv6- | |||
alt-mark-06, 31 May 2021, | ||||
<https://datatracker.ietf.org/doc/html/draft-ietf-6man- | ||||
ipv6-alt-mark-06>. | ||||
[Latency] Briscoe, B., "Reducing Internet Latency: A Survey of | [Latency] Briscoe, B., Brunstrom, A., Petlund, A., Hayes, D., Ros, | |||
Techniques and Their Merits, IEEE Comm. Surveys & | D., Tsang, I., Gjessing, S., Fairhurst, G., Griwodz, C., | |||
Tutorials. 26;18(3) p2149-2196", November 2014. | and M. Welzl, "Reducing Internet Latency: A Survey of | |||
Techniques and Their Merits", IEEE Communications Surveys | ||||
& Tutorials, vol. 18, no. 3, pp. 2149-2196, thirdquarter | ||||
2016, DOI 10.1109/COMST.2014.2375213, November 2014, | ||||
<https://doi.org/10.1109/COMST.2014.2375213>. | ||||
[Measurement] | [Measurement] | |||
Fairhurst, G., Kuehlewind, M., and D. Lopez, "Measurement- | Fairhurst, G., Kuehlewind, M., and D. Lopez, "Measurement- | |||
based Protocol Design, Eur. Conf. on Networks and | based Protocol Design", European Conference on Networks | |||
Communications, Oulu, Finland.", June 2017. | and Communications, Oulu, Finland., June 2017. | |||
[PAM-RTT] Trammell, B. and M. Kuehlewind, "Revisiting the Privacy | [PAM-RTT] Trammell, B. and M. Kuehlewind, "Revisiting the Privacy | |||
Implications of Two-Way Internet Latency Data (in Proc. | Implications of Two-Way Internet Latency Data", Passive | |||
PAM 2018)", March 2018. | and Active Measurement, March 2018. | |||
[PLUS-ABSTRACT-MECH] | ||||
Trammell, B., "Abstract Mechanisms for a Cooperative Path | ||||
Layer under Endpoint Control", Work in Progress, Internet- | ||||
Draft, draft-trammell-plus-abstract-mech-00, 28 September | ||||
2016, <https://datatracker.ietf.org/doc/html/draft- | ||||
trammell-plus-abstract-mech-00>. | ||||
[QLOG] Marx, R., Niccolini, L., and M. Seemann, "Main logging | ||||
schema for qlog", Work in Progress, Internet-Draft, draft- | ||||
ietf-quic-qlog-main-schema-00, 10 June 2021, | ||||
<https://datatracker.ietf.org/doc/html/draft-ietf-quic- | ||||
qlog-main-schema-00>. | ||||
[Quic-Trace] | [Quic-Trace] | |||
"https:QUIC trace utilities //github.com/google/quic- | "QUIC trace utilities", | |||
trace". | <https://github.com/google/quic-trace>. | |||
[RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, | [RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, | |||
DOI 10.17487/RFC0791, September 1981, | DOI 10.17487/RFC0791, September 1981, | |||
<https://www.rfc-editor.org/info/rfc791>. | <https://www.rfc-editor.org/info/rfc791>. | |||
[RFC2410] Glenn, R. and S. Kent, "The NULL Encryption Algorithm and | [RFC2410] Glenn, R. and S. Kent, "The NULL Encryption Algorithm and | |||
Its Use With IPsec", RFC 2410, DOI 10.17487/RFC2410, | Its Use With IPsec", RFC 2410, DOI 10.17487/RFC2410, | |||
November 1998, <https://www.rfc-editor.org/info/rfc2410>. | November 1998, <https://www.rfc-editor.org/info/rfc2410>. | |||
[RFC2474] Nichols, K., Blake, S., Baker, F., and D. Black, | [RFC2474] Nichols, K., Blake, S., Baker, F., and D. Black, | |||
skipping to change at page 39, line 39 ¶ | skipping to change at line 1841 ¶ | |||
<https://www.rfc-editor.org/info/rfc3711>. | <https://www.rfc-editor.org/info/rfc3711>. | |||
[RFC4302] Kent, S., "IP Authentication Header", RFC 4302, | [RFC4302] Kent, S., "IP Authentication Header", RFC 4302, | |||
DOI 10.17487/RFC4302, December 2005, | DOI 10.17487/RFC4302, December 2005, | |||
<https://www.rfc-editor.org/info/rfc4302>. | <https://www.rfc-editor.org/info/rfc4302>. | |||
[RFC4303] Kent, S., "IP Encapsulating Security Payload (ESP)", | [RFC4303] Kent, S., "IP Encapsulating Security Payload (ESP)", | |||
RFC 4303, DOI 10.17487/RFC4303, December 2005, | RFC 4303, DOI 10.17487/RFC4303, December 2005, | |||
<https://www.rfc-editor.org/info/rfc4303>. | <https://www.rfc-editor.org/info/rfc4303>. | |||
[RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session | ||||
Description Protocol", RFC 4566, DOI 10.17487/RFC4566, | ||||
July 2006, <https://www.rfc-editor.org/info/rfc4566>. | ||||
[RFC4585] Ott, J., Wenger, S., Sato, N., Burmeister, C., and J. Rey, | [RFC4585] Ott, J., Wenger, S., Sato, N., Burmeister, C., and J. Rey, | |||
"Extended RTP Profile for Real-time Transport Control | "Extended RTP Profile for Real-time Transport Control | |||
Protocol (RTCP)-Based Feedback (RTP/AVPF)", RFC 4585, | Protocol (RTCP)-Based Feedback (RTP/AVPF)", RFC 4585, | |||
DOI 10.17487/RFC4585, July 2006, | DOI 10.17487/RFC4585, July 2006, | |||
<https://www.rfc-editor.org/info/rfc4585>. | <https://www.rfc-editor.org/info/rfc4585>. | |||
[RFC4737] Morton, A., Ciavattone, L., Ramachandran, G., Shalunov, | [RFC4737] Morton, A., Ciavattone, L., Ramachandran, G., Shalunov, | |||
S., and J. Perser, "Packet Reordering Metrics", RFC 4737, | S., and J. Perser, "Packet Reordering Metrics", RFC 4737, | |||
DOI 10.17487/RFC4737, November 2006, | DOI 10.17487/RFC4737, November 2006, | |||
<https://www.rfc-editor.org/info/rfc4737>. | <https://www.rfc-editor.org/info/rfc4737>. | |||
skipping to change at page 44, line 44 ¶ | skipping to change at line 2086 ¶ | |||
Paasch, "TCP Extensions for Multipath Operation with | Paasch, "TCP Extensions for Multipath Operation with | |||
Multiple Addresses", RFC 8684, DOI 10.17487/RFC8684, March | Multiple Addresses", RFC 8684, DOI 10.17487/RFC8684, March | |||
2020, <https://www.rfc-editor.org/info/rfc8684>. | 2020, <https://www.rfc-editor.org/info/rfc8684>. | |||
[RFC8701] Benjamin, D., "Applying Generate Random Extensions And | [RFC8701] Benjamin, D., "Applying Generate Random Extensions And | |||
Sustain Extensibility (GREASE) to TLS Extensibility", | Sustain Extensibility (GREASE) to TLS Extensibility", | |||
RFC 8701, DOI 10.17487/RFC8701, January 2020, | RFC 8701, DOI 10.17487/RFC8701, January 2020, | |||
<https://www.rfc-editor.org/info/rfc8701>. | <https://www.rfc-editor.org/info/rfc8701>. | |||
[RFC8724] Minaburo, A., Toutain, L., Gomez, C., Barthel, D., and JC. | [RFC8724] Minaburo, A., Toutain, L., Gomez, C., Barthel, D., and JC. | |||
Zuniga, "SCHC: Generic Framework for Static Context Header | Zúñiga, "SCHC: Generic Framework for Static Context Header | |||
Compression and Fragmentation", RFC 8724, | Compression and Fragmentation", RFC 8724, | |||
DOI 10.17487/RFC8724, April 2020, | DOI 10.17487/RFC8724, April 2020, | |||
<https://www.rfc-editor.org/info/rfc8724>. | <https://www.rfc-editor.org/info/rfc8724>. | |||
[RFC8837] Jones, P., Dhesikan, S., Jennings, C., and D. Druta, | [RFC8837] Jones, P., Dhesikan, S., Jennings, C., and D. Druta, | |||
"Differentiated Services Code Point (DSCP) Packet Markings | "Differentiated Services Code Point (DSCP) Packet Markings | |||
for WebRTC QoS", RFC 8837, DOI 10.17487/RFC8837, January | for WebRTC QoS", RFC 8837, DOI 10.17487/RFC8837, January | |||
2021, <https://www.rfc-editor.org/info/rfc8837>. | 2021, <https://www.rfc-editor.org/info/rfc8837>. | |||
[RFC8866] Begen, A., Kyzivat, P., Perkins, C., and M. Handley, "SDP: | ||||
Session Description Protocol", RFC 8866, | ||||
DOI 10.17487/RFC8866, January 2021, | ||||
<https://www.rfc-editor.org/info/rfc8866>. | ||||
[RFC8922] Enghardt, T., Pauly, T., Perkins, C., Rose, K., and C. | [RFC8922] Enghardt, T., Pauly, T., Perkins, C., Rose, K., and C. | |||
Wood, "A Survey of the Interaction between Security | Wood, "A Survey of the Interaction between Security | |||
Protocols and Transport Services", RFC 8922, | Protocols and Transport Services", RFC 8922, | |||
DOI 10.17487/RFC8922, October 2020, | DOI 10.17487/RFC8922, October 2020, | |||
<https://www.rfc-editor.org/info/rfc8922>. | <https://www.rfc-editor.org/info/rfc8922>. | |||
Appendix A. Revision information | [RFC9000] Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based | |||
Multiplexed and Secure Transport", RFC 9000, | ||||
-00 This is an individual draft for the IETF community. | DOI 10.17487/RFC9000, May 2021, | |||
<https://www.rfc-editor.org/info/rfc9000>. | ||||
-01 This draft was a result of walking away from the text for a few | ||||
days and then reorganising the content. | ||||
-02 This draft fixes textual errors. | ||||
-03 This draft follows feedback from people reading this draft. | ||||
-04 This adds an additional contributor and includes significant | ||||
reworking to ready this for review by the wider IETF community Colin | ||||
Perkins joined the author list. | ||||
Comments from the community are welcome on the text and | ||||
recommendations. | ||||
-05 Corrections received and helpful inputs from Mohamed Boucadair. | ||||
-06 Updated following comments from Stephen Farrell, and feedback via | ||||
email. Added a draft conclusion section to sketch some strawman | ||||
scenarios that could emerge. | ||||
-07 Updated following comments from Al Morton, Chris Seal, and other | ||||
feedback via email. | ||||
-08 Updated to address comments sent to the TSVWG mailing list by | ||||
Kathleen Moriarty (on 08/05/2018 and 17/05/2018), Joe Touch on | ||||
11/05/2018, and Spencer Dawkins. | ||||
-09 Updated security considerations. | ||||
-10 Updated references, split the Introduction, and added a paragraph | ||||
giving some examples of why ossification has been an issue. | ||||
-01 This resolved some reference issues. Updated section on | ||||
observation by devices on the path. | ||||
-02 Comments received from Kyle Rose, Spencer Dawkins and Tom | ||||
Herbert. The network-layer information has also been re-organised | ||||
after comments at IETF-103. | ||||
-03 Added a section on header compression and rewriting of sections | ||||
referring to RTP transport. This version contains author editorial | ||||
work and removed duplicate section. | ||||
-04 Revised following SecDir Review | ||||
o Added some text on TLS story (additional input sought on relevant | ||||
considerations). | ||||
o Section 2, paragraph 8 - changed to be clearer, in particular, | ||||
added "Encryption with secure key distribution prevents" | ||||
o Flow label description rewritten based on PS/BCP RFCs. | ||||
o Clarify requirements from RFCs concerning the IPv6 flow label and | ||||
highlight ways it can be used with encryption. (section 3.1.3) | ||||
o Add text on the explicit spin-bit work in the QUIC DT. Added | ||||
greasing of spin-bit. (Section 6.1) | ||||
o Updated section 6 and added more explanation of impact on | ||||
operators. | ||||
o Other comments addressed. | ||||
-05 Editorial pass and minor corrections noted on TSVWG list. | ||||
-06 Updated conclusions and minor corrections. Responded to request | ||||
to add OAM discussion to Section 6.1. | ||||
-07 Addressed feedback from Ruediger and Thomas. | ||||
Section 2 deserved some work to make it easier to read and avoid | ||||
repetition. This edit finally gets to this, and eliminates some | ||||
duplication. This also moves some of the material from section 2 to | ||||
reform a clearer conclusion. The scope remains focussed on the usage | ||||
of transport headers and the implications of encryption - not on | ||||
proposals for new techniques/specifications to be developed. | ||||
-08 Addressed feedback and completed editorial work, including | ||||
updating the text referring to RFC7872, in preparation for a WGLC. | ||||
-09 Updated following WGLC. In particular, thanks to Joe Touch | ||||
(specific comments and commentary on style and tone); Dimitri Tikonov | ||||
(editorial); Christian Huitema (various); David Black (various). | ||||
Amended 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. | ||||
-10 Updated following additional feedback from 1st WGLC. Comments | ||||
from David Black; Tommy Pauly; Ian Swett; Mirja Kuehlewind; Peter | ||||
Gutmann; Ekr; and many others via the TSVWG list. Some people | ||||
thought that "needed" and "need" could | ||||
represent requirements in the document, etc. this has been clarified. | ||||
-11 Updated following additional feedback from Martin Thomson, and | ||||
corrections from other reviewers. | ||||
-12 Updated following additional feedback from reviewers. | ||||
-13 Updated following 2nd WGLC with comments from D.L.Black; T. | ||||
Herbert; Ekr; and other reviewers. | ||||
-14 Update to resolve feedback to rev -13. This moves the general | ||||
discussion of adding fields to transport packets to section 6, and | ||||
discusses with reference to material in RFC8558. | ||||
-15 Feedback from D.L. Black, T. Herbert, J. Touch, S. Dawkins | ||||
and M. Duke. Update to add reference to RFC7605. Clarify a focus | ||||
on immutable transport fields, rather than modifying middleboxes with | ||||
Tom H. Clarified Header Compression discussion only provides a list | ||||
of examples of HC methods for transport. Clarified port usage with | ||||
Tom H/Joe T. Removed some duplicated sentences, and minor edits. | ||||
Added NULL-ESP. Improved after initial feedback from Martin Duke. | ||||
-16 Editorial comments from Mohamed Boucadair. Added DTLS 1.3. | ||||
-17 Revised to satisfy ID-NITs and updates REFs to latest rev, | ||||
updated HC Refs; cited IAB guidance on security and privacy within | ||||
IETF specs. | ||||
-18 Revised based on AD review. | ||||
-19 Revised after additional AD review request, and request to | ||||
restructure. | ||||
-20 Revised after directorate reviews and IETF LC comments. | ||||
Gen-ART: | ||||
o While section 2 does include a discussion of traffic mis-ordering, | ||||
it does not include a discussion of ECMP, and the dependence of | ||||
ECMP on flow identification to avoid significant packet mis- | ||||
ordering.:: ECMP added as example. | ||||
o Section 5.1 of this document discusses the use of Hop-by-Hop IPv6 | ||||
options. It seems that it should acknowledge and discuss the | ||||
applicability of the sentence "New hop-by-hop options are not | ||||
recommended..." from section 4.8 of RFC 8200. I think a good | ||||
argument can be made in this case as to why (based on the rest of | ||||
the sentence from 8200) the recommendation does not apply to this | ||||
proposal. The document should make the argument.:: Quoted RFC | ||||
sentences directly to avoid interpretting them. | ||||
o I found the discussion of header compression slightly confusing. | ||||
Given that the TCP / UDP header is small even compared to the IP | ||||
header, it is difficult to see why encrypting it would have a | ||||
significant impact on header compression efficacy. :: Added a | ||||
preface that explains that HC methods are most effective for bit- | ||||
congestive links. | ||||
o The wording in section 6.2 on adding header information to an IP | ||||
packet has the drawback of seeming to imply that one could add (or | ||||
remove) such information in the network, without adding an | ||||
encapsulating header. That is not permitted by RFC 8200 (IPv6). | ||||
It would be good to clarify the first paragraph. (The example, | ||||
which talks about the sender putting in the information is, of | ||||
course, fine.) :: Unintended - added a sentence of preface. | ||||
SECDIR:: Previous revisions were updated following Early Review | ||||
comments. | ||||
OPSEC:: No additional changes were requested in the OPSEC review. | ||||
IETF LC:: Tom Herbert: Please refer to 8200 on EH :: addressed in | Acknowledgements | |||
response to Joel above. Michael Richardson, Fernando Gont, Tom | ||||
Herbert: Continuation of discussion on domains where EH might be (or | ||||
not) useful and the tussle on what information to reveal. Unclear | ||||
yet what additional text should be changed within this ID. | ||||
------------ | The authors would like to thank Mohamed Boucadair, Spencer Dawkins, | |||
Tom Herbert, Jana Iyengar, Mirja Kühlewind, Kyle Rose, Kathleen | ||||
Moriarty, Al Morton, Chris Seal, Joe Touch, Brian Trammell, Chris | ||||
Wood, Thomas Fossati, Mohamed Boucadair, Martin Thomson, David Black, | ||||
Martin Duke, Joel Halpern, and members of TSVWG for their comments | ||||
and feedback. | ||||
- 21 Revised after IESG review: | This work has received funding from the European Union's Horizon 2020 | |||
research and innovation programme under grant agreement No 688421 and | ||||
the EU Stand ICT Call 4. The opinions expressed and arguments | ||||
employed reflect only the authors' views. The European Commission is | ||||
not responsible for any use that might be made of that information. | ||||
Revision 21 includes revised text after comments from Zahed, Erik | This work has received funding from the UK Engineering and Physical | |||
Kline, Rob Wilton, Eric Vyncke, Roman Danyliw, and Benjamin Kaduk. | Sciences Research Council under grant EP/R04144X/1. | |||
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, Scotland | |||
Scotland | AB24 3UE | |||
United Kingdom | ||||
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, Scotland | |||
Scotland | G12 8QQ | |||
United Kingdom | ||||
EMail: csp@csperkins.org | Email: csp@csperkins.org | |||
URI: https://csperkins.org/ | URI: https://csperkins.org/ | |||
End of changes. 229 change blocks. | ||||
926 lines changed or deleted | 768 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |