diff options
Diffstat (limited to 'doc/rfc/rfc8774.txt')
-rw-r--r-- | doc/rfc/rfc8774.txt | 269 |
1 files changed, 269 insertions, 0 deletions
diff --git a/doc/rfc/rfc8774.txt b/doc/rfc/rfc8774.txt new file mode 100644 index 0000000..ffb7251 --- /dev/null +++ b/doc/rfc/rfc8774.txt @@ -0,0 +1,269 @@ + + + + +Independent Submission M. Welzl +Request for Comments: 8774 University of Oslo +Category: Informational 1 April 2020 +ISSN: 2070-1721 + + + The Quantum Bug + +Abstract + + The age of quantum networking is upon us, and with it comes + "entanglement": a procedure in which a state (i.e., a bit) can be + transferred instantly, with no measurable delay between peers. This + will lead to a perceived round-trip time of zero seconds on some + Internet paths, a capability which was not predicted and so not + included as a possibility in many protocol specifications. Worse + than the millennium bug, this unexpected value is bound to cause + serious Internet failures unless the specifications are fixed in + time. + +Status of This Memo + + This document is not an Internet Standards Track specification; it is + published for informational purposes. + + This is a contribution to the RFC Series, independently of any other + RFC stream. The RFC Editor has chosen to publish this document at + its discretion and makes no statement about its value for + implementation or deployment. Documents approved for publication by + the RFC Editor are not candidates for any level of Internet Standard; + see Section 2 of RFC 7841. + + Information about the current status of this document, any errata, + and how to provide feedback on it may be obtained at + https://www.rfc-editor.org/info/rfc8774. + +Copyright Notice + + Copyright (c) 2020 IETF Trust and the persons identified as the + document authors. All rights reserved. + + This document is subject to BCP 78 and the IETF Trust's Legal + Provisions Relating to IETF Documents + (https://trustee.ietf.org/license-info) in effect on the date of + publication of this document. Please review these documents + carefully, as they describe your rights and restrictions with respect + to this document. + +Table of Contents + + 1. Introduction + 2. Protocols and Protocol Mechanisms That Will Fail + 2.1. LEDBAT + 2.2. Multipath TCP (MPTCP) + 2.3. RTP Circuit Breakers + 3. What can be done? + 4. Conclusion + 5. IANA Considerations + 6. Security Considerations + 7. References + 7.1. Normative References + 7.2. Informative References + Author's Address + +1. Introduction + + [RFC6921] discusses faster-than-light communication, where packets + arrive before they are sent. While it is amusing to entertain the + possibility of time travel, we have to accept the cold facts: time + travel will never work (or it would already have been used). Quantum + networking, however, is an entirely different matter -- commercial + products are already available, and quantum networks will without a + doubt become the prevalent Internet link-layer technology across the + globe within the next five to ten years. + + With the help of entanglement, implemented in quantum repeaters, + quantum networks can transfer information faster than ever before: a + state can be transmitted over a long distance instantly, with no + delay. This is so cool that it is also called (and, by some, + mistaken for) teleportation. If a path between a sender and a + receiver is fully quantum-ized, the measured one-way delay (OWD) will + be zero. What's more, assuming that there are blazing fast quantum + computers involved on both ends, the processing time will be well + below anything measurable; hence, even the round-trip time (RTT) will + be zero in these scenarios. + + In today's Internet, only very few protocols are prepared for such + "0-RTT" situations (e.g., TCP with "TCP Fast Open" (TFO) [RFC7413], + TLS 1.3 [RFC8446], and QUIC [QUIC-TRANS]). Many others will fail in + interesting ways; we coin the term "Quantum Bug" for such failures. + In the following section, we will discuss some examples of Quantum + Bugs. + +2. Protocols and Protocol Mechanisms That Will Fail + + The number of protocols and protocol mechanisms that will fail in the + face of a zero RTT is too large to report here; we are truly heading + towards something close to an Internet meltdown. We can only provide + some guidance to those who hunt for the Quantum Bug, by discussing + examples of specification mistakes that will need to be fixed. + +2.1. LEDBAT + + The Low Extra Delay Background Transfer (LEDBAT) congestion control + mechanism [RFC6817] is a very interesting failure case: designed to + "get out of the way" of other traffic; it will end up sending as fast + as possible. Specifically, when the algorithm described in + Section 2.4.2 of [RFC6817] obtains a delay sample, it updates a list + of base delays that will all become 0 and current delays that will + also all become 0. It calculates a queuing delay as the difference + between the current delay and the base delay (resulting in 0) and + keeps increasing the Congestion Window (cwnd) until the queuing delay + reaches a predefined parameter value TARGET (100 milliseconds or + less). + + A TARGET value of 100 milliseconds will never be reached, because the + queuing delay does not grow when the sender increases its cwnd; this + means that LEDBAT would endlessly increase its cwnd, limited only by + the number of bits that are used to represent cwnd. However, given + that TARGET=0 is also allowed, this parameter choice may seem to be a + way out. Always staying at the target means that the sender would + maintain its initial cwnd, which should be set to 2. This may seem + like a small number, but remember that cwnd is the number of bytes + that can be transmitted per RTT (which is 0). Thus, irrespective of + the TARGET value, the sender will send data as fast as it can. + +2.2. Multipath TCP (MPTCP) + + The coupled congestion control mechanism proposed for MPTCP in + [RFC6356] requires calculating a value called "alpha". Equation 2 in + [RFC6356] contains a term where a value called "cwnd_i" is divided by + the square of the RTT, and another term where this value is divided + by the RTT. Enough said. + +2.3. RTP Circuit Breakers + + The RTP Circuit Breakers [RFC8083] require calculation of a well- + known equation which yields the throughput of a TCP connection: + + s + X = ------------------------------------------------------------- + Tr*sqrt(2*b*p/3)+(t_RTO * (3*sqrt(3*b*p/8) * p * (1+32*p*p))) + + where Tr is the RTT and t_RTO is the retransmission timeout of TCP + (we don't need to care about the other variables). As we will + discuss in Section 3, t_RTO is lower-bounded with 1 second; + therefore, it saves us from a division by zero. However, there is + also a simplified version of this equation: + + s + X = ---------------- + Tr*sqrt(2*b*p/3) + + Unfortunately, [RFC8083] states: "It is RECOMMENDED that this + simplified throughput equation be used since the reduction in + accuracy is small, and it is much simpler to calculate than the full + equation." Due to this simplification, many multimedia applications + will crash. + +3. What can be done? + + Fear not: when everything else fails, TCP will still work. Its + retransmission timeout is lower-bounded by 1 second [RFC6298]. + Moreover, while its cwnd may grow up to the maximum storable number, + data transmission is limited by the Receiver Window (rwnd). This + means that flow control will save TCP from failing. + + From this, we can learn two simple rules: lower-bound any values + calculated from the RTT (and, obviously, do not divide by the RTT), + and use flow control. Specifications will need to be updated by + fixing all RTT-based calculations and introducing flow control + everywhere. For example, UDP will have to be extended with a + receiver window, e.g., as a UDP option [UDP-OPT]. + +4. Conclusion + + We are in trouble, and there is only one way out: develop a + comprehensive list of all RFCs containing "0-RTT" mistakes (taking + [RFC2626] as a guideline), and update all code. This needs to happen + fast, the clock is ticking. Luckily, if we are too slow, we will + still be able to use TCP to access the specifications. With DNS over + TCP [RFC7766], name resolution to find the server containing the + specifications should also work. + +5. IANA Considerations + + This document has no IANA actions. + +6. Security Considerations + + Flow control must be used on 0-RTT paths, or else an attacker can + completely overwhelm a sender with data in a denial-of-service (DoS) + attack within an instant. Flow control will need to be added to + protocols that do not currently have it, such as UDP or ICMP. IPv6 + will not save us. + +7. References + +7.1. Normative References + + [RFC2626] Nesser II, P., "The Internet and the Millennium Problem + (Year 2000)", RFC 2626, DOI 10.17487/RFC2626, June 1999, + <https://www.rfc-editor.org/info/rfc2626>. + + [RFC6921] Hinden, R., "Design Considerations for Faster-Than-Light + (FTL) Communication", RFC 6921, DOI 10.17487/RFC6921, + April 2013, <https://www.rfc-editor.org/info/rfc6921>. + +7.2. Informative References + + [QUIC-TRANS] + Iyengar, J. and M. Thomson, "QUIC: A UDP-Based Multiplexed + and Secure Transport", Work in Progress, Internet-Draft, + draft-ietf-quic-transport-27, 21 February 2020, + <https://tools.ietf.org/html/draft-ietf-quic-transport- + 27>. + + [RFC6298] Paxson, V., Allman, M., Chu, J., and M. Sargent, + "Computing TCP's Retransmission Timer", RFC 6298, + DOI 10.17487/RFC6298, June 2011, + <https://www.rfc-editor.org/info/rfc6298>. + + [RFC6356] Raiciu, C., Handley, M., and D. Wischik, "Coupled + Congestion Control for Multipath Transport Protocols", + RFC 6356, DOI 10.17487/RFC6356, October 2011, + <https://www.rfc-editor.org/info/rfc6356>. + + [RFC6817] Shalunov, S., Hazel, G., Iyengar, J., and M. Kuehlewind, + "Low Extra Delay Background Transport (LEDBAT)", RFC 6817, + DOI 10.17487/RFC6817, December 2012, + <https://www.rfc-editor.org/info/rfc6817>. + + [RFC7413] Cheng, Y., Chu, J., Radhakrishnan, S., and A. Jain, "TCP + Fast Open", RFC 7413, DOI 10.17487/RFC7413, December 2014, + <https://www.rfc-editor.org/info/rfc7413>. + + [RFC7766] Dickinson, J., Dickinson, S., Bellis, R., Mankin, A., and + D. Wessels, "DNS Transport over TCP - Implementation + Requirements", RFC 7766, DOI 10.17487/RFC7766, March 2016, + <https://www.rfc-editor.org/info/rfc7766>. + + [RFC8083] Perkins, C. and V. Singh, "Multimedia Congestion Control: + Circuit Breakers for Unicast RTP Sessions", RFC 8083, + DOI 10.17487/RFC8083, March 2017, + <https://www.rfc-editor.org/info/rfc8083>. + + [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol + Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, + <https://www.rfc-editor.org/info/rfc8446>. + + [UDP-OPT] Touch, J., "Transport Options for UDP", Work in Progress, + Internet-Draft, draft-ietf-tsvwg-udp-options-08, 12 + September 2019, <https://tools.ietf.org/html/draft-ietf- + tsvwg-udp-options-08>. + +Author's Address + + Michael Welzl + University of Oslo + PO Box 1080 Blindern + N-0316 Oslo + Norway + + Phone: +47 22 85 24 20 + Email: michawe@ifi.uio.no |