SDP Offer/Answer for RTP using QUIC as Transport
draft-dawkins-sdp-rtp-quic-00

Document Type Active Internet-Draft (individual)
Author Spencer Dawkins 
Last updated 2021-09-08
Stream (None)
Intended RFC status (None)
Formats pdf htmlized bibtex
Stream Stream state (No stream defined)
Consensus Boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date
Responsible AD (None)
Send notices to (None)
AVTCORE/MMUSIC Working Groups                                 S. Dawkins
Internet-Draft                                       Tencent America LLC
Intended status: Standards Track                        8 September 2021
Expires: 12 March 2022

            SDP Offer/Answer for RTP using QUIC as Transport
                     draft-dawkins-sdp-rtp-quic-00

Abstract

   This document describes these new SDP "proto" attribute values:
   "QUIC", "QUIC/RTP/SAVP", "QUIC/RTP/AVPF", and "QUIC/RTP/SAVPF", and
   describes how SDP Offer/Answer can be used to set up an RTP
   connection using QUIC as a transport protocol.

   These proto values are necessary to allow the use of QUIC as an
   underlying transport protocol for applications that commonly use SDP
   as a session signaling protocol to set up RTP connections with UDP as
   its underlying transport protocol, such as SIP and WebRTC.

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 12 March 2022.

Copyright Notice

   Copyright (c) 2021 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

Dawkins                   Expires 12 March 2022                 [Page 1]
Internet-Draft          SDP O/A for RTP over QUIC         September 2021

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

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
     1.1.  Notes for Readers . . . . . . . . . . . . . . . . . . . .   3
     1.2.  Terminology . . . . . . . . . . . . . . . . . . . . . . .   3
     1.3.  Contribution and Discussion Venues for this draft.  . . .   3
     1.4.  Scope of this document  . . . . . . . . . . . . . . . . .   3
     1.5.  Assumptions for this document . . . . . . . . . . . . . .   3
   2.  Open Questions (probably not for this draft, but could have
           implications on SDP Offer/Answer) . . . . . . . . . . . .   4
   3.  Identifiers and Attributes  . . . . . . . . . . . . . . . . .   4
     3.1.  Protocol Identifiers  . . . . . . . . . . . . . . . . . .   4
       3.1.1.  The QUIC proto  . . . . . . . . . . . . . . . . . . .   4
       3.1.2.  The QUIC/RTP/SAVP proto . . . . . . . . . . . . . . .   5
       3.1.3.  The QUIC/RTP/AVPF proto . . . . . . . . . . . . . . .   5
       3.1.4.  The QUIC/RTP/SAVPF proto  . . . . . . . . . . . . . .   6
     3.2.  A QUIC/RTP/AVPF Offer . . . . . . . . . . . . . . . . . .   6
   4.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   8
     4.1.  Proto Registrations . . . . . . . . . . . . . . . . . . .   8
   5.  Security Considerations . . . . . . . . . . . . . . . . . . .   9
   6.  Acknowledgments . . . . . . . . . . . . . . . . . . . . . . .   9
   7.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   9
     7.1.  Normative References  . . . . . . . . . . . . . . . . . .   9
     7.2.  Informative References  . . . . . . . . . . . . . . . . .  11
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .  11

1.  Introduction

   This document describes these new SDP "proto" attribute values:
   "QUIC", "QUIC/RTP/SAVP", "QUIC/RTP/AVPF", and "QUIC/RTP/SAVPF", and
   describes how SDP Offer/Answer ([RFC3264]) can be used to set up an
   RTP ([RFC3550]) connection using QUIC ([RFC9000]) as a transport
   protocol.

   These proto values are necessary to allow the use of QUIC as an
   underlying transport protocol for applications that commonly use SDP
   as a session signaling protocol to set up RTP connections with UDP as
   its underlying transport protocol, such as SIP ([RFC3261]) and WebRTC
   ([RFC8825]).

Dawkins                   Expires 12 March 2022                 [Page 2]
Internet-Draft          SDP O/A for RTP over QUIC         September 2021

1.1.  Notes for Readers

   This document is intended for publiication as a standards-track RFC
   in the IETF stream, but has not been adopted by any IETF working
   group, and does not carry any special status within the IETF.

1.2.  Terminology

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in BCP
   14 ([RFC2119]) ([RFC8174]) when, and only when, they appear in all
   capitals, as shown here.

1.3.  Contribution and Discussion Venues for this draft.

   (Note to RFC Editor - if this document ever reaches you, please
   remove this section)

   This document is under development in the Github repository at
   https://github.com/SpencerDawkins/sdp-rtp-quic.

   Readers are invited to open issues and send pull requests with
   contributed text for this document, or to send them to the author via
   email.

1.4.  Scope of this document

   This document focuses on the IANA registration and description of the
   RTP sessions using SDP Offer/Answer, as would be the case for many
   current RTP applications in common use, such as SIP ([RFC3261]) and
   WebRTC ([RFC8825]).

   This document is intended as complementary to
   [I-D.engelbart-rtp-over-quic], which largely focuses on RTP/RTCP
   encapsulation in QUIC datagrams, so that the SDP experts can focus on
   SDP offer/answer aspects, and the RTP experts can focus on RTP/RTCP
   encapsulation aspects.

1.5.  Assumptions for this document

   This document assumes that for RTP-over-QUIC, it is useful to
   register these AVP profiles using QUIC, in order to allow existing
   SIP and RTCWEB RTP applications to migrate more easily to QUIC:

   *  RTP/SAVP ("The Secure Real-time Transport Protocol (SRTP)"), as
      defined in [RFC3711].

Dawkins                   Expires 12 March 2022                 [Page 3]
Internet-Draft          SDP O/A for RTP over QUIC         September 2021

   *  RTP/AVPF ("Extended RTP Profile for Real-time Transport Control
      Protocol (RTCP)-Based Feedback (RTP/AVPF)"), as defined in
      [RFC4585].

   *  RTP/SAVPF ("Extended Secure RTP Profile for Real-time Transport
      Control Protocol (RTCP)-Based Feedback (RTP/SAVPF)"), as defined
      in [RFC5124].

   This document assumes that any implementation adding support for RTP-
   over-QUIC could reasonably add support for BUNDLE ([RFC8843]), "rtcp-
   mux" ([RFC5761]).

2.  Open Questions (probably not for this draft, but could have
    implications on SDP Offer/Answer)

   *  RTP (and RTCP) headers and payloads will be entirely encrypted
      using QUIC ([RFC9000]), as secured by TLS 1.3 handshake
      ([RFC9001]), between QUIC endpoints.  It's worth thinking more
      about how that maps onto expected deployment scenarios like
      centralized multiparty conferencing, and also whether WebRTC
      really requires SAVPF with double encryption (i.e.  SRTP
      encryption, and then QUIC encryption).  No opinions here yet, just
      noting the question for now.

   *  When QUIC establishes connections, it uses IP addresses but then
      expects applications to use connection IDs to refer to
      connections, even if the underlying IP addresses change because of
      NAT binding, and even if the QUIC implementation performs QUIC
      connection migration itself, so the underlying IP addresses
      change.  RTP applications expect to use IP addresses, not QUIC
      connection IDs.  Must we specify an RTP/RTCP adaptation layer,
      similar to [I-D.ietf-quic-http] for HTTP/3?

3.  Identifiers and Attributes

   As much as possible, these are reused from other specifications, with
   references to the original definitions.

3.1.  Protocol Identifiers

3.1.1.  The QUIC proto

   The 'QUIC' protocol identifier is similar to the 'UDP' and 'TCP'
   protocol identifiers in that it only describes the transport
   protocol, and not the upper-layer protocol.

Dawkins                   Expires 12 March 2022                 [Page 4]
Internet-Draft          SDP O/A for RTP over QUIC         September 2021

   An 'm' line that specifies 'QUIC' MUST further qualify the
   application-layer protocol using an fmt identifier, such as
   "QUIC/RTP/AVPF".  Media described using an 'm' line containing the
   'QUIC' protocol identifier are carried using QUIC ([RFC9000]).

   The following is an update to the ABNF for an 'm' line, as specified
   by [RFC8866], that defines a new value for the QUIC protocol.

      media-field =         %s"m" "=" media SP port \["/" integer\]
                                SP proto 1*(SP fmt) CRLF

      m= line parameter        parameter value(s)
      ------------------------------------------------------------------
      <media>:                 (unchanged from {{RFC8866}})
      <proto>:                 'QUIC'
      <port>:                  UDP port number
      <fmt>:                   (unchanged from {{RFC8866}})

3.1.2.  The QUIC/RTP/SAVP proto

   The following is an update to the ABNF for an 'm' line, as specified
   by [RFC8866], that defines a new value for the QUIC/RTP/SAVP
   protocol.

      media-field =         %s"m" "=" media SP port \["/" integer\]
                                SP proto 1*(SP fmt) CRLF

      m= line parameter        parameter value(s)
      ------------------------------------------------------------------
      <media>:                 (unchanged from {{RFC8866}})
      <proto>:                 'QUIC/RTP/SAVP'
      <port>:                  UDP port number
      <fmt>:                   (unchanged from {{RFC8866}})

3.1.3.  The QUIC/RTP/AVPF proto

   The following is an update to the ABNF for an 'm' line, as specified
   by [RFC8866], that defines a new value for the QUIC/RTP/AVPF
   protocol.

Dawkins                   Expires 12 March 2022                 [Page 5]
Internet-Draft          SDP O/A for RTP over QUIC         September 2021

      media-field =         %s"m" "=" media SP port \["/" integer\]
                                SP proto 1*(SP fmt) CRLF

      m= line parameter        parameter value(s)
      ------------------------------------------------------------------
      <media>:                 (unchanged from {{RFC8866}})
      <proto>:                 'QUIC/RTP/AVPF'
      <port>:                  UDP port number
      <fmt>:                   (unchanged from {{RFC8866}})

3.1.4.  The QUIC/RTP/SAVPF proto

   The following is an update to the ABNF for an 'm' line, as specified
   by [RFC8866], that defines a new value for the QUIC/RTP/SAVPF
   protocol.

      media-field =         %s"m" "=" media SP port \["/" integer\]
                                SP proto 1*(SP fmt) CRLF

      m= line parameter        parameter value(s)
      ------------------------------------------------------------------
      <media>:                 (unchanged from {{RFC8866}})
      <proto>:                 'QUIC/RTP/SAVPF'
      <port>:                  UDP port number
      <fmt>:                   (unchanged from {{RFC8866}})

3.2.  A QUIC/RTP/AVPF Offer

   A complete example of an SDP offer using QUIC/RTP/AVPF might look
   like:

Dawkins                   Expires 12 March 2022                 [Page 6]
Internet-Draft          SDP O/A for RTP over QUIC         September 2021

   +================================+=================================+
   | SDP line                       | Notes                           |
   +================================+=================================+
   | v=0                            | Same as [RFC8866]               |
   +--------------------------------+---------------------------------+
   | o=jdoe 3724394400 3724394405   | Same as [RFC8866]               |
   | IN IP4 198.51.100.1            |                                 |
   +--------------------------------+---------------------------------+
   | s=Call to John Smith           | Same as [RFC8866]               |
   +--------------------------------+---------------------------------+
   | i=SDP Offer #1                 | Same as [RFC8866]               |
   +--------------------------------+---------------------------------+
   | u=http://www.jdoe.example.com/ | Same as [RFC8866]               |
   | home.html                      |                                 |
   +--------------------------------+---------------------------------+
   | e=Jane Doe                     | Same as [RFC8866]               |
   | jane@jdoe.example.com          |                                 |
   | (mailto:jane@jdoe.example.com) |                                 |
   +--------------------------------+---------------------------------+
   | p=+1 617 555-6011              | Same as [RFC8866]               |
   +--------------------------------+---------------------------------+
   | c=IN IP4 198.51.100.1          | Same as [RFC8866]               |
   +--------------------------------+---------------------------------+
   | t=0 0                          | Same as [RFC8866]               |
   +--------------------------------+---------------------------------+
   | m=audio 49170 RTP/AVP 0        | Same as [RFC8866]               |
   +--------------------------------+---------------------------------+
   | m=audio 49180 RTP/AVP 0        | Same as [RFC8866]               |
   +--------------------------------+---------------------------------+
   | m=video 51372 QUIC/RTP/AVPF 99 | QUIC transport                  |
   +--------------------------------+---------------------------------+
   | a=setup:passive                | will wait for QUIC handshake    |
   |                                | (setup attribute from           |
   |                                | [RFC4145])                      |
   +--------------------------------+---------------------------------+
   | a=connection:new               | don't want to reuse an existing |
   |                                | QUIC connection (connection     |
   |                                | attribute from [RFC4145])       |
   +--------------------------------+---------------------------------+
   | c=IN IP6 2001:db8::2           | Same as [RFC8866]               |
   +--------------------------------+---------------------------------+
   | a=rtpmap:99 h266/90000         | H.266 VVC codec                 |
   |                                | [I-D.ietf-avtcore-rtp-vvc]      |
   +--------------------------------+---------------------------------+

                                 Table 1

Dawkins                   Expires 12 March 2022                 [Page 7]
Internet-Draft          SDP O/A for RTP over QUIC         September 2021

   This example is largely based on an example appearing in [RFC8866],
   Section 5, but is using QUIC/RTP/AVPF to support a newer codec.

   Because QUIC uses connections for both streams and datagrams, we are
   reusing two session- and media-level SDP attributes from
   [SDP-attribute-name] that were defined in [RFC4145] for use with TCP:
   setup and connection.

   This example SDP offer might be included in a SIP Invite.

4.  IANA Considerations

   This document registers these protocols in the proto registry
   ([SDP-parameters]).

   *  QUIC (Section 3.1.1)

   *  QUIC/RTP/SAVP (Section 3.1.2)

   *  QUIC/RTP/AVPF (Section 3.1.3)

   *  QUIC/RTP/SAVPF (Section 3.1.4)

4.1.  Proto Registrations

   IANA is requested to add these protocols to the Session Description
   Protocol (SDP) Parameters proto registry ([SDP-parameters]).

                  +=======+================+===========+
                  | Type  | SDP Name       | Reference |
                  +=======+================+===========+
                  | proto | QUIC           | RFCXXXX   |
                  +-------+----------------+-----------+
                  | proto | QUIC/RTP/SAVP  | RFCXXXX   |
                  +-------+----------------+-----------+
                  | proto | QUIC/RTP/AVPF  | RFCXXXX   |
                  +-------+----------------+-----------+
                  | proto | QUIC/RTP/SAVPF | RFCXXXX   |
                  +-------+----------------+-----------+

                                 Table 2

   *Note to the RFC Editor*

   Please replace "RFCXXXX" with the assigned RFC number, when that is
   available, and remove this note.

Dawkins                   Expires 12 March 2022                 [Page 8]
Internet-Draft          SDP O/A for RTP over QUIC         September 2021

5.  Security Considerations

   Security considerations for the QUIC protocol are described in the
   corresponding section in [RFC9000].

   Security considerations for the TLS handshake used to secure QUIC are
   described in [RFC9001].

   Security considerations for SDP are described in the corresponding
   section in [RFC8866].

   Security considerations for SDP offer/answer are described in the
   cooresponding section in [RFC3264].

6.  Acknowledgments

   My appreciation to the authors of [RFC4145], which served as a model
   for the initial structure of this document.

   Your name could appear here.  Please comment and contribute, as per
   Section 1.3.

7.  References

7.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://doi.org/10.17487/RFC2119>.

   [RFC3261]  Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,
              A., Peterson, J., Sparks, R., Handley, M., and E.
              Schooler, "SIP: Session Initiation Protocol", RFC 3261,
              DOI 10.17487/RFC3261, June 2002,
              <https://doi.org/10.17487/RFC3261>.

   [RFC3264]  Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model
              with Session Description Protocol (SDP)", RFC 3264,
              DOI 10.17487/RFC3264, June 2002,
              <https://doi.org/10.17487/RFC3264>.

   [RFC3550]  Schulzrinne, H., Casner, S., Frederick, R., and V.
              Jacobson, "RTP: A Transport Protocol for Real-Time
              Applications", STD 64, RFC 3550, DOI 10.17487/RFC3550,
              July 2003, <https://doi.org/10.17487/RFC3550>.

Dawkins                   Expires 12 March 2022                 [Page 9]
Internet-Draft          SDP O/A for RTP over QUIC         September 2021

   [RFC3711]  Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K.
              Norrman, "The Secure Real-time Transport Protocol (SRTP)",
              RFC 3711, DOI 10.17487/RFC3711, March 2004,
              <https://doi.org/10.17487/RFC3711>.

   [RFC4585]  Ott, J., Wenger, S., Sato, N., Burmeister, C., and J. Rey,
              "Extended RTP Profile for Real-time Transport Control
              Protocol (RTCP)-Based Feedback (RTP/AVPF)", RFC 4585,
              DOI 10.17487/RFC4585, July 2006,
              <https://doi.org/10.17487/RFC4585>.

   [RFC5124]  Ott, J. and E. Carrara, "Extended Secure RTP Profile for
              Real-time Transport Control Protocol (RTCP)-Based Feedback
              (RTP/SAVPF)", RFC 5124, DOI 10.17487/RFC5124, February
              2008, <https://doi.org/10.17487/RFC5124>.

   [RFC5761]  Perkins, C. and M. Westerlund, "Multiplexing RTP Data and
              Control Packets on a Single Port", RFC 5761,
              DOI 10.17487/RFC5761, April 2010,
              <https://doi.org/10.17487/RFC5761>.

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

   [RFC8825]  Alvestrand, H., "Overview: Real-Time Protocols for
              Browser-Based Applications", RFC 8825,
              DOI 10.17487/RFC8825, January 2021,
              <https://doi.org/10.17487/RFC8825>.

   [RFC8843]  Holmberg, C., Alvestrand, H., and C. Jennings,
              "Negotiating Media Multiplexing Using the Session
              Description Protocol (SDP)", RFC 8843,
              DOI 10.17487/RFC8843, January 2021,
              <https://doi.org/10.17487/RFC8843>.

   [RFC8866]  Begen, A., Kyzivat, P., Perkins, C., and M. Handley, "SDP:
              Session Description Protocol", RFC 8866,
              DOI 10.17487/RFC8866, January 2021,
              <https://doi.org/10.17487/RFC8866>.

   [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://doi.org/10.17487/RFC9000>.

Dawkins                   Expires 12 March 2022                [Page 10]
Internet-Draft          SDP O/A for RTP over QUIC         September 2021

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

   [SDP-attribute-name]
              "SDP Parameters - attribute-name", September 2021,
              <https://www.iana.org/assignments/sdp-parameters/sdp-
              parameters.xhtml#sdp-att-field>.

   [SDP-parameters]
              "SDP Parameters - Proto", September 2021,
              <https://www.iana.org/assignments/sdp-parameters/sdp-
              parameters.xhtml#sdp-parameters-2>.

7.2.  Informative References

   [I-D.engelbart-rtp-over-quic]
              Ott, J. and M. Engelbart, "RTP over QUIC", Work in
              Progress, Internet-Draft, draft-engelbart-rtp-over-quic-
              00, 12 July 2021, <https://datatracker.ietf.org/doc/html/
              draft-engelbart-rtp-over-quic-00>.

   [I-D.ietf-avtcore-rtp-vvc]
              Zhao, S., Wenger, S., Sanchez, Y., and Y. Wang, "RTP
              Payload Format for Versatile Video Coding (VVC)", Work in
              Progress, Internet-Draft, draft-ietf-avtcore-rtp-vvc-10, 9
              July 2021, <https://datatracker.ietf.org/doc/html/draft-
              ietf-avtcore-rtp-vvc-10>.

   [I-D.ietf-quic-http]
              Bishop, M., "Hypertext Transfer Protocol Version 3
              (HTTP/3)", Work in Progress, Internet-Draft, draft-ietf-
              quic-http-34, 2 February 2021,
              <https://datatracker.ietf.org/doc/html/draft-ietf-quic-
              http-34>.

   [RFC4145]  Yon, D. and G. Camarillo, "TCP-Based Media Transport in
              the Session Description Protocol (SDP)", RFC 4145,
              DOI 10.17487/RFC4145, September 2005,
              <https://doi.org/10.17487/RFC4145>.

Author's Address

   Spencer Dawkins
   Tencent America LLC
   United States of America

   Email: spencerdawkins.ietf@gmail.com

Dawkins                   Expires 12 March 2022                [Page 11]