draft-ietf-avtcore-rfc7983bis-05.txt   draft-ietf-avtcore-rfc7983bis-06.txt 
AVTCORE Working Group B. Aboba AVTCORE Working Group B. Aboba
INTERNET-DRAFT Microsoft Corporation INTERNET-DRAFT Microsoft Corporation
Updates: 7983, 5764 G. Salgueiro Updates: 7983, 5764 G. Salgueiro
Category: Standards Track Cisco Systems Category: Standards Track Cisco Systems
Expires: December 31, 2022 C. Perkins Expires: February 5, 2023 C. Perkins
University of Glasgow University of Glasgow
30 June 2022 5 August 2022
Multiplexing Scheme Updates for QUIC Multiplexing Scheme Updates for QUIC
draft-ietf-avtcore-rfc7983bis-05.txt draft-ietf-avtcore-rfc7983bis-06.txt
Abstract Abstract
This document defines how QUIC, Datagram Transport Layer Security This document defines how QUIC, Datagram Transport Layer Security
(DTLS), Real-time Transport Protocol (RTP), RTP Control Protocol (DTLS), Real-time Transport Protocol (RTP), RTP Control Protocol
(RTCP), Session Traversal Utilities for NAT (STUN), Traversal Using (RTCP), Session Traversal Utilities for NAT (STUN), Traversal Using
Relays around NAT (TURN), and ZRTP packets are multiplexed on a Relays around NAT (TURN), and ZRTP packets are multiplexed on a
single receiving socket. single receiving socket.
This document updates RFC 7983 and RFC 5764. This document updates RFC 7983 and RFC 5764.
skipping to change at page 1, line 39 skipping to change at page 1, line 39
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 http://datatracker.ietf.org/drafts/current/. Drafts is at http://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 December 31, 2022. This Internet-Draft will expire on February 5, 2023.
Copyright Notice Copyright Notice
Copyright (c) 2022 IETF Trust and the persons identified as the Copyright (c) 2022 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
(http://trustee.ietf.org/license-info) in effect on the date of (http://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
skipping to change at page 3, line 26 skipping to change at page 3, line 26
The multiplexing scheme described in this document supports multiple The multiplexing scheme described in this document supports multiple
use cases. Peer-to-peer QUIC in WebRTC scenarios, described in use cases. Peer-to-peer QUIC in WebRTC scenarios, described in
[P2P-QUIC] [P2P-QUIC-TRIAL], transports audio and video over SRTP, [P2P-QUIC] [P2P-QUIC-TRIAL], transports audio and video over SRTP,
alongside QUIC, used for data exchange. For this use case, SRTP alongside QUIC, used for data exchange. For this use case, SRTP
[RFC3711] is keyed using DTLS-SRTP [RFC5764] and therefore SRTP/SRTCP [RFC3711] is keyed using DTLS-SRTP [RFC5764] and therefore SRTP/SRTCP
[RFC3550], STUN, TURN, DTLS and QUIC need to be multiplexed on the [RFC3550], STUN, TURN, DTLS and QUIC need to be multiplexed on the
same port. Were SRTP to be keyed using QUIC-SRTP, SRTP/SRTCP, STUN, same port. Were SRTP to be keyed using QUIC-SRTP, SRTP/SRTCP, STUN,
TURN and QUIC would need to be multiplexed on the same port. Where TURN and QUIC would need to be multiplexed on the same port. Where
QUIC is used for peer-to-peer transport of data as well as RTP/RTCP QUIC is used for peer-to-peer transport of data as well as RTP/RTCP
[I-D.engelbart-rtp-over-quic] STUN, TURN and QUIC need to be [I-D.ietf-avtcore-rtp-over-quic] STUN, TURN and QUIC need to be
multiplexed on the same port. multiplexed on the same port.
While the scheme described in this document is compatible with QUIC While the scheme described in this document is compatible with QUIC
version 2 [I-D.ietf-quic-v2], it is not compatible with QUIC bit version 2 [I-D.ietf-quic-v2], it is not compatible with QUIC bit
greasing [I-D.ietf-quic-bit-grease]. As a result, endpoints that greasing [I-D.ietf-quic-bit-grease]. As a result, endpoints that
wish to use multiplexing on their socket MUST NOT send the wish to use multiplexing on their socket MUST NOT send the
grease_quic_bit transport parameter. grease_quic_bit transport parameter.
1.1. Terminology 1.1. Terminology
skipping to change at page 5, line 13 skipping to change at page 5, line 13
END OLD TEXT END OLD TEXT
NEW TEXT NEW TEXT
The process for demultiplexing a packet is as follows. The receiver The process for demultiplexing a packet is as follows. The receiver
looks at the first byte of the packet. If the value of this byte is looks at the first byte of the packet. If the value of this byte is
in between 0 and 3 (inclusive), then the packet is STUN. If the in between 0 and 3 (inclusive), then the packet is STUN. If the
value is between 16 and 19 (inclusive), then the packet is ZRTP. If value is between 16 and 19 (inclusive), then the packet is ZRTP. If
the value is between 20 and 63 (inclusive), then the packet is DTLS. the value is between 20 and 63 (inclusive), then the packet is DTLS.
If the value is in between 128 and 191 (inclusive) then the packet is If the value is in between 128 and 191 (inclusive) then the packet is
RTP (or RTCP, if both RTCP and RTP are being multiplexed over the RTP (or RTCP, if both RTCP and RTP are being multiplexed over the
same destination port). If the value is between 64 and 79 inclusive same destination port). If the value is between 80 and 127 (inclusive)
and has a source IP address and port of a responding TURN Server, or between 192 and 255 (inclusive) then it is QUIC. If the value is
then it is TURN Channel. If the value is between 64 and 127 inclusive between 64 and 79 inclusive and the packet has a source IP address and
and the source IP address and port does not correspond to a TURN port of a responding TURN server, then it is TURN channel; if the
Server, or if the value is between 192 and 255 inclusive, then it is source IP address and port is not that of a responding TURN server,
QUIC. then it is QUIC.
If the value does not match any known range, then the packet MUST be If the value does not match any known range, then the packet MUST be
dropped and an alert MAY be logged. This process is summarized in dropped and an alert MAY be logged. This process is summarized in
Figure 3. Figure 3.
+----------------+ +----------------+
| [0..3] -+--> forward to STUN | [0..3] -+--> forward to STUN
| | | |
| [16..19] -+--> forward to ZRTP | [16..19] -+--> forward to ZRTP
| | | |
packet --> | [20..63] -+--> forward to DTLS packet --> | [20..63] -+--> forward to DTLS
| | | |
| [64..79] -+--> forward to TURN Channel | [64..79] -+--> forward to TURN Channel
| [64..127] -+--> forward to QUIC | | (if from TURN server), else QUIC
| | | [80..127] -+--> forward to QUIC
| [128..191] -+--> forward to RTP/RTCP | |
| | | [128..191] -+--> forward to RTP/RTCP
| [192..255] -+--> forward to QUIC | |
+----------------+ | [192..255] -+--> forward to QUIC
+----------------+
Figure 3: The receiver's packet demultiplexing algorithm. Figure 3: The receiver's packet demultiplexing algorithm.
Note: Endpoints that wish to demultiplex QUIC MUST NOT send the Note: Endpoints that wish to demultiplex QUIC MUST NOT send the
grease_quic_bit transport parameter, described in grease_quic_bit transport parameter, described in
[I-D.ietf-quic-bit-grease]. [I-D.ietf-quic-bit-grease].
END NEW TEXT END NEW TEXT
4. Security Considerations 4. Security Considerations
skipping to change at page 6, line 24 skipping to change at page 6, line 26
5. IANA Considerations 5. IANA Considerations
This document does not require actions by IANA. This document does not require actions by IANA.
6. References 6. References
6.1. Normative References 6.1. Normative References
[I-D.ietf-quic-bit-grease] [I-D.ietf-quic-bit-grease]
Thomson, M., "Greasing the QUIC Bit", draft-ietf-quic-bit- Thomson, M., "Greasing the QUIC Bit", draft-ietf-quic-bit-
grease (work in progress), November 10, 2021. grease (work in progress), June 9, 2022.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, DOI Requirement Levels", BCP 14, RFC 2119, DOI
10.17487/RFC2119, March 1997, <http://www.rfc- 10.17487/RFC2119, March 1997, <http://www.rfc-
editor.org/info/rfc2119>. editor.org/info/rfc2119>.
[RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V.
Jacobson, "RTP: A Transport Protocol for Real-Time Jacobson, "RTP: A Transport Protocol for Real-Time
Applications", STD 64, RFC 3550, DOI 10.17487/RFC3550, July Applications", STD 64, RFC 3550, DOI 10.17487/RFC3550, July
2003, <http://www.rfc-editor.org/info/rfc3550>. 2003, <http://www.rfc-editor.org/info/rfc3550>.
skipping to change at page 7, line 32 skipping to change at page 7, line 33
QUIC", RFC 9001, DOI 10.17487/RFC9001, May 2021, QUIC", RFC 9001, DOI 10.17487/RFC9001, May 2021,
<https://www.rfc-editor.org/info/rfc9001>. <https://www.rfc-editor.org/info/rfc9001>.
[RFC9147] Rescorla, E., Tschofenig, H., and N. Modadugu, "The [RFC9147] Rescorla, E., Tschofenig, H., and N. Modadugu, "The
Datagram Transport Layer Security (DTLS) Protocol Version Datagram Transport Layer Security (DTLS) Protocol Version
1.3", RFC 9147, DOI 10.17487/RFC9147, April 2022, 1.3", RFC 9147, DOI 10.17487/RFC9147, April 2022,
<https://www.rfc-editor.org/info/rfc9147>. <https://www.rfc-editor.org/info/rfc9147>.
6.2. Informative References 6.2. Informative References
[I-D.engelbart-rtp-over-quic] [I-D.ietf-avtcore-rtp-over-quic]
Ott, J. and M. Engelbart, "RTP over QUIC", draft-engelbart- Ott, J. and M. Engelbart, "RTP over QUIC", draft-ietf-
rtp-over-quic-02 (work in progress), March 7, 2022. avtcore-rtp-over-quic (work in progress), July 26, 2022.
[I-D.ietf-quic-v2] [I-D.ietf-quic-v2]
Duke, M., "QUIC Version 2", draft-ietf-quic-v2 (work in Duke, M., "QUIC Version 2", draft-ietf-quic-v2 (work in
progress), April 28, 2022. progress), April 28, 2022.
[RFC6189] Zimmermann, P., Johnston, A., Ed., and J. Callas, "ZRTP: [RFC6189] Zimmermann, P., Johnston, A., Ed., and J. Callas, "ZRTP:
Media Path Key Agreement for Unicast Secure RTP", RFC 6189, Media Path Key Agreement for Unicast Secure RTP", RFC 6189,
DOI 10.17487/RFC6189, April 2011, <http://www.rfc- DOI 10.17487/RFC6189, April 2011, <http://www.rfc-
editor.org/info/rfc6189>. editor.org/info/rfc6189>.
 End of changes. 9 change blocks. 
29 lines changed or deleted 30 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/