draft-ietf-tsvwg-transport-encrypt-02.txt | draft-ietf-tsvwg-transport-encrypt-03.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: May 29, 2019 University of Glasgow | Expires: May 29, 2019 University of Glasgow | |||
November 25, 2018 | November 25, 2018 | |||
The Impact of Transport Header Confidentiality on Network Operation and | The Impact of Transport Header Confidentiality on Network Operation and | |||
Evolution of the Internet | Evolution of the Internet | |||
draft-ietf-tsvwg-transport-encrypt-02 | draft-ietf-tsvwg-transport-encrypt-03 | |||
Abstract | Abstract | |||
This document describes implications of applying end-to-end | This document describes implications of applying end-to-end | |||
encryption at the transport layer. It identifies in-network uses of | encryption at the transport layer. It identifies in-network uses of | |||
transport layer header information. It then reviews the implications | transport layer header information. It then reviews the implications | |||
of developing end-to-end transport protocols that use authentication | of developing end-to-end transport protocols that use authentication | |||
to protect the integrity of transport information or encryption to | to protect the integrity of transport information or encryption to | |||
provide confidentiality of the transport protocol header and expected | provide confidentiality of the transport protocol header and expected | |||
implications of transport protocol design and network operation. | implications of transport protocol design and network operation. | |||
skipping to change at page 2, line 21 ¶ | skipping to change at page 2, line 21 ¶ | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
2. Context and Rationale . . . . . . . . . . . . . . . . . . . . 3 | 2. Context and Rationale . . . . . . . . . . . . . . . . . . . . 3 | |||
3. Current uses of Transport Headers within the Network . . . . 10 | 3. Current uses of Transport Headers within the Network . . . . 10 | |||
3.1. Observing Transport Information in the Network . . . . . 10 | 3.1. Observing Transport Information in the Network . . . . . 10 | |||
3.2. Transport Measurement . . . . . . . . . . . . . . . . . . 15 | 3.2. Transport Measurement . . . . . . . . . . . . . . . . . . 16 | |||
3.3. Use for Network Diagnostics and Troubleshooting . . . . . 19 | 3.3. Use for Network Diagnostics and Troubleshooting . . . . . 19 | |||
3.4. Use of transport information to influence network | 3.4. Header Compression . . . . . . . . . . . . . . . . . . . 20 | |||
forwarding . . . . . . . . . . . . . . . . . . . . . . . 20 | ||||
4. Encryption and Authentication of Transport Headers . . . . . 21 | 4. Encryption and Authentication of Transport Headers . . . . . 21 | |||
5. Addition of Transport Information to Network-Layer Protocol | 5. Addition of Transport Information to Network-Layer Protocol | |||
Headers . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 | Headers . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
5.1. Use of transport information to influence network | 6. Implications of Protecting the Transport Headers . . . . . . 26 | |||
forwarding . . . . . . . . . . . . . . . . . . . . . . . 25 | 6.1. Independent Measurement . . . . . . . . . . . . . . . . . 26 | |||
5.2. Network-layer measurement . . . . . . . . . . . . . . . . 27 | 6.2. Characterising "Unknown" Network Traffic . . . . . . . . 27 | |||
6. Implications of Protecting the Transport Headers . . . . . . 28 | 6.3. Accountability and Internet Transport Protocols . . . . . 27 | |||
6.1. Independent Measurement . . . . . . . . . . . . . . . . . 28 | 6.4. Impact on Research, Development and Deployment . . . . . 28 | |||
6.2. Characterising "Unknown" Network Traffic . . . . . . . . 29 | 7. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . 29 | |||
6.3. Accountability and Internet Transport Protocols . . . . . 29 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 31 | |||
6.4. Impact on Research, Development and Deployment . . . . . 30 | 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 33 | |||
7. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . 31 | 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 33 | |||
8. Security Considerations . . . . . . . . . . . . . . . . . . . 33 | 11. Informative References . . . . . . . . . . . . . . . . . . . 33 | |||
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 35 | Appendix A. Revision information . . . . . . . . . . . . . . . . 40 | |||
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 35 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 41 | |||
11. Informative References . . . . . . . . . . . . . . . . . . . 36 | ||||
Appendix A. Revision information . . . . . . . . . . . . . . . . 42 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 42 | ||||
1. Introduction | 1. Introduction | |||
There is increased interest in, and deployment of, new protocols that | There is increased interest in, and deployment of, new protocols that | |||
employ end-to-end encryption at the transport layer, including the | employ end-to-end encryption at the transport layer, including the | |||
transport layer headers. An example of such a transport is the QUIC | transport layer headers. An example of such a transport is the QUIC | |||
transport protocol [I-D.ietf-quic-transport], currently being | transport protocol [I-D.ietf-quic-transport], currently being | |||
standardised in the IETF. Encryption of transport layer headers and | standardised in the IETF. Encryption of transport layer headers and | |||
payload data has many benefits in terms of protecting user privacy. | payload data has many benefits in terms of protecting user privacy. | |||
These benefits have been widely discussed, and we strongly support | These benefits have been widely discussed [RFC7258], [RFC7624], and | |||
them. There are also, however, some costs, in that the wide use of | this document strongly supports the increased use of encryption in | |||
transport encryption requires changes to network operations, and | transport protocols. There are also, however, some costs, in that | |||
complicates network measurement for research, operational, and | the widespread use of transport encryption requires changes to | |||
standardisation purposes. | network operations, and complicates network measurement for research, | |||
operational, and standardisation purposes. | ||||
This document discusses some consequences of applying end-to-end | This document discusses some consequences of applying end-to-end | |||
encryption at the transport layer. It reviews the implications of | encryption at the transport layer. It reviews the implications of | |||
developing end-to-end transport protocols that use encryption to | developing end-to-end transport protocols that use encryption to | |||
provide confidentiality of the transport protocol header, and | provide confidentiality of the transport protocol header, and | |||
consider the effect of such changes on transport protocol design and | considers the effect of such changes on transport protocol design and | |||
network operation. It also considers anticipated implications on | network operations. It also considers anticipated implications on | |||
transport and application evolution. | transport and application evolution. | |||
Transports are increasingly encrypting and authenticating the payload | ||||
(i.e., the application data carried within the transport connection) | ||||
end-to-end. Such protection is encouraged, and iits implications are | ||||
not further discussed in this memo. | ||||
2. Context and Rationale | 2. Context and Rationale | |||
The transport layer provides end-to-end interactions between | The transport layer provides end-to-end interactions between | |||
endpoints (processes) using an Internet path. Transport protocols | endpoints (processes) using an Internet path. Transport protocols | |||
layer directly over the network-layer service and are sent in the | layer directly over the network-layer service and are sent in the | |||
payload of network-layer packets. They support end-to-end | payload of network-layer packets. They support end-to-end | |||
communication between applications, supported by higher-layer | communication between applications, supported by higher-layer | |||
protocols, running on the end systems (or transport endpoints). This | protocols, running on the end systems (or transport endpoints). This | |||
simple architectural view hides one of the core functions of the | simple architectural view hides one of the core functions of the | |||
transport, however, to discover and adapt to the properties of the | transport, however, to discover and adapt to the properties of the | |||
skipping to change at page 5, line 12 ¶ | skipping to change at page 5, line 15 ¶ | |||
In both cases, the issue was caused by middleboxes that had a hard- | In both cases, the issue was caused by middleboxes that had a hard- | |||
coded understanding of transport behaviour, and that interacted | coded understanding of transport behaviour, and that interacted | |||
poorly with transports that tried to change that behaviour. Other | poorly with transports that tried to change that behaviour. Other | |||
examples have included middleboxes that rewrite TCP sequence and | examples have included middleboxes that rewrite TCP sequence and | |||
acknowledgement numbers but are unaware of the (newer) SACK option | acknowledgement numbers but are unaware of the (newer) SACK option | |||
and don't correctly rewrite selective acknowledgements to match the | and don't correctly rewrite selective acknowledgements to match the | |||
changes made to the fixed TCP header. | changes made to the fixed TCP header. | |||
A protocol design that uses header encryption can provide | A protocol design that uses header encryption can provide | |||
confidentiality of some or all of the protocol header information. | confidentiality of some or all of the protocol header information. | |||
This prevents an on-path device from knowledge of the header field. | This prevents an on-path device from gaining knowledge of the header | |||
It therefore prevents mechanisms being built that directly rely on | field. It therefore prevents mechanisms being built that directly | |||
the information or seek to infer semantics of an exposed header | rely on the information or seek to infer semantics of an exposed | |||
field. Using encryption to provide confidentiality of the transport | header field. Using encryption to provide confidentiality of the | |||
layer brings some well-known privacy and security benefits and can | transport layer brings some well-known privacy and security benefits | |||
therefore help reduce ossification of the transport layer. In | and can therefore help reduce ossification of the transport layer. | |||
particular, it is important that protocols either do not expose | In particular, it is important that protocols either do not expose | |||
information where the usage could change in future protocols, or that | information where the usage could change in future protocols, or that | |||
methods that utilise the information are robust to potential changes | methods that utilise the information are robust to potential changes | |||
as protocols evolve over time. To avoid unwanted inspection, a | as protocols evolve over time. To avoid unwanted inspection, a | |||
protocol could also intentionally vary the format and/or value of | protocol could also intentionally vary the format and/or value of | |||
header fields (sometimes known as Greasing | header fields (sometimes known as Greasing | |||
[I-D.thomson-quic-grease]). However, while encryption hides the | [I-D.thomson-quic-grease]). However, while encryption hides the | |||
protocol header information, it does not prevent ossification of the | protocol header information, it does not prevent ossification of the | |||
network service: People seeking understanding of network traffic | network service. People seeking understanding of network traffic | |||
could come to rely on pattern inferences and other heuristics as the | could come to rely on pattern inferences and other heuristics as the | |||
basis for network decision and to derive measurement data, creating | basis for network decision and to derive measurement data, creating | |||
new dependencies on the transport protocol. | new dependencies on the transport protocol. | |||
Specification of non-encrypted transport header fields explicitly | Specification of non-encrypted transport header fields explicitly | |||
allows protocol designers to make specific header information | allows protocol designers to make specific header information | |||
observable in the network. This supports other uses of this | observable in the network. This supports other uses of this | |||
information by on-path devices, and at the same time this can be | information by on-path devices, and at the same time this can be | |||
expected to lead to ossification of the transport header, because | expected to lead to ossification of the transport header, because | |||
network forwarding could evolve to depend on the presence and/or | network forwarding could evolve to depend on the presence and/or | |||
value of these fields. The decision about which transport headers | value of these fields. The decision about which transport headers | |||
fields are made observable offers trade-offs around authentication, | fields are made observable offers trade-offs around authentication | |||
and confidentiality. For example, a design that provides | and confidentiality versus observability, network operations and | |||
management, and ossification. For example, a design that provides | ||||
confidentiality of protocol header information can impact the | confidentiality of protocol header information can impact the | |||
following activities that rely on measurement and analysis of traffic | following activities that rely on measurement and analysis of traffic | |||
flows: | flows: | |||
Network Operations and Research: Observable transport headers enable | Network Operations and Research: Observable transport headers enable | |||
both operators and the research community to measure and analyse | both operators and the research community to measure and analyse | |||
protocol performance, network anomalies, and failure pathologies. | protocol performance, network anomalies, and failure pathologies. | |||
This information can help inform capacity planning, and assist in | This information can help inform capacity planning, and assist in | |||
determining the need for equipment and/or configuration changes by | determining the need for equipment and/or configuration changes by | |||
skipping to change at page 6, line 15 ¶ | skipping to change at page 6, line 19 ¶ | |||
The data can also inform Internet engineering research, and help | The data can also inform Internet engineering research, and help | |||
in the development of new protocols, methodologies, and | in the development of new protocols, methodologies, and | |||
procedures. Concealing the transport protocol header information | procedures. Concealing the transport protocol header information | |||
makes the stream performance unavailable to passive observers | makes the stream performance unavailable to passive observers | |||
along the path, and likely leads to the development of alternative | along the path, and likely leads to the development of alternative | |||
methods to collect or infer that data. | methods to collect or infer that data. | |||
Providing confidentiality of the transport payload, but leaving | Providing confidentiality of the transport payload, but leaving | |||
some, or all, of the transport headers unencrypted, possibly with | some, or all, of the transport headers unencrypted, possibly with | |||
authentication, can provide the majority of the privacy and | authentication, can provide the majority of the privacy and | |||
security benefits while supporting operations and research. | security benefits while supporting operations and research, but at | |||
the cost of ossifying the transport headers. | ||||
Protection from Denial of Service: Observable transport headers | Protection from Denial of Service: Observable transport headers | |||
currently provide useful input to classify traffic and detect | currently provide useful input to classify traffic and detect | |||
anomalous events (e.g., changes in application behaviour, | anomalous events (e.g., changes in application behaviour, | |||
distributed denial of service attacks). To be effective, this | distributed denial of service attacks). To be effective, this | |||
protection needs to be able to uniquely disambiguate unwanted | protection needs to be able to uniquely disambiguate unwanted | |||
traffic. An inability to separate this traffic using packet | traffic. An inability to separate this traffic using packet | |||
header information could result in less-efficient identification | header information could result in less-efficient identification | |||
of unwanted traffic or development of different methods (e.g. | of unwanted traffic or development of different methods (e.g. | |||
rate-limiting of uncharacterised traffic). | rate-limiting of uncharacterised traffic). | |||
Network Troubleshooting and Diagnostics: Encrypting transport | Network Troubleshooting and Diagnostics: Encrypting transport | |||
header information eliminates the incentive for operators to | header information eliminates the incentive for operators to | |||
troubleshoot what they cannot interpret. A flow experiencing | troubleshoot since they cannot interpret the data. A flow | |||
packet loss or jitter looks like an unaffected flow when only | experiencing packet loss or jitter looks like an unaffected flow | |||
observing network layer headers (if transport sequence numbers and | when only observing network layer headers (if transport sequence | |||
flow identifiers are obscured). This limits understanding of the | numbers and flow identifiers are obscured). This limits | |||
impact of packet loss or latency on the flows, or even localizing | understanding of the impact of packet loss or latency on the | |||
the network segment causing the packet loss or latency. Encrypted | flows, or even localizing the network segment causing the packet | |||
traffic could imply "don't touch" to some, and could limit a | loss or latency. Encrypted traffic could imply "don't touch" to | |||
trouble-shooting response to "can't help, no trouble found". The | some, and could limit a trouble-shooting response to "can't help, | |||
additional mechanisms that will need to be introduced to help | no trouble found". Additional mechanisms will need to be | |||
reconstruct transport-level metrics add complexity and operational | introduced to help reconstruct or replace transport-level metrics | |||
costs (e.g., in deploying additional functions in equipment or | to support troubleshooting and diagnostics, but these add | |||
adding traffic overhead). | complexity and operational costs (e.g., in deploying additional | |||
functions in equipment or adding traffic overhead). | ||||
Network Traffic Analysis: Hiding transport protocol header | Network Traffic Analysis: Hiding transport protocol header | |||
information can make it harder to determine which transport | information can make it harder to determine which transport | |||
protocols and features are being used across a network segment and | protocols and features are being used across a network segment and | |||
to measure trends in the pattern of usage. This could impact the | to measure trends in the pattern of usage. This could impact the | |||
ability for an operator to anticipate the need for network | ability for an operator to anticipate the need for network | |||
upgrades and roll-out. It can also impact the on-going traffic | upgrades and roll-out. It can also impact the on-going traffic | |||
engineering activities performed by operators (such as determining | engineering activities performed by operators (such as determining | |||
which parts of the path contribute delay, jitter or loss). While | which parts of the path contribute delay, jitter or loss). While | |||
the impact could, in many cases, be small there are scenarios | the impact could, in many cases, be small there are scenarios | |||
where operators directly support particular services (e.g., to | where operators directly support particular services (e.g., to | |||
troubleshoot issues relating to Quality of Service, QoS; the | troubleshoot issues relating to Quality of Service, QoS; the | |||
ability to perform fast re-routing of critical traffic, or support | ability to perform fast re-routing of critical traffic, or support | |||
to mitigate the characteristics of specific radio links). The | to mitigate the characteristics of specific radio links). The | |||
more complex the underlying infrastructure the more important this | more complex the underlying infrastructure the more important this | |||
impact. | impact. | |||
Open and Verifiable Network Data: Hiding transport protocol header | Open and Verifiable Network Data: Hiding transport protocol header | |||
information can reduce the range of actors that can capture useful | information can reduce the range of actors that can capture useful | |||
measurement data. For example, one approach could be to employ an | measurement data. This limits the information sources available | |||
existing transport protocol that reveals little information (e.g., | to the Internet community to understand the operation of new | |||
UDP), and perform traditional transport functions at higher layers | transport protocols, so preventing access to the information | |||
protecting the confidentiality of transport information. Such a | necessary to inform design decisions and standardisation of the | |||
design, limits the information sources available to the Internet | new protocols and related operational practices. | |||
community to understand the operation of new transport protocols, | ||||
so preventing access to the information necessary to inform design | ||||
decisions and standardisation of the new protocols and related | ||||
operational practices. | ||||
The cooperating dependence of network, application, and host to | The cooperating dependence of network, application, and host to | |||
provide communication performance on the Internet is uncertain | provide communication performance on the Internet is uncertain | |||
when only endpoints (i.e., at user devices and within service | when only endpoints (i.e., at user devices and within service | |||
platforms) can observe performance, and performance cannot be | platforms) can observe performance, and when performance cannot be | |||
independently verified by all parties. The ability of other | independently verified by all parties. The ability of other | |||
stakeholders to review code can help develop deeper insight. In | stakeholders to review transport header traces can help develop | |||
the heterogeneous Internet, this helps extend the range of | deeper insight into performance. In the heterogeneous Internet, | |||
topologies, vendor equipment, and traffic patterns that are | this helps extend the range of topologies, vendor equipment, and | |||
evaluated. | traffic patterns that are evaluated. | |||
Independently captured data is important to help ensure the health | Independently captured data is important to help ensure the health | |||
of the research and development communities. It can provide input | of the research and development communities. It can provide input | |||
and test scenarios to support development of new transport | and test scenarios to support development of new transport | |||
protocol mechanisms, especially when this analysis can be based on | protocol mechanisms, especially when this analysis can be based on | |||
the behaviour experienced in a diversity of deployed networks. | the behaviour experienced in a diversity of deployed networks. | |||
Independently verifiable performance metrics might also be | Independently verifiable performance metrics might also be | |||
utilised to demonstrate regulatory compliance in some | utilised to demonstrate regulatory compliance in some | |||
jurisdictions, and provides a basis for informing design | jurisdictions, and to provide a basis for informing design | |||
decisions. | decisions. | |||
The last point leads us to consider the impact of hiding transport | The last point leads us to consider the impact of hiding transport | |||
headers in the specification and development of protocols and | headers in the specification and development of protocols and | |||
standards. This has potential impact on: | standards. This has potential impact on: | |||
o Understanding Feature Interactions: An appropriate vantage point, | o Understanding Feature Interactions: An appropriate vantage point, | |||
coupled with timing information about traffic flows, provides a | coupled with timing information about traffic flows, provides a | |||
valuable tool for benchmarking equipment, functions, and/or | valuable tool for benchmarking equipment, functions, and/or | |||
configurations, and to understand complex feature interactions. | configurations, and to understand complex feature interactions. | |||
skipping to change at page 8, line 32 ¶ | skipping to change at page 8, line 35 ¶ | |||
accidentally disrupt operations of/in different parts of the | accidentally disrupt operations of/in different parts of the | |||
network. The social contract that maintains the stability of the | network. The social contract that maintains the stability of the | |||
Internet relies on accepting common specifications. | Internet relies on accepting common specifications. | |||
o Operational Practice: The network operations community relies on | o Operational Practice: The network operations community relies on | |||
being able to understand the pattern and requirements of traffic | being able to understand the pattern and requirements of traffic | |||
passing over the Internet, both in aggregate and at the flow | passing over the Internet, both in aggregate and at the flow | |||
level. These operational practices have developed based on the | level. These operational practices have developed based on the | |||
information available from unencrypted transport headers. If this | information available from unencrypted transport headers. If this | |||
information is only carried in encrypted transport headers, | information is only carried in encrypted transport headers, | |||
operators will not be able to use this information directly, but | operators will not be able to use this information directly. If | |||
if operators still wish to use these practices, they may turn to | operators still wish to use these practices, they may turn to more | |||
more ambitious ways of discovering this information. For example, | ambitious ways of discovering this information. For example, if | |||
if an operator wants to know that traffic is audio traffic, and no | an operator wants to know that traffic is audio traffic, and no | |||
longer has access to Session Description Protocol (SDP) session | longer has access to Session Description Protocol (SDP) session | |||
descriptions that would explicitly say a flow "is audio", the | descriptions that would explicitly say a flow "is audio", the | |||
operator might use heuristics to guess that short UDP packets with | operator might use heuristics to guess that short UDP packets with | |||
regular spacing are carrying audio traffic. Operational practices | regular spacing are carrying audio traffic. Operational practices | |||
aimed at guessing transport parameters are out of scope for this | aimed at guessing 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 recognize that encryption | |||
may not prevent operators from attempting to apply the same | may not prevent operators from attempting to apply the same | |||
practices they used with unencrypted transport headers. | practices they used with unencrypted transport headers. | |||
o Compliance: Published transport specifications allow operators and | o Compliance: Published transport specifications allow operators and | |||
regulators to check compliance. This can bring assurance to those | regulators to check compliance. This can bring assurance to those | |||
operating networks, often avoiding the need to deploy complex | operating networks, often avoiding the need to deploy complex | |||
techniques that routinely monitor and manage TCP/IP traffic flows | techniques that routinely monitor and manage TCP/IP traffic flows | |||
(e.g. Avoiding the capital and operational costs of deploying | (e.g., avoiding the capital and operational costs of deploying | |||
flow rate-limiting and network circuit-breaker methods [RFC8084]). | flow rate-limiting and network circuit-breaker methods [RFC8084]). | |||
When it is not possible to observe transport header information, | When it is not possible to observe transport header information, | |||
methods are still needed to confirm that the traffic produced | methods are still needed to confirm that the traffic produced | |||
conforms to the expectations of the operator or developer. | conforms to the expectations of the operator or developer. | |||
o Restricting research and development: Hiding transport information | o Restricting research and development: Hiding transport information | |||
can impede independent research into new mechanisms, measurement | can impede independent research into new mechanisms, measurement | |||
of behaviour, and development initiatives. Experience shows that | of behaviour, and development initiatives. Experience shows that | |||
transport protocols are complicated to design and complex to | transport protocols are complicated to design and complex to | |||
deploy, and that individual mechanisms need to be evaluated while | deploy, and that individual mechanisms need to be evaluated while | |||
considering other mechanisms, across a broad range of network | considering other mechanisms, across a broad range of network | |||
topologies and with attention to the impact on traffic sharing the | topologies and with attention to the impact on traffic sharing the | |||
capacity. If this results in reduced availability of open data, | capacity. If this results in reduced availability of open data, | |||
it could eliminate the independent self-checks to the | it could eliminate the independent self-checks to the | |||
standardisation process that have previously been in place from | standardisation process that have previously been in place from | |||
research and academic contributors (e.g., the role of the IRTF | research and academic contributors (e.g., the role of the IRTF | |||
ICCRG, and research publications in reviewing new transport | Internet Congestion Control Research Groups (ICCRG) and research | |||
mechanisms and assessing the impact of their experimental | publications in reviewing new transport mechanisms and assessing | |||
deployment) | the impact of their experimental deployment) | |||
In summary, there are trade offs. On the one hand, protocol | In summary, there are trade-offs. On the one hand, transport | |||
designers have often ignored the implications of whether the | protocol designers have often ignored the implications of whether the | |||
information in transport header fields can or will be used by in- | information in transport header fields can or will be used by in- | |||
network devices, and the implications this places on protocol | network devices, and the implications this places on protocol | |||
evolution. This motivates a design that provides confidentiality of | evolution. This motivates a design that provides confidentiality of | |||
the header information. On the other hand, it can be expected that a | the header information. On the other hand, it can be expected that a | |||
lack of visibility of transport header information can impact the | lack of visibility of transport header information can impact the | |||
ways that protocols are deployed, standardised, and their operational | ways that protocols are deployed, standardised, and their operational | |||
support. | support. | |||
To achieve stable Internet operations the IETF transport community | To achieve stable Internet operations the IETF transport community | |||
has to date relied heavily on measurement and insights of the network | has to date relied heavily on measurement and insights of the network | |||
operations community to understand the trade-offs, and to inform | operations community to understand the trade-offs, and to inform | |||
selection of appropriate mechanisms, to ensure a safe, reliable, and | selection of appropriate mechanisms, to ensure a safe, reliable, and | |||
robust Internet (e.g., [RFC1273],[RFC2914]). | robust Internet (e.g., [RFC1273],[RFC2914]). | |||
The choice of whether future transport protocols encrypt their | The choice of whether future transport protocols encrypt their | |||
protocol headers therefore needs to be taken based not solely on | protocol headers therefore needs to be taken based not solely on | |||
security and privacy considerations, but also taking into account the | security and privacy considerations, but also taking into account the | |||
impact on operations, standards, and research. Any new Internet | impact on operations, standards, and research. As [RFC7258] notes: | |||
transport will need to provide appropriate transport mechanisms and | "Making networks unmanageable to mitigate [pervasive monitoring] is | |||
operational support to assure the resulting traffic can not result in | not an acceptable outcome, but ignoring [pervasive monitoring] would | |||
persistent congestion collapse [RFC2914]. This document suggests | go against the consensus documented here. An appropriate balance | |||
that the balance between information exposed and concealed should be | will emerge over time as real instances of this tension are | |||
carefully considered when specifying new protocols. | considered." This balance between information exposed and | |||
information concealed ought to be carefully considered when | ||||
specifying new transport protocols. | ||||
3. Current uses of Transport Headers within the Network | 3. Current uses of Transport Headers within the Network | |||
Despite transport headers having end-to-end meaning, some of these | Despite transport headers having end-to-end meaning, some of these | |||
transport headers have come to be used in various ways within the | transport headers have come to be used in various ways within the | |||
Internet. In response to pervasive monitoring [RFC7624] revelations | Internet. In response to pervasive monitoring [RFC7624] revelations | |||
and the IETF consensus that "Pervasive Monitoring is an Attack" | and the IETF consensus that "Pervasive Monitoring is an Attack" | |||
[RFC7258], efforts are underway to increase encryption of Internet | [RFC7258], efforts are underway to increase encryption of Internet | |||
traffic,. Applying confidentiality to transport header fields would | traffic,. Applying confidentiality to transport header fields would | |||
affect how protocol information is used [RFC8404]. To understand | affect how protocol information is used [RFC8404]. To understand | |||
skipping to change at page 11, line 9 ¶ | skipping to change at page 11, line 9 ¶ | |||
Transport protocol header information (together with information in | Transport protocol header information (together with information in | |||
the network header), has been used to identify a flow and the | the network header), has been used to identify a flow and the | |||
connection state of the flow, together with the protocol options | connection state of the flow, together with the protocol options | |||
being used. In some usages, a low-numbered (well-known) transport | being used. In some usages, a low-numbered (well-known) transport | |||
port number has been used to identify a protocol (although port | port number has been used to identify a protocol (although port | |||
information alone is not sufficient to guarantee identification of a | information alone is not sufficient to guarantee identification of a | |||
protocol, since applications can use arbitrary ports, multiple | protocol, since applications can use arbitrary ports, multiple | |||
sessions can be multiplexed on a single port, and ports can be re- | sessions can be multiplexed on a single port, and ports can be re- | |||
used by subsequent sessions). | used by subsequent sessions). | |||
Transport protocols, such as TCP and Stream Control Transport | Transport protocols, such as TCP and the Stream Control Transport | |||
Protocol (SCTP) specify a standard base header that includes sequence | Protocol (SCTP) specify a standard base header that includes sequence | |||
number information and other data, with the possibility to negotiate | number information and other data, with the possibility to negotiate | |||
additional headers at connection setup, identified by an option | additional headers at connection setup, identified by an option | |||
number in the transport header. UDP-based protocols can use, but | number in the transport header. UDP-based protocols can use, but | |||
sometimes do not use, well-known port numbers. Some flows can | sometimes do not use, well-known port numbers. Some flows can | |||
instead be identified by signalling protocols or through the use of | instead be identified by observing signalling protocol data (e.g., | |||
magic numbers placed in the first byte(s) of the datagram payload. | [RFC3261], [I-D.ietf-rtcweb-overview]) or through the use of magic | |||
numbers placed in the first byte(s) of the datagram payload | ||||
[RFC7983]. | ||||
Flow identification is a common function. For example, performed by | Flow identification is a common function. For example, performed by | |||
measurement activities, QoS classification, firewalls, Denial of | measurement activities, QoS classification, firewalls, Denial of | |||
Service, DOS, prevention. It becomes more complex and less easily | Service, DOS, prevention. It becomes more complex and less easily | |||
achieved when multiplexing is used at or above the transport layer. | achieved when multiplexing is used at or above the transport layer. | |||
3.1.2. Metrics derived from Transport Layer Headers | 3.1.2. Metrics derived from Transport Layer Headers | |||
Some actors manage their portion of the Internet by characterizing | Some actors manage their portion of the Internet by characterizing | |||
the performance of link/network segments. Passive monitoring uses | the performance of link/network segments. Passive monitoring uses | |||
observed traffic to makes inferences from transport headers to derive | observed traffic to make inferences from transport headers to derive | |||
these measurements. A variety of open source and commercial tools | these performance metrics. A variety of open source and commercial | |||
have been deployed that utilise this information. The following | tools have been deployed that utilise this information. The | |||
metrics can be derived from transport header information: | following metrics can be derived from transport header information: | |||
Traffic Rate and Volume: Header information e.g., (sequence number, | Traffic Rate and Volume: Header information (e.g., sequence number | |||
length) allows derivation of volume measures per-application, to | and packet size) allows derivation of volume measures per- | |||
characterise the traffic that uses a network segment or the | application, to characterise the traffic that uses a network | |||
pattern of network usage. This can be measured per endpoint or | segment or the pattern of network usage. This can be measured per | |||
for an aggregate of endpoints (e.g., by an operator to assess | endpoint or for an aggregate of endpoints (e.g., by an operator to | |||
subscriber usage). It can also be used to trigger measurement- | assess subscriber usage). It can also be used to trigger | |||
based traffic shaping and to implement QoS support within the | measurement-based traffic shaping and to implement QoS support | |||
network and lower layers. Volume measures can be valuable for | within the network and lower layers. Volume measures can be | |||
capacity planning (providing detail of trends rather than the | valuable for capacity planning and providing detail of trends, | |||
volume per subscriber). | rather than the volume per subscriber. | |||
Loss Rate and Loss Pattern: Flow loss rate can be derived (e.g., | Loss Rate and Loss Pattern: Flow loss rate can be derived (e.g., | |||
from sequence number) and has been used as a metric for | from transport sequence numbers) and has been used as a metric for | |||
performance assessment and to characterise transport behaviour. | performance assessment and to characterise transport behaviour. | |||
Understanding the root cause of loss can help an operator | Understanding the location and root cause of loss can help an | |||
determine whether this requires corrective action. Network | operator determine whether this requires corrective action. | |||
operators have used the variation in patterns of loss as a key | Network operators have used the variation in patterns of loss as a | |||
performance metric, utilising this to detect changes in the | key performance metric, utilising this to detect changes in the | |||
offered service. | offered service. | |||
There are various causes of loss, including: corruption of link | There are various causes of loss, including corruption of link | |||
frames (e.g., interference on a radio link), buffer overflow | frames (e.g., interference on a radio link), buffer overflow | |||
(e.g., due to congestion), policing (traffic management), buffer | (e.g., due to congestion), policing (traffic management), buffer | |||
management (e.g., Active Queue Management, AQM [RFC7567]), | management (e.g., Active Queue Management, AQM [RFC7567]), and | |||
inadequate provision of traffic preemption. Understanding flow | inadequate provision of traffic pre-emption. Understanding flow | |||
loss rate requires either maintaining per flow packet counters or | loss rate requires either maintaining per flow packet counters or | |||
by observing sequence numbers in transport headers. Loss can be | by observing sequence numbers in transport headers. Loss can be | |||
monitored at the interface level by devices in the network. It is | monitored at the interface level by devices in the network. It is | |||
often valuable to understand the conditions under which packet | often valuable to understand the conditions under which packet | |||
loss occurs. This usually requires relating loss to the traffic | loss occurs. This usually requires relating loss to the traffic | |||
flowing on the network node/segment at the time of loss. | flowing on the network node/segment at the time of loss. | |||
Observation of transport feedback information (observing loss | Observation of transport feedback information (e.g., RTP Control | |||
reports, e.g., RTP Control Protocol (RTCP) [RFC3550], TCP SACK) | Protocol (RTCP) reception reports [RFC3550], TCP SACK blocks) can | |||
can increase understanding of the impact of loss and help identify | increase understanding of the impact of loss and help identify | |||
cases where loss could have been wrongly identified, or the | cases where loss could have been wrongly identified, or the | |||
transport did not require the lost packet. It is sometimes more | transport did not require the lost packet. It is sometimes more | |||
helpful to understand the pattern of loss, than the loss rate, | helpful to understand the pattern of loss, than the loss rate, | |||
because losses can often occur as bursts, rather than randomly- | because losses can often occur as bursts, rather than randomly- | |||
timed events. | timed events. | |||
Throughput and Goodput: The throughput achieved by a flow can be | Throughput and Goodput: The throughput achieved by a flow can be | |||
determined even when a flow is encrypted, providing the individual | determined even when a flow is encrypted, providing the individual | |||
flow can be identified. Goodput [RFC7928] is a measure of useful | flow can be identified. Goodput [RFC7928] is a measure of useful | |||
data exchanged (the ratio of useful/total volume of traffic sent | data exchanged (the ratio of useful/total volume of traffic sent | |||
skipping to change at page 12, line 42 ¶ | skipping to change at page 12, line 44 ¶ | |||
numbers in the TCP or the Real-time Transport Protocol, RTP, | numbers in the TCP or the Real-time Transport Protocol, RTP, | |||
headers [RFC3550]). | headers [RFC3550]). | |||
Latency: Latency is a key performance metric that impacts | Latency: Latency is a key performance metric that impacts | |||
application response time and user-perceived response time. It | application response time and user-perceived response time. It | |||
often indirectly impacts throughput and flow completion time. | often indirectly impacts throughput and flow completion time. | |||
Latency determines the reaction time of the transport protocol | Latency determines the reaction time of the transport protocol | |||
itself, impacting flow setup, congestion control, loss recovery, | itself, impacting flow setup, congestion control, loss recovery, | |||
and other transport mechanisms. The observed latency can have | and other transport mechanisms. The observed latency can have | |||
many components [Latency]. Of these, unnecessary/unwanted queuing | many components [Latency]. Of these, unnecessary/unwanted queuing | |||
in network buffers has often been observed as a significant | in network buffers has often been observed as a significant factor | |||
factor. Once the cause of unwanted latency has been identified, | [bufferbloat]. Once the cause of unwanted latency has been | |||
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 | |||
can measure the experienced round trip time (RTT) using packet | can measure the experienced round trip time (RTT) using packet | |||
sequence numbers, and acknowledgements, or by observing header | sequence numbers, and acknowledgements, or by observing header | |||
timestamp information. Such information allows an observation | timestamp information. Such information allows an observation | |||
point in the network to determine not only the path RTT, but also | point in the network to determine not only the path RTT, but also | |||
to measure the upstream and downstream contribution to the RTT. | to measure the upstream and downstream contribution to the RTT. | |||
This could be used to locate a source of latency, e.g., by | This could be used to locate a source of latency, e.g., by | |||
observing cases where the median RTT is much greater than the | observing cases where the median RTT is much greater than the | |||
minimum RTT for a part of a path. | minimum RTT for a part of a path. | |||
The service offered by operators can benefit from latency | The service offered by network operators can benefit from latency | |||
information to understand the impact of deployment and tune | information to understand the impact of deployment and tune | |||
deployed services. Latency metrics are key to evaluating and | deployed services. Latency metrics are key to evaluating and | |||
deploying AQM [RFC7567], DiffServ [RFC2474], and Explicit | deploying AQM [RFC7567], DiffServ [RFC2474], and Explicit | |||
Congestion Notification (ECN) [RFC3168] [RFC8087]. Measurements | Congestion Notification (ECN) [RFC3168] [RFC8087]. Measurements | |||
could identify excessively large buffers, indicating where to | could identify excessively large buffers, indicating where to | |||
deploy or configure AQM. An AQM method is often deployed in | deploy or configure AQM. An AQM method is often deployed in | |||
combination with other techniques, such as scheduling [RFC7567] | combination with other techniques, such as scheduling [RFC7567] | |||
[RFC8290] and although parameter-less methods are desired | [RFC8290] and although parameter-less methods are desired | |||
[RFC7567], current methods [RFC8290] [RFC8289] [RFC8033] often | [RFC7567], current methods [RFC8290] [RFC8289] [RFC8033] often | |||
cannot scale across all possible deployment scenarios. | cannot scale across all possible deployment scenarios. | |||
Variation in delay: Some network applications are sensitive to small | Variation in delay: Some network applications are sensitive to small | |||
changes in packet timing. To assess the performance of such | changes in packet timing. To assess the performance of such | |||
applications, it can be necessary to measure the variation in | applications, it can be necessary to measure the variation in | |||
delay observed along a portion of the path [RFC3393] [RFC5481]. | delay observed along a portion of the path [RFC3393] [RFC5481]. | |||
The requirements resemble those for the measurement of latency. | The requirements resemble those for the measurement of latency. | |||
Flow Reordering: Significant flow reordering can impact time- | Flow Reordering: Significant packet reordering within a flow can | |||
critical applications and can be interpreted as loss by reliable | impact time-critical applications and can be interpreted as loss | |||
transports. Many transport protocol techniques are impacted by | by reliable transports. Many transport protocol techniques are | |||
reordering (e.g., triggering TCP retransmission, or re-buffering | impacted by reordering (e.g., triggering TCP retransmission, or | |||
of real-time applications). Packet reordering can occur for many | re-buffering of real-time applications). Packet reordering can | |||
reasons (from equipment design to misconfiguration of forwarding | occur for many reasons, from equipment design to misconfiguration | |||
rules). Since this impacts transport performance, network tools | of forwarding rules. Since this impacts transport performance, | |||
are needed to detect and measure unwanted/excessive reordering. | network tools are needed to detect and measure unwanted/excessive | |||
reordering. | ||||
There have been initiatives in the IETF transport area to reduce | There have been initiatives in the IETF transport area to reduce | |||
the impact of reordering within a transport flow, possibly leading | the impact of reordering within a transport flow, possibly leading | |||
to a reduction in the requirements for preserving ordering. These | to a reduction in the requirements for preserving ordering. These | |||
have promise to simplify network equipment design as well as the | have promise to simplify network equipment design as well as the | |||
potential to improve robustness of the transport service. | potential to improve robustness of the transport service. | |||
Measurements of reordering can help understand the present level | Measurements of reordering can help understand the present level | |||
of reordering within deployed infrastructure, and inform decisions | of reordering within deployed infrastructure, and inform decisions | |||
about how to progress such mechanisms. | about how to progress such mechanisms. Key performance indicators | |||
are retransmission rate, packet drop rate, sector utilisation | ||||
level, a measure of reordering, peak rate, the ECN congestion | ||||
experienced (CE) marking rate, etc. | ||||
Operational tools to detect mis-ordered packet flows and quantify the | Metrics have been defined that evaluate whether a network has | |||
degree or reordering. Key performance indicators are retransmission | maintained packet order on a packet-by-packet basis [RFC4737] and | |||
rate, packet drop rate, sector utilisation level, a measure of | [RFC5236]. | |||
reordering, peak rate, the ECN congestion experienced (CE) marking | ||||
rate, etc. | ||||
Metrics have been defined that evaluate whether a network has | Techniques for measuring reordering typically observe packet | |||
maintained packet order on a packet-by-packet basis [RFC4737] and | sequence numbers. Some protocols provide in-built monitoring and | |||
[RFC5236]. | reporting functions. Transport fields in the RTP header [RFC3550] | |||
[RFC4585] can be observed to derive traffic volume measurements | ||||
and provide information on the progress and quality of a session | ||||
using RTP. As with other measurement, metadata is often needed to | ||||
understand the context under which the data was collected, | ||||
including the time, observation point, and way in which metrics | ||||
were accumulated. The RTCP protocol directly reports some of this | ||||
information in a form that can be directly visible in the network. | ||||
A user of summary measurement data needs to trust the source of | ||||
this data and the method used to generate the summary information. | ||||
Techniques for measuring reordering typically observe packet sequence | The above passively monitor transport protocol headers to derive | |||
numbers. Some protocols provide in-built monitoring and reporting | metrics about network layer performance useful for operation and | |||
functions. Transport fields in the RTP header [RFC3550] [RFC4585] | management of a network. | |||
can be observed to derive traffic volume measurements and provide | ||||
information on the progress and quality of a session using RTP. As | ||||
with other measurement, metadata is often needed to understand the | ||||
context under which the data was collected, including the time, | ||||
observation point, and way in which metrics were accumulated. The | ||||
RTCP protocol directly reports some of this information in a form | ||||
that can be directly visible in the network. A user of summary | ||||
measurement data needs to trust the source of this data and the | ||||
method used to generate the summary information. | ||||
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 can be used by a multi-field | ||||
classifier as a part of policy framework. Policies are commonly used | ||||
for management of the QoS or Quality of Experience (QoE) in resource- | ||||
constrained networks and by firewalls that use the information to | ||||
implement access rules (see also section 2.2.2 of [RFC8404]). | ||||
Network-layer classification methods that rely on a multi-field | Network-layer classification methods that rely on a multi-field | |||
classifier (e.g. infering QoS from the 5-tuple or choice of | classifier (e.g. Inferring QoS from the 5-tuple or choice of | |||
application protocol) are incompatible with transport protocols that | application protocol) are incompatible with transport protocols that | |||
encrypt the transport information. | encrypt the transport information. Traffic that cannot be | |||
classified, will typically receive a default treatment. | ||||
In contrast, network-layer header fields are not encrypted and can | Transport information can also be explicitly set in network-layer | |||
explicitly provide information from the transport layer to enable a | header fields that are not encrypted. This can provide information | |||
different forwarding treatment by the network. This information can | to enable a different forwarding treatment by the network, even when | |||
be provided by a transport that employs encryption. | a transport employs encryption to protect other header information. | |||
When a transport multiplexes multiple subflows, the user of the | On the one hand, the user of a transport that multiplexes multiple | |||
transport could wish to hide the presence and characteristics of | sub-flows could wish to hide the presence and characteristics of | |||
these subflows. other uses of an encrypted transport could set the | these sub-flows. On the other hand, an encrypted transport could set | |||
network-layer information to indicate the presence of subflows and to | the network-layer information to indicate the presence of sub-flows | |||
reflect the network needs of individual subflows (e.g., a WebRTC can | and to reflect the network needs of individual sub-flows. There are | |||
identify different forwarding treatments for individual packets based | several ways this could be done: | |||
on the value of the Differentiated Services Code Point (DSCP) field | ||||
[I-D.ietf-tsvwg-rtcweb-qos]). | ||||
Use of IPv6 Network-Layer Flow Label: Endpoints are encouraged to | Using the IPv6 Network-Layer Flow Label: Endpoints are encouraged to | |||
set the IPv6 Flow Label field of the network-layer header (e.g., | set the IPv6 Flow Label field of the network-layer header (e.g., | |||
[RFC8085]). The label can provide information that can help | [RFC8085]). The label can provide information that can help | |||
inform network-layer queuing, forwarding (e.g., for Equal Cost | inform network-layer queuing, forwarding (e.g., for Equal Cost | |||
Multi-Path, ECMP, routing, and Link Aggregation, LAG) [RFC6294]. | Multi-Path, ECMP, routing, and Link Aggregation, LAG) [RFC6294]. | |||
A multiplexing transport could choose to use multiple flow labels | A multiplexing transport could choose to use multiple flow labels | |||
to allow the network to independently forward subflows. | to allow the network to independently forward subflows. | |||
Use Network-Layer Differentiated Services Code Point 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 DSCP field of IPv4 and IPv6 packets [RFC2474].This | by setting the Differentiated Services Code Point (DSCP) field of | |||
provides explicit information to inform network-layer queuing and | IPv4 and IPv6 packets [RFC2474]. For example, WebRTC applications | |||
forwarding, rather than an operator inferring traffic requirements | identify different forwarding treatments for individual sub-flows | |||
from transport and application headers via a multi-field | (audio vs. video) based on the value of the DSCP field | |||
classifier. | [I-D.ietf-tsvwg-rtcweb-qos]). This provides explicit information | |||
to inform network-layer queuing and forwarding, rather than an | ||||
operator inferring traffic requirements from transport and | ||||
application headers via a multi-field classifier. | ||||
Since the DSCP value can impact the quality of experience for a | Since the DSCP value can impact the quality of experience for a | |||
flow., observations of service performance need to consider this | flow., observations of service performance need to consider this | |||
field when a network path has support for differentiated service | field when a network path has support for differentiated service | |||
treatment. | treatment. | |||
Use of Explicit Congestion Marking: ECN [RFC3168] is a transport | Using Explicit Congestion Marking: ECN [RFC3168] is a transport | |||
mechanism that utilises the ECN field in the network-layer header. | mechanism that utilises the ECN field in the network-layer header. | |||
Use of ECN explicitly informs the network-layer that a transport | Use of ECN explicitly informs the network-layer that a transport | |||
is ECN-capable, and requests ECN treatment of the flows packets. | is ECN-capable, and requests ECN treatment of the flows packets. | |||
An ECN-capable transport can offer benefits when used over a path | An ECN-capable transport can offer benefits when used over a path | |||
with equipment taht implements an AQM method with Congestion | with equipment that implements an AQM method with Congestion | |||
Experienced (CE) marking of IP packets [RFC8087]. | Experienced (CE) marking of IP packets [RFC8087], since it can | |||
react to congestion without also having to recover from lost | ||||
packets. | ||||
ECN exposes the presence of congestion. The reception of CE- | ECN exposes the presence of congestion. The reception of CE- | |||
marked packets can be used to estimate the level of incipient | marked packets can be used to estimate the level of incipient | |||
congestion on the upstream portion of the path from the point of | congestion on the upstream portion of the path from the point of | |||
observation (Section 2.5 of [RFC8087]). Interpreting the marking | observation (Section 2.5 of [RFC8087]). Interpreting the marking | |||
behaviour (i.e., assessing congestion and diagnosing faults) | behaviour (i.e., assessing congestion and diagnosing faults) | |||
requires context from the transport layer (such as path RTT). | requires context from the transport layer (such as path RTT). | |||
AQM and ECN offer a range of algorithms and configuration options. | AQM and ECN offer a range of algorithms and configuration options. | |||
Tools therefore need to be available to network operators and | Tools therefore need to be available to network operators and | |||
researchers to understand the implication of configuration choices | researchers to understand the implication of configuration choices | |||
and transport behaviour as use of ECN increases and new methods | and transport behaviour as use of ECN increases and new methods | |||
emerge [RFC7567]. | emerge [RFC7567]. | |||
Careful use of the network layer features can therefore help address | ||||
some of the reasons why the network inspects transport protocol | ||||
headers. | ||||
3.2. Transport Measurement | 3.2. Transport Measurement | |||
The common language between network operators and application/content | The common language between network operators and application/content | |||
providers/users is packet transfer performance at a layer that all | providers/users is packet transfer performance at a layer that all | |||
can view and analyse. For most packets, this has been transport | can view and analyse. For most packets, this has been the transport | |||
layer, until the emergence of QUIC, with the obvious exception of | layer, until the emergence of QUIC, with the obvious exception of | |||
Virtual Private Networks (VPNs) and IPsec. | Virtual Private Networks (VPNs) and IPsec. | |||
When encryption conceals more layers in each packet, people seeking | When encryption conceals more layers in each packet, people seeking | |||
understanding of the network operation rely more on pattern | understanding of the network operation rely more on pattern | |||
inferences and other heuristics reliance on pattern inferences and | inferences and other heuristics reliance on pattern inferences and | |||
accuracy suffers. For example, the traffic patterns between server | accuracy suffers. For example, the traffic patterns between server | |||
and browser are dependent on browser supplier and version, even when | and browser are dependent on browser supplier and version, even when | |||
the sessions use the same server application (e.g., web e-mail | the sessions use the same server application (e.g., web e-mail | |||
access). It remains to be seen whether more complex inferences can | access). It remains to be seen whether more complex inferences can | |||
skipping to change at page 16, line 26 ¶ | skipping to change at page 16, line 44 ¶ | |||
relatively easy to manage, a device with more complexity demands | relatively easy to manage, a device with more complexity demands | |||
understanding of the choice of many system parameters. This level of | understanding of the choice of many system parameters. This level of | |||
complexity exists when several network methods are combined. | complexity exists when several network methods are combined. | |||
This section discusses topics concerning observation of transport | This section discusses topics concerning observation of transport | |||
flows, with a focus on transport measurement. | flows, with a focus on transport measurement. | |||
3.2.1. Point of Observation | 3.2.1. Point of Observation | |||
On-path measurements are particularly useful for locating the source | On-path measurements are particularly useful for locating the source | |||
of problems or to assess the performance of a network segment or a | of problems, or to assess the performance of a network segment or a | |||
particular device configuration. Often issues can only be understood | particular device configuration. Often issues can only be understood | |||
in the context of the other flows that share a particular path, | in the context of the other flows that share a particular path, | |||
common network device, interface port, etc. A simple example is | common network device, interface port, etc. A simple example is | |||
monitoring of a network device that uses a scheduler or active queue | monitoring of a network device that uses a scheduler or active queue | |||
management technique [RFC7567], where it could be desirable to | management technique [RFC7567], where it could be desirable to | |||
understand whether algorithms are correctly controlling latency, or | understand whether the algorithms are correctly controlling latency, | |||
overload protection. This understanding implies knowledge of how | or if overload protection is working. This understanding implies | |||
traffic is assigned to any sub-queues used for flow scheduling, but | knowledge of how traffic is assigned to any sub-queues used for flow | |||
can also require information about how the traffic dynamics impact | scheduling, but can also require information about how the traffic | |||
active queue management, starvation prevention mechanisms and | dynamics impact active queue management, starvation prevention | |||
circuit-breakers. | mechanisms, and circuit-breakers. | |||
Sometimes multiple on-path observation points are needed. By | Sometimes multiple on-path observation points are needed. By | |||
correlating observations of headers at multiple points along the path | correlating observations of headers at multiple points along the path | |||
(e.g., at the ingress and egress of a network segment), an observer | (e.g., at the ingress and egress of a network segment), an observer | |||
can determine the contribution of a portion of the path to an | can determine the contribution of a portion of the path to an | |||
observed metric (to locate a source of delay, jitter, loss, | observed metric, to locate a source of delay, jitter, loss, | |||
reordering, congestion marking, etc.). | reordering, congestion marking, etc. | |||
3.2.2. Use by Operators to Plan and Provision Networks | 3.2.2. Use by Operators to Plan and Provision Networks | |||
Traffic measurements (e.g., traffic volume, loss, latency) is used by | Traffic measurements (e.g., traffic volume, loss, latency) is used by | |||
operators to help plan deployment of new equipment and configurations | operators to help plan deployment of new equipment and configurations | |||
in their networks. Data is also valuable to equipment vendors who | in their networks. Data is also valuable to equipment vendors who | |||
want to understand traffic trends and patterns of usage as inputs to | want to understand traffic trends and patterns of usage as inputs to | |||
decisions about planning products and provisioning for new | decisions about planning products and provisioning for new | |||
deployments. This measurement information can also be correlated | deployments. This measurement information can also be correlated | |||
with billing information when this is also collected by an operator. | with billing information when this is also collected by an operator. | |||
A network operator supporting traffic that uses transport header | A network operator supporting traffic that uses transport header | |||
encryption may not have access to per-flow measurement data. Trends | encryption might not have access to per-flow measurement data. | |||
in aggregate traffic can be observed and can be related to the | Trends in aggregate traffic can be observed and can be related to the | |||
endpoint addresses being used, but it may be impossible to correlate | endpoint addresses being used, but it may be impossible to correlate | |||
patterns in measurements with changes in transport protocols (e.g., | patterns in measurements with changes in transport protocols (e.g., | |||
the impact of changes in introducing a new transport protocol | the impact of changes in introducing a new transport protocol | |||
mechanism). This increases the dependency on other indirect sources | mechanism). This increases the dependency on other indirect sources | |||
of information to inform planning and provisioning. | of information to inform planning and provisioning. | |||
3.2.3. Service Performance Measurement | 3.2.3. Service Performance Measurement | |||
Traffic measurements (e.g., traffic volume, loss, latency) can be | Traffic measurements (e.g., traffic volume, loss, latency) can be | |||
used by various actors to help analyse the performance offered to the | used by various actors to help analyse the performance offered to the | |||
users of a network segment, and inform operational practice. | users of a network segment, and to inform operational practice. | |||
While active measurements may be used in-network, passive | While active measurements may be used within a network, passive | |||
measurements can have advantages in terms of eliminating unproductive | measurements can have advantages in terms of eliminating unproductive | |||
test traffic, reducing the influence of test traffic on the overall | test traffic, reducing the influence of test traffic on the overall | |||
traffic mix, and the ability to choose the point of observation | traffic mix, and the ability to choose the point of observation (see | |||
Section 3.2.1. However, passive measurements can rely on observing | Section 3.2.1). However, passive measurements can rely on observing | |||
transport headers. | transport headers which is not possible if those headers are | |||
encrypted. | ||||
3.2.4. Measuring Transport to Support Network Operations | 3.2.4. Measuring Transport to Support Network Operations | |||
Information provided by tools observing transport headers can help | Information provided by tools observing transport headers can help | |||
determine whether mechanisms are needed in the network to prevent | determine whether mechanisms are needed in the network to prevent | |||
flows from acquiring excessive network capacity. Operators can | flows from acquiring excessive network capacity. Operators can | |||
implement operational practices to manage traffic flows (e.g., to | implement operational practices to manage traffic flows (e.g., to | |||
prevent flows from acquiring excessive network capacity under severe | prevent flows from acquiring excessive network capacity under severe | |||
congestion) by deploying rate-limiters, traffic shaping or network | congestion) by deploying rate-limiters, traffic shaping or network | |||
transport circuit breakers [RFC8084]. | transport circuit breakers [RFC8084]. | |||
Congestion Control Compliance of Traffic: Congestion control is a | Congestion Control Compliance of Traffic: Congestion control is a | |||
key transport function [RFC2914]. Many network operators | key transport function [RFC2914]. Many network operators | |||
implicitly accept that TCP traffic complies with a behaviour that | implicitly accept that TCP traffic complies with a behaviour that | |||
is acceptable for use in the shared Internet. TCP algorithms have | is acceptable for use in the shared Internet. TCP algorithms have | |||
been continuously improved over decades, and they have reached a | been continuously improved over decades, and they have reached a | |||
level of efficiency and correctness that custom application-layer | level of efficiency and correctness that custom application-layer | |||
mechanisms will struggle to easily duplicate [RFC8085]. | mechanisms will struggle to easily duplicate [RFC8085]. | |||
A standards-compliant TCP stack provides congestion control may | A standards-compliant TCP stack provides congestion control that | |||
therefore be judged safe for use across the Internet. | may therefore be judged safe for use across the Internet. | |||
Applications developed on top of well-designed transports can be | Applications developed on top of well-designed transports can be | |||
expected to appropriately control their network usage, reacting | expected to appropriately control their network usage, reacting | |||
when the network experiences congestion, by back-off and reduce | when the network experiences congestion, by back-off and reduce | |||
the load placed on the network. This is the normal expected | the load placed on the network. This is the normal expected | |||
behaviour for IETF-specified transport (e.g., TCP and SCTP). | behaviour for IETF-specified transport (e.g., TCP and SCTP). | |||
However, when anomalies are detected, tools can interpret the | However, when anomalies are detected, tools can interpret the | |||
transport protocol header information to help understand the | transport protocol header information to help understand the | |||
impact of specific transport protocols (or protocol mechanisms) on | impact of specific transport protocols (or protocol mechanisms) on | |||
the other traffic that shares a network. An observation in the | the other traffic that shares a network. An observation in the | |||
skipping to change at page 18, line 27 ¶ | skipping to change at page 18, line 51 ¶ | |||
visualise plots of TCP sequence numbers versus time for a flow to | visualise plots of TCP sequence numbers versus time for a flow to | |||
understand how a flow shares available capacity, deduce its | understand how a flow shares available capacity, deduce its | |||
dynamics in response to congestion, etc. The ability to identify | dynamics in response to congestion, etc. The ability to identify | |||
sources that contribute excessive congestion is important to safe | sources that contribute excessive congestion is important to safe | |||
operation of network infrastructure, and mechanisms can inform | operation of network infrastructure, and mechanisms can inform | |||
configuration of network devices to complement the endpoint | configuration of network devices to complement the endpoint | |||
congestion avoidance mechanisms [RFC7567] [RFC8084] to avoid a | congestion avoidance mechanisms [RFC7567] [RFC8084] to avoid a | |||
portion of the network being driven into congestion collapse | portion of the network being driven into congestion collapse | |||
[RFC2914]. | [RFC2914]. | |||
Congestion Control Compliance for UDP traffic UDP provides a minimal | Congestion Control Compliance for UDP traffic: UDP provides a | |||
message-passing datagram transport that has no inherent congestion | minimal message-passing datagram transport that has no inherent | |||
control mechanisms. Because congestion control is critical to the | congestion control mechanisms. Because congestion control is | |||
stable operation of the Internet, applications and other protocols | critical to the stable operation of the Internet, applications and | |||
that choose to use UDP as a transport are required to employ | other protocols that choose to use UDP as a transport are required | |||
mechanisms to prevent congestion collapse, avoid unacceptable | to employ mechanisms to prevent congestion collapse, avoid | |||
contributions to jitter/latency, and to establish an acceptable | unacceptable contributions to jitter/latency, and to establish an | |||
share of capacity with concurrent traffic [RFC8085]. | acceptable share of capacity with concurrent traffic [RFC8085]. | |||
A network operator needs tools to understand if datagram flows | A network operator needs tools to understand if datagram flows | |||
comply with congestion control expectations and therefore whether | comply with congestion control expectations and therefore whether | |||
there is a need to deploy methods such as rate-limiters, transport | there is a need to deploy methods such as rate-limiters, transport | |||
circuit breakers or other methods to enforce acceptable usage for | circuit breakers or other methods to enforce acceptable usage for | |||
the offered service. | the offered service. | |||
UDP flows that expose a well-known header by specifying the format | UDP flows that expose a well-known header by specifying the format | |||
of header fields can allow information to be observed to gain | of header fields can allow information to be observed to gain | |||
understanding of the dynamics of a flow and its congestion control | understanding of the dynamics of a flow and its congestion control | |||
behaviour. For example, tools exist to monitor various aspects of | behaviour. For example, tools exist to monitor various aspects of | |||
the RTP and RTCP header information of real-time flows (see | the RTP and RTCP header information of real-time flows (see | |||
Section 3.1.2. | Section 3.1.2, and the Secure RTP extensions [RFC3711] were | |||
explicitly designed to expose header information to enable such | ||||
observation. | ||||
3.3. Use for Network Diagnostics and Troubleshooting | 3.3. Use for Network Diagnostics and Troubleshooting | |||
Transport header information can be useful for a variety of | Transport header information can be useful for a variety of | |||
operational tasks [RFC8404]: to diagnose network problems, assess | operational tasks [RFC8404]: to diagnose network problems, assess | |||
network provider performance, evaluate equipment/protocol | network provider performance, evaluate equipment/protocol | |||
performance, capacity planning, management of security threats | performance, capacity planning, management of security threats | |||
(including denial of service), and responding to user performance | (including denial of service), and responding to user performance | |||
questions. Sections 3.1.2 and 5 of [RFC8404] provide further | questions. Sections 3.1.2 and 5 of [RFC8404] provide further | |||
examples. These tasks seldom involve the need to determine the | examples. These tasks seldom involve the need to determine the | |||
skipping to change at page 19, line 38 ¶ | skipping to change at page 20, line 11 ¶ | |||
reliance on endpoint diagnostic tools or user involvement in | reliance on endpoint diagnostic tools or user involvement in | |||
diagnosing and troubleshooting unusual use cases or non-trivial | diagnosing and troubleshooting unusual use cases or non-trivial | |||
problems. A key need here is for tools to provide useful information | problems. A key need here is for tools to provide useful information | |||
during network anomalies (e.g., significant reordering, high or | during network anomalies (e.g., significant reordering, high or | |||
intermittent loss). Many network operators currently utilise | intermittent loss). Many network operators currently utilise | |||
observed transport information as a part of their operational | observed transport information as a part of their operational | |||
practice. However, the network will not break just because transport | practice. However, the network will not break just because transport | |||
headers are encrypted, although alternative diagnostic and | headers are encrypted, although alternative diagnostic and | |||
troubleshooting tools would need to be developed and deployed. | troubleshooting tools would need to be developed and deployed. | |||
3.3.1. Examples of measurements | ||||
Measurements can be used to monitor the health of a portion of the | Measurements can be used to monitor the health of a portion of the | |||
Internet, to provide early warning of the need to take action. They | Internet, to provide early warning of the need to take action. They | |||
can assist in debugging and diagnosing the root causes of faults that | can assist in debugging and diagnosing the root causes of faults that | |||
concern a particular user's traffic. They can also be used to | concern a particular user's traffic. They can also be used to | |||
support post-mortem investigation after an anomaly to determine the | support post-mortem investigation after an anomaly to determine the | |||
root cause of a problem. | root cause of a problem. | |||
In some case, measurements may involve active injection of test | In some case, measurements may involve active injection of test | |||
traffic to complete a measurement. However, most operators do not | traffic to complete a measurement. However, most operators do not | |||
have access to user equipment, and injection of test traffic may be | have access to user equipment, and injection of test traffic may be | |||
associated with costs in running such tests (e.g., the implications | associated with costs in running such tests (e.g., the implications | |||
of bandwidth tests in a mobile network are obvious). Some active | of capacity tests in a mobile network are obvious). Some active | |||
measurements (e.g., response under load or particular workloads) | measurements (e.g., response under load or particular workloads) | |||
perturb other traffic, and could require dedicated access to the | perturb other traffic, and could require dedicated access to the | |||
network segment. An alternative approach is to use in-network | network segment. An alternative approach is to use in-network | |||
techniques that observe transport packet headers in operational | techniques that observe transport packet headers in operational | |||
networks to make the measurements. | networks to make the measurements. | |||
In other cases, measurement involves dissecting network traffic | In other cases, measurement involves dissecting network traffic | |||
flows. The observed transport layer information can help identify | flows. The observed transport layer information can help identify | |||
whether the link/network tuning is effective and alert to potential | whether the link/network tuning is effective and alert to potential | |||
problems that can be hard to derive from link or device measurements | problems that can be hard to derive from link or device measurements | |||
skipping to change at page 20, line 26 ¶ | skipping to change at page 20, line 46 ¶ | |||
to-point radio) has the complexity of a subsystem that performs radio | to-point radio) has the complexity of a subsystem that performs radio | |||
resource management,s with direct impact on the available capacity, | resource management,s with direct impact on the available capacity, | |||
and potentially loss/reordering of packets. The impact of the | and potentially loss/reordering of packets. The impact of the | |||
pattern of loss and congestion, differs for different traffic types, | pattern of loss and congestion, differs for different traffic types, | |||
correlation with propagation and interference can all have | correlation with propagation and interference can all have | |||
significant impact on the cost and performance of a provided service. | significant impact on the cost and performance of a provided service. | |||
The need for this type of information is expected to increase as | The need for this type of information is expected to increase as | |||
operators bring together heterogeneous types of network equipment and | operators bring together heterogeneous types of network equipment and | |||
seek to deploy opportunistic methods to access radio spectrum. | seek to deploy opportunistic methods to access radio spectrum. | |||
3.4. Use of transport information to influence network forwarding | 3.4. Header Compression | |||
Information from the transport protocol can be used by a multi-field | ||||
classifier as a part of policy framework. Policies are commonly used | ||||
for management of the QoS or Quality of Experience (QoE) in resource- | ||||
constrained networks and by firewalls that use the information to | ||||
implement access rules (see also section 2.2.2 of [RFC8404]). | ||||
Network-layer classification methods that rely on a multi-field | ||||
classifier (e.g. Inferring QoS from the 5-tuple or choice of | ||||
application protocol) are incompatible with transport protocols that | ||||
encrypt the transport information. Traffic that cannot be | ||||
classified, will typically receive a default treatment. | ||||
Transport information can also be explicitly set in network-layer | ||||
header fields that are not encrypted. This can provide information | ||||
to enable a different forwarding treatment by the network, even when | ||||
a transport employs encryption to protect other header information. | ||||
When a transport multiplexes multiple subflows, a transport could | ||||
choose to hide the presence and characteristics of these subflows | ||||
from the network. However, a transport is permitted to set the | ||||
network-layer information to indicate the presence of subflows and to | ||||
reflect the needs of individual subflows (e.g., a WebRTC can identify | ||||
different forwarding treatments for individual packets based on the | ||||
value of the DS field [I-D.ietf-tsvwg-rtcweb-qos]). | ||||
Use of IPv6 Network-Layer Flow Label: Endpoints are encouraged to | ||||
set the IPv6 Flow Label field of the network-layer header (e.g., | ||||
[RFC8085]). The label can provide information that can help | ||||
inform network-layer queuing, forwarding (e.g., for Equal Cost | ||||
Multi-Path, ECMP, routing, and Link Aggregation, LAG) [RFC6294]. | ||||
A multiplexing transport could choose to use multiple flow labels | ||||
to allow the network to independently forward subflows. | ||||
Use Network-Layer Differentiated Services Code Point Point: | ||||
Applications can expose their delivery expectations to the network | ||||
by setting the DSCP field of IPv4 and IPv6 packets [RFC2474]. | ||||
This provides explicit information to inform network-layer queuing | ||||
and forwarding, rather than an operator inferring traffic | ||||
requirements from transport and application headers via a multi- | ||||
field classifier. | ||||
Since the DSCP value can impact the quality of experience for a | ||||
flow, observations of service performance need to consider this | ||||
field when a network path has support for differentiated service | ||||
treatment. | ||||
Use of Explicit Congestion Marking: ECN [RFC3168] is a transport | ||||
mechanism that utilises the ECN field in the network-layer header | ||||
to explicitly inform the network-layer that a transport is ECN- | ||||
capable and request ECN treatment of the flows packets. This can | ||||
offer benefits when used over a path with equipment that | ||||
implements an AQM method with Congestion Experienced (CE) marking | ||||
of IP packets [RFC8087]. | ||||
The reception of CE-marked packets can be used to estimate the | Header compression saves link bandwidth by compressing network and | |||
level of incipient congestion on the upstream portion of the path | transport protocol headers on a per-hop basis. It was widely used | |||
from the point of observation (Section 2.5 of [RFC8087]). | with low bandwidth dial-up access links, and still finds application | |||
Interpreting the marking behaviour (i.e., assessing congestion and | on wireless links that are subject to capacity constraints. Header | |||
diagnosing faults) requires context from the transport layer (such | compression has been specified for use with TCP/IP and RTP/UDP/IP | |||
as path RTT). | flows [RFC2507], [RFC2508], [RFC4995]. | |||
AQM and ECN offer a range of algorithms and configuration options, | While it is possible to compress only the network layer headers, | |||
it is therefore important for tools to be available to network | significant bandwidth savings can be made if both the network and | |||
operators and researchers to understand the implication of | transport layer headers are compressed together as a single unit. | |||
configuration choices and transport behaviour as use of ECN | The Secure RTP extensions [RFC3711] were explicitly designed to leave | |||
increases and new methods emerge [RFC7567]. | the transport protocol headers unencrypted, but authenticated, since | |||
support for header compression was considered important. Encrypting | ||||
the transport protocol headers does not break such header | ||||
compression, but does cause it to fall back to compressing only the | ||||
network layer headers, with a significant reduction in efficiency. | ||||
This may have operational impact. | ||||
4. Encryption and Authentication of Transport Headers | 4. Encryption and Authentication of Transport Headers | |||
End-to-end encryption can be applied at various protocol layers. It | End-to-end encryption can be applied at various protocol layers. It | |||
can be applied above the transport to encrypt the transport payload. | can be applied above the transport to encrypt the transport payload. | |||
Encryption methods can hide information from an eavesdropper in the | Encryption methods can hide information from an eavesdropper in the | |||
network. Encryption can also help protect the privacy of a user, by | network. Encryption can also help protect the privacy of a user, by | |||
hiding data relating to user/device identity or location. Neither an | hiding data relating to user/device identity or location. Neither an | |||
integrity check nor encryption methods prevent traffic analysis, and | integrity check nor encryption methods prevent traffic analysis, and | |||
usage needs to reflect that profiling of users, identification of | usage needs to reflect that profiling of users, identification of | |||
skipping to change at page 23, line 6 ¶ | skipping to change at page 22, line 26 ¶ | |||
allow or block content. Whatever the reasons, there are now | allow or block content. Whatever the reasons, there are now | |||
activities in the IETF to design new protocols that could include | activities in the IETF to design new protocols that could include | |||
some form of transport header encryption (e.g., QUIC | some form of transport header encryption (e.g., QUIC | |||
[I-D.ietf-quic-transport]). | [I-D.ietf-quic-transport]). | |||
Authentication methods (that provide integrity checks of protocols | Authentication methods (that provide integrity checks of protocols | |||
fields) have also been specified at the network layer, and this also | fields) have also been specified at the network layer, and this also | |||
protects transport header fields. The network layer itself carries | protects transport header fields. The network layer itself carries | |||
protocol header fields that are increasingly used to help forwarding | protocol header fields that are increasingly used to help forwarding | |||
decisions reflect the need of transport protocols, such as the IPv6 | decisions reflect the need of transport protocols, such as the IPv6 | |||
Flow Label [RFC6437], the DSCP and ECN. | Flow Label [RFC6437], DSCP, and ECN fields. | |||
The use of transport layer authentication and encryption exposes a | The use of transport layer 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 enable large-scale | o On the one hand, future Internet protocols that enable large-scale | |||
encryption assist in the restoration of the end-to-end nature of | encryption assist in the restoration of the end-to-end nature of | |||
the Internet by returning complex processing to the endpoints, | the Internet by returning complex processing to the endpoints, | |||
since middleboxes cannot modify what they cannot see. | since middleboxes cannot modify what they cannot see. | |||
o On the other hand, encryption of transport layer header | o On the other hand, encryption of transport layer header | |||
information has implications for people who are responsible for | information has implications for people who are responsible for | |||
operating networks and researchers and analysts seeking to | operating networks and researchers and analysts seeking to | |||
understand the dynamics of protocols and traffic patterns. | understand the dynamics of protocols and traffic patterns. | |||
Whatever the motives, a decision to use pervasive of transport header | Whatever the motives, a decision to use pervasive transport header | |||
encryption will have implications on the way in which design and | encryption will have implications on the way in which design and | |||
evaluation is performed, and which can in turn impact the direction | evaluation is performed, and which can in turn impact the direction | |||
of evolution of the TCP/IP stack. While the IETF can specify | of evolution of the transport protocol stack. While the IETF can | |||
protocols, the success in actual deployment is often determined by | specify protocols, the success in actual deployment is often | |||
many factors [RFC5218] that are not always clear at the time when | determined by many factors [RFC5218] that are not always clear at the | |||
protocols are being defined. | time when protocols are being defined. | |||
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 | |||
[I-D.ietf-taps-transport-security] provides more details concerning | [I-D.ietf-taps-transport-security] provides more details concerning | |||
commonly used encryption methods at the transport layer. | commonly used encryption methods at the transport layer. | |||
Authenticating the Transport Protocol Header: Transport layer header | Authenticating the Transport Protocol Header: Transport layer header | |||
information can be authenticated. An integrity check that | information can be authenticated. An integrity check that | |||
protects the immutable transport header fields, but can still | protects the immutable transport header fields, but can still | |||
expose the transport protocol header information in the clear, | expose the transport protocol header information in the clear, | |||
allowing in-network devices to observes these fields. An | allowing in-network devices to observe these fields. An integrity | |||
integrity check can not prevent in-network modification, but can | check can not prevent in-network modification, but can prevent a | |||
avoid a receiving accepting changes and avoid impact on the | receiving from accepting changes and avoid impact on the transport | |||
transport protocol operation. | protocol operation. | |||
An example transport authentication mechanism is TCP- | An example transport authentication mechanism is TCP- | |||
Authentication (TCP-AO) [RFC5925]. This TCP option authenticates | Authentication (TCP-AO) [RFC5925]. This TCP option authenticates | |||
the IP pseudo header, TCP header, and TCP data. TCP-AO protects | the IP pseudo header, TCP header, and TCP data. TCP-AO protects | |||
the transport layer, preventing attacks from disabling the TCP | the transport layer, preventing attacks from disabling the TCP | |||
connection itself and provides replay protection. TCP-AO may | connection itself and provides replay protection. TCP-AO may | |||
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 | ||||
that allows header authentication. | ||||
Greasing Transport layer header information that is observable can | Greasing: Transport layer header information that is observable can | |||
be observed in the network. Protocols often provide extensibility | be observed in the network. Protocols often provide extensibility | |||
features, reserving fields or values for use by future versions of | features, reserving fields or values for use by future versions of | |||
a specification. The specification of receivers has traditionally | a specification. The specification of receivers has traditionally | |||
ignored unspecified values, however in-network devices have | ignored unspecified values, however in-network devices have | |||
emerged that ossify to require a certain value in a field, or re- | emerged that ossify to require a certain value in a field, or re- | |||
use a field for another purpose. When the speicfication is later | use a field for another purpose. When the specification is later | |||
updated, it is impossible to deploy the new use of the field, and | updated, it is impossible to deploy the new use of the field, and | |||
forwarding of the protocol could even become conditional on a | forwarding of the protocol could even become conditional on a | |||
specific header field value. | specific header field value. | |||
A protocol can intentionally vary the value, format, and/or | A protocol can intentionally vary the value, format, and/or | |||
presence of observable transport header fields. This behaviour, | presence of observable transport header fields. This behaviour, | |||
known as GREASE (Generate Random Extensions And Sustain | known as GREASE (Generate Random Extensions And Sustain | |||
Extensibility), is designed to avoid a network device ossifying | Extensibility), is designed to avoid a network device ossifying | |||
the use of a specific observable field. Greasing seeks to ease | the use of a specific observable field. Greasing seeks to ease | |||
deployment of new methods. It can be designed to avoid in-network | deployment of new methods. It can be designed to prevent in- | |||
devices utilising the information in a transport header, or can | network devices utilising the information in a transport header, | |||
make an observation robust to a set of changing values, rather | or can make an observation robust to a set of changing values, | |||
than a specific set of values. | rather than a specific set of values. | |||
Encrypting the Transport Payload: The transport layer payload can be | Encrypting the Transport Payload: The transport layer payload can be | |||
encrypted to protect the content of transport segments. This | encrypted to protect the content of transport segments. This | |||
leaves transport protocol header information in the clear. The | leaves transport protocol header information in the clear. The | |||
integrity of immutable transport header fields could be protected | integrity of immutable transport header fields could be protected | |||
by combining this with an integrity check. | by combining this with an integrity check. | |||
Examples of encrypting the payload include Transport Layer | Examples of encrypting the payload include Transport Layer | |||
Security (TLS) over TCP [RFC8446] [RFC7525], Datagram TLS (DTLS) | Security (TLS) over TCP [RFC8446] [RFC7525], Datagram TLS (DTLS) | |||
over UDP [RFC6347] [RFC7525], and TCPcrypt | over UDP [RFC6347] [RFC7525], Secure RTP [RFC3711], and TCPcrypt | |||
[I-D.ietf-tcpinc-tcpcrypt], which permits opportunistic encryption | [I-D.ietf-tcpinc-tcpcrypt] which permits opportunistic encryption | |||
of the TCP transport payload. | of the TCP transport payload. | |||
Encrypting the Transport Headers and Payload: The network layer | Encrypting the Transport Headers and Payload: The network layer | |||
payload could be encrypted (including the entire transport header | payload could be encrypted (including the entire transport header | |||
and the payload). This method provides confidentiality of the | and the payload). This method provides confidentiality of the | |||
entire transport packet. It therefore does not expose any | entire transport packet. It therefore does not expose any | |||
transport information to devices in the network, which also | transport information to devices in the network, which also | |||
prevents modification along a network path. | prevents modification along a network path. | |||
One example of encryption at the network layer is use of IPsec | One example of encryption at the network layer is use of IPsec | |||
skipping to change at page 25, line 32 ¶ | skipping to change at page 25, line 7 ¶ | |||
Optional Encryption of Header Information: There are implications to | Optional Encryption of Header Information: There are implications to | |||
the use of optional header encryption in the design of a transport | the use of optional header encryption in the design of a transport | |||
protocol, where support of optional mechanisms can increase the | protocol, where support of optional mechanisms can increase the | |||
complexity of the protocol and its implementation and in the | complexity of the protocol and its implementation and in the | |||
management decisions that are required to use variable format | management decisions that are required to use variable format | |||
fields. Instead, fields of a specific type ought to always be | fields. Instead, fields of a specific type ought to always be | |||
sent with the same level of confidentiality or integrity | sent with the same level of confidentiality or integrity | |||
protection. | protection. | |||
As seen, different transports use encryption to protect their header | ||||
information to varying degrees. There is, however, a trend towards | ||||
increased protection with newer transport protocols. | ||||
5. Addition of Transport Information to Network-Layer Protocol Headers | 5. Addition of Transport Information to Network-Layer Protocol Headers | |||
Transport protocol information can be made visible in a network-layer | Transport protocol information can be made visible in a network-layer | |||
header. This has the advantage that this information can then be | header. This has the advantage that this information can then be | |||
observed by in-network devices. | observed by in-network devices. | |||
5.1. Use of transport information to influence network forwarding | ||||
Information from the transport protocol can be used by a multi-field | Information from the transport protocol can be used by a multi-field | |||
classifier as a part of policy framework. Policies are commonly used | classifier to prioritise flows as a part of a policy framework. This | |||
for management of the QoS or Quality of Experience (QoE) in resource- | was discussed in Section 3.1.3. | |||
constrained networks and by firewalls that use the information to | ||||
implement access rules (see also section 2.2.2 of [RFC8404]). | ||||
Network-layer classification methods that rely on a multi-field | ||||
classifier (e.g. Inferring QoS from the 5-tuple or choice of | ||||
application protocol) are incompatible with transport protocols that | ||||
encrypt the transport information. Traffic that cannot be | ||||
classified, will typically receive a default treatment. | ||||
Transport information can also be explicitly set in network-layer | ||||
header fields that are not encrypted. This can provide information | ||||
to enable a different forwarding treatment by the network, even when | ||||
a transport employs encryption to protect other header information. | ||||
When a transport multiplexes multiple subflows, a transport could | ||||
choose to hide the presence and characteristics of these subflows | ||||
from the network. However, a transport is permitted to set the | ||||
network-layer information to indicate the presence of subflows and to | ||||
reflect the needs of individual subflows (e.g., a WebRTC can identify | ||||
different forwarding treatments for individual packets based on the | ||||
value of the Differentiated Services Code Point (DSCP) field | ||||
[I-D.ietf-tsvwg-rtcweb-qos]). | ||||
Use of IPv6 Network-Layer Flow Label: Endpoints are encouraged to | ||||
set the IPv6 Flow Label field of the network-layer header (e.g., | ||||
[RFC8085]). The label can provide information that can help | ||||
inform network-layer queuing, forwarding (e.g., for Equal Cost | ||||
Multi-Path, ECMP, routing, and Link Aggregation, LAG) [RFC6294]. | ||||
A multiplexing transport could choose to use multiple flow labels | ||||
to allow the network to independently forward subflows. | ||||
Use Network-Layer Differentiated Services Code Point Point: | ||||
Applications can expose their delivery expectations to the network | ||||
by setting the DSCP field of IPv4 and IPv6 packets [RFC2474].This | ||||
provides explicit information to inform network-layer queuing and | ||||
forwarding, rather than an operator inferring traffic requirements | ||||
from transport and application headers via a multi-field | ||||
classifier. | ||||
Since the DSCP value can impact the quality of experience for a | ||||
flow., observations of service performance need to consider this | ||||
field when a network path has support for differentiated service | ||||
treatment. | ||||
Use of Explicit Congestion Marking: ECN [RFC3168] is a transport | ||||
mechanism that utilises the ECN field in the network-layer header. | ||||
Use of ECN explicitly informs the network-layer that a transport | ||||
is ECN-capable, and requests ECN treatment of the flows packets. | ||||
An ECN-capable transport can offer benefits when used over a path | ||||
with equipment that implements an AQM method with Congestion | ||||
Experienced (CE) marking of IP packets [RFC8087]. | ||||
ECN exposes the presence of congestion. The reception of CE- | ||||
marked packets can be used to estimate the level of incipient | ||||
congestion on the upstream portion of the path from the point of | ||||
observation (Section 2.5 of [RFC8087]). Interpreting the marking | ||||
behaviour (i.e., assessing congestion and diagnosing faults) | ||||
requires context from the transport layer (such as path RTT). | ||||
AQM and ECN offer a range of algorithms and configuration options, | ||||
it is therefore important for tools to be available to network | ||||
operators and researchers to understand the implication of | ||||
configuration choices and transport behaviour as use of ECN | ||||
increases and new methods emerge [RFC7567]. | ||||
5.2. Network-layer measurement | ||||
Some measurements can be made by adding additional protocol headers | Some measurements can be made by adding additional protocol headers | |||
carrying operations, administration and management (OAM) information | carrying operations, administration and management (OAM) information | |||
to packets at the ingress to a maintenance domain (e.g., an Ethernet | to packets at the ingress to a maintenance domain (e.g., an Ethernet | |||
protocol header with timestamps and sequence number information using | protocol header with timestamps and sequence number information using | |||
a method such as 802.11ag or in-situ OAM [I-D.ietf-ippm-ioam-data]) | a method such as 802.11ag or in-situ OAM [I-D.ietf-ippm-ioam-data]) | |||
and removing the additional header at the egress of the maintenance | and removing the additional header at the egress of the maintenance | |||
domain. This approach enables some types of measurements, but does | domain. This approach enables some types of measurements, but does | |||
not cover the entire range of measurements described in this | not cover the entire range of measurements described in this | |||
document. In some cases, it can be difficult to position measurement | document. In some cases, it can be difficult to position measurement | |||
skipping to change at page 27, line 39 ¶ | skipping to change at page 25, line 45 ¶ | |||
the transport protocol from the measurement framework. | the transport protocol from the measurement framework. | |||
Another example of a network-layer approach is the IPv6 Performance | Another example of a network-layer approach is the IPv6 Performance | |||
and Diagnostic Metrics (PDM) Destination Option [RFC8250]. This | and Diagnostic Metrics (PDM) Destination Option [RFC8250]. This | |||
allows a sender to optionally include a destination option that | allows a sender to optionally include a destination option that | |||
caries header fields that can be used to observe timestamps and | caries header fields that can be used to observe timestamps and | |||
packet sequence numbers. This information could be authenticated by | packet sequence numbers. This information could be authenticated by | |||
receiving transport endpoints when the information is added at the | receiving transport endpoints when the information is added at the | |||
sender and visible at the receiving endpoint, although methods to do | sender and visible at the receiving endpoint, although methods to do | |||
this have not currently been proposed. This method needs to be | this have not currently been proposed. This method needs to be | |||
explicitly enabled at the sender.XXX | explicitly enabled at the sender. | |||
Current measurements suggest it can be undesirable to rely on methods | Current measurements suggest it can be undesirable to rely on methods | |||
requiring the presence of network options or extension headers. IPv4 | requiring the presence of network options or extension headers. IPv4 | |||
network options are often not supported (or are carried on a slower | network options are often not supported (or are carried on a slower | |||
processing path) and some IPv6 networks are also known to drop | processing path) and some IPv6 networks are also known to drop | |||
packets that set an IPv6 header extension (e.g., [RFC7872]). Another | packets that set an IPv6 header extension (e.g., [RFC7872]). Another | |||
disadvantage is that protocols that separately expose header | disadvantage is that protocols that separately expose header | |||
information do not necessarily have an advantage to expose the | information do not necessarily have an advantage to expose the | |||
information that is utilised by the protocol itself, and could | information that is utilised by the protocol itself, and could | |||
manipulate this header information to gain an advantage from the | manipulate this header information to gain an advantage from the | |||
skipping to change at page 28, line 26 ¶ | skipping to change at page 26, line 31 ¶ | |||
transport protocols. | transport protocols. | |||
6.1. Independent Measurement | 6.1. Independent Measurement | |||
Independent observation by multiple actors is important for | Independent observation by multiple actors is important for | |||
scientific analysis. Encrypting transport header encryption changes | scientific analysis. Encrypting transport header encryption changes | |||
the ability for other actors to collect and independently analyse | the ability for other actors to collect and independently analyse | |||
data. Internet transport protocols employ a set of mechanisms. Some | data. Internet transport protocols employ a set of mechanisms. Some | |||
of these need to work in cooperation with the network layer - loss | of these need to work in cooperation with the network layer - loss | |||
detection and recovery, congestion detection and congestion control, | detection and recovery, congestion detection and congestion control, | |||
some of these need to work only End-to-End (e.g., parameter | some of these need to work only end-to-end (e.g., parameter | |||
negotiation, flow-control). | negotiation, flow-control). | |||
When encryption conceals information in the transport header, it | When encryption conceals information in the transport header, it | |||
could be possible for an applications to provide summary data on | could be possible for an applications to provide summary data on | |||
performance and usage of the network. This data could be made | performance and usage of the network. This data could be made | |||
available to other actors. However, this data needs to contain | available to other actors. However, this data needs to contain | |||
sufficient detail to understand (and possibly reconstruct the network | sufficient detail to understand (and possibly reconstruct the network | |||
traffic pattern for further testing) and to be correlated with the | traffic pattern for further testing) and to be correlated with the | |||
configuration of the network paths being measured. | configuration of the network paths being measured. | |||
skipping to change at page 29, line 7 ¶ | skipping to change at page 27, line 9 ¶ | |||
to calculate the RTT, packet numbers used to asses congestion and | to 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, increasing confidence that | endpoint to provide correct information, increasing confidence that | |||
the observer understands the transport interaction with the network. | the observer understands the transport interaction with the network. | |||
This can support decisions when considering changes to transport | This can support decisions when considering changes to transport | |||
protocols, changes in network infrastructure, or the emergence of new | protocols, changes in network infrastructure, or the emergence of new | |||
traffic patterns. | traffic patterns. | |||
6.2. Characterising "Unknown" Network Traffic | 6.2. Characterising "Unknown" Network Traffic | |||
The patterns and types of traffic that share Internet capacity | The patterns and types of traffic that share Internet capacity change | |||
changes with time as networked applications, usage patterns and | over time as networked applications, usage patterns and protocols | |||
protocols continue to evolve. | continue to evolve. | |||
If "unknown" or "uncharacterised" traffic patterns form a small part | If "unknown" or "uncharacterised" traffic patterns form a small part | |||
of the traffic aggregate passing through a network device or segment | of the traffic aggregate passing through a network device or segment | |||
of the network the path, the dynamics of the uncharacterised traffic | of the network the path, the dynamics of the uncharacterised traffic | |||
may not have a significant collateral impact on the performance of | may not have a significant collateral impact on the performance of | |||
other traffic that shares this network segment. Once the proportion | other traffic that shares this network segment. Once the proportion | |||
of this traffic increases, the need to monitor the traffic and | of this traffic increases, the need to monitor the traffic and | |||
determine if appropriate safety measures need to be put in place. | determine if appropriate safety measures need to be put in place. | |||
Tracking the impact of new mechanisms and protocols requires traffic | Tracking the impact of new mechanisms and protocols requires traffic | |||
skipping to change at page 29, line 36 ¶ | skipping to change at page 27, line 38 ¶ | |||
6.3. Accountability and Internet Transport Protocols | 6.3. Accountability and Internet Transport Protocols | |||
Information provided by tools observing transport headers can be used | Information provided by tools observing transport headers can be used | |||
to classify traffic, and to limit the network capacity used by | to classify traffic, and to limit the network capacity used by | |||
certain flows. Operators can potentially use this information to | certain flows. Operators can potentially use this information to | |||
prioritise or de-prioritise certain flows or classes of flow, with | prioritise or de-prioritise certain flows or classes of flow, with | |||
potential implications for network neutrality, or to rate limit | potential implications for network neutrality, or to rate limit | |||
malicious or otherwise undesirable flows (e.g., for Distributed | malicious or otherwise undesirable flows (e.g., for Distributed | |||
Denial of Service, DDOS, protection, or to ensure compliance with a | Denial of Service, DDOS, protection, or to ensure compliance with a | |||
traffic profile Section 3.2.4). Equally, operators could use | traffic profile, as discussed in Section 3.2.4). Equally, operators | |||
analysis of transport headers and transport flow state to demonstrate | could use analysis of transport headers and transport flow state to | |||
that they are not providing differential treatment to certain flows. | demonstrate that they are not providing differential treatment to | |||
Obfuscating or hiding this information using encryption is expected | certain flows. Obfuscating or hiding this information using | |||
to lead operators and maintainers of middleboxes (firewalls, etc.) to | encryption may lead operators and maintainers of middleboxes | |||
seek other methods to classify, and potentially other mechanisms to | (firewalls, etc.) to seek other methods to classify, and potentially | |||
condition, network traffic. | other mechanisms to condition, network traffic. | |||
A lack of data reduces the level of precision with which flows can be | A lack of data reduces the level of precision with which flows can be | |||
classified and conditioning mechanisms are applied (e.g., rate | classified and conditioning mechanisms can be applied (e.g., rate | |||
limiting, circuit breaker techniques [RFC8084], or blocking of | limiting, circuit breaker techniques [RFC8084], or blocking of | |||
uncharacterised traffic), and this needs to be considered when | uncharacterised traffic), and this needs to be considered when | |||
evaluating the impact of designs for transport encryption [RFC5218]. | evaluating the impact of designs for transport encryption [RFC5218]. | |||
6.4. Impact on Research, Development and Deployment | 6.4. Impact on Research, Development and Deployment | |||
The majority of present Internet applications use two well-known | The majority of present Internet applications use two well-known | |||
transport protocols: e.g., TCP and UDP. Although TCP represents the | transport protocols, TCP and UDP. Although TCP represents the | |||
majority of current traffic, some real-time applications use UDP, and | majority of current traffic, some real-time applications use UDP, and | |||
much of this traffic utilises RTP format headers in the payload of | much of this traffic utilises RTP format headers in the payload of | |||
the UDP datagram. Since these protocol headers have been fixed for | the UDP datagram. Since these protocol headers have been fixed for | |||
decades, a range of tools and analysis methods have became common and | decades, a range of tools and analysis methods have became common and | |||
well-understood. Over this period, the transport protocol headers | well-understood. Over this period, the transport protocol headers | |||
have mostly changed slowly, and so also the need to develop tools | have mostly changed slowly, and so also the need to develop tools | |||
track new versions of the protocol. | track new versions of the protocol. | |||
Looking ahead, there will be a need to update these protocols and to | Looking ahead, there will be a need to update these protocols and to | |||
develop and deploy new transport mechanisms and protocols. There are | develop and deploy new transport mechanisms and protocols. There are | |||
both opportunities and also challenges to the design, evaluation and | both opportunities and also challenges to the design, evaluation and | |||
deployment of new transport protocol mechanisms. | deployment of new transport protocol mechanisms. | |||
Integrity checks can protect an endpoint from undetected modification | Integrity checks can protect an endpoint from undetected modification | |||
of protocol fields by network devices, whereas encryption and | of protocol fields by network devices, whereas encryption and | |||
obfuscation can further prevent these headers being utilised by | obfuscation can further prevent these headers from being utilised by | |||
network devices. Hiding headers can therefore provide the | network devices. Hiding headers can therefore provide the | |||
opportunity for greater freedom to update the protocols and can ease | opportunity for greater freedom to update the protocols, and can ease | |||
experimentation with new techniques and their final deployment in | experimentation with new techniques and their final deployment in | |||
endpoints. | endpoints. | |||
Hiding headers can limit the ability to measure and characterise | Hiding headers can limit the ability to measure and characterise | |||
traffic. Measurement data is increasingly being used to inform | traffic. Measurement data is increasingly being used to inform | |||
design decisions in networking research, during development of new | design decisions in networking research, during development of new | |||
mechanisms and protocols and in standardisation. Measurement has a | mechanisms and protocols and in standardisation. Measurement has a | |||
critical role in the design of transport protocol mechanisms and | critical role in the design of transport protocol mechanisms and | |||
their acceptance by the wider community (e.g., as a method to judge | their acceptance by the wider community (e.g., as a method to judge | |||
the safety for Internet deployment). Observation of pathologies are | the safety for Internet deployment). Observation of pathologies are | |||
skipping to change at page 31, line 25 ¶ | skipping to change at page 29, line 25 ¶ | |||
deployed/candidate methods. | deployed/candidate methods. | |||
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. | between encrypting all and no transport information. | |||
7. Conclusions | 7. Conclusions | |||
The majority of present Internet applications use two well-known | ||||
transport protocols: e.g., TCP and UDP. Although TCP represents the | ||||
majority of current traffic, some real-time applications have used | ||||
UDP, and much of this traffic utilises RTP format headers in the | ||||
payload of the UDP datagram. Since these protocol headers have been | ||||
fixed for decades, a range of tools and analysis methods have became | ||||
common and well-understood. Over this period, the transport protocol | ||||
headers have mostly changed slowly, and so also the need to develop | ||||
tools track new versions of the protocol. | ||||
Confidentiality and strong integrity checks have properties that are | Confidentiality and strong integrity checks have properties that are | |||
being incorporated into new protocols and that have important | being incorporated into new protocols and that have important | |||
benefits. The pace of development of transports using the WebRTC | benefits. The pace of development of transports using the WebRTC | |||
data channel and the rapid deployment of QUIC transport protocol can | data channel and the rapid deployment of QUIC transport protocol can | |||
both be attributed to using the combination of UDP as a substrate | both be attributed to using the combination of UDP as a substrate | |||
while providing confidentiality and authentication of the | while providing confidentiality and authentication of the | |||
encapsulated transport headers and payload. | encapsulated transport headers and payload. | |||
The traffic that can be observed by on-path network devices is a | The traffic that can be observed by on-path network devices is a | |||
function of transport protocol design/options, network use, | function of transport protocol design/options, network use, | |||
skipping to change at page 35, line 42 ¶ | skipping to change at page 33, line 33 ¶ | |||
9. IANA Considerations | 9. IANA Considerations | |||
XX RFC ED - PLEASE REMOVE THIS SECTION XXX | XX RFC ED - PLEASE REMOVE THIS SECTION XXX | |||
This memo includes no request to IANA. | This memo includes no request to IANA. | |||
10. Acknowledgements | 10. Acknowledgements | |||
The authors would like to thank Mohamed Boucadair, Spencer Dawkins, | The authors would like to thank Mohamed Boucadair, Spencer Dawkins, | |||
Jana Iyengar, Mirja Kuehlewind, Kathleen Moriarty, Al Morton, Chris | Tom Herbert, Jana Iyengar, Mirja Kuehlewind, Kyle Rose, Kathleen | |||
Seal, Joe Touch, Brian Trammell, and other members of the TSVWG for | Moriarty, Al Morton, Chris Seal, Joe Touch, Brian Trammell, and other | |||
their comments and feedback. | members of the TSVWG for their comments and feedback. | |||
This work has received funding from the European Union's Horizon 2020 | This work has received funding from the European Union's Horizon 2020 | |||
research and innovation programme under grant agreement No 688421.The | research and innovation programme under grant agreement No 688421.The | |||
opinions expressed and arguments employed reflect only the authors' | opinions expressed and arguments employed reflect only the authors' | |||
view. The European Commission is not responsible for any use that | view. The European Commission is not responsible for any use that | |||
may be made of that information. | may be made of that information. | |||
This work has received funding from the UK Engineering and Physical | This work has received funding from the UK Engineering and Physical | |||
Sciences Research Council under grant EP/R04144X/1. | Sciences Research Council under grant EP/R04144X/1. | |||
11. Informative References | 11. Informative References | |||
[bufferbloat] | ||||
Gettys, J. and K. Nichols, "Bufferbloat: dark buffers in | ||||
the Internet. Communications of the ACM, 55(1):57-65", | ||||
January 2012. | ||||
[I-D.ietf-ippm-ioam-data] | [I-D.ietf-ippm-ioam-data] | |||
Brockners, F., Bhandari, S., Pignataro, C., Gredler, H., | Brockners, F., Bhandari, S., Pignataro, C., Gredler, H., | |||
Leddy, J., Youell, S., Mizrahi, T., Mozes, D., Lapukhov, | Leddy, J., Youell, S., Mizrahi, T., Mozes, D., Lapukhov, | |||
P., Chang, R., daniel.bernier@bell.ca, d., and J. Lemon, | P., Chang, R., daniel.bernier@bell.ca, d., and J. Lemon, | |||
"Data Fields for In-situ OAM", draft-ietf-ippm-ioam- | "Data Fields for In-situ OAM", draft-ietf-ippm-ioam- | |||
data-03 (work in progress), June 2018. | data-03 (work in progress), June 2018. | |||
[I-D.ietf-quic-transport] | [I-D.ietf-quic-transport] | |||
Iyengar, J. and M. Thomson, "QUIC: A UDP-Based Multiplexed | Iyengar, J. and M. Thomson, "QUIC: A UDP-Based Multiplexed | |||
and Secure Transport", draft-ietf-quic-transport-14 (work | and Secure Transport", draft-ietf-quic-transport-14 (work | |||
in progress), August 2018. | in progress), August 2018. | |||
[I-D.ietf-rtcweb-overview] | ||||
Alvestrand, H., "Overview: Real Time Protocols for | ||||
Browser-based Applications", draft-ietf-rtcweb-overview-19 | ||||
(work in progress), November 2017. | ||||
[I-D.ietf-taps-transport-security] | [I-D.ietf-taps-transport-security] | |||
Pauly, T., Perkins, C., Rose, K., and C. Wood, "A Survey | Pauly, T., Perkins, C., Rose, K., and C. Wood, "A Survey | |||
of Transport Security Protocols", draft-ietf-taps- | of Transport Security Protocols", draft-ietf-taps- | |||
transport-security-02 (work in progress), June 2018. | transport-security-02 (work in progress), June 2018. | |||
[I-D.ietf-tcpinc-tcpcrypt] | [I-D.ietf-tcpinc-tcpcrypt] | |||
Bittau, A., Giffin, D., Handley, M., Mazieres, D., Slack, | Bittau, A., Giffin, D., Handley, M., Mazieres, D., Slack, | |||
Q., and E. Smith, "Cryptographic protection of TCP Streams | Q., and E. Smith, "Cryptographic protection of TCP Streams | |||
(tcpcrypt)", draft-ietf-tcpinc-tcpcrypt-12 (work in | (tcpcrypt)", draft-ietf-tcpinc-tcpcrypt-12 (work in | |||
progress), June 2018. | progress), June 2018. | |||
skipping to change at page 37, line 30 ¶ | skipping to change at page 35, line 30 ¶ | |||
Experimental Design, Implementation, and Policy | Experimental Design, Implementation, and Policy | |||
Considerations", RFC 1273, DOI 10.17487/RFC1273, November | Considerations", RFC 1273, DOI 10.17487/RFC1273, November | |||
1991, <https://www.rfc-editor.org/info/rfc1273>. | 1991, <https://www.rfc-editor.org/info/rfc1273>. | |||
[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>. | |||
[RFC2507] Degermark, M., Nordgren, B., and S. Pink, "IP Header | ||||
Compression", RFC 2507, DOI 10.17487/RFC2507, February | ||||
1999, <https://www.rfc-editor.org/info/rfc2507>. | ||||
[RFC2508] Casner, S. and V. Jacobson, "Compressing IP/UDP/RTP | ||||
Headers for Low-Speed Serial Links", RFC 2508, | ||||
DOI 10.17487/RFC2508, February 1999, | ||||
<https://www.rfc-editor.org/info/rfc2508>. | ||||
[RFC2914] Floyd, S., "Congestion Control Principles", BCP 41, | [RFC2914] Floyd, S., "Congestion Control Principles", BCP 41, | |||
RFC 2914, DOI 10.17487/RFC2914, September 2000, | RFC 2914, DOI 10.17487/RFC2914, September 2000, | |||
<https://www.rfc-editor.org/info/rfc2914>. | <https://www.rfc-editor.org/info/rfc2914>. | |||
[RFC3135] Border, J., Kojo, M., Griner, J., Montenegro, G., and Z. | [RFC3135] Border, J., Kojo, M., Griner, J., Montenegro, G., and Z. | |||
Shelby, "Performance Enhancing Proxies Intended to | Shelby, "Performance Enhancing Proxies Intended to | |||
Mitigate Link-Related Degradations", RFC 3135, | Mitigate Link-Related Degradations", RFC 3135, | |||
DOI 10.17487/RFC3135, June 2001, | DOI 10.17487/RFC3135, June 2001, | |||
<https://www.rfc-editor.org/info/rfc3135>. | <https://www.rfc-editor.org/info/rfc3135>. | |||
[RFC3168] Ramakrishnan, K., Floyd, S., and D. Black, "The Addition | [RFC3168] Ramakrishnan, K., Floyd, S., and D. Black, "The Addition | |||
of Explicit Congestion Notification (ECN) to IP", | of Explicit Congestion Notification (ECN) to IP", | |||
RFC 3168, DOI 10.17487/RFC3168, September 2001, | RFC 3168, DOI 10.17487/RFC3168, September 2001, | |||
<https://www.rfc-editor.org/info/rfc3168>. | <https://www.rfc-editor.org/info/rfc3168>. | |||
[RFC3234] Carpenter, B. and S. Brim, "Middleboxes: Taxonomy and | [RFC3234] Carpenter, B. and S. Brim, "Middleboxes: Taxonomy and | |||
Issues", RFC 3234, DOI 10.17487/RFC3234, February 2002, | Issues", RFC 3234, DOI 10.17487/RFC3234, February 2002, | |||
<https://www.rfc-editor.org/info/rfc3234>. | <https://www.rfc-editor.org/info/rfc3234>. | |||
[RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, | ||||
A., Peterson, J., Sparks, R., Handley, M., and E. | ||||
Schooler, "SIP: Session Initiation Protocol", RFC 3261, | ||||
DOI 10.17487/RFC3261, June 2002, | ||||
<https://www.rfc-editor.org/info/rfc3261>. | ||||
[RFC3393] Demichelis, C. and P. Chimento, "IP Packet Delay Variation | [RFC3393] Demichelis, C. and P. Chimento, "IP Packet Delay Variation | |||
Metric for IP Performance Metrics (IPPM)", RFC 3393, | Metric for IP Performance Metrics (IPPM)", RFC 3393, | |||
DOI 10.17487/RFC3393, November 2002, | DOI 10.17487/RFC3393, November 2002, | |||
<https://www.rfc-editor.org/info/rfc3393>. | <https://www.rfc-editor.org/info/rfc3393>. | |||
[RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. | [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. | |||
Jacobson, "RTP: A Transport Protocol for Real-Time | Jacobson, "RTP: A Transport Protocol for Real-Time | |||
Applications", STD 64, RFC 3550, DOI 10.17487/RFC3550, | Applications", STD 64, RFC 3550, DOI 10.17487/RFC3550, | |||
July 2003, <https://www.rfc-editor.org/info/rfc3550>. | July 2003, <https://www.rfc-editor.org/info/rfc3550>. | |||
[RFC3711] Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K. | ||||
Norrman, "The Secure Real-time Transport Protocol (SRTP)", | ||||
RFC 3711, DOI 10.17487/RFC3711, March 2004, | ||||
<https://www.rfc-editor.org/info/rfc3711>. | ||||
[RFC4302] Kent, S., "IP Authentication Header", RFC 4302, | [RFC4302] Kent, S., "IP Authentication Header", RFC 4302, | |||
DOI 10.17487/RFC4302, December 2005, | DOI 10.17487/RFC4302, December 2005, | |||
<https://www.rfc-editor.org/info/rfc4302>. | <https://www.rfc-editor.org/info/rfc4302>. | |||
[RFC4303] Kent, S., "IP Encapsulating Security Payload (ESP)", | [RFC4303] Kent, S., "IP Encapsulating Security Payload (ESP)", | |||
RFC 4303, DOI 10.17487/RFC4303, December 2005, | RFC 4303, DOI 10.17487/RFC4303, December 2005, | |||
<https://www.rfc-editor.org/info/rfc4303>. | <https://www.rfc-editor.org/info/rfc4303>. | |||
[RFC4585] Ott, J., Wenger, S., Sato, N., Burmeister, C., and J. Rey, | [RFC4585] Ott, J., Wenger, S., Sato, N., Burmeister, C., and J. Rey, | |||
"Extended RTP Profile for Real-time Transport Control | "Extended RTP Profile for Real-time Transport Control | |||
Protocol (RTCP)-Based Feedback (RTP/AVPF)", RFC 4585, | Protocol (RTCP)-Based Feedback (RTP/AVPF)", RFC 4585, | |||
DOI 10.17487/RFC4585, July 2006, | DOI 10.17487/RFC4585, July 2006, | |||
<https://www.rfc-editor.org/info/rfc4585>. | <https://www.rfc-editor.org/info/rfc4585>. | |||
[RFC4737] Morton, A., Ciavattone, L., Ramachandran, G., Shalunov, | [RFC4737] Morton, A., Ciavattone, L., Ramachandran, G., Shalunov, | |||
S., and J. Perser, "Packet Reordering Metrics", RFC 4737, | S., and J. Perser, "Packet Reordering Metrics", RFC 4737, | |||
DOI 10.17487/RFC4737, November 2006, | DOI 10.17487/RFC4737, November 2006, | |||
<https://www.rfc-editor.org/info/rfc4737>. | <https://www.rfc-editor.org/info/rfc4737>. | |||
[RFC4995] Jonsson, L-E., Pelletier, G., and K. Sandlund, "The RObust | ||||
Header Compression (ROHC) Framework", RFC 4995, | ||||
DOI 10.17487/RFC4995, July 2007, | ||||
<https://www.rfc-editor.org/info/rfc4995>. | ||||
[RFC5218] Thaler, D. and B. Aboba, "What Makes for a Successful | [RFC5218] Thaler, D. and B. Aboba, "What Makes for a Successful | |||
Protocol?", RFC 5218, DOI 10.17487/RFC5218, July 2008, | Protocol?", RFC 5218, DOI 10.17487/RFC5218, July 2008, | |||
<https://www.rfc-editor.org/info/rfc5218>. | <https://www.rfc-editor.org/info/rfc5218>. | |||
[RFC5236] Jayasumana, A., Piratla, N., Banka, T., Bare, A., and R. | [RFC5236] Jayasumana, A., Piratla, N., Banka, T., Bare, A., and R. | |||
Whitner, "Improved Packet Reordering Metrics", RFC 5236, | Whitner, "Improved Packet Reordering Metrics", RFC 5236, | |||
DOI 10.17487/RFC5236, June 2008, | DOI 10.17487/RFC5236, June 2008, | |||
<https://www.rfc-editor.org/info/rfc5236>. | <https://www.rfc-editor.org/info/rfc5236>. | |||
[RFC5481] Morton, A. and B. Claise, "Packet Delay Variation | [RFC5481] Morton, A. and B. Claise, "Packet Delay Variation | |||
skipping to change at page 40, line 10 ¶ | skipping to change at page 38, line 34 ¶ | |||
"Observations on the Dropping of Packets with IPv6 | "Observations on the Dropping of Packets with IPv6 | |||
Extension Headers in the Real World", RFC 7872, | Extension Headers in the Real World", RFC 7872, | |||
DOI 10.17487/RFC7872, June 2016, | DOI 10.17487/RFC7872, June 2016, | |||
<https://www.rfc-editor.org/info/rfc7872>. | <https://www.rfc-editor.org/info/rfc7872>. | |||
[RFC7928] Kuhn, N., Ed., Natarajan, P., Ed., Khademi, N., Ed., and | [RFC7928] Kuhn, N., Ed., Natarajan, P., Ed., Khademi, N., Ed., and | |||
D. Ros, "Characterization Guidelines for Active Queue | D. Ros, "Characterization Guidelines for Active Queue | |||
Management (AQM)", RFC 7928, DOI 10.17487/RFC7928, July | Management (AQM)", RFC 7928, DOI 10.17487/RFC7928, July | |||
2016, <https://www.rfc-editor.org/info/rfc7928>. | 2016, <https://www.rfc-editor.org/info/rfc7928>. | |||
[RFC7983] Petit-Huguenin, M. and G. Salgueiro, "Multiplexing Scheme | ||||
Updates for Secure Real-time Transport Protocol (SRTP) | ||||
Extension for Datagram Transport Layer Security (DTLS)", | ||||
RFC 7983, DOI 10.17487/RFC7983, September 2016, | ||||
<https://www.rfc-editor.org/info/rfc7983>. | ||||
[RFC8033] Pan, R., Natarajan, P., Baker, F., and G. White, | [RFC8033] Pan, R., Natarajan, P., Baker, F., and G. White, | |||
"Proportional Integral Controller Enhanced (PIE): A | "Proportional Integral Controller Enhanced (PIE): A | |||
Lightweight Control Scheme to Address the Bufferbloat | Lightweight Control Scheme to Address the Bufferbloat | |||
Problem", RFC 8033, DOI 10.17487/RFC8033, February 2017, | Problem", RFC 8033, DOI 10.17487/RFC8033, February 2017, | |||
<https://www.rfc-editor.org/info/rfc8033>. | <https://www.rfc-editor.org/info/rfc8033>. | |||
[RFC8084] Fairhurst, G., "Network Transport Circuit Breakers", | [RFC8084] Fairhurst, G., "Network Transport Circuit Breakers", | |||
BCP 208, RFC 8084, DOI 10.17487/RFC8084, March 2017, | BCP 208, RFC 8084, DOI 10.17487/RFC8084, March 2017, | |||
<https://www.rfc-editor.org/info/rfc8084>. | <https://www.rfc-editor.org/info/rfc8084>. | |||
skipping to change at page 42, line 48 ¶ | skipping to change at page 40, line 48 ¶ | |||
-10 Updated references, split the Introduction, and added a paragraph | -10 Updated references, split the Introduction, and added a paragraph | |||
giving some examples of why ossification has been an issue. | giving some examples of why ossification has been an issue. | |||
-01 This resolved some reference issues. Updated section on | -01 This resolved some reference issues. Updated section on | |||
observation by devices on the path. | observation by devices on the path. | |||
-02 Comments received from Kyle Rose, Spencer Dawkins and Tom | -02 Comments received from Kyle Rose, Spencer Dawkins and Tom | |||
Herbert. The network-layer information has also been re-organised | Herbert. The network-layer information has also been re-organised | |||
after comments at IETF-103. | after comments at IETF-103. | |||
-03 Added a section on header compression and rewriting of sections | ||||
refering to RTP transport. This version contains author editorial | ||||
work and removed duplicate section. | ||||
Authors' Addresses | Authors' Addresses | |||
Godred Fairhurst | Godred Fairhurst | |||
University of Aberdeen | University of Aberdeen | |||
Department of Engineering | Department of Engineering | |||
Fraser Noble Building | Fraser Noble Building | |||
Aberdeen AB24 3UE | Aberdeen AB24 3UE | |||
Scotland | Scotland | |||
EMail: gorry@erg.abdn.ac.uk | EMail: gorry@erg.abdn.ac.uk | |||
URI: http://www.erg.abdn.ac.uk/ | URI: http://www.erg.abdn.ac.uk/ | |||
End of changes. 97 change blocks. | ||||
377 lines changed or deleted | 327 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/ |