draft-ietf-tsvwg-transport-encrypt-03.txt | draft-ietf-tsvwg-transport-encrypt-04.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: August 22, 2019 University of Glasgow | |||
November 25, 2018 | February 18, 2019 | |||
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-03 | draft-ietf-tsvwg-transport-encrypt-04 | |||
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 1, line 42 ¶ | skipping to change at page 1, line 42 ¶ | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on May 29, 2019. | This Internet-Draft will expire on August 22, 2019. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2018 IETF Trust and the persons identified as the | Copyright (c) 2019 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 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 . . . . . . . . . . . . . . . . . . 16 | 3.2. Transport Measurement . . . . . . . . . . . . . . . . . . 16 | |||
3.3. Use for Network Diagnostics and Troubleshooting . . . . . 19 | 3.3. Use for Network Diagnostics and Troubleshooting . . . . . 20 | |||
3.4. Header Compression . . . . . . . . . . . . . . . . . . . 20 | 3.4. Header Compression . . . . . . . . . . . . . . . . . . . 21 | |||
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 | |||
6. Implications of Protecting the Transport Headers . . . . . . 26 | 6. Implications of Protecting the Transport Headers . . . . . . 26 | |||
6.1. Independent Measurement . . . . . . . . . . . . . . . . . 26 | 6.1. Independent Measurement . . . . . . . . . . . . . . . . . 26 | |||
6.2. Characterising "Unknown" Network Traffic . . . . . . . . 27 | 6.2. Characterising "Unknown" Network Traffic . . . . . . . . 28 | |||
6.3. Accountability and Internet Transport Protocols . . . . . 27 | 6.3. Accountability and Internet Transport Protocols . . . . . 28 | |||
6.4. Impact on Research, Development and Deployment . . . . . 28 | 6.4. Impact on Operational Cost . . . . . . . . . . . . . . . 29 | |||
7. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . 29 | 6.5. Impact on Research, Development and Deployment . . . . . 30 | |||
8. Security Considerations . . . . . . . . . . . . . . . . . . . 31 | 7. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . 30 | |||
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 33 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 33 | |||
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 33 | 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 35 | |||
11. Informative References . . . . . . . . . . . . . . . . . . . 33 | 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 35 | |||
Appendix A. Revision information . . . . . . . . . . . . . . . . 40 | 11. Informative References . . . . . . . . . . . . . . . . . . . 35 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 41 | Appendix A. Revision information . . . . . . . . . . . . . . . . 42 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 43 | ||||
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 [RFC7258], [RFC7624], and | These benefits have been widely discussed [RFC7258], [RFC7624], and | |||
skipping to change at page 3, line 17 ¶ | skipping to change at page 3, line 17 ¶ | |||
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 | |||
considers the effect of such changes on transport protocol design and | considers the effect of such changes on transport protocol design and | |||
network operations. 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 | Transports are increasingly encrypting and authenticating the payload | |||
(i.e., the application data carried within the transport connection) | (i.e., the application data carried within the transport connection) | |||
end-to-end. Such protection is encouraged, and iits implications are | end-to-end. Such protection is encouraged, and the implications are | |||
not further discussed in this memo. | 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 | |||
skipping to change at page 3, line 51 ¶ | skipping to change at page 3, line 51 ¶ | |||
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]). In turn, the network operations | robust Internet (e.g., [RFC1273]). In turn, the network operations | |||
community relies on being able to understand the pattern and | community relies on being able to understand the pattern and | |||
requirements of traffic passing over the Internet, both in aggregate | requirements of traffic passing over the Internet, both in aggregate | |||
and at the flow level. | and at the flow level. | |||
There are many motivations for deploying encrypted transports | There are many motivations for deploying encrypted transports | |||
[RFC7624] (i.e., transport protocols that use encryption to provide | [RFC7624] (i.e., transport protocols that use encryption to provide | |||
confidentiality of some or all of the transport-layer header | confidentiality of some or all of the transport-layer header | |||
information), and encryption of transport payloads (i.e. | information), and encryption of transport payloads (i.e. | |||
confidentiality of the payload data). The increasing public concerns | Confidentiality of the payload data). The increasing public concerns | |||
about interference with Internet traffic have led to a rapidly | about interference with Internet traffic have led to a rapidly | |||
expanding deployment of encryption to protect end-user privacy, e.g., | expanding deployment of encryption to protect end-user privacy, e.g., | |||
QUIC [I-D.ietf-quic-transport]. Encryption is also expected to form | QUIC [I-D.ietf-quic-transport]. Encryption is also expected to form | |||
a basis of future transport protocol designs. | a basis of future transport protocol designs. | |||
Some network operators and access providers have come to rely on the | Some network operators and access providers have come to rely on the | |||
in-network measurement of transport properties and the functionality | in-network measurement of transport properties and the functionality | |||
provided by middleboxes to both support network operations and | provided by middleboxes to both support network operations and | |||
enhance performance. There can therefore be implications when | enhance performance. There can therefore be implications when | |||
working with encrypted transport protocols that hide transport header | working with encrypted transport protocols that hide transport header | |||
skipping to change at page 4, line 39 ¶ | skipping to change at page 4, line 39 ¶ | |||
some cases, this could be benign or advantageous to the protocol | some cases, this could be benign or advantageous to the protocol | |||
(e.g., recognising the start of a connection, or explicitly exposing | (e.g., recognising the start of a connection, or explicitly exposing | |||
protocol information can be expected to provide more consistent | protocol information can be expected to provide more consistent | |||
decisions by on-path devices than the use of diverse methods to infer | decisions by on-path devices than the use of diverse methods to infer | |||
semantics from other flow properties); in other cases this is not | semantics from other flow properties); in other cases this is not | |||
beneficial (e.g., a mechanism implemented in a network device, such | beneficial (e.g., a mechanism implemented in a network device, such | |||
as a firewall, that required a header field to have only a specific | as a firewall, that required a header field to have only a specific | |||
known set of values could prevent the device from forwarding packets | known set of values could prevent the device from forwarding packets | |||
using a different version of a protocol that introduces a new feature | using a different version of a protocol that introduces a new feature | |||
that changes the value present in this field, preventing evolution of | that changes the value present in this field, preventing evolution of | |||
the protocol). | the protocol). Experience developing Transport Layer Security | |||
[RFC8446], required a design that recognised that deployed | ||||
middleboxes relied on the exposed information in TLS 1.2 | ||||
Examples of the impact of ossification on transport protocol design | Examples of the impact of ossification on transport protocol design | |||
and ease of deployment can be seen in the case of Multipath TCP | and ease of deployment can be seen in the case of Multipath TCP | |||
(MPTCP) and the TCP Fast Open option. The design of MPTCP had to be | (MPTCP) and the TCP Fast Open option. The design of MPTCP had to be | |||
revised to account for middleboxes, so called "TCP Normalizers", that | revised to account for middleboxes, so called "TCP Normalizers", that | |||
monitor the evolution of the window advertised in the TCP headers and | monitor the evolution of the window advertised in the TCP headers and | |||
that reset connections if the window does not grow as expected. | that reset connections if the window does not grow as expected. | |||
Similarly, TCP Fast Open has had issues with middleboxes that remove | Similarly, TCP Fast Open has had issues with middleboxes that remove | |||
unknown TCP options, that drop segments with unknown TCP options, | unknown TCP options, that drop segments with unknown TCP options, | |||
that drop segments that contain data and have the SYN bit set, that | that drop segments that contain data and have the SYN bit set, that | |||
skipping to change at page 5, line 15 ¶ | skipping to change at page 5, line 16 ¶ | |||
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 gaining knowledge of the header | Encryption with secure key distribution prevents an on-path device | |||
field. It therefore prevents mechanisms being built that directly | from observing the header field. It therefore prevents mechanisms | |||
rely on the information or seek to infer semantics of an exposed | being built that directly rely on the information or seek to infer | |||
header field. Using encryption to provide confidentiality of the | semantics of an exposed header field. Using encryption to provide | |||
transport layer brings some well-known privacy and security benefits | confidentiality of the transport layer brings some well-known privacy | |||
and can therefore help reduce ossification of the transport layer. | and security benefits and can therefore help reduce ossification of | |||
In particular, it is important that protocols either do not expose | the transport layer. In particular, it is important that protocols | |||
information where the usage could change in future protocols, or that | either do not expose information where the usage could change in | |||
methods that utilise the information are robust to potential changes | future protocols, or that methods that utilise the information are | |||
as protocols evolve over time. To avoid unwanted inspection, a | robust to potential changes as protocols evolve over time. To avoid | |||
protocol could also intentionally vary the format and/or value of | unwanted inspection, a protocol could also intentionally vary the | |||
header fields (sometimes known as Greasing | format and/or value of 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 | |||
skipping to change at page 5, line 49 ¶ | skipping to change at page 5, line 50 ¶ | |||
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 versus observability, network operations and | and confidentiality versus observability, network operations and | |||
management, and ossification. For example, a design that provides | 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 explicitly measure | |||
protocol performance, network anomalies, and failure pathologies. | and analyse 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 | |||
network operators. | network operators. | |||
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 (for example heuristics | |||
based on analysis of traffic patterns). | ||||
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 many of the privacy and security | |||
security benefits while supporting operations and research, but at | benefits while supporting operations and research, but at the cost | |||
the cost of ossifying the transport headers. | 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). | |||
skipping to change at page 11, line 28 ¶ | skipping to change at page 11, line 36 ¶ | |||
[RFC7983]. | [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 can | |||
observed traffic to make inferences from transport headers to derive | observe traffic that does not encrypt the transport header | |||
these performance metrics. A variety of open source and commercial | information to make inferences from transport headers to derive these | |||
tools have been deployed that utilise this information. The | performance metrics. A variety of open source and commercial tools | |||
following metrics can be derived from transport header information: | have been deployed that utilise this information. The 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 | |||
and packet size) allows derivation of volume measures per- | and packet size) allows derivation of volume measures per- | |||
application, to characterise the traffic that uses a network | application, to characterise the traffic that uses a network | |||
segment or the pattern of network usage. This can be measured per | segment or the pattern of network usage. This can be measured per | |||
endpoint or for an aggregate of endpoints (e.g., by an operator to | endpoint or for an aggregate of endpoints (e.g., by an operator to | |||
assess subscriber usage). It can also be used to trigger | assess subscriber usage). It can also be used to trigger | |||
measurement-based traffic shaping and to implement QoS support | measurement-based traffic shaping and to implement QoS support | |||
within the network and lower layers. Volume measures can be | within the network and lower layers. Volume measures can be | |||
valuable for capacity planning and providing detail of trends, | valuable for capacity planning and providing detail of trends, | |||
skipping to change at page 13, line 23 ¶ | skipping to change at page 13, line 31 ¶ | |||
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 (jitter). Short and long-term delay | |||
applications, it can be necessary to measure the variation in | variation can impact on the latency of a flow and the hence the | |||
delay observed along a portion of the path [RFC3393] [RFC5481]. | perceived quality of applications using the network (e.g., jitter | |||
The requirements resemble those for the measurement of latency. | metrics are often cited when characterising paths supporting real- | |||
time traffic). To assess the performance of such applications, it | ||||
can be necessary to measure the variation in delay observed along | ||||
a portion of the path [RFC3393] [RFC5481]. The requirements | ||||
resemble those for the measurement of latency. | ||||
Flow Reordering: Significant packet reordering within a flow can | Flow Reordering: Significant packet reordering within a flow can | |||
impact time-critical applications and can be interpreted as loss | impact time-critical applications and can be interpreted as loss | |||
by reliable transports. Many transport protocol techniques are | by reliable transports. Many transport protocol techniques are | |||
impacted by reordering (e.g., triggering TCP retransmission, or | impacted by reordering (e.g., triggering TCP retransmission, or | |||
re-buffering of real-time applications). Packet reordering can | re-buffering of real-time applications). Packet reordering can | |||
occur for many reasons, from equipment design to misconfiguration | occur for many reasons, from equipment design to misconfiguration | |||
of forwarding rules. Since this impacts transport performance, | of forwarding rules. Since this impacts transport performance, | |||
network tools are needed to detect and measure unwanted/excessive | network tools are needed to detect and measure unwanted/excessive | |||
reordering. | reordering. | |||
skipping to change at page 14, line 51 ¶ | skipping to change at page 15, line 12 ¶ | |||
to enable a different forwarding treatment by the network, even when | to enable a different forwarding treatment by the network, even when | |||
a transport employs encryption to protect other header information. | a transport employs encryption to protect other header information. | |||
On the one hand, the user of a transport that multiplexes multiple | On the one hand, the user of a transport that multiplexes multiple | |||
sub-flows could wish to hide the presence and characteristics of | sub-flows could wish to hide the presence and characteristics of | |||
these sub-flows. On the other hand, an encrypted transport could set | these sub-flows. On the other hand, an encrypted transport could set | |||
the network-layer information to indicate the presence of sub-flows | the network-layer information to indicate the presence of sub-flows | |||
and to reflect the network needs of individual sub-flows. There are | and to reflect the network needs of individual sub-flows. There are | |||
several ways this could be done: | several ways this could be done: | |||
Using the IPv6 Network-Layer Flow Label: Endpoints are encouraged to | IP Address: Applications expose the addresses used by endpoints, and | |||
set the IPv6 Flow Label field of the network-layer header (e.g., | this is used in the forwarding decisions in network devices. | |||
Address and other protocol information can be used by a Multi- | ||||
Field (MF) classifier to determine how traffic is treated | ||||
[RFC2475], and hence the quality of experience for a flow. | ||||
[RFC8085]). The label can provide information that can help | Using the IPv6 Network-Layer Flow Label: A number of Standards Track | |||
inform network-layer queuing, forwarding (e.g., for Equal Cost | and Best Current Practice RFCs (e.g., [RFC8085], [RFC6437], | |||
Multi-Path, ECMP, routing, and Link Aggregation, LAG) [RFC6294]. | [RFC6438]) encourage endpoints to set the IPv6 Flow label field of | |||
A multiplexing transport could choose to use multiple flow labels | the network-layer header. IPv6 "source nodes SHOULD assign each | |||
to allow the network to independently forward subflows. | unrelated transport connection and application data stream to a | |||
new flow" [RFC6437]. A multiplexing transport could choose to use | ||||
multiple Flow labels to allow the network to independently forward | ||||
subflows. RFC6437 provides further guidance on choosing a flow | ||||
label value, stating these "should be chosen such that their bits | ||||
exhibit a high degree of variability", and chosen so that "third | ||||
parties should be unlikely to be able to guess the next value that | ||||
a source of flow labels will choose". To promote privacy, the | ||||
Flow Label assignment needs to avoid introducing linkability that | ||||
a network device may observe. Once set, a label can provide | ||||
information that can help inform network-layer queuing and | ||||
forwarding [RFC6438](e.g. for Equal Cost Multi-Path, ECMP, | ||||
routing, and Link Aggregation, LAG) [RFC6294]. [RFC6438] includes | ||||
describes considerations when used with IPsec. | ||||
Using the Network-Layer Differentiated Services Code Point: | Using the Network-Layer Differentiated Services Code Point: | |||
Applications can expose their delivery expectations to the network | Applications can expose their delivery expectations to the network | |||
by setting the Differentiated Services Code Point (DSCP) field of | by setting the Differentiated Services Code Point (DSCP) field of | |||
IPv4 and IPv6 packets [RFC2474]. For example, WebRTC applications | IPv4 and IPv6 packets [RFC2474]. For example, WebRTC applications | |||
identify different forwarding treatments for individual sub-flows | identify different forwarding treatments for individual sub-flows | |||
(audio vs. video) based on the value of the DSCP field | (audio vs. video) based on the value of the DSCP field | |||
[I-D.ietf-tsvwg-rtcweb-qos]). This provides explicit information | [I-D.ietf-tsvwg-rtcweb-qos]). This provides explicit information | |||
to inform network-layer queuing and forwarding, rather than an | to inform network-layer queuing and forwarding, rather than an | |||
operator inferring traffic requirements from transport and | operator inferring traffic requirements from transport and | |||
application headers via a multi-field classifier. | application headers via a multi-field classifier. | |||
Since the DSCP value can impact the quality of experience for a | Since the DSCP value can impact the quality of experience for a | |||
flow., observations of service performance need to consider this | flow, observations of service performance need to consider this | |||
field when a network path has support for differentiated service | field when a network path has support for differentiated service | |||
treatment. | treatment. | |||
Using Explicit Congestion Marking: ECN [RFC3168] is a transport | Using Explicit Congestion Marking: ECN [RFC3168] is a transport | |||
mechanism that utilises the ECN field in the network-layer header. | mechanism that utilises the ECN field in the network-layer header. | |||
Use of ECN explicitly informs the network-layer that a transport | Use of ECN explicitly informs the network-layer that a transport | |||
is ECN-capable, and requests ECN treatment of the 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 that implements an AQM method with Congestion | with equipment that implements an AQM method with Congestion | |||
Experienced (CE) marking of IP packets [RFC8087], since it can | Experienced (CE) marking of IP packets [RFC8087], since it can | |||
skipping to change at page 20, line 5 ¶ | skipping to change at page 20, line 32 ¶ | |||
make appropriate QoS decisions, or response to other queries about | make appropriate QoS decisions, or response to other queries about | |||
the network service. For some this will be blessing, for others it | the network service. For some this will be blessing, for others it | |||
may be a curse. For example, operational performance data about | may be a curse. For example, operational performance data about | |||
encrypted flows needs to be determined by traffic pattern analysis, | encrypted flows needs to be determined by traffic pattern analysis, | |||
rather than relying on traditional tools. This can impact the | rather than relying on traditional tools. This can impact the | |||
ability of the operator to respond to faults, it could require | ability of the operator to respond to faults, it could require | |||
reliance on endpoint diagnostic tools or user involvement in | reliance on endpoint diagnostic tools or user involvement in | |||
diagnosing and troubleshooting unusual use cases or non-trivial | diagnosing and troubleshooting unusual use cases or non-trivial | |||
problems. A key need here is for tools to provide useful information | problems. A key need here is for tools to provide useful information | |||
during network anomalies (e.g., significant reordering, high or | during network anomalies (e.g., significant reordering, high or | |||
intermittent loss). Many network operators currently utilise | intermittent loss). | |||
observed transport information as a part of their operational | ||||
practice. However, the network will not break just because transport | ||||
headers are encrypted, although alternative diagnostic and | ||||
troubleshooting tools would need to be developed and deployed. | ||||
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 perform a measurement. However, most operators do not | |||
have access to user equipment, and injection of test traffic may be | have access to user equipment, therefore the point of test is | |||
associated with costs in running such tests (e.g., the implications | normally different from the transport endpoint. Injection of test | |||
of capacity tests in a mobile network are obvious). Some active | traffic can incur an additional costs in running such tests (e.g., | |||
measurements (e.g., response under load or particular workloads) | the implications of capacity tests in a mobile network are obvious). | |||
perturb other traffic, and could require dedicated access to the | Some active measurements (e.g., response under load or particular | |||
network segment. An alternative approach is to use in-network | workloads) perturb other traffic, and could require dedicated access | |||
techniques that observe transport packet headers in operational | to the network segment. An alternative approach is to use in-network | |||
networks to make the measurements. | techniques that observe transport packet headers added while traffic | |||
traverses an operational networks to make the measurements. These | ||||
measurements do not require the cooperation of an endpoint. | ||||
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 | |||
alone. The design trade-offs for radio networks are often very | alone. The design trade-offs for radio networks are often very | |||
different to those of wired networks. A radio-based network (e.g., | different to those of wired networks. A radio-based network (e.g., | |||
cellular mobile, enterprise WiFi, satellite access/back-haul, point- | cellular mobile, enterprise WiFi, satellite access/back-haul, point- | |||
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, | |||
skipping to change at page 25, line 13 ¶ | skipping to change at page 25, line 36 ¶ | |||
fields. Instead, fields of a specific type ought to always be | fields. Instead, fields of a specific type ought to always be | |||
sent with the same level of confidentiality or integrity | sent with the same level of confidentiality or integrity | |||
protection. | protection. | |||
As seen, different transports use encryption to protect their header | As seen, different transports use encryption to protect their header | |||
information to varying degrees. There is, however, a trend towards | information to varying degrees. There is, however, a trend towards | |||
increased protection with newer transport protocols. | increased protection with newer transport protocols. | |||
5. Addition of Transport Information to Network-Layer Protocol Headers | 5. Addition of Transport Information to Network-Layer Protocol Headers | |||
Transport protocol information can be made visible in a network-layer | ||||
header. This has the advantage that this information can then be | ||||
observed by in-network devices. | ||||
Information from the transport protocol can be used by a multi-field | ||||
classifier to prioritise flows as a part of a policy framework. This | ||||
was discussed in Section 3.1.3. | ||||
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 | |||
tools at the required segments/nodes and there can be challenges in | tools at the required segments/nodes and there can be challenges in | |||
skipping to change at page 26, line 17 ¶ | skipping to change at page 26, line 33 ¶ | |||
manipulate this header information to gain an advantage from the | manipulate this header information to gain an advantage from the | |||
network. | network. | |||
6. Implications of Protecting the Transport Headers | 6. Implications of Protecting the Transport Headers | |||
The choice of which fields to expose and which to encrypt is a design | The choice of which fields to expose and which to encrypt is a design | |||
choice for the transport protocol. Any selective encryption method | choice for the transport protocol. Any selective encryption method | |||
requires trading two conflicting goals for a transport protocol | requires trading two conflicting goals for a transport protocol | |||
designer to decide which header fields to encrypt. Security work | designer to decide which header fields to encrypt. Security work | |||
typically employs a design technique that seeks to expose only what | typically employs a design technique that seeks to expose only what | |||
is needed. However, there can be performance and operational | is needed. This approach provides incentives to not reveal any | |||
benefits in exposing selected information to network tools. | information that is not necessary for the end-to-end communication. | |||
However, there can be performance and operational benefits in | ||||
exposing selected information to network tools. | ||||
This section explores key implications of working with encrypted | This section explores key implications of working with encrypted | |||
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 | The majority of present Internet applications use two well-known | |||
could be possible for an applications to provide summary data on | transport protocols, TCP and UDP. Although TCP represents the | |||
performance and usage of the network. This data could be made | majority of current traffic, some real-time applications use UDP, and | |||
available to other actors. However, this data needs to contain | much of this traffic utilises RTP format headers in the payload of | |||
sufficient detail to understand (and possibly reconstruct the network | the UDP datagram. Since these protocol headers have been fixed for | |||
traffic pattern for further testing) and to be correlated with the | decades, a range of tools and analysis methods have became common and | |||
configuration of the network paths being measured. | well-understood. | |||
Sharing information between actors needs also to consider the privacy | Protocols that expose the state information used by the transport | |||
of the user and the incentives for providing accurate and detailed | protocol in their header information (e.g., timestamps used to | |||
information. Protocols that expose the state information used by the | calculate the RTT, packet numbers used to asses congestion and | |||
transport protocol in their header information (e.g., timestamps used | ||||
to calculate the RTT, packet numbers used to asses congestion and | ||||
requests for retransmission) provide an incentive for the sending | 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 | For example, when TCP is used over an unencrypted network path (i.e., | |||
protocols, changes in network infrastructure, or the emergence of new | one that does not use IPsec or other encryption below the transport), | |||
traffic patterns. | it implicitly exposes header information that can be used for | |||
measurement at any point along the path. This information is | ||||
necessary for the protocol's correct operation, therefore there is no | ||||
incentive for a TCP implementation to put incorrect information in | ||||
this transport header. A network device can have confidence that the | ||||
well-known (and ossified) transport information represents the actual | ||||
state of the endpoints. | ||||
When encryption is used to conceal some or all of the transport | ||||
headers, the transport protocol choose what information to reveal to | ||||
the network about its internal state, what information to leave | ||||
encrypted, and what fields to grease to protect against future | ||||
ossification. Such a transport could be designed, for example, to | ||||
provide summary data regarding its performance, congestion control | ||||
state, etc., or to make an explicit measurement signal available. | ||||
For example, a QUIC endpoint could set the spin bit to reflect to | ||||
explicitly reveal a session's RTT [I-D.ietf-quic-spin-exp]). | ||||
When providing or using such information, it becomes important to | ||||
consider the privacy of the user and their incentive for providing | ||||
accurate and detailed information. Protocols that selectively reveal | ||||
some transport state or measurement signals are choosing to establish | ||||
a trust relationship with the network operators. There is no | ||||
protocol mechanism that can guarantee that the information provided | ||||
represents the actual transport state of the endpoints, since those | ||||
endpoints can always send additional information in the encrypted | ||||
part of the header, to update to replace whatever they reveal. This | ||||
reduces the ability to independently measure and verify that a | ||||
protocol is behaving as expected. Some operational uses need the | ||||
information to contain sufficient detail to understand, and possibly | ||||
reconstruct, the network traffic pattern for further testing; such | ||||
operators must gain the trust of transport protocol implementers if | ||||
they are to correctly reveal such information. | ||||
For some usage a standardised endpoint-based logging format (e.g., | ||||
based onQuic-Trace [Quic-Trace]) could offer an alternative to in- | ||||
network measurement. Such information will have a diversity of uses | ||||
- examples include developers wishing to debug/understand the | ||||
transport/applictaion protocols with which they work, to researchers | ||||
seeking to spot trends, anomalies and to characterise variants of | ||||
protocols. This use will need to establish the validity and | ||||
provenance of the logging information (e.g., to establish how and | ||||
when traces were captured). | ||||
However, endpoint logs do not provide equivalent information to in- | ||||
network measurements. In particular, endpoint logs contain only a | ||||
part of the information needed to understand the operation of network | ||||
devices and identify issues such as link performance or capacity | ||||
sharing between multiple flows. Additional information is needed to | ||||
determine which equipment/links are used and the configuration of | ||||
equipment along the network paths being measured. | ||||
6.2. Characterising "Unknown" Network Traffic | 6.2. Characterising "Unknown" Network Traffic | |||
The patterns and types of traffic that share Internet capacity change | The patterns and types of traffic that share Internet capacity change | |||
over time as networked applications, usage patterns and protocols | over time as networked applications, usage patterns and protocols | |||
continue to evolve. | continue to evolve. | |||
If "unknown" or "uncharacterised" traffic patterns form a small part | If "unknown" or "uncharacterised" traffic patterns form a small part | |||
of the traffic aggregate passing through a network device or segment | of the traffic aggregate passing through a network device or segment | |||
of the network the path, the dynamics of the uncharacterised traffic | of the network the path, the dynamics of the uncharacterised traffic | |||
skipping to change at page 27, line 33 ¶ | skipping to change at page 28, line 51 ¶ | |||
This is especially true of protocols operating over a UDP substrate. | This is especially true of protocols operating over a UDP substrate. | |||
The level and style of encryption needs to be considered in | The level and style of encryption needs to be considered in | |||
determining how this activity is performed. On a shorter timescale, | determining how this activity is performed. On a shorter timescale, | |||
information may also need to be collected to manage denial of service | information may also need to be collected to manage denial of service | |||
attacks against the infrastructure. | attacks against the infrastructure. | |||
6.3. Accountability and Internet Transport Protocols | 6.3. Accountability and Internet Transport Protocols | |||
Information provided by tools observing transport headers can be used | Information provided by tools observing transport headers can be used | |||
to classify traffic, and to limit the network capacity used by | to classify traffic, and to limit the network capacity used by | |||
certain flows. Operators can potentially use this information to | certain flows, as discussed in Section 3.2.4). Equally, operators | |||
prioritise or de-prioritise certain flows or classes of flow, with | ||||
potential implications for network neutrality, or to rate limit | ||||
malicious or otherwise undesirable flows (e.g., for Distributed | ||||
Denial of Service, DDOS, protection, or to ensure compliance with a | ||||
traffic profile, as discussed in Section 3.2.4). Equally, operators | ||||
could use analysis of transport headers and transport flow state to | could use analysis of transport headers and transport flow state to | |||
demonstrate that they are not providing differential treatment to | demonstrate that they are not providing differential treatment to | |||
certain flows. Obfuscating or hiding this information using | certain flows. Obfuscating or hiding this information using | |||
encryption may lead operators and maintainers of middleboxes | encryption may lead operators and maintainers of middleboxes | |||
(firewalls, etc.) to seek other methods to classify, and potentially | (firewalls, etc.) to seek other methods to classify, and potentially | |||
other mechanisms to condition, network traffic. | other mechanisms to condition, network traffic. | |||
A lack of data reduces the level of precision with which flows can be | A lack of data that reduces the level of precision with which flows | |||
classified and conditioning mechanisms can be applied (e.g., rate | can be classified also reduces the design space for conditioning | |||
limiting, circuit breaker techniques [RFC8084], or blocking of | mechanisms (e.g., rate limiting, circuit breaker techniques | |||
uncharacterised traffic), and this needs to be considered when | [RFC8084], or blocking of uncharacterised traffic), and this needs to | |||
evaluating the impact of designs for transport encryption [RFC5218]. | be considered when evaluating the impact of designs for transport | |||
encryption [RFC5218]. | ||||
6.4. Impact on Research, Development and Deployment | 6.4. Impact on Operational Cost | |||
The majority of present Internet applications use two well-known | Many network operators currently utilise observed transport | |||
transport protocols, TCP and UDP. Although TCP represents the | information as a part of their operational practice, and have | |||
majority of current traffic, some real-time applications use UDP, and | developed tools and operational practices based around currently | |||
much of this traffic utilises RTP format headers in the payload of | deployed transports and their applications. Encryption of the | |||
the UDP datagram. Since these protocol headers have been fixed for | transport information prevents tools from directly observing this | |||
decades, a range of tools and analysis methods have became common and | information. A variety of open source and commercial tools have been | |||
well-understood. Over this period, the transport protocol headers | deployed that utilise this information for a variety of short and | |||
have mostly changed slowly, and so also the need to develop tools | long term measurements. | |||
track new versions of the protocol. | ||||
Looking ahead, there will be a need to update these protocols and to | The network will not break just because transport headers are | |||
develop and deploy new transport mechanisms and protocols. There are | encrypted, although alternative diagnostic and troubleshooting tools | |||
both opportunities and also challenges to the design, evaluation and | would need to be developed and deployed. Introducing a new protocol | |||
deployment of new transport protocol mechanisms. | or application can require these tool chains and practice to be | |||
updated, and may in turn impact operational mechanisms, and policies. | ||||
Each change can introduce associated costs, including the cost of | ||||
collecting data, and the tooling needed to handle multiple formats | ||||
(possibly as these co-exist in the network, when measurements need to | ||||
span time periods during which changes are deployed, or to compare | ||||
with historical data). These costs are incurred by an operator to | ||||
manage the service and debug network issues. | ||||
Integrity checks can protect an endpoint from undetected modification | At the time of writing, the additional operational cost of using | |||
of protocol fields by network devices, whereas encryption and | encrypted transports is not yet well understood. Design trade-offs | |||
obfuscation can further prevent these headers from being utilised by | could mitigate these costs by explicitly choosing to expose selected | |||
network devices. Hiding headers can therefore provide the | information (e.g., header invariants and the spin-bit in | |||
opportunity for greater freedom to update the protocols, and can ease | QUIC[I-D.ietf-quic-transport]), the specification of common log | |||
experimentation with new techniques and their final deployment in | formats and development of alternative approaches. | |||
endpoints. | ||||
Hiding headers can limit the ability to measure and characterise | 6.5. Impact on Research, Development and Deployment | |||
traffic. Measurement data is increasingly being used to inform | ||||
design decisions in networking research, during development of new | Measurement has a critical role in the design of transport protocol | |||
mechanisms and protocols and in standardisation. Measurement has a | mechanisms and their acceptance by the wider community (e.g., as a | |||
critical role in the design of transport protocol mechanisms and | method to judge the safety for Internet deployment) and is | |||
their acceptance by the wider community (e.g., as a method to judge | increasingly being used to inform design decisions in networking | |||
the safety for Internet deployment). Observation of pathologies are | research, during development of new mechanisms and protocols and in | |||
also important in understanding the interactions between cooperating | standardisation. Observation of pathologies are also important in | |||
protocols and network mechanism, the implications of sharing capacity | understanding the interactions between cooperating protocols and | |||
with other traffic and the impact of different patterns of usage. | network mechanism, the implications of sharing capacity with other | |||
traffic and the impact of different patterns of usage. | ||||
Evolution and the ability to understand (measure) the impact need to | Evolution and the ability to understand (measure) the impact need to | |||
proceed hand-in-hand. Attention needs to be paid to the expected | proceed hand-in-hand. Attention needs to be paid to the expected | |||
scale of deployment of new protocols and protocol mechanisms. | scale of deployment of new protocols and protocol mechanisms. | |||
Whatever the mechanism, experience has shown that it is often | Whatever the mechanism, experience has shown that it is often | |||
difficult to correctly implement combination of mechanisms [RFC8085]. | difficult to correctly implement combination of mechanisms [RFC8085]. | |||
These mechanisms therefore typically evolve as a protocol matures, or | These mechanisms therefore typically evolve as a protocol matures, or | |||
in response to changes in network conditions, changes in network | in response to changes in network conditions, changes in network | |||
traffic or changes to application usage. | traffic or changes to application usage. | |||
skipping to change at page 30, line 5 ¶ | skipping to change at page 31, line 29 ¶ | |||
An increased pace of evolution therefore needs to be accompanied by | An increased pace of evolution therefore needs to be accompanied by | |||
methods that can be successfully deployed and used across operational | methods that can be successfully deployed and used across operational | |||
networks. This leads to a need for network operators (at various | networks. This leads to a need for network operators (at various | |||
level (ISPs, enterprises, firewall maintainer, etc) to identify | level (ISPs, enterprises, firewall maintainer, etc) to identify | |||
appropriate operational support functions and procedures. | appropriate operational support functions and procedures. | |||
Protocols that change their transport header format (wire format) or | Protocols that change their transport header format (wire format) or | |||
their behaviour (e.g., algorithms that are needed to classify and | their behaviour (e.g., algorithms that are needed to classify and | |||
characterise the protocol), will require new tooling to be developed | characterise the protocol), will require new tooling to be developed | |||
to catch-up with the changes. If the currently deployed tools and | to catch-up with the changes. If the currently deployed tools and | |||
methods are no longer relevant then it may no longer be posisble to | methods are no longer relevant then it may no longer be possible to | |||
correctly measure performance. This can increase the response-time | correctly measure performance. This can increase the response-time | |||
after faults, and can impact the ability to manage the network | after faults, and can impact the ability to manage the network | |||
resulting in traffic causing traffic to be treated inappropriately | resulting in traffic causing traffic to be treated inappropriately | |||
(e.g., rate limiting because of being incorrectly classified/ | (e.g., rate limiting because of being incorrectly classified/ | |||
monitored). | monitored). | |||
There are benefits in exposing consistent information to the network | There are benefits in exposing consistent information to the network | |||
that avoids traffic being mis-classified and then receiving a default | that avoids traffic being mis-classified and then receiving a default | |||
treatment by the network. The flow label and DSCP fields provide | treatment by the network. The flow label and DSCP fields provide | |||
examples of how transport information can be made available for | examples of how transport information can be made available for | |||
network-layer decisions. Extension headers could also be used to | network-layer decisions. Extension headers could also be used to | |||
carry transport information that can inform network-layer decisions. | carry transport information that can inform network-layer decisions. | |||
As a part of its design a new protocol specification therefore needs | As a part of its design a new protocol specification therefore needs | |||
to weigh the benefits of ossifying common headers, versus the | to weigh the benefits of ossifying common headers, versus the | |||
potential demerits of exposing specific information that could be | potential demerits of exposing specific information that could be | |||
observed along the network path, to provide tools to manage new | observed along the network path, to provide tools to manage new | |||
variants of protocols. This can be done for the entire transport | variants of protocols. This can be done for the entire transport | |||
header, or by dividing header fields between those that are | header, or by dividing header fields between those that are | |||
observable and mutable; those that are observable, but imutable; and | observable and mutable; those that are observable, but immutable; and | |||
those that are hidden/obfusticated. | those that are hidden/obfusticated. | |||
Several scenarios to illustrate different ways this could evolve are | Several scenarios to illustrate different ways this could evolve are | |||
provided below: | provided below: | |||
o One scenario is when transport protocols provide consistent | o One scenario is when transport protocols provide consistent | |||
information to the network by intentionally exposing a part of the | information to the network by intentionally exposing a part of the | |||
transport header. The design fixes the format of this information | transport header. The design fixes the format of this information | |||
between versions of the protocol. This ossification of the | between versions of the protocol. This ossification of the | |||
transport header allows an operator to establish tooling and | transport header allows an operator to establish tooling and | |||
procedures that enable it to provide consistent traffic management | procedures that enable it to provide consistent traffic management | |||
as the protocol evolves. In contrast to TCP (where all protocol | as the protocol evolves. In contrast to TCP (where all protocol | |||
information is exposed), evolution of the transport is facilitated | information is exposed), evolution of the transport is facilitated | |||
by providing cryptographic integrity checks of the transport | by providing cryptographic integrity checks of the transport | |||
header fields (preventing undetected middlebox changes) and | header fields (preventing undetected middlebox changes) and | |||
encryption of other protocol information (preventing observation | encryption of other protocol information (preventing observation | |||
within the network, or incentivising the use of the exposed | within the network, or providing incentives for the use of the | |||
information, rather than inferring information from other | exposed information, rather than inferring information from other | |||
characteristics of the flow traffic). The exposed transport | characteristics of the flow traffic). The exposed transport | |||
information can be used by operators to provide troubleshooting, | information can be used by operators to provide troubleshooting, | |||
measurement and any necessary functions appropriate to the class | measurement and any necessary functions appropriate to the class | |||
of traffic (priority, retransmission, reordering, circuit | of traffic (priority, retransmission, reordering, circuit | |||
breakers, etc). | breakers, etc). | |||
o An alternative scenario adopts different design goals, with a | o An alternative scenario adopts different design goals, with a | |||
different outcome. A protocol that encrypts all header | different outcome. A protocol that encrypts all header | |||
information forces network operators to act independently from | information forces network operators to act independently from | |||
apps/transport developments to extract the information they need | apps/transport developments to extract the information they need | |||
skipping to change at page 31, line 51 ¶ | skipping to change at page 33, line 27 ¶ | |||
transport protocols. Issues relating to security are discussed in | transport protocols. Issues relating to security are discussed in | |||
the various sections of the document. | the various sections of the document. | |||
Authentication, confidentiality protection, and integrity protection | Authentication, confidentiality protection, and integrity protection | |||
are identified as Transport Features by [RFC8095]. As currently | are identified as Transport Features by [RFC8095]. As currently | |||
deployed in the Internet, these features are generally provided by a | deployed in the Internet, these features are generally provided by a | |||
protocol or layer on top of the transport protocol | protocol or layer on top of the transport protocol | |||
[I-D.ietf-taps-transport-security]. | [I-D.ietf-taps-transport-security]. | |||
Confidentiality and strong integrity checks have properties that can | Confidentiality and strong integrity checks have properties that can | |||
also be incorporated into the deisgn of a transport protocol. | also be incorporated into the design of a transport protocol. | |||
Integrity checks can protect an endpoint from undetected modification | Integrity checks can protect an endpoint from undetected modification | |||
of protocol fields by network devices, whereas encryption and | of protocol fields by network devices, whereas encryption and | |||
obfuscation or greasing can further prevent these headers being | obfuscation or greasing can further prevent these headers being | |||
utilised by network devices. Hiding headers can therefore provide | utilised by network devices. Hiding headers can therefore provide | |||
the opportunity for greater freedom to update the protocols and can | the opportunity for greater freedom to update the protocols and can | |||
ease experimentation with new techniques and their final deployment | ease experimentation with new techniques and their final deployment | |||
in endpoints. A protocol specification needs to weigh the benefits | in endpoints. A protocol specification needs to weigh the benefits | |||
of ossifying common headers, versus the potential demerits of | of ossifying common headers, versus the potential demerits of | |||
exposing specific information that could be observed along the | exposing specific information that could be observed along the | |||
network path to provide tools to manage new variants of protocols. | network path to provide tools to manage new variants of protocols. | |||
skipping to change at page 32, line 52 ¶ | skipping to change at page 34, line 27 ¶ | |||
introduce additional work at the receiving endpoint, even though the | introduce additional work at the receiving endpoint, even though the | |||
data in the attacking packet may not finally be delivered by the | data in the attacking packet may not finally be delivered by the | |||
transport layer. This is sometimes known as a "shadowing attack". | transport layer. This is sometimes known as a "shadowing attack". | |||
An attack can, for example, disrupt receiver processing, trigger loss | An attack can, for example, disrupt receiver processing, trigger loss | |||
and retransmission, or make a receiving endpoint perform unproductive | and retransmission, or make a receiving endpoint perform unproductive | |||
decryption of packets that cannot be successfully decrypted (forcing | decryption of packets that cannot be successfully decrypted (forcing | |||
a receiver to commit decryption resources, or to update and then | a receiver to commit decryption resources, or to update and then | |||
restore protocol state). | restore protocol state). | |||
One mitigation to off-path attack is to deny knowledge of what header | One mitigation to off-path attack is to deny knowledge of what header | |||
information is accepted by a receiver or obfusticate the accepted | information is accepted by a receiver or obfuscate the accepted | |||
header information, e.g., setting a non-predictable initial value for | header information, e.g., setting a non-predictable initial value for | |||
a sequence number during a protocol handshake, as in [RFC3550] and | a sequence number during a protocol handshake, as in [RFC3550] and | |||
[RFC6056], or a port value that can not be predicted (see section 5.1 | [RFC6056], or a port value that can not be predicted (see section 5.1 | |||
of [RFC8085]). A receiver could also require additional information | of [RFC8085]). A receiver could also require additional information | |||
to be used as a part of check before accepting packets at the | to be used as a part of check before accepting packets at the | |||
transport layer (e.g., utilising a part of the sequence number space | transport layer (e.g., utilising a part of the sequence number space | |||
that is encrypted; or by verifying an encrypted token not visible to | that is encrypted; or by verifying an encrypted token not visible to | |||
an attacker). This would also mitigate on-path attacks. An | an attacker). This would also mitigate on-path attacks. An | |||
additional processing cost can be incurred when decryption needs to | additional processing cost can be incurred when decryption needs to | |||
be attempted before a receiver is able to discard injected packets. | be attempted before a receiver is able to discard injected packets. | |||
skipping to change at page 33, line 34 ¶ | skipping to change at page 35, line 15 ¶ | |||
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, | |||
Tom Herbert, Jana Iyengar, Mirja Kuehlewind, Kyle Rose, Kathleen | Tom Herbert, Jana Iyengar, Mirja Kuehlewind, Kyle Rose, Kathleen | |||
Moriarty, Al Morton, Chris Seal, Joe Touch, Brian Trammell, and other | Moriarty, Al Morton, Chris Seal, Joe Touch, Brian Trammell, Chris | |||
members of the TSVWG for their comments and feedback. | Wood, and other 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. | |||
skipping to change at page 34, line 12 ¶ | skipping to change at page 35, line 41 ¶ | |||
the Internet. Communications of the ACM, 55(1):57-65", | the Internet. Communications of the ACM, 55(1):57-65", | |||
January 2012. | January 2012. | |||
[I-D.ietf-ippm-ioam-data] | [I-D.ietf-ippm-ioam-data] | |||
Brockners, F., Bhandari, S., Pignataro, C., Gredler, H., | Brockners, F., Bhandari, S., Pignataro, C., Gredler, H., | |||
Leddy, J., Youell, S., Mizrahi, T., Mozes, D., Lapukhov, | Leddy, J., Youell, S., Mizrahi, T., Mozes, D., Lapukhov, | |||
P., Chang, R., daniel.bernier@bell.ca, d., and J. Lemon, | P., Chang, R., daniel.bernier@bell.ca, d., and J. Lemon, | |||
"Data Fields for In-situ OAM", draft-ietf-ippm-ioam- | "Data Fields for In-situ OAM", draft-ietf-ippm-ioam- | |||
data-03 (work in progress), June 2018. | data-03 (work in progress), June 2018. | |||
[I-D.ietf-quic-spin-exp] | ||||
Trammell, B. and M. Kuehlewind, "The QUIC Latency Spin | ||||
Bit", draft-ietf-quic-spin-exp-01 (work in progress), | ||||
October 2018. | ||||
[I-D.ietf-quic-transport] | [I-D.ietf-quic-transport] | |||
Iyengar, J. and M. Thomson, "QUIC: A UDP-Based Multiplexed | Iyengar, J. and M. Thomson, "QUIC: A UDP-Based Multiplexed | |||
and Secure Transport", draft-ietf-quic-transport-14 (work | and Secure Transport", draft-ietf-quic-transport-14 (work | |||
in progress), August 2018. | in progress), August 2018. | |||
[I-D.ietf-rtcweb-overview] | [I-D.ietf-rtcweb-overview] | |||
Alvestrand, H., "Overview: Real Time Protocols for | Alvestrand, H., "Overview: Real Time Protocols for | |||
Browser-based Applications", draft-ietf-rtcweb-overview-19 | Browser-based Applications", draft-ietf-rtcweb-overview-19 | |||
(work in progress), November 2017. | (work in progress), November 2017. | |||
skipping to change at page 34, line 33 ¶ | skipping to change at page 36, line 21 ¶ | |||
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. | |||
[I-D.ietf-tsvwg-l4s-arch] | ||||
Briscoe, B., Schepper, K., and M. Bagnulo, "Low Latency, | ||||
Low Loss, Scalable Throughput (L4S) Internet Service: | ||||
Architecture", draft-ietf-tsvwg-l4s-arch-02 (work in | ||||
progress), March 2018. | ||||
[I-D.ietf-tsvwg-rtcweb-qos] | [I-D.ietf-tsvwg-rtcweb-qos] | |||
Jones, P., Dhesikan, S., Jennings, C., and D. Druta, "DSCP | Jones, P., Dhesikan, S., Jennings, C., and D. Druta, "DSCP | |||
Packet Markings for WebRTC QoS", draft-ietf-tsvwg-rtcweb- | Packet Markings for WebRTC QoS", draft-ietf-tsvwg-rtcweb- | |||
qos-18 (work in progress), August 2016. | qos-18 (work in progress), August 2016. | |||
[I-D.thomson-quic-grease] | [I-D.thomson-quic-grease] | |||
Thomson, M., "More Apparent Randomization for QUIC", | Thomson, M., "More Apparent Randomization for QUIC", | |||
draft-thomson-quic-grease-00 (work in progress), December | draft-thomson-quic-grease-00 (work in progress), December | |||
2017. | 2017. | |||
skipping to change at page 35, line 18 ¶ | skipping to change at page 36, line 49 ¶ | |||
progress), April 2018. | progress), April 2018. | |||
[Latency] Briscoe, B., "Reducing Internet Latency: A Survey of | [Latency] Briscoe, B., "Reducing Internet Latency: A Survey of | |||
Techniques and Their Merits, IEEE Comm. Surveys & | Techniques and Their Merits, IEEE Comm. Surveys & | |||
Tutorials. 26;18(3) p2149-2196", November 2014. | Tutorials. 26;18(3) p2149-2196", November 2014. | |||
[Measure] Fairhurst, G., Kuehlewind, M., and D. Lopez, "Measurement- | [Measure] Fairhurst, G., Kuehlewind, M., and D. Lopez, "Measurement- | |||
based Protocol Design, Eur. Conf. on Networks and | based Protocol Design, Eur. Conf. on Networks and | |||
Communications, Oulu, Finland.", June 2017. | Communications, Oulu, Finland.", June 2017. | |||
[Quic-Trace] | ||||
"https:QUIC trace utilities //github.com/google/quic- | ||||
trace". | ||||
[RFC1273] Schwartz, M., "Measurement Study of Changes in Service- | [RFC1273] Schwartz, M., "Measurement Study of Changes in Service- | |||
Level Reachability in the Global TCP/IP Internet: Goals, | Level Reachability in the Global TCP/IP Internet: Goals, | |||
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>. | |||
[RFC2475] Blake, S., Black, D., Carlson, M., Davies, E., Wang, Z., | ||||
and W. Weiss, "An Architecture for Differentiated | ||||
Services", RFC 2475, DOI 10.17487/RFC2475, December 1998, | ||||
<https://www.rfc-editor.org/info/rfc2475>. | ||||
[RFC2507] Degermark, M., Nordgren, B., and S. Pink, "IP Header | [RFC2507] Degermark, M., Nordgren, B., and S. Pink, "IP Header | |||
Compression", RFC 2507, DOI 10.17487/RFC2507, February | Compression", RFC 2507, DOI 10.17487/RFC2507, February | |||
1999, <https://www.rfc-editor.org/info/rfc2507>. | 1999, <https://www.rfc-editor.org/info/rfc2507>. | |||
[RFC2508] Casner, S. and V. Jacobson, "Compressing IP/UDP/RTP | [RFC2508] Casner, S. and V. Jacobson, "Compressing IP/UDP/RTP | |||
Headers for Low-Speed Serial Links", RFC 2508, | Headers for Low-Speed Serial Links", RFC 2508, | |||
DOI 10.17487/RFC2508, February 1999, | DOI 10.17487/RFC2508, February 1999, | |||
<https://www.rfc-editor.org/info/rfc2508>. | <https://www.rfc-editor.org/info/rfc2508>. | |||
[RFC2914] Floyd, S., "Congestion Control Principles", BCP 41, | [RFC2914] Floyd, S., "Congestion Control Principles", BCP 41, | |||
skipping to change at page 37, line 45 ¶ | skipping to change at page 39, line 41 ¶ | |||
[RFC6347] Rescorla, E. and N. Modadugu, "Datagram Transport Layer | [RFC6347] Rescorla, E. and N. Modadugu, "Datagram Transport Layer | |||
Security Version 1.2", RFC 6347, DOI 10.17487/RFC6347, | Security Version 1.2", RFC 6347, DOI 10.17487/RFC6347, | |||
January 2012, <https://www.rfc-editor.org/info/rfc6347>. | January 2012, <https://www.rfc-editor.org/info/rfc6347>. | |||
[RFC6437] Amante, S., Carpenter, B., Jiang, S., and J. Rajahalme, | [RFC6437] Amante, S., Carpenter, B., Jiang, S., and J. Rajahalme, | |||
"IPv6 Flow Label Specification", RFC 6437, | "IPv6 Flow Label Specification", RFC 6437, | |||
DOI 10.17487/RFC6437, November 2011, | DOI 10.17487/RFC6437, November 2011, | |||
<https://www.rfc-editor.org/info/rfc6437>. | <https://www.rfc-editor.org/info/rfc6437>. | |||
[RFC6438] Carpenter, B. and S. Amante, "Using the IPv6 Flow Label | ||||
for Equal Cost Multipath Routing and Link Aggregation in | ||||
Tunnels", RFC 6438, DOI 10.17487/RFC6438, November 2011, | ||||
<https://www.rfc-editor.org/info/rfc6438>. | ||||
[RFC7258] Farrell, S. and H. Tschofenig, "Pervasive Monitoring Is an | [RFC7258] Farrell, S. and H. Tschofenig, "Pervasive Monitoring Is an | |||
Attack", BCP 188, RFC 7258, DOI 10.17487/RFC7258, May | Attack", BCP 188, RFC 7258, DOI 10.17487/RFC7258, May | |||
2014, <https://www.rfc-editor.org/info/rfc7258>. | 2014, <https://www.rfc-editor.org/info/rfc7258>. | |||
[RFC7525] Sheffer, Y., Holz, R., and P. Saint-Andre, | [RFC7525] Sheffer, Y., Holz, R., and P. Saint-Andre, | |||
"Recommendations for Secure Use of Transport Layer | "Recommendations for Secure Use of Transport Layer | |||
Security (TLS) and Datagram Transport Layer Security | Security (TLS) and Datagram Transport Layer Security | |||
(DTLS)", BCP 195, RFC 7525, DOI 10.17487/RFC7525, May | (DTLS)", BCP 195, RFC 7525, DOI 10.17487/RFC7525, May | |||
2015, <https://www.rfc-editor.org/info/rfc7525>. | 2015, <https://www.rfc-editor.org/info/rfc7525>. | |||
skipping to change at page 40, line 49 ¶ | skipping to change at page 42, line 49 ¶ | |||
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 | -03 Added a section on header compression and rewriting of sections | |||
refering to RTP transport. This version contains author editorial | referring to RTP transport. This version contains author editorial | |||
work and removed duplicate section. | work and removed duplicate section. | |||
-04 Revised following SecDir Review | ||||
o Added some text on TLS story (additional input sought on relevant | ||||
considerations). | ||||
o Section 2, paragraph 8 - changed to be clearer, in particular, | ||||
added "Encryption with secure key distribution prevents" | ||||
o Flow label description rewritten based on PDS/BCP RFCs. | ||||
o Clarify requirements from RFCs concerning the IPv6 flow label and | ||||
highlight ways it can be used with encryption. (section 3.1.3) | ||||
o Add text on the explicit spin-bit work in the QUIC DT. Added | ||||
greasing of spin-bit. (Section 6.1) | ||||
o Updated section 6 and added more explanation of impact on | ||||
operators. | ||||
o Other comments addressed. | ||||
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 | |||
End of changes. 45 change blocks. | ||||
152 lines changed or deleted | 252 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/ |