Internet DRAFT - draft-chen-quic-quicu

draft-chen-quic-quicu



QUIC                                                            J. Chen
Internet Draft                                                  T. Liu
Intended status: Standards Track                                J. Jing
Expires: March 2023                                              Y. Yu
                                                         Bytedance Inc.
                                                     September 19, 2022



                      An Unreliable Extension to QUIC
                       draft-chen-quic-quicu-01.txt


Status of this Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html

   This Internet-Draft will expire on March 19, 2023.

Copyright Notice

   Copyright (c) 2022 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
   (http://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.

Abstract



J.Chen, et al.            Expires March 19, 2023                 [Page 1]

Internet-Draft     An Unreliable Extension to QUIC       September 2022


   QUIC Unreliable (QUICU) is an extension of the QUIC protocol for
   unreliable data transmission, mainly through the definition and use
   of three new types of frames, namely the Expire Offset Frame,
   Boundary Frame, and Correlation Frame. The main purpose of this
   extension is to reduce data delivery delay. Through controlling the
   timing and scope of packet losses, QUICU reduces useless transmission
   to improve transmission efficiency, reduces head-of-line blocking to
   improve transmission timeliness, which are beneficial to delay-
   sensitive applications, especially audio and video applications.

   This document describes the motivation, the operations, and the wire
   formats of the three new types of frames.

Table of Contents


   1. Introduction...................................................2
   2. Conventions used in this document..............................3
   3. Motivation.....................................................3
   4. Operations.....................................................5
      4.1. Transport Negotiation.....................................5
      4.2. Data Sending..............................................5
      4.3. Data Expiration...........................................6
      4.4. Data Receiving............................................6
   5. The Wire Format................................................6
      5.1. Expire Offset Frame.......................................6
      5.2. Boundary Frame............................................7
      5.3. Correlation Frame.........................................7
   6. Security Considerations........................................8
   7. IANA Considerations............................................8
   8. References.....................................................9
      8.1. Normative References......................................9
   Authors' Addresses................................................9

1. Introduction

   QUIC Unreliable (QUICU) is an extension of the QUIC protocol for
   unreliable data transmission, mainly through the definition and use
   of three new types of frames, namely the Expire Offset Frame,
   Boundary Frame, and Correlation Frame. The main purpose of this
   extension is to reduce data delivery delay. Through controlling the
   timing and scope of packet losses, QUICU reduces useless transmission
   to improve transmission efficiency, reduces head-of-line blocking to
   improve transmission timeliness, which are beneficial to delay-
   sensitive applications, especially audio and video applications.

   This document describes the motivation, the operations, and the wire
   formats of the three new types of frames.



J.Chen, et al.            Expires March 19, 2023                 [Page 2]

Internet-Draft     An Unreliable Extension to QUIC       September 2022




2. Conventions used in this document

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC 2119 [RFC2119].

   In this document, these words will appear with that interpretation
   only when in ALL CAPS. Lower case uses of these words are not to be
   interpreted as carrying significance described in RFC 2119.



3. Motivation

   The QUIC protocol has a variety of features, such as 0RTT connection
   establishment, congestion control, link migration, secure and
   reliable transmission, and so on. Most UDP applications can be
   migrated to QUIC. RFC 9221 extends QUIC by adding support for sending
   and receiving unreliable datagrams over a QUIC connection.

   In real-time transmission scenarios with high bit rates, such as
   audio and video transmission, including virtual reality type of
   applications, packet losses are sometimes unavoidable. On one hand,
   after detecting packet losses, QUIC's reliable transmission algorithm
   will continue to retransmit the lost data until the data is
   successfully received. Although this ensures the reliability of the
   data, it will increase the data delivery delay. On the other hand,
   there will also be issues when not applying any retransmission after
   packet losses, e.g., by using the new datagram QUIC frame types
   specified in RFC 9221. Although no retransmission is good for delay,
   the quality of data delivered to the application layer can become
   uncontrollable. For example, the audio can then have frequent and
   sharp bursts, and the video picture may be frequently blurred or even
   cannot be played. Therefore, it would be desirable to have a
   mechanism that allows to control the amount and time range of data
   that is retransmitted, thus allowing optimal tradeoff between delay
   and media quality.

   This document proposes such a mechanism. The proposed mechanism
   involves the definition of three new types of frames, namely the
   Expire Offset Frame, Boundary Frame, and Correlation Frame. Each of
   these frames carries a type field indicating the frame type and the
   stream ID of the target stream for which certain information is
   provided by these frames. In addition, each of these frames carries a
   special field, summarized as follows:




J.Chen, et al.            Expires March 19, 2023                 [Page 3]

Internet-Draft     An Unreliable Extension to QUIC       September 2022


   1) The Expire Offset Frame (See Section 5.1.1) carries an offset of
      the target stream, for notifying the receiving end that data
      before the offset in the target stream will not be retransmitted.
      Upon reception of this notification, the receiving end shall not
      wait for the arrival of any data preceding the offset in the
      target stream.

   2) The Boundary Frame (see Section 5.1.2) also carries an offset of
      the target stream, for indicating the end of an independent block
      of data in the target stream. All data pieces of an independent
      block of data should be coupled in transmission, in the sense that
      a data piece is meaningfully useful only when all of the preceding
      data pieces of the same independent block have been successfully
      received. This information can be used to save transmission,
      retransmission, or request for retransmission of certain data
      pieces when it is known that some preceding data pieces of the
      same independent block have been lost and will not be
      retransmitted. It can also be used to allocate the same priority
      for all data pieces of an independent block of data. For example,
      if a coded picture or a part thereof is lost and will not be
      retransmitted, then all subsequent pictures in the same
      independent group of pictures would typically be useless even
      received as they typically depend on  the lost (or partially lost)
      preceding picture for inter prediction reference, therefore in
      this case transmission, retransmission, or request for
      retransmission of the data of these pictures can be skipped.

   3) The Correlation Frame (see Section 5.1.3) carries the correlation
      stream ID, which is the stream ID of the stream that contains the
      request based on which the current stream was created, for
      associating multiple streams created based on the same request.
      For backward compatibility reasons, streaming systems may store
      multiplexed media contents, e.g., in the FLV (Flash Video) format,
      in the origin and edge servers, while transmitting the media
      components in separate streams using QUIC to take advantage of
      different priorities and other properties of the different media
      components. In such streaming systems, based on one request
      (either a download request or an upload request), multiple streams
      can be created. However, without additional information, the
      entity that receives these multiple streams won't be able to
      determine which of the received streams were originated from the
      same request and thus should be presented together. The
      Correlation Frames in these received streams provide such
      additional information; those received streams having the same
      correlation stream ID value were originated from the same request
      and should be presented together.





J.Chen, et al.            Expires March 19, 2023                 [Page 4]

Internet-Draft     An Unreliable Extension to QUIC       September 2022


4. Operations

4.1. Transport Negotiation

   Text When establishing a connection, it is necessary to confirm
   whether the receiver supports QUICU, using a QUIC transport parameter
   (name=support_quic_unreliable, value=0x21). The
   support_quic_unreliable transport parameter is an integer value
   (represented as a variable-length integer), for which the value 0
   indicates that QUICU is not supported and the value 1 indicates that
   QUICU is supported. The default value for this parameter is 0.

   When the connection is established, a bidirectional stream can be
   created like normal QUIC. Before receiving the Boundary Frame, the
   receiver can respond to the data like a normal QUIC stream, while
   after receiving the Boundary Frame, it starts to enter the QUICU mode.

   When the peer's support_quic_unreliable transport parameter is not
   received during the handshake negotiation, the Boundary Frame,
   Correlation Frame and Expire Offset Frame cannot be sent to the peer.
   If one side receives a QUICU-specific frame from the peer while it
   itself does not carry the support_quic_unreliable transport parameter,
   it should disconnect the connection and return the error code "QUICU
   mode not supported".

   Once the QUICU mode is established for a stream, the QUICU mode is
   used for the entire lifetime of the stream.

   The QUICU mode can be unidirectional. Receiving a Boundary Frame
   indicates that the incoming flow for an entity is in the QUICU mode.
   However, at the same time, the outgoing flow of this entity can still
   be in the normal QUIC mode.



4.2. Data Sending

   When different components of the data do not need to be treated
   differently in transmission, e.g., with different priorities, they
   can be transmitted in the same stream, and this transmission mode is
   referred to as the single-stream mode. In this case, the data is
   encapsulated in Stream Frames as usual.

   When different components of the data do need to be treated
   differently in transmission, e.g., with different priorities, they
   should be transmitted in different streams, and this transmission
   mode is referred to as the multi-stream mode. In this case,
   Correlation Frames need to be sent to associate streams created based
   on the same request.


J.Chen, et al.            Expires March 19, 2023                 [Page 5]

Internet-Draft     An Unreliable Extension to QUIC       September 2022


   In both the single-stream and multi-stream modes, and Boundary Frames
   can be used to indicate the boundaries between independent blocks of
   data in a stream.

4.3. Data Expiration

   A piece of sent data of a stream can be considered lost if its
   reception is not confirmed for a certain period of time; this period
   of time is referred to as the timeout period. After the timeout
   period expires, an Expire Offset Frame can be sent to notify the
   other side that certain data of the stream has been lost and will not
   be retransmitted. The Expire Offset Frame needs to be sent out as
   soon as possible after the timeout period expires. Note that this
   operation is RFC 9221 compliant in the sense that the data
   transmission is not guaranteed to be reliable.

   The timeout period can be a fixed value; or configured by users
   through the application.

4.4. Data Receiving

   In a stream, if a Boundary Frame is not received, the data of the
   stream will be delivered to the application same as in the normal
   QUIC mode; otherwise, the QUICU mode will be in use.

   In the QUICU mode, the data in independent block is only delivered to
   the application when the entire independent block of data has been
   received and placed in the right order, after the delivery of the
   previous independent block of data of the same stream. However, when
   some data of an independent block expires as indicated by an Expire
   Offset Frame, the content of this independent block is discarded, and
   the next independent block of data can be delivered to the
   application when the entire independent block has been received and
   placed in the right order.

5. The Wire Format

   Based on the basic standard of QUIC, RFC 9000, three new types of
   frames are specified, namely, the Boundary Frame, Correlation Frame,
   and Expire Offset Frame.

5.1. Expire Offset Frame

   +--------+--------+-- ... --+-------+--------+-- ... --+------------+

   |Type(8) |  Stream   ID   (32 bits) |    Expire offset (64 bits)    |

   +--------+--------+-- ... --+-------+--------+-- ... --+------------+



J.Chen, et al.            Expires March 19, 2023                 [Page 6]

Internet-Draft     An Unreliable Extension to QUIC       September 2022


   Stream ID: Indicates the stream ID of the target stream for which
   information on which pieces of data will not to be retransmitted is
   indicated by the Expire Offset field.

   Expire Offset: Indicating the offset, in units of bytes, of such a
   position of the target stream, that no data before that position in
   the target stream will be retransmitted.

5.2. Boundary Frame

   +--------+--------+-- ... --+-------+--------+-- ... --+----------+

   |Type(8) |  Stream   ID   (32 bits) |  Boundary Offset (64 bits)  |

   +--------+--------+-- ... --+-------+--------+-- ... --+----------+

   Stream ID: Indicates the stream ID of the target stream for which the
   end position of an independent block of data is indicated by the
   Boundary Offset field.

   Boundary Offset: Indicates the end position of an independent block
   of data in the target stream. Let the value of the Boundary Offset
   field of the i-th Boundary Frame be bo[i] with bo[0] being the value
   of the very first Boundary Frame. The first independent block of data
   in the target stream consists of bytes 0 to bo[0], inclusive. For any
   value of i greater than 0, the i-th independent block of data in the
   target stream consists of bytes bo[i-1] + 1 to bo[i], inclusive. The
   Boundary Frame of the last independent block of data in the target
   stream can be but does not have to be sent, as it is known that the
   end position is the end of the target stream itself.



5.3. Correlation Frame

   +--------+--------+-- ... --+-------+--------+-- ... --+------------+

   |Type(8) | Stream   ID   (32 bits)  |Correlation Stream ID (32 bits)|

   +--------+--------+-- ... --+-------+--------+-- ... --+------------+

   Stream ID: Indicates the stream ID of the target stream that is one
   of the streams created based on a request contained in a stream
   identified by the Correlation Stream ID field.

   Correlation Stream ID: Indicates the stream ID of the stream
   containing the request based on which the target stream was created.




J.Chen, et al.            Expires March 19, 2023                 [Page 7]

Internet-Draft     An Unreliable Extension to QUIC       September 2022


6. Security Considerations

   The three new types of frames share the same security properties as
   the rest of the data transmitted within a QUIC connection, and the
   security considerations of [RFC9000] apply accordingly.  All new
   frame types, like the Expire Offset Frame, the Boundary Frame and the
   Boundary Frame, MUST be protected either by 0-RTT or 1-RTT keys.

7. IANA Considerations

   This document registers a new value in the QUIC Transport Parameter
   Registry:

   Value:0x0021 (if this document is approved)

   Parameter Name: support_quic_unreliable

   Specification: Section 4.1 of this document.



   This document also registers three new values in the QUIC Frame Type
   Registry:



   Value:0x32 (if this document is approved)

   Frame Name: Expire Offset

   Specification: Section 5.1.1 of this document



   Value:0x33 (if this document is approved)

   Frame Name: Boundary

   Specification: Section 5.1.2 of this document



   Value:0x34 (if this document is approved)

   Frame Name: Correlation

   Specification: Section 5.1.3 of this document




J.Chen, et al.            Expires March 19, 2023                 [Page 8]

Internet-Draft     An Unreliable Extension to QUIC       September 2022


8. References

8.1.  Normative References

   [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
             Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119
             Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May
             2017, <https://www.rfc-editor.org/rfc/rfc8174>.

   [RFC9000] Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based
             Multiplexed and Secure Transport", RFC 9000, DOI
             10.17487/RFC9000, May 2021, <https://www.rfc-
             editor.org/rfc/rfc9000>.

   [RFC9221] Pauly, T., Kinnear, E., and D. Schinazi, "An Unreliable
             Datagram Extension to QUIC", RFC 9221, DOI 10.17487/RFC9221,
             March 2022, <https://www.rfc-editor.org/info/rfc9221>.

Authors' Addresses

   Jianping Chen
   Bytedance Inc.
   No. 27, North Third Ring West Road, Haidian District,
   Beijing
   China
   Email: chenjianping.ireader@bytedance.com


   Tianyi Liu
   Bytedance Inc.
   No. 27, North Third Ring West Road, Haidian District,
   Beijing
   China
   Email: liutianyi.lty@bytedance.com














J.Chen, et al.            Expires March 19, 2023                 [Page 9]

Internet-Draft     An Unreliable Extension to QUIC       September 2022


   Junxian Jing
   Bytedance Inc.
   No. 27, North Third Ring West Road, Haidian District,
   Beijing
   China
   Email: jingjunxian@bytedance.com


   Yongyi Yu
   Bytedance Inc.
   No. 27, North Third Ring West Road, Haidian District,
   Beijing
   China
   Email: yuyongyi.yyy@bytedance.com




































J.Chen, et al.            Expires March 19, 2023                [Page 10]