Internet DRAFT - draft-engelbart-multiplex-roq-qdc

draft-engelbart-multiplex-roq-qdc







Network Working Group                                       M. Engelbart
Internet-Draft                                                    J. Ott
Intended status: Standards Track             Technical University Munich
Expires: 25 April 2024                                   23 October 2023


              Multiplexing RTP and Data Channels over QUIC
                  draft-engelbart-multiplex-roq-qdc-00

Abstract

   This document defines a multiplexing scheme for using RTP over QUIC
   and QUIC Data Channels in a single QUIC connection.

Discussion Venues

   This note is to be removed before publishing as an RFC.

   Source for this draft and an issue tracker can be found at
   https://github.com/mengelbart/draft-engelbart-multiplex-roq-qdc.

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).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   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."

   This Internet-Draft will expire on 25 April 2024.

Copyright Notice

   Copyright (c) 2023 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.  Code Components



Engelbart & Ott           Expires 25 April 2024                 [Page 1]

Internet-Draft          Multiplexing RoQ and QDC            October 2023


   extracted from this document must include Revised BSD License text as
   described in Section 4.e of the Trust Legal Provisions and are
   provided without warranty as described in the Revised BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Connection Establishment  . . . . . . . . . . . . . . . . . .   2
     2.1.  Draft version identification  . . . . . . . . . . . . . .   2
   3.  Multiplexing  . . . . . . . . . . . . . . . . . . . . . . . .   3
     3.1.  Multiplexing using External Signaling . . . . . . . . . .   3
     3.2.  Multiplexing without Signaling  . . . . . . . . . . . . .   4
   4.  Error Handling  . . . . . . . . . . . . . . . . . . . . . . .   4
   5.  Security Considerations . . . . . . . . . . . . . . . . . . .   4
   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   4
     6.1.  Registration of an ALPN Identification String . . . . . .   4
   7.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   4
     7.1.  Normative References  . . . . . . . . . . . . . . . . . .   4
     7.2.  Informative References  . . . . . . . . . . . . . . . . .   5
   Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . .   5
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .   5

1.  Introduction

   One of the requirements in the development of RTP over QUIC (RoQ)
   ([I-D.draft-ietf-avtcore-rtp-over-quic]) was the ability to share a
   QUIC connection for RTP, RTCP, and other protocols.  RoQ uses a flow
   identifier to multiplex different RTP streams, RTCP, and possibly
   other protocols.  However, RoQ does not describe which protocol can
   be multiplexed with RoQ on the same QUIC connection.
   [I-D.draft-engelbart-quic-data-channels] describes a simple protocol
   similar to WebRTC data channels ([RFC8831]) called QUIC Data Channels
   (QDC).  QDC uses QUIC instead of SCTP over DTLS and also uses an
   identifier similar to the one used by RoQ.  This document describes
   how the two protocols can be multiplexed in one QUIC connection.

2.  Connection Establishment

   QUIC requires the use of ALPN [RFC7301] during connection setup.
   Connections multiplexing RoQ and QDC use the "roq-qdc-mux" token
   during the TLS handshake.

2.1.  Draft version identification

      *RFC Editor's note:* Please remove this section prior to
      publication of a final version of this document.





Engelbart & Ott           Expires 25 April 2024                 [Page 2]

Internet-Draft          Multiplexing RoQ and QDC            October 2023


   Only implementations of the final, published RFC can identify
   themselves as "roq-qdc-mux".  Until such an RFC exists,
   implementations MUST NOT identify themselves using this string.

   Implementations of draft versions of the protocol MUST add the string
   "-" and the corresponding draft number to the identifier.  For
   example, draft-engelbart-multiplex-roq-qdc-04 is identified using the
   string "roq-qdc-mux-04".

   Non-compatible experiments based on these draft versions MUST append
   the string "-" and an experiment name to the identifier.

3.  Multiplexing

   The two protocols for which this document describes a multiplexing
   scheme use a variable length integer as the first element on every
   QUIC stream and datagram.  In RoQ, this integer is called a flow
   identifier, and it is used to multiplex different RTP streams and
   RTCP.  In QDC, the integer is called a channel identifier and is used
   to multiplex multiple data channels.

   This document describes two options for multiplexing RoQ and QDC.
   The first option builds upon the external signaling that is required
   by RoQ (Section 3.1).  The second one works without any external
   signaling but places some restrictions on the chosen flow and channel
   identifiers (Section 3.2).

      *TODO:* If we define two methods, we also need to say how to
      choose between them.  This could involve more external signaling,
      e.g., SDP, or we could use two different ALPNs.  It might be
      easier to just settle on one single way to do it.

3.1.  Multiplexing using External Signaling

   RoQ requires using an external signaling protocol like the one
   described in [I-D.draft-dawkins-avtcore-sdp-rtp-quic].  The signaling
   includes the negotiation of flow identifiers for RoQ.  In this
   scheme, applications MUST agree on all identifiers used by RoQ using
   the external signaling.  Any identifier not assigned to a RoQ flow
   using external signaling MUST be treated as a QDC channel ID.
   Endpoints MUST NOT use an identifier for RoQ if it has not been
   signaled and agreed upon by both peers using the external signaling
   protocol.








Engelbart & Ott           Expires 25 April 2024                 [Page 3]

Internet-Draft          Multiplexing RoQ and QDC            October 2023


3.2.  Multiplexing without Signaling

   When there is no external signaling for negotiation of identifiers
   available, endpoints can use the second least significant bit (0x02)
   of the flow or channel identifiers for multiplexing.  RoQ flows have
   the bit set to 1, and QDC channels have the bit set to 0.

   The second least significant bit is used instead of the least
   significant bit because the least significant bit already has a
   special function in QDC.

4.  Error Handling

      *TODO:* This looks tricky.  Some error codes will be easy to
      demultiplex when they are associated with a flow/channel ID.  But
      some might not be, e.g., in CONNECTION_CLOSE frames.

5.  Security Considerations

   The security considerations for the QUIC protocol and datagram
   extension described in Section 21 of [RFC9000], Section 9 of
   [RFC9001], Section 8 of [RFC9002] and Section 6 of [RFC9221] apply.

6.  IANA Considerations

6.1.  Registration of an ALPN Identification String

   This document creates a new registration for the identification of
   the protocol in the "TLS Application-Layer Protocol Negotiation
   (ALPN) Protocol IDs" registry [RFC7301].

   The "roq-qdc-mux" string identifies RoQ:

   Protocol:  Multiplexed RoQ and QDC

   Identification Sequence:  TODO

   Specification:  This document

7.  References

7.1.  Normative References

   [I-D.draft-engelbart-quic-data-channels]
              "*** BROKEN REFERENCE ***".






Engelbart & Ott           Expires 25 April 2024                 [Page 4]

Internet-Draft          Multiplexing RoQ and QDC            October 2023


   [I-D.draft-ietf-avtcore-rtp-over-quic]
              Ott, J., Engelbart, M., and S. Dawkins, "RTP over QUIC
              (RoQ)", Work in Progress, Internet-Draft, draft-ietf-
              avtcore-rtp-over-quic-07, 23 October 2023,
              <https://datatracker.ietf.org/doc/html/draft-ietf-avtcore-
              rtp-over-quic-07>.

   [RFC7301]  Friedl, S., Popov, A., Langley, A., and E. Stephan,
              "Transport Layer Security (TLS) Application-Layer Protocol
              Negotiation Extension", RFC 7301, DOI 10.17487/RFC7301,
              July 2014, <https://www.rfc-editor.org/rfc/rfc7301>.

   [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>.

   [RFC9001]  Thomson, M., Ed. and S. Turner, Ed., "Using TLS to Secure
              QUIC", RFC 9001, DOI 10.17487/RFC9001, May 2021,
              <https://www.rfc-editor.org/rfc/rfc9001>.

   [RFC9002]  Iyengar, J., Ed. and I. Swett, Ed., "QUIC Loss Detection
              and Congestion Control", RFC 9002, DOI 10.17487/RFC9002,
              May 2021, <https://www.rfc-editor.org/rfc/rfc9002>.

   [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/rfc/rfc9221>.

7.2.  Informative References

   [I-D.draft-dawkins-avtcore-sdp-rtp-quic]
              Dawkins, S., "SDP Offer/Answer for RTP using QUIC as
              Transport", Work in Progress, Internet-Draft, draft-
              dawkins-avtcore-sdp-rtp-quic-00, 28 January 2022,
              <https://datatracker.ietf.org/doc/html/draft-dawkins-
              avtcore-sdp-rtp-quic-00>.

   [RFC8831]  Jesup, R., Loreto, S., and M. Tüxen, "WebRTC Data
              Channels", RFC 8831, DOI 10.17487/RFC8831, January 2021,
              <https://www.rfc-editor.org/rfc/rfc8831>.

Acknowledgments

Authors' Addresses





Engelbart & Ott           Expires 25 April 2024                 [Page 5]

Internet-Draft          Multiplexing RoQ and QDC            October 2023


   Mathis Engelbart
   Technical University Munich
   Email: mathis.engelbart@gmail.com


   Jörg Ott
   Technical University Munich
   Email: ott@in.tum.de











































Engelbart & Ott           Expires 25 April 2024                 [Page 6]