draft-ietf-tsvwg-transport-encrypt-12.txt | draft-ietf-tsvwg-transport-encrypt-13.txt | |||
---|---|---|---|---|
TSVWG G. Fairhurst | TSVWG G. Fairhurst | |||
Internet-Draft University of Aberdeen | Internet-Draft University of Aberdeen | |||
Intended status: Informational C. Perkins | Intended status: Informational C. Perkins | |||
Expires: August 29, 2020 University of Glasgow | Expires: September 21, 2020 University of Glasgow | |||
February 26, 2020 | March 20, 2020 | |||
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-12 | draft-ietf-tsvwg-transport-encrypt-13 | |||
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 is 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, while also protecting metadata about the | ossification by middleboxes, while also protecting metadata about the | |||
communication. Current operational practice in some networks inspect | communication. Current operational practice in some networks inspect | |||
transport header information within the network, but this is no | transport header information within the network, but this is no | |||
longer possible when those transport headers are encrypted. This | longer possible when those transport headers are encrypted. This | |||
document discusses the possible impact when network traffic uses a | document discusses the possible impact when network traffic uses a | |||
protocol with an encrypted transport header. It suggests issues to | protocol with an encrypted transport header. It suggests issues to | |||
consider when designing new transport protocols, to account for | consider when designing new transport protocols or features. These | |||
network operations, prevent network ossification, enable transport | considerations arise from concerns such as network operations, | |||
evolution, and respect user privacy. | prevention of network ossification, enabling transport protocol | |||
evolution and respect for user privacy. | ||||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on August 29, 2020. | This Internet-Draft will expire on September 21, 2020. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2020 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 | |||
skipping to change at page 2, line 29 ¶ | skipping to change at page 2, line 29 ¶ | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Context and Rationale . . . . . . . . . . . . . . . . . . . . 4 | 2. Context and Rationale . . . . . . . . . . . . . . . . . . . . 4 | |||
2.1. Use of Transport Header Information in the Network . . . 6 | 2.1. Use of Transport Header Information in the Network . . . 6 | |||
2.2. Authentication of Transport Header Information . . . . . 7 | 2.2. Authentication of Transport Header Information . . . . . 7 | |||
2.3. Perspectives on Observable Transport Header Fields . . . 8 | 2.3. Perspectives on Observable Transport Header Fields . . . 8 | |||
3. Current uses of Transport Headers within the Network . . . . 11 | 3. Current uses of Transport Headers within the Network . . . . 11 | |||
3.1. Observing Transport Information in the Network . . . . . 12 | 3.1. Observing Transport Information in the Network . . . . . 12 | |||
3.2. Transport Measurement . . . . . . . . . . . . . . . . . . 19 | 3.2. Transport Measurement . . . . . . . . . . . . . . . . . . 20 | |||
3.3. Use for Network Diagnostics and Troubleshooting . . . . . 22 | 3.3. Use for Network Diagnostics and Troubleshooting . . . . . 23 | |||
3.4. Header Compression . . . . . . . . . . . . . . . . . . . 24 | 3.4. Header Compression . . . . . . . . . . . . . . . . . . . 24 | |||
4. Encryption and Authentication of Transport Headers . . . . . 24 | 4. Encryption and Authentication of Transport Headers . . . . . 25 | |||
4.1. Motivation . . . . . . . . . . . . . . . . . . . . . . . 24 | 4.1. Motivation . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
4.2. Approaches to Transport Header Protection . . . . . . . . 25 | 4.2. Approaches to Transport Header Protection . . . . . . . . 26 | |||
5. Addition of Transport Information to Network-Layer Headers . 27 | 5. Addition of Transport Information to Network-Layer Headers . 28 | |||
5.1. Use of OAM within a Maintenance Domain . . . . . . . . . 27 | 5.1. Use of OAM within a Maintenance Domain . . . . . . . . . 28 | |||
5.2. Use of OAM across Multiple Maintenance Domains . . . . . 27 | 5.2. Use of OAM across Multiple Maintenance Domains . . . . . 28 | |||
6. Implications of Protecting the Transport Headers . . . . . . 28 | 5.3. Exposing Transport Information at the Network Layer . . . 29 | |||
6.1. Independent Measurement . . . . . . . . . . . . . . . . . 29 | 6. Implications of Protecting the Transport Headers . . . . . . 30 | |||
6.2. Characterising "Unknown" Network Traffic . . . . . . . . 31 | 6.1. Independent Measurement . . . . . . . . . . . . . . . . . 30 | |||
6.3. Accountability and Internet Transport Protocols . . . . . 31 | 6.2. Characterising "Unknown" Network Traffic . . . . . . . . 32 | |||
6.4. Impact on Network Operations . . . . . . . . . . . . . . 32 | 6.3. Accountability and Internet Transport Protocols . . . . . 32 | |||
6.5. Impact on Research, Development and Deployment . . . . . 32 | 6.4. Impact on Network Operations . . . . . . . . . . . . . . 33 | |||
7. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . 34 | 6.5. Impact on Research, Development and Deployment . . . . . 34 | |||
8. Security Considerations . . . . . . . . . . . . . . . . . . . 36 | 7. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . 35 | |||
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 39 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 38 | |||
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 39 | 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 40 | |||
11. Informative References . . . . . . . . . . . . . . . . . . . 39 | 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 40 | |||
Appendix A. Revision information . . . . . . . . . . . . . . . . 46 | 11. Informative References . . . . . . . . . . . . . . . . . . . 40 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 48 | Appendix A. Revision information . . . . . . . . . . . . . . . . 48 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 50 | ||||
1. Introduction | 1. Introduction | |||
Transport protocols have supported end-to-end encryption of payload | Transport protocols have supported end-to-end encryption of payload | |||
data for many years. Examples include Transport Layer Security (TLS) | data for many years. Examples include Transport Layer Security (TLS) | |||
over TCP [RFC8446], Datagram TLS (DTLS) over UDP [RFC6347], Secure | over TCP [RFC8446], Datagram TLS (DTLS) over UDP [RFC6347], Secure | |||
RTP [RFC3711], and TCPcrypt [RFC8548] which permits opportunistic | RTP [RFC3711], and TCPcrypt [RFC8548] which permits opportunistic | |||
encryption of the TCP transport payload. Some of these also provide | encryption of the TCP transport payload. Some of these also provide | |||
integrity protection of all or part of the transport header. | integrity protection of all or part of the transport header. | |||
skipping to change at page 3, line 25 ¶ | skipping to change at page 3, line 25 ¶ | |||
terms of providing confidentiality and protecting user privacy. The | terms of providing confidentiality and protecting user privacy. The | |||
benefits have been widely discussed, for example in [RFC7624]. This | benefits have been widely discussed, for example in [RFC7624]. This | |||
document supports and encourages increased use of end-to-end payload | document supports and encourages increased use of end-to-end payload | |||
encryption in transport protocols. The implications of protecting | encryption in transport protocols. The implications of protecting | |||
the transport payload data are therefore not further discussed in | the transport payload data are therefore not further discussed in | |||
this document. | this document. | |||
A further level of protection can be achieved by encrypting the | A further level of protection can be achieved by encrypting the | |||
entire network layer payload, including both the transport headers | entire network layer payload, including both the transport headers | |||
and the transport payload data. This does not expose any transport | and the transport payload data. This does not expose any transport | |||
information to devices in the network, and therefore also prevents | header information to devices in the network, and therefore also | |||
modification along a network path. An example of encryption at the | prevents modification along a network path. An example of encryption | |||
network layer is the IPsec Encapsulating Security Payload (ESP) | at the network layer is the IPsec Encapsulating Security Payload | |||
[RFC4303] in tunnel mode. Virtual Private Networks (VPNs) typically | (ESP) [RFC4303] in tunnel mode. Virtual Private Networks (VPNs) | |||
also operate in this way. This form of encryption is not further | typically also operate in this way. This form of encryption is not | |||
discussed in this document. | further discussed in this document. | |||
There is also a middle ground, comprising transport protocols that | There is also a middle ground, comprising transport protocols that | |||
encrypt some, or all, of the transport layer header information, in | encrypt some, or all, of the transport layer header information, in | |||
addition to encrypting the transport payload data. An example of | addition to encrypting the transport payload data. An example of | |||
such a protocol, that is now seeing widespread interest and | such a protocol, that is now seeing widespread interest and | |||
deployment, is the QUIC transport protocol [I-D.ietf-quic-transport]. | deployment, is the QUIC transport protocol [I-D.ietf-quic-transport]. | |||
The encryption and authentication of transport header information can | The encryption and authentication of transport header information can | |||
prevent unwanted modification of transport header information by | prevent unwanted modification of transport header information by | |||
middleboxes, reducing the risk of protocol ossification. It also | network devices, reducing the risk of protocol ossification. It also | |||
reduces the amount of metadata about the progress of the transport | reduces the amount of metadata about the progress of the transport | |||
connection that is visible to the network [RFC8558]. | connection that is visible to the network [RFC8558]. In this | |||
document, the term "transport header information" is used to describe | ||||
transport layer information concerning the operation of the transport | ||||
protocol (i.e., information used by the transport protocol that might | ||||
be carried in a protocol header). This does not refer to transport | ||||
payload data (i.e., information transferred by the transport | ||||
service), which itself could be encrypted. | ||||
There is also, however, some impact, in that the widespread use of | There is also, however, some impact, in that the widespread use of | |||
transport encryption requires changes to network operations and other | transport header encryption requires changes to network operations | |||
practises. Operators could choose to do nothing special with | and other practises. Operators could choose to do nothing special | |||
encrypted traffic. In some cases, encryption could drive changes to | with encrypted traffic. In some cases, encryption could drive | |||
the design of network measurement for research, operational, and | changes to the design of network measurement for research, | |||
standardisation purposes. | operational, and standardisation purposes. | |||
The direction in which the use of transport header confidentiality | The direction in which the use of transport header encryption evolves | |||
evolves could have significant implications on the way the Internet | could have significant implications on the way the Internet | |||
architecture develops, and therefore needs to be considered as a part | architecture develops, and therefore needs to be considered as a part | |||
of protocol design. This include considering whether the endpoints | of protocol design and evolution. This include considering whether | |||
permit network devices to observe a specific field of the transport | the endpoints permit (or are able to permit) network devices to | |||
header; whether the devices could modify that field; and whether any | observe a specific information by explicitly exposing a transport | |||
modification can be detected by the receiving endpoint. | header field (or a field derived from transport header information) | |||
to the network; whether it is intended that a network device can | ||||
modify the field, whether the devices are able to modify that field; | ||||
and whether any modification along the network path can be detected | ||||
by the receiving endpoint. | ||||
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, but RFC7528 also notes that "Making | the design of IETF protocols, but RFC7528 also notes that "Making | |||
networks unmanageable to mitigate PM is not an acceptable outcome, | networks unmanageable to mitigate PM is not an acceptable outcome, | |||
but 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". In support of achieving that balance, this | tension are considered". In support of achieving that balance, this | |||
document discusses design and deployment considerations for use of | document discusses design and deployment considerations for use of | |||
transport header encryption to protect against pervasive monitoring. | transport header encryption to protect against pervasive monitoring. | |||
The transport protocols developed for the Internet are used across a | The transport protocols developed for the Internet are used across a | |||
wide range of paths across network segments with many different | wide range of paths across network segments with many different | |||
regulatory, commercial, and engineering considerations. This | regulatory, commercial, and engineering considerations. This | |||
document considers some of the costs and changes to network | document considers some of the costs and changes to network | |||
management and research that are implied by widespread use of | management and research that are implied by widespread use of | |||
transport protocols that encrypt their transport header information. | transport protocols that encrypt their transport header information. | |||
It reviews the implications of developing transport protocols that | It reviews the implications of developing transport protocols that | |||
use end-to-end encryption to provide confidentiality of their | use end-to-end encryption to provide confidentiality of their | |||
transport layer headers, and considers the effect of such changes on | transport layer headers, and considers the effect of such changes on | |||
transport protocol design and network operations. It also considers | transport protocol design, transport protocol evolution, and network | |||
some anticipated implications on transport and application evolution. | operations. It also considers some anticipated implications on | |||
This provides considerations relating to the design of transport | application evolution. This provides considerations relating to the | |||
protocols that protect their header information and respect user | design of transport protocols and features where the transport | |||
privacy. | protocol encrypts some or all of their header information. | |||
2. Context and Rationale | 2. Context and Rationale | |||
The transport layer provides end-to-end interactions between | The transport layer provides end-to-end interactions between | |||
endpoints (processes) using an Internet path. Transport protocols | endpoints (processes) using an Internet path. Transport protocols | |||
layer over the network-layer service, and are usually sent in the | layer over the network-layer service, and are usually sent in the | |||
payload of network-layer packets. They support end-to-end | payload of network-layer packets. Transport protocols support end- | |||
communication between applications, using higher-layer protocols | to-end communication between applications, using higher-layer | |||
running on the end systems (transport endpoints). | protocols running on the end systems (i.e., transport endpoints). | |||
This simple architectural view does not present one of the core | This simple architectural view does not present one of the core | |||
functions of an Internet transport: to discover and adapt to the | functions of an Internet transport: to discover and adapt to the | |||
network path that is currently being used. The design of Internet | characteristics of the network path that is currently being used. | |||
transport protocols is as much about trying to avoid the unwanted | The design of Internet transport protocols is as much about trying to | |||
side effects of congestion on a flow and other capacity-sharing | avoid the unwanted side effects of congestion on a flow and other | |||
flows, avoiding congestion collapse, adapting to changes in the path | capacity-sharing flows, avoiding congestion collapse, adapting to | |||
characteristics, etc., as it is about end-to-end feature negotiation, | changes in the path characteristics, etc., as it is about end-to-end | |||
flow control, and optimising for performance of a specific | feature negotiation, flow control, and optimising for performance of | |||
application. | a specific application. | |||
Transport headers have end-to-end meaning, but have often been | Transport headers have end-to-end meaning, but have often been | |||
observed by equipment within the network. Transport protocol | observed by equipment within the network. Transport protocol | |||
specifications have not tended to consider this, and have failed to | specifications have not tended to consider this, and have often | |||
indicate what parts of the transport header are intended to be | failed to indicate what parts of the transport header are intended to | |||
invariant across protocol versions and visible to the network; what | be invariant across protocol versions and visible to the network; to | |||
parts of the header can be modified by the network to signal to the | specify what parts of the transport header can be modified by the | |||
transport, and in what way; and what parts of the header are private | network to signal to the transport, and in what way; and to define | |||
and/or expected to change in future, and need to be protected for | which parts of the header are private and/or expected to change in | |||
privacy or to prevent protocol ossification. | future and which need to be protected for privacy or to prevent | |||
protocol ossification. This motivates a need to change the way | ||||
transport protocols are designed, modified, and specified. | ||||
Increasing concern about pervasive network monitoring | Increasing concern about pervasive network monitoring | |||
[RFC7258][RFC7624], and growing awareness of the problem of protocol | [RFC7258][RFC7624], and growing awareness of the problem of protocol | |||
ossification caused by middlebox interference with Internet traffic, | ossification caused by middlebox interference with Internet traffic, | |||
has motivated a shift in transport protocol design. Recent transport | has motivated a shift in transport protocol design. Recent transport | |||
protocols, such as QUIC [I-D.ietf-quic-transport], encrypt the | protocols, such as QUIC [I-D.ietf-quic-transport], encrypt the | |||
majority of their transport headers to prevent observation and | majority of their transport headers to prevent observation and | |||
protect against modification by the network, and to make explicit | protect against modification by the network, and to make explicit | |||
their invariants and what is intended to be visible to the network. | their invariants and what is intended to be visible to the network. | |||
Transport header encryption is expected to form a core part of future | Transport header encryption is expected to form a core part of future | |||
transport protocol designs. It can help to protect against pervasive | transport protocol designs. It can help to protect against pervasive | |||
monitoring, improve privacy, and reduce protocol ossification. | monitoring, improve privacy, and reduce protocol ossification. | |||
Transport protocols that use header encryption with secure key | Transport protocols that use header encryption with secure key | |||
distribution can provide confidentiality and protection for some, or | distribution can provide confidentiality and protection for some, or | |||
all, of the transport header information, controlling what is visible | all, of the transport header, controlling what is visible to, and can | |||
to, and can be modified by, the network. | be modified by, the network. | |||
The increased use of transport header encryption has benefits, but | The increased use of transport header encryption has benefits, but | |||
also has implications for the broader ecosystem. The transport | also has implications for the broader ecosystem. The transport | |||
community has, to date, relied heavily on measurements and insights | community has, to date, relied heavily on measurements and insights | |||
from the network operations community to understand protocol | from the network operations community to understand protocol | |||
behaviour, and to inform the selection of appropriate mechanisms to | behaviour, and to inform the selection of appropriate mechanisms to | |||
ensure a safe, reliable, and robust Internet. In turn, network | ensure a safe, reliable, and robust Internet. In turn, network | |||
operators and access providers have relied upon being able to observe | operators and access providers have relied upon being able to observe | |||
traffic patterns and requirements, both in aggregate and at the flow | traffic patterns and requirements, both in aggregate and at the flow | |||
level, to help understand and optimise the behaviour of their | level, to help understand and optimise the behaviour of their | |||
networks. Transport header encryption can be used to intentionally | networks. Transport header encryption can be used to intentionally | |||
limit the information available to network observers. The widespread | limit the information available to network observers. The widespread | |||
use of transport header encryption would therefore limit such | use of transport header encryption would therefore limit such | |||
observations in future. It is important to understand how transport | observations, unless transport protocols are modified to selectively | |||
header information is used in the network, to allow future protocol | expose transport header information outside of the encrypted | |||
designs to make an informed choice on what, if any, headers to expose | transport header. It is important to understand how transport header | |||
to the network. | information is used by networks, to allow future protocol designs to | |||
make an informed choice on what, if any, transport layer information | ||||
to expose to the network. | ||||
2.1. Use of Transport Header Information in the Network | 2.1. Use of Transport Header Information in the Network | |||
In-network measurement of transport flow characteristics can be used | In-network measurement of transport flow characteristics can be used | |||
to enhance performance, control cost and improve service reliability. | to enhance performance, control cost and improve service reliability. | |||
To support network operations and enhance performance, some operators | To support network operations and enhance performance, some operators | |||
have deployed functionality that utilises on-path observations of the | have deployed functionality that utilises on-path observations of the | |||
transport headers of packets passing through their network. | transport headers of packets passing through their network. | |||
When network devices rely on the presence of a header field or the | When network devices rely on the presence of a header field or the | |||
semantics of specific header information, this can lead to | semantics of specific header information, this can lead to | |||
ossification where an endpoint has to supply a specific header to | ossification where an endpoint has to supply a specific header to | |||
receive the network service that it desires. | receive the network service that it desires. | |||
In some cases, network-layer use of transport header information can | In some cases, network-layer use of transport layer information can | |||
be benign or advantageous to the protocol (e.g., recognising the | be benign or advantageous to the protocol (e.g., recognising the | |||
start of a TCP connection, providing header compression for a Secure | start of a TCP connection, providing header compression for a Secure | |||
RTP flow, or explicitly using exposed protocol information to provide | RTP flow, or explicitly using exposed protocol information to provide | |||
consistent decisions by on-path devices). Header compression (e.g., | consistent decisions by on-path devices). Header compression (e.g., | |||
[RFC5795]) depends understanding of transport header and the way | [RFC5795]) depends understanding of transport header and the way | |||
fields change packet-by-packet; as also do techniques to improve TCP | fields change packet-by-packet; as also do techniques to improve TCP | |||
performance by transparent modification of acknowledgement traffic | performance by transparent modification of acknowledgement traffic | |||
[RFC3449]. Introducing a new transport protocol or changes to | [RFC3449]. Introducing a new transport protocol or changes to | |||
existing transport header information prevent these methods being | existing transport header information prevent these methods being | |||
used or require the network devices to be updated. | used or require the network devices to be updated. | |||
skipping to change at page 7, line 40 ¶ | skipping to change at page 7, line 49 ¶ | |||
People seeking to understand network traffic could still come to rely | People seeking to understand network traffic could still come to rely | |||
on pattern inferences and other heuristics or machine learning to | on pattern inferences and other heuristics or machine learning to | |||
derive measurement data and as the basis for network forwarding | derive measurement data and as the basis for network forwarding | |||
decisions [RFC8546]. This can also create dependencies on the | decisions [RFC8546]. This can also create dependencies on the | |||
transport protocol, or the patterns of traffic it can generate, also | transport protocol, or the patterns of traffic it can generate, also | |||
in time resulting in ossification of the service. | in time resulting in ossification of the service. | |||
2.2. Authentication of Transport Header Information | 2.2. Authentication of Transport Header Information | |||
The designers of a transport protocol decide whether to encrypt all, | The designers of a transport protocol decide whether to encrypt all, | |||
or a part of, the transport header information. Section 4 of RFC8558 | or a part of, the transport layer information. Section 4 of RFC8558 | |||
states: "Anything exposed to the path should be done with the intent | states: "Anything exposed to the path should be done with the intent | |||
that it be used by the network elements on the path" [RFC8558]. New | that it be used by the network elements on the path" [RFC8558]. | |||
protocol designs can decide not to encrypt certain transport header | ||||
fields, making those fields observable in the network. Where fields | Protocol designs can decide not to encrypt certain transport header | |||
are intended to immutable (i.e., can be observed, but not modified by | fields, making those fields observable in the network, or can choose | |||
to expose new fields designed to explicitly expose observable | ||||
transport layer information to the network. Where exposed fields are | ||||
intended to be immutable (i.e., can be observed, but not modified by | ||||
a network device), the endpoints are encouraged to use authentication | a network device), the endpoints are encouraged to use authentication | |||
to provide a cryptographic integrity check that includes these | to provide a cryptographic integrity check that includes these | |||
immutable fields to detect any manipulation by network devices. | immutable fields to detect any manipulation by network devices. | |||
Making part of a transport header observable can lead to ossification | Making part of a transport header observable, or exposing new header | |||
of that part of a header, as middleboxes come to rely on observations | fields, can lead to ossification of that part of a header as network | |||
of the exposed fields. A protocol design that provides an observable | devices come to rely on observations of the exposed fields. A | |||
field might want to avoid inspection restricting the choice of usable | protocol design that provides an observable field might want to | |||
values in the field by intentionally varying the format and/or value | restrict the choice of usable values in a field by intentionally | |||
of the field to reduce the chance of ossification (see Section 4). | varying the format and/or value of the field to reduce the chance of | |||
ossification (see Section 4). | ||||
2.3. Perspectives on Observable Transport Header Fields | 2.3. Perspectives on Observable Transport Header Fields | |||
Transport headers fields have been observed within the network for a | Transport headers fields have been observed within the network for a | |||
variety of purposes. Some of these are related to network management | variety of purposes. Some of these are related to network management | |||
and operations. The lists below, and in the following section, seek | and operations. The lists below, and in the following section, seek | |||
to identify some of these uses and the implications of the increased | to identify some of these uses and the implications of the increased | |||
use of transport header encryption. This analysis does not judge | use of transport header encryption. This analysis does not judge | |||
whether specific practises are necessary, or endorse the use of any | whether specific practises are necessary, or endorse the use of any | |||
specific approach. | specific approach. | |||
skipping to change at page 8, line 36 ¶ | skipping to change at page 8, line 50 ¶ | |||
application. | application. | |||
When transport header information is not | When transport header information is not | |||
observable, it cannot be used by network | observable, it cannot be used by network | |||
operators. Some operators might work without | operators. Some operators might work without | |||
that information, or some might turn to more | that information, or some might turn to more | |||
ambitious ways to collect, estimate, or infer | ambitious ways to collect, estimate, or infer | |||
this data. (Operational practises aimed at | this data. (Operational practises aimed at | |||
guessing transport parameters are out of scope | guessing transport parameters are out of scope | |||
for this document, and are only mentioned here to | for this document, and are only mentioned here to | |||
recognize that encryption does not stop operators | recognise that encryption does not stop operators | |||
from attempting to apply practises that have been | from attempting to apply practises that have been | |||
used with unencrypted transport headers.) | used with unencrypted transport headers.) | |||
See also Section 3, Section 5, Section 6.4 and s | See also Section 3, Section 5, Section 6.4 and s | |||
(Section 6.5). | (Section 6.5). | |||
Analysis of Aggregate Traffic: Observable transport headers have | Analysis of Aggregate Traffic: Observable transport headers have | |||
been utilised to determine which transport | been utilised to determine which transport | |||
protocols and features are being used across a | protocols and features are being used across a | |||
network segment, and to measure trends in the | network segment, and to measure trends in the | |||
pattern of usage. For some use cases, end-to-end | pattern of usage. For some use cases, end-to-end | |||
measurements/traces are sufficient and can assist | measurements/traces are sufficient and can assist | |||
in developing and debugging new transports and | in developing and debugging new transports and | |||
skipping to change at page 9, line 13 ¶ | skipping to change at page 9, line 25 ¶ | |||
important to relate observations to specific | important to relate observations to specific | |||
equipment/configurations or particular network | equipment/configurations or particular network | |||
segments. | segments. | |||
This information can help anticipate the demand | This information can help anticipate the demand | |||
for network upgrades and roll-out, or affect on- | for network upgrades and roll-out, or affect on- | |||
going traffic engineering activities performed by | going traffic engineering activities performed by | |||
operators such as determining which parts of the | operators such as determining which parts of the | |||
path contribute delay, jitter, or loss. | path contribute delay, jitter, or loss. | |||
Tools that rely upon observing headers, could | Tools that rely upon observing specific headers, | |||
fail to produce useful data when those headers | could fail to produce useful data when those | |||
are encrypted. While this impact could, in many | headers are encrypted. While this impact could, | |||
cases, be small, there are scenarios where | in many cases, be small, there are scenarios | |||
operators have actively monitored and supported | where operators have actively monitored and | |||
particular services, e.g., to explore issues | supported particular services, e.g., to explore | |||
relating to Quality of Service (QoS), to perform | issues relating to Quality of Service (QoS), to | |||
fast re-routing of critical traffic, to mitigate | perform fast re-routing of critical traffic, to | |||
the characteristics of specific radio links, and | mitigate the characteristics of specific radio | |||
so on. | links, and so on. | |||
See also Section 3.1 to Section 3.2 and | See also Section 3.1 to Section 3.2 and | |||
Section 5. | Section 5. | |||
Troubleshooting: Observable transport headers have been utilised | Troubleshooting: Observable transport headers have been utilised | |||
by operators as a part of network troubleshooting | by operators as a part of network troubleshooting | |||
and diagnostics. Metrics derived from this | and diagnostics. Metrics derived from this | |||
observed header information can help localise the | observed header information can help localise the | |||
network segment introducing the loss or latency. | network segment introducing the loss or latency. | |||
Effective troubleshooting often requires | Effective troubleshooting often requires | |||
skipping to change at page 10, line 10 ¶ | skipping to change at page 10, line 22 ¶ | |||
layers to provide these functions. [RFC8558] | layers to provide these functions. [RFC8558] | |||
motivates the design of signals to focus on their | motivates the design of signals to focus on their | |||
usage, decoupled from the internal design of the | usage, decoupled from the internal design of the | |||
protocol state machine. This could avoid | protocol state machine. This could avoid | |||
ossifying the protocol around the design of a | ossifying the protocol around the design of a | |||
specific protocol mechanism. | specific protocol mechanism. | |||
See also Section 3.3 and Section 5. | See also Section 3.3 and Section 5. | |||
Network Protection: Observable transport headers currently provide | Network Protection: Observable transport headers currently provide | |||
useful input to classify and detect anomalous | information that is useful input to classify and | |||
events, such as changes in application behaviour | detect anomalous events, such as changes in | |||
or distributed denial of service attacks. | application behaviour or distributed denial of | |||
Operators often seek to uniquely disambiguate | service attacks. Operators often seek to | |||
unwanted traffic. | uniquely disambiguate unwanted traffic. | |||
Where flows cannot be disambiguated based on | Where flows cannot be disambiguated based on | |||
transport information, this could result in less- | transport header information, this could result | |||
efficient identification of unwanted traffic, the | in less-efficient identification of unwanted | |||
introduction of rate limits for uncharacterised | traffic, the introduction of rate limits for | |||
traffic, or the use of heuristics to identify | uncharacterised traffic, or the use of heuristics | |||
anomalous flows. | to identify anomalous flows. | |||
See also Section 6.2 and Section 6.3. | See also Section 6.2 and Section 6.3. | |||
Verifiable Data: Observable transport headers can be used to | Verifiable Data: Observable transport headers can be used to | |||
provide open and verifiable measurements to | provide open and verifiable measurements to | |||
support operations, research, and protocol | support operations, research, and protocol | |||
development. The ability of multiple stake | development. The ability of multiple stake | |||
holders to review transport header traces helps | holders to review transport header traces helps | |||
develop insight into performance and traffic | develop insight into performance and traffic | |||
contribution of specific variants of a protocol. | contribution of specific variants of a protocol. | |||
Independently observed data is important to help | Independently observed data is important to help | |||
ensure the health of the research and development | ensure the health of the research and development | |||
communities. | communities. | |||
When transport header information can not be | When transport header information can not be | |||
observed, this can reduce the range of actors | observed, this can reduce the range of actors | |||
that can observe data. This limits the | that can observe data. This limits the | |||
information sources available to the Internet | information sources available to the Internet | |||
community to understand the operation of new | community to understand the operation of | |||
transport protocols, reducing information to | transport protocols, reducing information to | |||
inform design decisions and standardisation of | inform design decisions and standardisation of | |||
the new protocols and related operational | the new protocols/features and related | |||
practises | operational practises | |||
See also Section 6. | See also Section 6. | |||
SLA Compliance: Observable transport headers coupled with | SLA Compliance: Observable transport headers coupled with | |||
published transport specifications allow | published transport specifications allow | |||
operators and regulators to explore the | operators and regulators to explore the | |||
compliance with Service Level Agreements (SLAs). | compliance with Service Level Agreements (SLAs). | |||
When transport header information can not be | When transport header information can not be | |||
observed, other methods have to be found to | observed, other methods have to be found to | |||
skipping to change at page 11, line 47 ¶ | skipping to change at page 12, line 10 ¶ | |||
There are architectural challenges and considerations in the way | There are architectural challenges and considerations in the way | |||
transport protocols are designed, and the ability to characterise and | transport protocols are designed, and the ability to characterise and | |||
compare different transport solutions [Measurement]. The decision | compare different transport solutions [Measurement]. The decision | |||
about which transport headers fields are made observable offers | about which transport headers fields are made observable offers | |||
trade-offs around header confidentiality versus header observability | trade-offs around header confidentiality versus header observability | |||
(including non-encrypted but authenticated header fields) for network | (including non-encrypted but authenticated header fields) for network | |||
operations and management, and the implications for ossification and | operations and management, and the implications for ossification and | |||
user privacy. Different parties will view the relative importance of | user privacy. Different parties will view the relative importance of | |||
these differently. For some, the benefits of encrypting all | these differently. For some, the benefits of encrypting all | |||
transport headers outweigh the impact of doing so; others might | transport headers outweigh the impact of doing so; others might | |||
analyse the security, privacy and ossification impacts and arrive at | analyse the security, privacy and ossification impacts, and arrive at | |||
a different trade-off. | a different trade-off. | |||
To understand the implications, it is necessary to understand how | To understand the implications, it is necessary to understand how | |||
transport layer headers are currently observed and/or modified by | transport layer headers are currently observed and/or modified by | |||
middleboxes within the network. This section therefore reviews | middleboxes within the network. This section therefore reviews | |||
examples of current usage. It does not consider the intentional | examples of current usage. It does not consider the intentional | |||
modification of transport headers by middleboxes (such as in Network | modification of transport headers by middleboxes (such as in Network | |||
Address Translation, NAT, or Firewalls). Common issues concerning IP | Address Translation, NAT, or Firewalls). Common issues concerning IP | |||
address sharing are described in [RFC6269]. | address sharing are described in [RFC6269]. | |||
skipping to change at page 12, line 26 ¶ | skipping to change at page 12, line 38 ¶ | |||
the header, e.g., by defining the wire image [RFC8546]. As | the header, e.g., by defining the wire image [RFC8546]. As | |||
protocols evolve over time, new transport headers could be | protocols evolve over time, new transport headers could be | |||
introduced. Detecting this could require interpretation of | introduced. Detecting this could require interpretation of | |||
protocol version information or connection setup information; | protocol version information or connection setup information; | |||
o Observing transport header information depends on the observer | o Observing transport header information depends on the observer | |||
knowing the location and the syntax of the observable transport | knowing the location and the syntax of the observable transport | |||
headers. IETF transport protocols can specify this information. | headers. IETF transport protocols can specify this information. | |||
The following subsections describe various ways that observable | The following subsections describe various ways that observable | |||
transport information has been utilised. | transport header information has been utilised. | |||
3.1.1. Flow Identification Using Transport Layer Headers | 3.1.1. Flow Identification Using Transport Layer Headers | |||
Flow/Session identification [RFC8558] is a common function. For | Flow/Session identification [RFC8558] is a common function. For | |||
example, performed by measurement activities, QoS classification, | example, performed by measurement activities, QoS classification, | |||
firewalls, Denial of Service, DOS, prevention. | firewalls, Denial of Service, DOS, prevention. | |||
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 | |||
skipping to change at page 13, line 15 ¶ | skipping to change at page 13, line 27 ¶ | |||
When transport header information can not be observed, this removes | When transport header information can not 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. For example, an operator | based on the analysis of traffic patterns. For example, an operator | |||
that cannot access the Session Description Protocol (SDP) session | that cannot access the Session Description Protocol (SDP) session | |||
descriptions to classify a flow as audio traffic, might instead use | descriptions to classify a flow as audio traffic, might instead use | |||
(possibly less-reliable) heuristics to infer that short UDP packets | (possibly less-reliable) heuristics to infer that short UDP packets | |||
with regular spacing carry audio traffic. Operational practises | with regular spacing carry audio traffic. Operational practises | |||
aimed at inferring transport parameters are out of scope for this | aimed at inferring transport parameters are out of scope for this | |||
document, and are only mentioned here to recognize that encryption | document, and are only mentioned here to recognise that encryption | |||
does not prevent operators from attempting to apply practises that | does not prevent operators from attempting to apply practises that | |||
were used with unencrypted transport headers. The IAB have provided | were used with unencrypted transport headers. The IAB have provided | |||
a summary of expected implications of increased encryption on network | a summary of expected implications of increased encryption on network | |||
functions that use the observable headers [RFC8546] and describe the | functions that use the observable headers [RFC8546] and describe the | |||
expected benefits of designs that explicitly declare protocol | expected benefits of designs that explicitly declare protocol | |||
invariant header information that can be used for this purpose. | invariant header information that can be used for this purpose. | |||
3.1.2. Metrics derived from Transport Layer Headers | 3.1.2. Metrics derived from Transport Layer Headers | |||
Observable transport headers enable explicit measurement and analysis | Observable transport headers enable explicit measurement and analysis | |||
of protocol performance, network anomalies, and failure pathologies | of protocol performance, network anomalies, and failure pathologies | |||
at any point along the Internet path. Some operators use passive | at any point along the Internet path. Some operators use passive | |||
monitoring to manage their portion of the Internet by characterizing | monitoring to manage their portion of the Internet by characterising | |||
the performance of link/network segments. Inferences from transport | the performance of link/network segments. Inferences from transport | |||
headers are used to derive performance metrics. A variety of open | headers are used to derive performance metrics. A variety of open | |||
source and commercial tools have been deployed that utilise transport | source and commercial tools have been deployed that utilise transport | |||
header information in this way to derive the following metrics: | header information in this way to derive the following metrics: | |||
Traffic Rate and Volume: Volume measures per-application can be used | Traffic Rate and Volume: Volume measures per-application can be used | |||
to characterise the traffic that uses a network segment or the | to characterise the traffic that uses a network segment or the | |||
pattern of network usage. Observing the protocol sequence number | pattern of network usage. Observing the protocol sequence number | |||
and packet size offers one way to measure this (e.g., measurements | and packet size offers one way to measure this (e.g., measurements | |||
observing counters in periodic reports such as RTCP; or | observing counters in periodic reports such as RTCP; or | |||
skipping to change at page 14, line 22 ¶ | skipping to change at page 14, line 33 ¶ | |||
key performance metric, utilising this to detect changes in the | key performance metric, utilising this to detect changes in the | |||
offered service. | offered service. | |||
There are various causes of loss, including: corruption of link | There are various causes of loss, including: corruption of link | |||
frames (e.g., 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 pre-emption), | |||
and policing (traffic management). Understanding flow loss rates | and policing (traffic management). Understanding flow loss rates | |||
requires either observing sequence numbers in network or transport | requires either observing sequence numbers in network or transport | |||
headers, or maintaining per-flow packet counters (flow | headers, or maintaining per-flow packet counters (flow | |||
identification often requires transport header information). Per- | identification often requires transport layer information). Per- | |||
hop loss can also sometimes be monitored at the interface level by | hop loss can also sometimes be monitored at the interface level by | |||
devices in the network. | devices in the network. | |||
Losses can often occur as bursts, randomly-timed events, etc. The | Losses can often occur as bursts, randomly-timed events, etc. The | |||
pattern of loss can provide insight into the cause of loss. It | pattern of loss can provide insight into the cause of loss. It | |||
can also be valuable to understand the conditions under which loss | can also be valuable to understand the conditions under which loss | |||
occurs, which usually requires relating loss to the traffic | occurs, which usually requires relating loss to the traffic | |||
flowing on the network node/segment at the time of loss. This can | flowing on the network node/segment at the time of loss. This can | |||
also help identify cases where loss could have been wrongly | also help identify cases where loss could have been wrongly | |||
identified, or where the transport did not require transmission of | identified, or where the transport did not require transmission of | |||
skipping to change at page 14, line 52 ¶ | skipping to change at page 15, line 15 ¶ | |||
and retransmission of packets, for example by observing packet | and retransmission of packets, for example by observing packet | |||
sequence numbers in the TCP or the Real-time Transport Protocol | sequence numbers in the TCP or the Real-time Transport Protocol | |||
(RTP) headers [RFC3550]. | (RTP) headers [RFC3550]. | |||
Latency: Latency is a key performance metric that impacts | Latency: Latency is a key performance metric that impacts | |||
application and user-perceived response times. It often | application and user-perceived response times. It often | |||
indirectly impacts throughput and flow completion time. This | indirectly impacts throughput and flow completion time. This | |||
determines the reaction time of the transport protocol itself, | determines the reaction time of the transport protocol itself, | |||
impacting flow setup, congestion control, loss recovery, and other | impacting flow setup, congestion control, loss recovery, and other | |||
transport mechanisms. The observed latency can have many | transport mechanisms. The observed latency can have many | |||
components [Latency]. Of these, unnecessary/unwanted queuing in | components [Latency]. Of these, unnecessary/unwanted queueing in | |||
network buffers has often been observed as a significant factor | network buffers has often been observed as a significant factor | |||
[bufferbloat]. Once the cause of unwanted latency has been | [bufferbloat]. Once the cause of unwanted latency has been | |||
identified, this can often be eliminated. | identified, this can often be eliminated. | |||
To measure latency across a part of a path, an observation point | To measure latency across a part of a path, an observation point | |||
[RFC7799] can measure the experienced round trip time (RTT) using | [RFC7799] can measure the experienced round trip time (RTT) using | |||
packet sequence numbers and acknowledgements, or by observing | packet sequence numbers and acknowledgements, or by observing | |||
header timestamp information. Such information allows an | header timestamp information. Such information allows an | |||
observation point in the network to determine not only the path | observation point in the network to determine not only the path | |||
RTT, but also allows measurement of the upstream and downstream | RTT, but also allows measurement of the upstream and downstream | |||
skipping to change at page 17, line 16 ¶ | skipping to change at page 17, line 27 ¶ | |||
utilise information about traffic volumes or patterns of interaction | utilise information about traffic volumes or patterns of interaction | |||
to deduce metrics. | to deduce metrics. | |||
An alternative approach is to use in-network techniques to add and | An alternative approach is to use in-network techniques to add and | |||
observe packet headers to facilitate measurements while traffic | observe packet headers to facilitate measurements while traffic | |||
traverses an operational network. This approach does not require the | traverses an operational network. This approach does not require the | |||
cooperation of an endpoint. | cooperation of an endpoint. | |||
3.1.3. Transport use of Network Layer Header Fields | 3.1.3. Transport use of Network Layer Header Fields | |||
Information from the transport protocol is used by a multi-field | Information from the transport header is used by a multi-field | |||
classifier as a part of policy framework. Policies are commonly used | classifier as a part of policy framework. Policies are commonly used | |||
for management of the QoS or Quality of Experience (QoE) in resource- | for management of the QoS or Quality of Experience (QoE) in resource- | |||
constrained networks, and by firewalls to implement access rules (see | constrained networks, and by firewalls to implement access rules (see | |||
also Section 2.2.2 of [RFC8404]). Network-layer classification | also Section 2.2.2 of [RFC8404]). Network-layer classification | |||
methods that rely on a multi-field classifier (e.g., inferring QoS | methods that rely on a multi-field classifier (e.g., inferring QoS | |||
from the 5-tuple or choice of application protocol) are incompatible | from the 5-tuple or choice of application protocol) are incompatible | |||
with transport protocols that encrypt the transport information. | with transport protocols that encrypt the transport header | |||
Traffic that cannot be classified typically receives a default | information. Traffic that cannot be classified typically receives a | |||
treatment. | default treatment. | |||
Transport information can also be explicitly set in network-layer | Transport layer information can also be explicitly carried in | |||
header fields that are not encrypted, serving as a replacement/ | network-layer header fields that are not encrypted, serving as a | |||
addition to the exposed transport information [RFC8558]. This | replacement/addition to the exposed transport header information | |||
information can enable a different forwarding treatment by the | [RFC8558]. This information can enable a different forwarding | |||
network, even when a transport employs encryption to protect other | treatment by the network, even when a transport employs encryption to | |||
header information. | protect other header information. | |||
The user of a transport that multiplexes multiple sub-flows might | The user of a transport that multiplexes multiple sub-flows might | |||
want to obscure the presence and characteristics of these sub-flows. | want to obscure the presence and characteristics of these sub-flows. | |||
On the other hand, an encrypted transport could set the network-layer | On the other hand, an encrypted transport could set the network-layer | |||
information to indicate the presence of sub-flows, and to reflect the | information to indicate the presence of sub-flows, and to reflect the | |||
service requirements of individual sub-flows. There are several ways | service requirements of individual sub-flows. There are several ways | |||
this could be done: | this could be done: | |||
IP Address: Applications normally expose the addresses used by | IP Address: Applications normally expose the addresses used by | |||
endpoints, and this is used in the forwarding decisions in network | endpoints, and this is used in the forwarding decisions in network | |||
devices. Address and other protocol information can be used by a | devices. Address and other protocol information can be used by a | |||
Multi-Field (MF) classifier to determine how traffic is treated | Multi-Field (MF) classifier to determine how traffic is treated | |||
[RFC2475], and hence the quality of experience for a flow. | [RFC2475], and hence the quality of experience for a flow. | |||
Using the IPv6 Network-Layer Flow Label: A number of Standards Track | Using the IPv6 Network-Layer Flow Label: A number of Standards Track | |||
and Best Current Practice RFCs (e.g., [RFC8085], [RFC6437], | and Best Current Practice RFCs (e.g., [RFC8085], , | |||
[RFC6438]) encourage endpoints to set the IPv6 Flow label field of | [RFC6437][RFC6438]) encourage endpoints to set the IPv6 Flow label | |||
the network-layer header. IPv6 "source nodes SHOULD assign each | field of the network-layer header. IPv6 "source nodes SHOULD | |||
unrelated transport connection and application data stream to a | assign each unrelated transport connection and application data | |||
new flow" [RFC6437]. A multiplexing transport could choose to use | stream to a new flow" [RFC6437]. A multiplexing transport could | |||
multiple Flow labels to allow the network to independently forward | choose to use multiple Flow labels to allow the network to | |||
sub-flows. RFC6437 provides further guidance on choosing a flow | independently forward sub-flows. RFC6437 provides further | |||
label value, stating these "should be chosen such that their bits | guidance on choosing a flow label value, stating these "should be | |||
exhibit a high degree of variability", and chosen so that "third | chosen such that their bits exhibit a high degree of variability", | |||
parties should be unlikely to be able to guess the next value that | and chosen so that "third parties should be unlikely to be able to | |||
a source of flow labels will choose". | 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 queuing and forwarding [RFC6438], for example | inform network-layer queueing and forwarding [RFC6438], for | |||
with Equal Cost Multi-Path routing and Link Aggregation [RFC6294]. | example with Equal Cost Multi-Path routing and Link Aggregation | |||
Considerations when using IPsec are further described in | [RFC6294]. Considerations when using IPsec are further described | |||
[RFC6438]. | in [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 linkability that a network device could observe. | introducing linkability that a network device could observe. | |||
Inappropriate use by the transport can have privacy implications | Inappropriate use by the transport can have privacy implications | |||
(e.g., assigning the same label to two independent flows that | (e.g., assigning the same label to two independent flows that | |||
ought not to be classified the same). | ought not to be classified the same). | |||
Using the Network-Layer Differentiated Services Code Point: | Using the Network-Layer Differentiated Services Code Point: | |||
Applications can expose their delivery expectations to the network | Applications can expose their delivery expectations to the network | |||
by setting the Differentiated Services Code Point (DSCP) field of | by setting the Differentiated Services Code Point (DSCP) field of | |||
IPv4 and IPv6 packets [RFC2474]. For example, WebRTC applications | IPv4 and IPv6 packets [RFC2474]. For example, WebRTC applications | |||
identify different forwarding treatments for individual sub-flows | identify different forwarding treatments for individual sub-flows | |||
(audio vs. video) based on the value of the DSCP field | (audio vs. video) based on the value of the DSCP field | |||
[I-D.ietf-tsvwg-rtcweb-qos]). This provides explicit information | [I-D.ietf-tsvwg-rtcweb-qos]). This provides explicit information | |||
to inform network-layer queuing and forwarding, rather than an | to inform network-layer queueing and forwarding, rather than an | |||
operator inferring traffic requirements from transport and | operator inferring traffic requirements from transport and | |||
application headers via a multi-field classifier. Inappropriate | application headers via a multi-field classifier. Inappropriate | |||
use by the transport can have privacy implications (e.g., | use by the transport can have privacy implications (e.g., | |||
assigning a different DSCP to a subflow could assist in a network | assigning a different DSCP to a subflow could assist in a network | |||
device discovering the traffic pattern used by an application, | device discovering the traffic pattern used by an application, | |||
assigning the same label to two independent flows that ought not | assigning the same label to two independent flows that ought not | |||
to be classified the same). The field is mutable, i.e., some | to be classified the same). The field is mutable, i.e., some | |||
network devices can be expected to change this field (use of each | network devices can be expected to change this field (use of each | |||
DSCP value is defined by an RFC). | DSCP value is defined by an RFC). | |||
skipping to change at page 19, line 21 ¶ | skipping to change at page 19, line 32 ¶ | |||
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. | ||||
These can be used to explicitly expose transport header | ||||
information to on-path devices operating at the network layer (as | ||||
discussed further inSection 5). | ||||
IPv4 [RFC0791] has provision for optional header fields identified | ||||
by an option type field. IP routers can examine these headers and | ||||
are required to ignore IPv4 options that they does not recognise. | ||||
Many current paths include network devices that forward packets | ||||
that carry options on a slower processing path. Some network | ||||
devices (e.g., firewalls) can be (and are) configured to drop | ||||
these packets [RFC7126]. RFC 7126 provides Best Current Practice | ||||
guidance on how operators should treat IPv4 packets that specify | ||||
options. | ||||
IPv6 can encode optional network-layer information in separate | ||||
headers that may be placed between the IPv6 header and the upper- | ||||
layer header [RFC8200]. The Hop-by-Hop Options header, when | ||||
present, immediately follows the IPv6 header. IPv6 permits this | ||||
header to be examined by any node along the path. While [RFC7872] | ||||
required all nodes to examine and process the Hop-by-Hop Options | ||||
header, it is now expected [RFC8200] that nodes along a path only | ||||
examine and process the Hop-by-Hop Options header if explicitly | ||||
configured to do so. | ||||
When transport headers cannot be observed, operators are unable to | When transport headers cannot be observed, operators are unable to | |||
use this information directly. Careful use of the network layer | use this information directly. Careful use of the network layer | |||
features can help provide similar information in the case where the | features can help provide similar information in the case where the | |||
network is unable to inspect transport protocol headers. Section 5 | network is unable to inspect transport protocol headers. Section 5 | |||
describes use of network extension headers. | describes use of network extension headers. | |||
3.2. Transport Measurement | 3.2. Transport Measurement | |||
The common language between network operators and application/content | The common language between network operators and application/content | |||
providers/users is packet transfer performance at a layer that all | providers/users is packet transfer performance at a layer that all | |||
skipping to change at page 20, line 47 ¶ | skipping to change at page 21, line 39 ¶ | |||
Traffic rate and volume measurements are used by operators to help | Traffic rate and volume measurements are used by operators to help | |||
plan deployment of new equipment and configuration in their networks. | plan deployment of new equipment and configuration in their networks. | |||
Data is also valuable to equipment vendors who want to understand | Data is also valuable to equipment vendors who want to understand | |||
traffic trends and patterns of usage as inputs to decisions about | traffic trends and patterns of usage as inputs to decisions about | |||
planning products and provisioning for new deployments. This | planning products and provisioning for new deployments. This | |||
measurement information can also be correlated with billing | measurement information can also be correlated with billing | |||
information when this is also collected by an operator. | information when this is also collected by an operator. | |||
Trends in aggregate traffic can be observed and can be related to the | Trends in aggregate traffic can be observed and can be related to the | |||
endpoint addresses being used, but when transport information is not | endpoint addresses being used, but when transport header information | |||
observable, it might be impossible to correlate patterns in | is not observable, it might be impossible to correlate patterns in | |||
measurements with changes in transport protocols. This increases the | measurements with changes in transport protocols. This increases the | |||
dependency on other indirect sources of information to inform | dependency on other indirect sources of information to inform | |||
planning and provisioning. | planning and provisioning. | |||
3.2.3. Service Performance Measurement | 3.2.3. Service Performance Measurement | |||
Performance measurements (e.g., throughput, loss, latency) can be | Performance measurements (e.g., throughput, loss, latency) can be | |||
used by various actors to analyse the service offered to the users of | used by various actors to analyse the service offered to the users of | |||
a network segment, and to inform operational practice. | a network segment, and to inform operational practice. | |||
skipping to change at page 22, line 11 ¶ | skipping to change at page 23, line 5 ¶ | |||
network can gain an understanding of the dynamics of a flow and | network can gain an understanding of the dynamics of a flow and | |||
its congestion control behaviour. Analysing observed flows can | its congestion control behaviour. Analysing observed flows can | |||
help to build confidence that an application flow backs-off its | help to build confidence that an application flow backs-off its | |||
share of the network load under persistent congestion, and hence | share of the network load under persistent congestion, and hence | |||
to understand whether the behaviour is appropriate for sharing | to understand whether the behaviour is appropriate for sharing | |||
limited network capacity. For example, it is common to visualise | limited network capacity. For example, it is common to visualise | |||
plots of TCP sequence numbers versus time for a flow to understand | plots of TCP sequence numbers versus time for a flow to understand | |||
how a flow shares available capacity, deduce its dynamics in | how a flow shares available capacity, deduce its dynamics in | |||
response to congestion, etc. | response to congestion, etc. | |||
The ability to identify sources that contribute to persistent | The ability to identify sources and flows that contribute to | |||
congestion is important to the safe operation of network | persistent congestion is important to the safe operation of | |||
infrastructure, and can inform configuration of network devices to | network infrastructure, and can inform configuration of network | |||
complement the endpoint congestion avoidance mechanisms [RFC7567] | devices to complement the endpoint congestion avoidance mechanisms | |||
[RFC8084] to avoid a portion of the network being driven into | [RFC7567] [RFC8084] to avoid a portion of the network being driven | |||
congestion collapse [RFC2914]. | into congestion collapse [RFC2914]. | |||
Congestion Control Compliance for UDP traffic: UDP provides a | Congestion Control Compliance for UDP traffic: UDP provides a | |||
minimal message-passing datagram transport that has no inherent | minimal message-passing datagram transport that has no inherent | |||
congestion control mechanisms. Because congestion control is | congestion control mechanisms. Because congestion control is | |||
critical to the stable operation of the Internet, applications and | critical to the stable operation of the Internet, applications and | |||
other protocols that choose to use UDP as a transport have to | other protocols that choose to use UDP as a transport have to | |||
employ mechanisms to prevent collapse, avoid unacceptable | employ mechanisms to prevent collapse, avoid unacceptable | |||
contributions to jitter/latency, and to establish an acceptable | contributions to jitter/latency, and to establish an acceptable | |||
share of capacity with concurrent traffic [RFC8085]. | share of capacity with concurrent traffic [RFC8085]. | |||
skipping to change at page 24, line 38 ¶ | skipping to change at page 25, line 30 ¶ | |||
End-to-end encryption can be applied at various protocol layers. It | End-to-end encryption can be applied at various protocol layers. It | |||
can be applied above the transport to encrypt the transport payload | can be applied above the transport to encrypt the transport payload | |||
(e.g., using TLS). This can hide information from an eavesdropper in | (e.g., using TLS). This can hide information from an eavesdropper in | |||
the network. It can also help protect the privacy of a user, by | the network. It can also help protect the privacy of a user, by | |||
hiding data relating to user/device identity or location. | hiding data relating to user/device identity or location. | |||
4.1. Motivation | 4.1. Motivation | |||
There are several motivations for encryption: | There are several motivations for encryption: | |||
o One motive to encrypt transport headers is in response to | o One motive to encrypt transport headers is in response to a | |||
perceptions that the network has become ossified, since traffic | growing awareness of the implications of network ossification from | |||
inspecting middleboxes prevent new protocols and mechanisms from | network devices that inspect transport headers. Once a network | |||
being deployed. One benefit of encrypting transport headers is | devices observes a transport header and becomes reliant upon using | |||
that it can help improve the pace of transport development by | it, the overall use of that field can become ossified, preventing | |||
eliminating interference by deployed middleboxes. | new protocols and mechanisms from being deployed. One of the | |||
benefits of encrypting transport headers is that it can help | ||||
improve the pace of transport development by eliminating | ||||
interference by deployed middleboxes. | ||||
o Another motivation stems from increased concerns about privacy and | o Another motivation stems from increased concerns about privacy and | |||
surveillance. Users value the ability to protect their identity | surveillance. Users value the ability to protect their identity | |||
and location, and defend against analysis of the traffic. | and location, and defend against analysis of the traffic. | |||
Revelations about the use of pervasive surveillance [RFC7624] | Revelations about the use of pervasive surveillance [RFC7624] | |||
have, to some extent, eroded trust in the service offered by | have, to some extent, eroded trust in the service offered by | |||
network operators and have led to an increased use of encryption | network operators and have led to an increased use of encryption | |||
to avoid unwanted eavesdropping on communications. Concerns have | to avoid unwanted eavesdropping on communications. Concerns have | |||
also been voiced about the addition of information to packets by | also been voiced about the addition of information to packets by | |||
third parties to provide analytics, customization, advertising, | third parties to provide analytics, customisation, advertising, | |||
cross-site tracking of users, to bill the customer, or to | cross-site tracking of users, to bill the customer, or to | |||
selectively allow or block content. Whatever the reasons, the | selectively allow or block content. Whatever the reasons, the | |||
IETF is designing protocols that include transport header | IETF is designing protocols that include transport header | |||
encryption (e.g., QUIC [I-D.ietf-quic-transport]) to supplement | encryption (e.g., QUIC [I-D.ietf-quic-transport]) to supplement | |||
the already widespread payload encryption, and to further limit | the already widespread payload encryption, and to further limit | |||
exposure of transport metadata to the network. | exposure of transport metadata to the network. | |||
The use of transport header authentication and encryption exposes a | The use of transport header authentication and encryption exposes a | |||
tussle between middlebox vendors, operators, applications developers | tussle between middlebox vendors, operators, applications developers | |||
and users: | and users: | |||
o On the one hand, future Internet protocols that support transport | o 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, | |||
and can improve privacy by reducing leakage of transport metadata. | and can improve privacy by reducing leakage of transport metadata. | |||
o On the other hand, encryption of transport layer header | o On the other hand, encryption of transport layer information has | |||
information has implications for people who are responsible for | implications for people who are responsible for operating | |||
operating networks, and researchers and analysts seeking to | networks, and researchers and analysts seeking to understand the | |||
understand the dynamics of protocols and traffic patterns. | dynamics of protocols and traffic patterns. | |||
A decision to use transport header encryption can improve user | A decision to use transport header encryption can improve user | |||
privacy, and can reduce protocol ossification and help the evolution | privacy, and can reduce protocol ossification and help the evolution | |||
of the transport protocol stack, but is also has implications for | of the transport protocol stack, but is also has implications for | |||
network operations and management. | network operations and management. | |||
4.2. Approaches to Transport Header Protection | 4.2. Approaches to Transport Header Protection | |||
The following briefly reviews some security design options for | The following briefly reviews some security design options for | |||
transport protocols. A Survey of Transport Security Protocols | transport protocols. A Survey of Transport Security Protocols | |||
skipping to change at page 26, line 15 ¶ | skipping to change at page 27, line 12 ¶ | |||
connection itself and provides replay protection. TCP-AO might | connection itself and provides replay protection. TCP-AO might | |||
interact with middleboxes, depending on their behaviour [RFC3234]. | interact with middleboxes, depending on their behaviour [RFC3234]. | |||
The IPsec Authentication Header (AH) [RFC4302] was designed to | The IPsec Authentication Header (AH) [RFC4302] was designed to | |||
work at the network layer and authenticate the IP payload. This | work at the network layer and authenticate the IP payload. This | |||
approach authenticates all transport headers, and verifies their | approach authenticates all transport headers, and verifies their | |||
integrity at the receiver, preventing in-network modification. | integrity at the receiver, preventing in-network modification. | |||
Secure RTP [RFC3711] is another example of a transport protocol | Secure RTP [RFC3711] is another example of a transport protocol | |||
that allows header authentication. | that allows header authentication. | |||
Greasing: Protocols often provide extensibility features, reserving | ||||
fields or values for use by future versions of a specification. | ||||
The specification of receivers has traditionally ignored | ||||
unspecified values, however in-network devices have emerged that | ||||
ossify to require a certain value in a field, or re-use a field | ||||
for another purpose. When the specification is later updated, it | ||||
is impossible to deploy the new use of the field, and forwarding | ||||
of the protocol could even become conditional on a specific header | ||||
field value. | ||||
A protocol can intentionally vary the value, format, and/or | ||||
presence of observable transport header fields. This behaviour, | ||||
known as GREASE (Generate Random Extensions And Sustain | ||||
Extensibility) is designed to avoid a network device ossifying the | ||||
use of a specific observable field. Greasing seeks to ease | ||||
deployment of new methods. It can also prevent in-network devices | ||||
utilising the information in a transport header, or can make an | ||||
observation robust to a set of changing values, rather than a | ||||
specific set of values | ||||
Selectively Encrypting Transport Headers and Payload: A transport | Selectively Encrypting Transport Headers and Payload: A transport | |||
protocol design can encrypt selected header fields, while also | protocol design can encrypt selected header fields, while also | |||
choosing to authenticate the entire transport header. This allows | choosing to authenticate the entire transport header. This allows | |||
specific transport header fields to be made observable by network | specific transport header fields to be made observable by network | |||
devices. End-to end integrity checks can prevent an endpoint from | devices (explicitly exposed either in a transport header field or | |||
undetected modification of the immutable transport headers. | lower layer protocol header). A design that only exposes | |||
immutable fields can also perform end-to-end authentication of | ||||
these fields across the path to prevent undetected modification of | ||||
the immutable transport headers. | ||||
Mutable fields in the transport header provide opportunities for | Mutable fields in the transport header provide opportunities where | |||
middleboxes to modify the transport behaviour (e.g., the extended | network devices can modify the transport behaviour (e.g., the | |||
headers described in [I-D.trammell-plus-abstract-mech]). This | extended headers described in [I-D.trammell-plus-abstract-mech]). | |||
considers only immutable fields in the transport headers, that is, | ||||
fields that can be authenticated End-to-End across a path. | ||||
An example of a method that encrypts some, but not all, transport | An example of a method that encrypts some, but not all, transport | |||
information is GRE-in-UDP [RFC8086] when used with GRE encryption. | header information is GRE-in-UDP [RFC8086] when used with GRE | |||
encryption. | ||||
Optional Encryption of Header Information: There are implications to | Optional Encryption of Header Information: There are implications to | |||
the use of optional header encryption in the design of a transport | the use of optional header encryption in the design of a transport | |||
protocol, where support of optional mechanisms can increase the | protocol, where support of optional mechanisms can increase the | |||
complexity of the protocol and its implementation, and in the | complexity of the protocol and its implementation, and in the | |||
management decisions that are have to be made to use variable | management decisions that are have to be made to use variable | |||
format fields. Instead, fields of a specific type ought to always | format fields. Instead, fields of a specific type ought to always | |||
be sent with the same level of confidentiality or integrity | be sent with the same level of confidentiality or integrity | |||
protection. | protection. | |||
Greasing: Protocols often provide extensibility features, reserving | ||||
fields or values for use by future versions of a specification. | ||||
The specification of receivers has traditionally ignored | ||||
unspecified values, however in-network devices have emerged that | ||||
ossify to require a certain value in a field, or re-use a field | ||||
for another purpose. When the specification is later updated, it | ||||
is impossible to deploy the new use of the field, and forwarding | ||||
of the protocol could even become conditional on a specific header | ||||
field value. | ||||
A protocol can intentionally vary the value, format, and/or | ||||
presence of observable transport header fields. This behaviour, | ||||
known as GREASE (Generate Random Extensions And Sustain | ||||
Extensibility) is designed to avoid a network device ossifying the | ||||
use of a specific observable field. Greasing seeks to ease | ||||
deployment of new methods. This seeks to prevent in-network | ||||
devices utilising the information in a transport header, or can | ||||
make an observation robust to a set of changing values, rather | ||||
than a specific set of values. It is not a security mechanism, | ||||
although use can be combined with an authentication mechanism. | ||||
As seen, different transports use encryption to protect their header | As seen, 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. Addition of Transport Information to Network-Layer Headers | 5. Addition of Transport Information to Network-Layer Headers | |||
An on-path device can make measurements by utilising additional | An on-path device can make measurements by utilising additional | |||
protocol headers carrying operations, administration and management | protocol headers carrying operations, administration and management | |||
(OAM) information in an additional packet header. Using network- | (OAM) information in an additional packet header. Using network- | |||
layer approaches to reveal information has the potential that the | layer approaches to reveal information has the potential that the | |||
skipping to change at page 28, line 12 ¶ | skipping to change at page 29, line 10 ¶ | |||
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 caries header fields that can be | include a destination option that caries 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 receiving transport endpoints | information could be authenticated by receiving transport endpoints | |||
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 method has to be explicitly enabled at the | been proposed. This method has to be explicitly enabled at the | |||
sender. | sender. | |||
Current measurement results suggest that it could currently be | 5.3. Exposing Transport Information at the Network Layer | |||
undesirable to rely on methods requiring end-to-end support of | ||||
network options or extension headers across the Internet. IPv4 | ||||
network options are often not supported (or are carried on a slower | ||||
processing path) and some IPv6 networks have been observed to drop | ||||
packets that set an IPv6 header extension (e.g., results from 2016 in | ||||
[RFC7872]). | ||||
Protocols can be designed to expose header information separately to | Network packets can carry optional headers may be used to explicitly | |||
the (hidden) fields used by the protocol state machine. On the one | expose transport header information to the on-path devices operating | |||
hand, such approaches can simplify tools by exposing the relevant | at the network layer Section 3.1.3. For example, an endpoint that | |||
metrics (loss, latency, etc), rather having to derive this from other | provides an IPv6 Hop-by-Hop option [RFC8200] can provide explicit | |||
fields. This also permits the protocol to evolve independently of | transport layer information that can be observed and used by network | |||
the ossified observable header [RFC8558]. On the other hand, | devices on the path. | |||
protocols do not necessarily have an incentive to expose the actual | ||||
information that is used by the protocol itself and could therefore | When the path includes a network device that drops packets that | |||
manipulate the exposed header information to gain an advantage from | include a specific option used for this purpose (e.g., see[RFC7872]), | |||
the network. Where the information is provided by an endpoint, the | this impacts the proper functioning of the protocols using the path. | |||
incentive to reflect actual transport information has to be | Protocol methods can be designed to probe to discover whether the | |||
considered when proposing a method. | specific option(s) can be used along the current path, enabling use | |||
on arbitrary paths. | ||||
The transport header information exposed by a transport endpoint can | ||||
be different to the (hidden) transport header fields used by the | ||||
protocol state machine and could instead be specifically designed to | ||||
meet the needs of the network layer [RFC8558]. There are | ||||
opportunities for the format and usage of this transport information | ||||
to be standardised, providing an opportunity for common | ||||
specifications and tools to be used with more than one transport | ||||
protocol. | ||||
o On the one hand, protocols do not necessarily have an incentive to | ||||
expose the actual information that is used by the protocol itself | ||||
and could therefore manipulate the exposed transport header | ||||
information to gain an advantage from the network. The incentive | ||||
to reflect actual transport header information has to be | ||||
considered when proposing a method. | ||||
o On the other hand, explicit approaches can simplify tools by | ||||
exposing the relevant metrics (loss, latency, etc), rather having | ||||
to derive this from other fields. This could stimulate the | ||||
development of proocol-independent tools and also permits | ||||
protocols to evolve independently of the ossified observable | ||||
header [RFC8558]. | ||||
6. Implications of Protecting the Transport Headers | 6. Implications of Protecting the Transport Headers | |||
The choice of which transport header fields to expose and which to | The choice of which transport header fields to expose and which to | |||
encrypt is a design decision for the transport protocol. Selective | encrypt is a design decision for the transport protocol. Selective | |||
encryption requires trading conflicting goals of observability and | encryption requires trading conflicting goals of observability and | |||
network support, privacy, and risk of ossification, to decide what | network support, privacy, and risk of ossification, to decide what | |||
header fields to protect and which to make visible. | header fields to protect and which to make visible. | |||
Security work typically employs a design technique that seeks to | Security work typically employs a design technique that seeks to | |||
skipping to change at page 29, line 33 ¶ | skipping to change at page 30, line 50 ¶ | |||
Protocols that expose the state information used by the transport | Protocols that expose the state information used by the transport | |||
protocol in their header information (e.g., timestamps used to | protocol in their header information (e.g., timestamps used to | |||
calculate the RTT, packet numbers used to asses congestion and | calculate the RTT, packet numbers used to asses congestion and | |||
requests for retransmission) provide an incentive for the sending | requests for retransmission) provide an incentive for the sending | |||
endpoint to provide correct information, since the protocol will not | endpoint to provide correct information, since the protocol will not | |||
work otherwise. This increases confidence that the observer | work otherwise. This increases confidence that the observer | |||
understands the transport interaction with the network. For example, | understands the transport interaction with the network. For example, | |||
when TCP is used over an unencrypted network path (i.e., one that | when TCP is used over an unencrypted network path (i.e., one that | |||
does not use IPsec or other encryption below the transport), it | does not use IPsec or other encryption below the transport), it | |||
implicitly exposes header information that can be used for | implicitly exposes transport header information that can be used for | |||
measurement at any point along the path. This information is | measurement at any point along the path. This information is | |||
necessary for the protocol's correct operation, therefore there is no | necessary for the protocol's correct operation, therefore there is no | |||
incentive for a TCP or RTP implementation to put incorrect | incentive for a TCP or RTP implementation to put incorrect | |||
information in this transport header. A network device can have | information in this transport header. A network device can have | |||
confidence that the well-known (and ossified) transport information | confidence that the well-known (and ossified) transport header | |||
represents the actual state of the endpoints. | information represents the actual state of the endpoints. | |||
When encryption is used to hide some or all of the transport headers, | When encryption is used to hide some or all of the transport headers, | |||
the transport protocol chooses which information to reveal to the | the transport protocol chooses which information to reveal to the | |||
network about its internal state, what information to leave | network about its internal state, what information to leave | |||
encrypted, and what fields to grease to protect against future | encrypted, and what fields to grease to protect against future | |||
ossification. Such a transport could be designed, for example, to | ossification. Such a transport could be designed (or an existing | |||
provide summary data regarding its performance, congestion control | transport modified), for example, to provide summary data regarding | |||
state, etc., or to make an explicit measurement signal available. | its performance, congestion control state, etc., or to make an | |||
For example, a QUIC endpoint can optionally set the spin bit to | explicit measurement signal available. For example, a QUIC endpoint | |||
reflect to explicitly reveal the RTT of an encrypted transport | can optionally set the spin bit to reflect to explicitly reveal the | |||
session to the on-path network devices [I-D.ietf-quic-transport]). | RTT of an encrypted transport session to the on-path network devices | |||
[I-D.ietf-quic-transport]). | ||||
When providing or using such information, it is important to consider | When providing or using such information, it is important to consider | |||
the privacy of the user and their incentive for providing accurate | the privacy of the user and their incentive for providing accurate | |||
and detailed information. Protocols that selectively reveal some | and detailed information. Protocols that selectively reveal some | |||
transport state or measurement signals are choosing to establish a | transport state or measurement signals are choosing to establish a | |||
trust relationship with the network operators. There is no protocol | trust relationship with the network operators. There is no protocol | |||
mechanism that can guarantee that the information provided represents | mechanism that can guarantee that the information provided represents | |||
the actual transport state of the endpoints, since those endpoints | the actual transport state of the endpoints, since those endpoints | |||
can always send additional information in the encrypted part of the | can always send additional information in the encrypted part of the | |||
header, to update or replace whatever they reveal. This reduces the | header, to update or replace whatever they reveal. This reduces the | |||
skipping to change at page 32, line 13 ¶ | skipping to change at page 33, line 25 ¶ | |||
encryption [RFC5218]. | encryption [RFC5218]. | |||
6.4. Impact on Network Operations | 6.4. Impact on Network Operations | |||
Some network operators currently use observed transport header | Some network operators currently use observed transport header | |||
information as a part of their operational practice, and have | information as a part of their operational practice, and have | |||
developed tools and techniques that use information observed in | developed tools and techniques that use information observed in | |||
currently deployed transports and their applications. A variety of | currently deployed transports and their applications. A variety of | |||
open source and proprietary tools have been deployed that use this | open source and proprietary tools have been deployed that use this | |||
information for a variety of short and long term measurements. | information for a variety of short and long term measurements. | |||
Encryption of the transport information prevents tooling from | Encryption of the transport header information prevents tooling from | |||
observing the header information, limiting its utility. | directly observing the transport header information, limiting its | |||
utility. | ||||
Alternative diagnostic and troubleshooting tools would have to be | Alternative diagnostic and troubleshooting tools would have to be | |||
developed and deployed is transport header encryption is widely | developed and deployed is transport header encryption is widely | |||
deployed. Introducing a new protocol or application might then | deployed. Introducing a new protocol or application might then | |||
require these tool chains and practises to be updated, and could in | require these tool chains and practises to be updated, and could in | |||
turn impact operational mechanisms, and policies. Each change can | turn impact operational mechanisms, and policies. Each change can | |||
introduce associated costs, including the cost of collecting data, | introduce associated costs, including the cost of collecting data, | |||
and the tooling to handle multiple formats (possibly as these co- | and the tooling to handle multiple formats (possibly as these co- | |||
exist in the network, when measurements span time periods during | exist in the network, when measurements span time periods during | |||
which changes are deployed, or to compare with historical data). | which changes are deployed, or to compare with historical data). | |||
skipping to change at page 33, line 46 ¶ | skipping to change at page 35, line 16 ¶ | |||
Independently observed data is also important to ensure the health of | Independently observed data is also important to ensure the health of | |||
the research and development communities and can help promote | the research and development communities and can help promote | |||
acceptance of proposed specifications by the wider community (e.g., | acceptance of proposed specifications by the wider community (e.g., | |||
as a method to judge the safety for Internet deployment) and provides | as a method to judge the safety for Internet deployment) and provides | |||
valuable input during standardisation. Open standards motivate a | valuable input during standardisation. Open standards motivate a | |||
desire to include independent observation and evaluation of | desire to include independent observation and evaluation of | |||
performance data, which in turn demands control over where and when | performance data, which in turn demands control over where and when | |||
measurement samples are collected. This requires consideration of | measurement samples are collected. This requires consideration of | |||
the methods used to observe data and the appropriate balance between | the methods used to observe data and the appropriate balance between | |||
encrypting all and no transport information. | encrypting all and no transport header information. | |||
7. Conclusions | 7. Conclusions | |||
Header encryption and strong integrity checks are being incorporated | Header encryption and strong integrity checks are being incorporated | |||
into new transport protocols and have important benefits. The pace | into new transport protocols and have important benefits. The pace | |||
of development of transports using the WebRTC data channel, and the | of development of transports using the WebRTC data channel, and the | |||
rapid deployment of the QUIC transport protocol, can both be | rapid deployment of the QUIC transport protocol, can both be | |||
attributed to using the combination of UDP as a substrate while | attributed to using the combination of UDP as a substrate while | |||
providing confidentiality and authentication of the encapsulated | providing confidentiality and authentication of the encapsulated | |||
transport headers and payload. | 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 stake holders, 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 transport protocols, so protocol designers can make | when designing and modifying transport protocols, so protocol | |||
informed choice about what transport header fields to encrypt, and | designers can make informed choice about what transport header fields | |||
whether it might be beneficial to make an explicit choice to expose | to encrypt, and whether it might be beneficial to make an explicit | |||
certain fields to the network. In making such a decision, it is | choice to expose certain fields to the network. In making such a | |||
important to balance: | decision, it is important to balance: | |||
o User Privacy: The less transport header information that is | o User Privacy: The less transport header information that is | |||
exposed to the network, the lower the risk of leaking metadata | exposed to the network, the lower the risk of leaking metadata | |||
that might have privacy implications for the users. Transports | that might have privacy implications for the users. Transports | |||
that chose to expose some header fields need to make a privacy | that chose to expose some header fields need to make a privacy | |||
assessment to understand the privacy cost versus benefit trade-off | assessment to understand the privacy cost versus benefit trade-off | |||
in making that information available. The process used to define | in making that information available. The process used to define | |||
and expose the QUIC spin bit to the network is an example of such | and expose the QUIC spin bit to the network is an example of such | |||
an analysis. | an analysis. | |||
o Protocol Ossification: Unencrypted transport header fields are | o Protocol Ossification: Unencrypted transport header fields are | |||
likely to ossify rapidly, as middleboxes come to rely on their | likely to ossify rapidly, as network devices come to rely on their | |||
presence, making it difficult to change the transport in future. | presence, making it difficult to change the transport in future. | |||
This argues that the choice to expose information to the network | This argues that the choice to expose information to the network | |||
is made deliberately and with care, since it is essentially | is made deliberately and with care, since it is essentially | |||
defining a stable interface between the transport and the network. | defining a stable interface between the transport and the network. | |||
Some protocols will want to make that interface as limited as | Some protocols will want to make that interface as limited as | |||
possible; other protocols might find value in exposing certain | possible; other protocols might find value in exposing certain | |||
information to signal to the network, or in allowing the network | information to signal to the network, or in allowing the network | |||
to change certain header fields as signals to the transport. The | to change certain header fields as signals to the transport. The | |||
visible wire image of a protocol should be explicitly designed. | visible wire image of a protocol should be explicitly designed. | |||
o Impact on Operational Practice: The network operations community | o Impact on Operational Practice: The network operations community | |||
has long relied on being able to understand Internet traffic | has long relied on being able to understand Internet traffic | |||
patterns, both in aggregate and at the flow level, to support | patterns, both in aggregate and at the flow level, to support | |||
network management, traffic engineering, and troubleshooting. | network management, traffic engineering, and troubleshooting. | |||
Operational practice has developed based on the information | Operational practice has developed based on the information | |||
available from unencrypted transport headers. The IETF has | available from unencrypted transport headers. The IETF has | |||
supported this practice by developing operations and management | supported this practice by developing operations and management | |||
specifications, interface specifications, and associated Best | specifications, interface specifications, and associated Best | |||
Current Practises. Widespread deployment of transport protocols | Current Practises. Widespread deployment of transport protocols | |||
that encrypt their header information might impact network | that encrypt their information might impact network operations, | |||
operations, unless operators can develop alternative practises | unless operators can develop alternative practises that work | |||
that work without access to the transport header information. | without access to the transport header. | |||
o Pace of Evolution: Removing obstacles to change can enable an | o Pace of Evolution: Removing obstacles to change can enable an | |||
increased pace of evolution. If a protocol changes its transport | increased pace of evolution. If a protocol changes its transport | |||
header format (wire image) or their transport behaviour, this can | header format (wire image) or their transport behaviour, this can | |||
result in the currently deployed tools and methods becoming no | result in the currently deployed tools and methods becoming no | |||
longer relevant. Where this needs to be accompanied by | longer relevant. Where this needs to be accompanied by | |||
development of appropriate operational support functions and | development of appropriate operational support functions and | |||
procedures, it can incur a cost in new tooling to catch-up with | procedures, it can incur a cost in new tooling to catch-up with | |||
each change. Protocols that consistently expose observable data | each change. Protocols that consistently expose observable data | |||
do not require such development, but can suffer from ossification | do not require such development, but can suffer from ossification | |||
skipping to change at page 35, line 44 ¶ | skipping to change at page 37, line 10 ¶ | |||
interworking specifications, and on it being possible to detect | interworking specifications, and on it being possible to detect | |||
violations. It is important to find new ways of maintaining that | violations. It is important to find new ways of maintaining that | |||
community trust as increased use of transport header encryption | community trust as increased use of transport header encryption | |||
limits visibility into transport behaviour. | limits visibility into transport behaviour. | |||
o Impact on Benchmarking and Understanding Feature Interactions: An | o Impact on Benchmarking and Understanding Feature Interactions: An | |||
appropriate vantage point for observation, coupled with timing | appropriate vantage point for observation, coupled with timing | |||
information about traffic flows, provides a valuable tool for | information about traffic flows, provides a valuable tool for | |||
benchmarking network devices, endpoint stacks, functions, and/or | benchmarking network devices, endpoint stacks, functions, and/or | |||
configurations. This can also help with understanding complex | configurations. This can also help with understanding complex | |||
feature interactions. An inability to observe transport layer | feature interactions. An inability to observe transport header | |||
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-effect of not allowing a choice of vantage point from which | side-effect of not allowing a choice of vantage point from which | |||
this information is observed. New approaches might have to be | this information is observed. New approaches might have to be | |||
developed. | developed. | |||
o Impact on Research and Development: Hiding transport information | o Impact on Research and Development: Hiding transport header | |||
can impede independent research into new mechanisms, measurement | information can impede independent research into new mechanisms, | |||
of behaviour, and development initiatives. Experience shows that | measurement of behaviour, and development initiatives. Experience | |||
transport protocols are complicated to design and complex to | shows that transport protocols are complicated to design and | |||
deploy, and that individual mechanisms have to be evaluated while | complex to deploy, and that individual mechanisms have to be | |||
considering other mechanisms, across a broad range of network | evaluated while considering other mechanisms, across a broad range | |||
topologies and with attention to the impact on traffic sharing the | of network topologies and with attention to the impact on traffic | |||
capacity. If increased use of transport header encryption results | sharing the capacity. If increased use of transport header | |||
in reduced availability of open data, it could eliminate the | encryption results in reduced availability of open data, it could | |||
independent self-checks to the standardisation process that have | eliminate the independent self-checks to the standardisation | |||
previously been in place from research and academic contributors | process that have previously been in place from research and | |||
(e.g., the role of the IRTF Internet Congestion Control Research | academic contributors (e.g., the role of the IRTF Internet | |||
Group (ICCRG) and research publications in reviewing new transport | Congestion Control Research Group (ICCRG) and research | |||
mechanisms and assessing the impact of their deployment). | publications in reviewing new transport mechanisms and assessing | |||
the impact of their deployment). | ||||
Observable transport information might be useful to various | Observable transport header information might be useful to various | |||
stakeholders. Other stakeholders have incentives to limit what can | stake holders. Other stake holders have incentives to limit what can | |||
be observed. This document does not make recommendations about what | be observed. This document does not make recommendations about what | |||
information ought to be exposed, to whom it ought to be observable, | information ought to be exposed, to whom it ought to be observable, | |||
or how this will be achieved. There are also design choices about | or how this will be achieved. There are also design choices about | |||
where observable fields are placed. For example, one location could | where observable fields are placed. For example, one location could | |||
be a part of the transport header outside of the encryption envelope, | be a part of the transport header outside of the encryption envelope, | |||
another alternative is to carry the information in a network-layer | another alternative is to carry the information in a network-layer | |||
extension header. New transport protocol designs ought to explicitly | option or extension header. New transport protocol designs ought to | |||
identify any fields that are intended to be observed, consider if | explicitly identify any fields that are intended to be observed, | |||
there are alternative ways of providing the information, and reflect | consider if there are alternative ways of providing the information, | |||
on the implications of observable fields being used by network | and reflect on the implications of observable fields being used by | |||
devices, and how this might impact user privacy and protocol | network devices, and how this might impact user privacy and protocol | |||
evolution when these fields become ossified. | evolution when these fields become ossified. | |||
As [RFC7258] notes, "Making networks unmanageable to mitigate | As [RFC7258] notes, "Making networks unmanageable to mitigate | |||
(pervasive monitoring) is not an acceptable outcome, but ignoring | (pervasive monitoring) is not an acceptable outcome, but ignoring | |||
(pervasive monitoring) would go against the consensus documented | (pervasive monitoring) would go against the consensus documented | |||
here." Providing explicit information can help avoid traffic being | here." Providing explicit information can help avoid traffic being | |||
inappropriately classified, impacting application performance. An | inappropriately classified, impacting application performance. 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 analysed [RFC7258]. This balance between information | tension are analysed [RFC7258]. This balance between information | |||
exposed and information hidden ought to be carefully considered when | exposed and information hidden ought to be carefully considered when | |||
skipping to change at page 37, line 9 ¶ | skipping to change at page 38, line 22 ¶ | |||
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 | protocol or layer on top of the transport protocol | |||
[I-D.ietf-taps-transport-security]. | [I-D.ietf-taps-transport-security]. | |||
Confidentiality and strong integrity checks have properties that can | Confidentiality and strong integrity checks have properties that can | |||
also be incorporated into the design of a transport protocol. | also be incorporated into the design of a transport protocol or to | |||
Integrity checks can protect an endpoint from undetected modification | modify an existing transport. Integrity checks can protect an | |||
of protocol fields by network devices, whereas encryption and | endpoint from undetected modification of protocol fields by network | |||
obfuscation or greasing can further prevent these headers being | devices, whereas encryption and obfuscation or greasing can further | |||
utilised by network devices. Preventing observation of headers | prevent these headers being utilised by network devices. Preventing | |||
provides an opportunity for greater freedom to update the protocols | observation of headers provides an opportunity for greater freedom to | |||
and can ease experimentation with new techniques and their final | update the protocols and can ease experimentation with new techniques | |||
deployment in endpoints. A protocol specification needs to weigh the | and their final deployment in endpoints. A protocol specification | |||
costs of ossifying common headers, versus the potential benefits of | needs to weigh the costs of ossifying common headers, versus the | |||
exposing specific information that could be observed along the | potential benefits of exposing specific information that could be | |||
network path to provide tools to manage new variants of protocols. | observed along the network path to provide tools to manage new | |||
variants of protocols. | ||||
A protocol design that uses header encryption can provide | Header encryption can provide confidentiality of some or all of the | |||
confidentiality of some or all of the protocol header information. | transport header information. This prevents an on-path device from | |||
This prevents an on-path device from knowledge of the header field. | knowledge of the header field. It therefore prevents mechanisms | |||
It therefore prevents mechanisms being built that directly rely on | being built that directly rely on the information or seeks to infer | |||
the information or seeks to infer semantics of an exposed header | semantics of an exposed header field. Reduces visibility into | |||
field. Reduces visibility into transport metadata can limit the | transport metadata can limit the ability to measure and characterise | |||
ability to measure and characterise traffic. It can also provide | traffic. It can also provide privacy benefits in some cases. | |||
privacy benefits in some cases. | ||||
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 information with the same | transport protocol header protects both information with the same | |||
key. A privacy concern would arise if this key was shared with a | key. A privacy concern would arise if this key was shared with a | |||
third party, e.g., providing access to transport header information | 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. A layered security | transport payload data to the same third party. Such risks would be | |||
design that separates network data from payload data would avoid such | mitigated using a layered security design that provides one domain of | |||
risks. | protection and associated keys for the transport payload and | |||
encrypted transport headers; and a separate domain of protection and | ||||
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. "While PM is an | |||
attack, other forms of monitoring that might fit the definition of PM | attack, other forms of monitoring that might fit the definition of PM | |||
can be beneficial and not part of any attack, e.g., network | can be beneficial and not part of any attack, e.g., network | |||
management functions monitor packets or flows and anti-spam | management functions monitor packets or flows and anti-spam | |||
mechanisms need to see mail message content." [RFC7258]. This can | mechanisms need to see mail message content." [RFC7258]. 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, malware detection, or to perform packet | |||
"scrubbing" (the normalization of packets so that there are no | "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 38, line 40 ¶ | skipping to change at page 40, line 9 ¶ | |||
space that is encrypted; or by verifying an encrypted token not | space that is encrypted; or by verifying an encrypted token not | |||
visible to an attacker). This would also mitigate against on-path | visible to an attacker). This would also mitigate against on-path | |||
attacks. An additional processing cost can be incurred when | attacks. An additional processing cost can be incurred when | |||
decryption has to be attempted before a receiver is able to discard | decryption has to be attempted before a receiver is able to discard | |||
injected packets. | injected packets. | |||
Open standards motivate a desire for this evaluation to include | Open standards motivate a desire for this evaluation to include | |||
independent observation and evaluation of performance data, which in | independent observation and evaluation of performance data, which in | |||
turn suggests control over where and when measurement samples are | turn suggests control over where and when measurement samples are | |||
collected. This requires consideration of the appropriate balance | collected. This requires consideration of the appropriate balance | |||
between encrypting all and no transport information. Open data, and | between encrypting all and no transport header information. Open | |||
accessibility to tools that can help understand trends in application | data, and accessibility to tools that can help understand trends in | |||
deployment, network traffic and usage patterns can all contribute to | application deployment, network traffic and usage patterns can all | |||
understanding security challenges. | contribute to understanding security challenges. | |||
The Security and Privacy Considerations in the Framework for Large- | The Security and Privacy Considerations in the 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. | |||
9. IANA Considerations | 9. IANA Considerations | |||
XX RFC ED - PLEASE REMOVE THIS SECTION XXX | XX RFC ED - PLEASE REMOVE THIS SECTION XXX | |||
skipping to change at page 40, line 34 ¶ | skipping to change at page 42, line 5 ¶ | |||
[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, Eur. Conf. on Networks and | |||
Communications, Oulu, Finland.", June 2017. | Communications, Oulu, Finland.", June 2017. | |||
[Quic-Trace] | [Quic-Trace] | |||
"https:QUIC trace utilities //github.com/google/quic- | "https:QUIC trace utilities //github.com/google/quic- | |||
trace". | trace". | |||
[RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, | ||||
DOI 10.17487/RFC0791, September 1981, | ||||
<https://www.rfc-editor.org/info/rfc791>. | ||||
[RFC2474] Nichols, K., Blake, S., Baker, F., and D. Black, | [RFC2474] Nichols, K., Blake, S., Baker, F., and D. Black, | |||
"Definition of the Differentiated Services Field (DS | "Definition of the Differentiated Services Field (DS | |||
Field) in the IPv4 and IPv6 Headers", RFC 2474, | Field) in the IPv4 and IPv6 Headers", RFC 2474, | |||
DOI 10.17487/RFC2474, December 1998, | DOI 10.17487/RFC2474, December 1998, | |||
<https://www.rfc-editor.org/info/rfc2474>. | <https://www.rfc-editor.org/info/rfc2474>. | |||
[RFC2475] Blake, S., Black, D., Carlson, M., Davies, E., Wang, Z., | [RFC2475] Blake, S., Black, D., Carlson, M., Davies, E., Wang, Z., | |||
and W. Weiss, "An Architecture for Differentiated | and W. Weiss, "An Architecture for Differentiated | |||
Services", RFC 2475, DOI 10.17487/RFC2475, December 1998, | Services", RFC 2475, DOI 10.17487/RFC2475, December 1998, | |||
<https://www.rfc-editor.org/info/rfc2475>. | <https://www.rfc-editor.org/info/rfc2475>. | |||
skipping to change at page 43, line 23 ¶ | skipping to change at page 44, line 46 ¶ | |||
[RFC6437] Amante, S., Carpenter, B., Jiang, S., and J. Rajahalme, | [RFC6437] Amante, S., Carpenter, B., Jiang, S., and J. Rajahalme, | |||
"IPv6 Flow Label Specification", RFC 6437, | "IPv6 Flow Label Specification", RFC 6437, | |||
DOI 10.17487/RFC6437, November 2011, | DOI 10.17487/RFC6437, November 2011, | |||
<https://www.rfc-editor.org/info/rfc6437>. | <https://www.rfc-editor.org/info/rfc6437>. | |||
[RFC6438] Carpenter, B. and S. Amante, "Using the IPv6 Flow Label | [RFC6438] Carpenter, B. and S. Amante, "Using the IPv6 Flow Label | |||
for Equal Cost Multipath Routing and Link Aggregation in | for Equal Cost Multipath Routing and Link Aggregation in | |||
Tunnels", RFC 6438, DOI 10.17487/RFC6438, November 2011, | Tunnels", RFC 6438, DOI 10.17487/RFC6438, November 2011, | |||
<https://www.rfc-editor.org/info/rfc6438>. | <https://www.rfc-editor.org/info/rfc6438>. | |||
[RFC7126] Gont, F., Atkinson, R., and C. Pignataro, "Recommendations | ||||
on Filtering of IPv4 Packets Containing IPv4 Options", | ||||
BCP 186, RFC 7126, DOI 10.17487/RFC7126, February 2014, | ||||
<https://www.rfc-editor.org/info/rfc7126>. | ||||
[RFC7258] Farrell, S. and H. Tschofenig, "Pervasive Monitoring Is an | [RFC7258] Farrell, S. and H. Tschofenig, "Pervasive Monitoring Is an | |||
Attack", BCP 188, RFC 7258, DOI 10.17487/RFC7258, May | Attack", BCP 188, RFC 7258, DOI 10.17487/RFC7258, May | |||
2014, <https://www.rfc-editor.org/info/rfc7258>. | 2014, <https://www.rfc-editor.org/info/rfc7258>. | |||
[RFC7567] Baker, F., Ed. and G. Fairhurst, Ed., "IETF | [RFC7567] Baker, F., Ed. and G. Fairhurst, Ed., "IETF | |||
Recommendations Regarding Active Queue Management", | Recommendations Regarding Active Queue Management", | |||
BCP 197, RFC 7567, DOI 10.17487/RFC7567, July 2015, | BCP 197, RFC 7567, DOI 10.17487/RFC7567, July 2015, | |||
<https://www.rfc-editor.org/info/rfc7567>. | <https://www.rfc-editor.org/info/rfc7567>. | |||
[RFC7594] Eardley, P., Morton, A., Bagnulo, M., Burbridge, T., | [RFC7594] Eardley, P., Morton, A., Bagnulo, M., Burbridge, T., | |||
skipping to change at page 45, line 5 ¶ | skipping to change at page 46, line 28 ¶ | |||
Explicit Congestion Notification (ECN)", RFC 8087, | Explicit Congestion Notification (ECN)", RFC 8087, | |||
DOI 10.17487/RFC8087, March 2017, | DOI 10.17487/RFC8087, March 2017, | |||
<https://www.rfc-editor.org/info/rfc8087>. | <https://www.rfc-editor.org/info/rfc8087>. | |||
[RFC8095] Fairhurst, G., Ed., Trammell, B., Ed., and M. Kuehlewind, | [RFC8095] Fairhurst, G., Ed., Trammell, B., Ed., and M. Kuehlewind, | |||
Ed., "Services Provided by IETF Transport Protocols and | Ed., "Services Provided by IETF Transport Protocols and | |||
Congestion Control Mechanisms", RFC 8095, | Congestion Control Mechanisms", RFC 8095, | |||
DOI 10.17487/RFC8095, March 2017, | DOI 10.17487/RFC8095, March 2017, | |||
<https://www.rfc-editor.org/info/rfc8095>. | <https://www.rfc-editor.org/info/rfc8095>. | |||
[RFC8200] Deering, S. and R. Hinden, "Internet Protocol, Version 6 | ||||
(IPv6) Specification", STD 86, RFC 8200, | ||||
DOI 10.17487/RFC8200, July 2017, | ||||
<https://www.rfc-editor.org/info/rfc8200>. | ||||
[RFC8250] Elkins, N., Hamilton, R., and M. Ackermann, "IPv6 | [RFC8250] Elkins, N., Hamilton, R., and M. Ackermann, "IPv6 | |||
Performance and Diagnostic Metrics (PDM) Destination | Performance and Diagnostic Metrics (PDM) Destination | |||
Option", RFC 8250, DOI 10.17487/RFC8250, September 2017, | Option", RFC 8250, DOI 10.17487/RFC8250, September 2017, | |||
<https://www.rfc-editor.org/info/rfc8250>. | <https://www.rfc-editor.org/info/rfc8250>. | |||
[RFC8289] Nichols, K., Jacobson, V., McGregor, A., Ed., and J. | [RFC8289] Nichols, K., Jacobson, V., McGregor, A., Ed., and J. | |||
Iyengar, Ed., "Controlled Delay Active Queue Management", | Iyengar, Ed., "Controlled Delay Active Queue Management", | |||
RFC 8289, DOI 10.17487/RFC8289, January 2018, | RFC 8289, DOI 10.17487/RFC8289, January 2018, | |||
<https://www.rfc-editor.org/info/rfc8289>. | <https://www.rfc-editor.org/info/rfc8289>. | |||
skipping to change at page 48, line 10 ¶ | skipping to change at page 50, line 10 ¶ | |||
-10 Updated following additional feedback from 1st WGLC. Comments | -10 Updated following additional feedback from 1st WGLC. Comments | |||
from David Black; Tommy Pauly; Ian Swett; Mirja Kuehlewind; Peter | from David Black; Tommy Pauly; Ian Swett; Mirja Kuehlewind; Peter | |||
Gutmann; Ekr; and many others via the TSVWG list. Some people | Gutmann; Ekr; and many others via the TSVWG list. Some people | |||
thought that "needed" and "need" could represent requirements in the | thought that "needed" and "need" could represent requirements in the | |||
document, etc. this has been clarified. | document, etc. this has been clarified. | |||
-11 Updated following additional feedback from Martin Thomson, and | -11 Updated following additional feedback from Martin Thomson, and | |||
corrections from other reviewers. | corrections from other reviewers. | |||
-11 Updated following additional feedback from 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. | ||||
Authors' Addresses | Authors' Addresses | |||
Godred Fairhurst | Godred Fairhurst | |||
University of Aberdeen | University of Aberdeen | |||
Department of Engineering | Department of Engineering | |||
Fraser Noble Building | Fraser Noble Building | |||
Aberdeen AB24 3UE | Aberdeen AB24 3UE | |||
Scotland | Scotland | |||
End of changes. 76 change blocks. | ||||
283 lines changed or deleted | 373 lines changed or added | |||
This html diff was produced by rfcdiff 1.46. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |