draft-aboba-avtcore-quic-multiplexing-02.txt   draft-aboba-avtcore-quic-multiplexing-03.txt 
AVTCORE Working Group B. Aboba AVTCORE Working Group B. Aboba
INTERNET-DRAFT Microsoft Corporation INTERNET-DRAFT Microsoft Corporation
Category: Informational P. Thatcher Category: Informational P. Thatcher
Expires: April 23, 2019 Google Expires: July 23, 2019 Google
C. Perkins C. Perkins
University of Glasgow University of Glasgow
23 October 2018 23 January 2019
QUIC Multiplexing QUIC Multiplexing
draft-aboba-avtcore-quic-multiplexing-02.txt draft-aboba-avtcore-quic-multiplexing-03.txt
Abstract Abstract
If QUIC is to be used in a peer-to-peer manner, with NAT traversal, If QUIC is to be used in a peer-to-peer manner, with NAT traversal,
then it is necessary to be able to demultiplex QUIC and other then it is necessary to be able to demultiplex QUIC and other
protocols used in WebRTC on a single UDP port. This memo discusses protocols used in WebRTC on a single UDP port. This memo discusses
options for demultiplexing. options for demultiplexing.
Status of This Memo Status of This Memo
skipping to change at page 1, line 36 skipping to change at page 1, line 36
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 April 23, 2019. This Internet-Draft will expire on July 23, 2019.
Copyright Notice Copyright Notice
Copyright (c) 2018 IETF Trust and the persons identified as the Copyright (c) 2019 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
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
skipping to change at page 4, line 32 skipping to change at page 4, line 32
Figure 2: Revised packet demultiplexing algorithm. Figure 2: Revised packet demultiplexing algorithm.
Note that while the above diagram has a potential conflict between Note that while the above diagram has a potential conflict between
packets sent in TURN Channels and the QUIC short header, this packets sent in TURN Channels and the QUIC short header, this
conflict is not considered serious for WebRTC where TURN Channels are conflict is not considered serious for WebRTC where TURN Channels are
rarely used. rarely used.
2.1. Subsequent changes 2.1. Subsequent changes
Since then, additional changes have been made to the QUIC transport Since then, additional changes have been made to the QUIC transport
headers. While the QUIC Long Header packet type field retains its headers. As of draft 18, the QUIC Long Header packet type field
original allocations between 0x7C and 0x7F, as of draft -15, the defined in [I-D.ietf-quic-transport] Section 17.2 appears as follows:
first octet of the Short Header now appears as follows:
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
|0|K|1|1|0|R|R|R| |1|1|T T|X|X|X|X|
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
Where: Where:
K = indicates the key phase. T = Long Packet Type (0x0 - 0x3)
R = reserved bits, set randomly by endpoints not actively using them. X = Type-Specific Bits.
This potentially produces values of the first octet in the ranges This potentially produces values of the first octet in the ranges
48-55 which potentially conflicts with DTLS, and 80-87 which 192-255.
conflicts with TURN channels (not an issue).
The QUIC Short Header packet type field defined in [I-D.ietf-quic-
transport] Section 17.3 appears as follows:
+-+-+-+-+-+-+-+-+
|0|1|S|R|R|K|P P|
+-+-+-+-+-+-+-+-+
Where:
S = Spin Bit
R = Reserved bits
K = Key Phase bit
P = Packet Number Length.
This potentially produces values of the first octet in the ranges
64-127 (assuming that the reserved bits may not always be set to
zero).
As a result, the multiplexing scheme supported in -18 operates as
follows:
+----------------+
| [0..3] -+--> forward to STUN
| |
| [16..19] -+--> forward to ZRTP
| |
packet --> | [20..63] -+--> forward to DTLS
| |
| [64..79] -+--> forward to TURN Channel
| [64..127] -+--> forward to QUIC (Short Header)
| |
| [128..191] -+--> forward to RTP/RTCP
| [192..255] +--> forward to QUIC (Long Header)
+----------------+
Figure 3: Packet demultiplexing algorithm in Draft 18.
3. Security Considerations 3. Security Considerations
The solutions discussed in this document could potentially introduce The solutions discussed in this document could potentially introduce
some additional security considerations beyond those detailed in some additional security considerations beyond those detailed in
[RFC7983]. [RFC7983].
Due to the additional logic required, if mis-implemented, heuristics Due to the additional logic required, if mis-implemented, heuristics
have the potential to mis-classify packets. have the potential to mis-classify packets.
When QUIC is used for only for data exchange, the TLS-within-QUIC When QUIC is used for only for data exchange, the TLS-within-QUIC
exchange [I-D.ietf-quic-tls] derives keys used solely to protect the exchange [I-D.ietf-quic-tls] derives keys used solely to protect the
QUIC data packets. If properly implemented, this should not affect QUIC data packets. If properly implemented, this should not affect
the transport of SRTP nor the derivation of SRTP keys via DTLS-SRTP, the transport of SRTP nor the derivation of SRTP keys via DTLS-SRTP,
but if badly implemented, both transport and key derivation could be but if badly implemented, both transport and key derivation could be
skipping to change at page 5, line 27 skipping to change at page 6, line 15
4. IANA Considerations 4. IANA Considerations
This document does not require actions by IANA. This document does not require actions by IANA.
5. References 5. References
5.1. Informative References 5.1. Informative References
[I-D.ietf-quic-tls] [I-D.ietf-quic-tls]
Thomson, M. and S. Turner, "Using Transport Layer Security Thomson, M. and S. Turner, "Using Transport Layer Security
(TLS) to Secure QUIC", draft-ietf-quic-tls-15 (work in (TLS) to Secure QUIC", draft-ietf-quic-tls-18 (work in
progress), October 3, 2018. progress), January 23, 2019.
[I-D.ietf-quic-transport] [I-D.ietf-quic-transport]
Iyengar, J. and M. Thomson, "QUIC: A UDP-Based Multiplexed Iyengar, J. and M. Thomson, "QUIC: A UDP-Based Multiplexed
and Secure Transport", draft-ietf-quic-transport-15 (work and Secure Transport", draft-ietf-quic-transport-18 (work
in progress), October 3, 2018. in progress), January 23, 2019.
[QUIC-Issue] Perkins, C., "QUIC header format/demultiplexing", [QUIC-Issue] Perkins, C., "QUIC header format/demultiplexing",
https://github.com/quicwg/base-drafts/issues/426, March, https://github.com/quicwg/base-drafts/issues/426, March,
2017. 2017.
[QUIC-MULTI] Perkins, C., "QUIC Multiplexing and Peer-to-Peer", [QUIC-MULTI] Perkins, C., "QUIC Multiplexing and Peer-to-Peer",
presentation to IETF AVTCORE WG at IETF 100, presentation to IETF AVTCORE WG at IETF 100,
<https://datatracker.ietf.org/meeting/100/materials/ <https://datatracker.ietf.org/meeting/100/materials/
slides-100-avtcore-quic-multiplexing-with-rtp-03>, November slides-100-avtcore-quic-multiplexing-with-rtp-03>, November
2017. 2017.
 End of changes. 12 change blocks. 
18 lines changed or deleted 52 lines changed or added

This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/