draft-ietf-quic-invariants-02.txt   draft-ietf-quic-invariants-03.txt 
QUIC M. Thomson QUIC M. Thomson
Internet-Draft Mozilla Internet-Draft Mozilla
Intended status: Standards Track September 11, 2018 Intended status: Standards Track October 03, 2018
Expires: March 15, 2019 Expires: April 6, 2019
Version-Independent Properties of QUIC Version-Independent Properties of QUIC
draft-ietf-quic-invariants-02 draft-ietf-quic-invariants-03
Abstract Abstract
This document defines the properties of the QUIC transport protocol This document defines the properties of the QUIC transport protocol
that are expected to remain unchanged over time as new versions of that are expected to remain unchanged over time as new versions of
the protocol are developed. the protocol are developed.
Note to Readers Note to Readers
Discussion of this draft takes place on the QUIC working group Discussion of this draft takes place on the QUIC working group
skipping to change at page 1, line 42 skipping to change at page 1, line 42
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 https://datatracker.ietf.org/drafts/current/. Drafts is at https://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 March 15, 2019. This Internet-Draft will expire on April 6, 2019.
Copyright Notice Copyright Notice
Copyright (c) 2018 IETF Trust and the persons identified as the Copyright (c) 2018 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
(https://trustee.ietf.org/license-info) in effect on the date of (https://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 2, line 28 skipping to change at page 2, line 28
2. Conventions and Definitions . . . . . . . . . . . . . . . . . 3 2. Conventions and Definitions . . . . . . . . . . . . . . . . . 3
3. An Extremely Abstract Description of QUIC . . . . . . . . . . 3 3. An Extremely Abstract Description of QUIC . . . . . . . . . . 3
4. QUIC Packet Headers . . . . . . . . . . . . . . . . . . . . . 3 4. QUIC Packet Headers . . . . . . . . . . . . . . . . . . . . . 3
4.1. Long Header . . . . . . . . . . . . . . . . . . . . . . . 3 4.1. Long Header . . . . . . . . . . . . . . . . . . . . . . . 3
4.2. Short Header . . . . . . . . . . . . . . . . . . . . . . 4 4.2. Short Header . . . . . . . . . . . . . . . . . . . . . . 4
4.3. Connection ID . . . . . . . . . . . . . . . . . . . . . . 5 4.3. Connection ID . . . . . . . . . . . . . . . . . . . . . . 5
4.4. Version . . . . . . . . . . . . . . . . . . . . . . . . . 5 4.4. Version . . . . . . . . . . . . . . . . . . . . . . . . . 5
5. Version Negotiation . . . . . . . . . . . . . . . . . . . . . 6 5. Version Negotiation . . . . . . . . . . . . . . . . . . . . . 6
6. Security and Privacy Considerations . . . . . . . . . . . . . 7 6. Security and Privacy Considerations . . . . . . . . . . . . . 7
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 8 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 7
8.1. Normative References . . . . . . . . . . . . . . . . . . 8 8.1. Normative References . . . . . . . . . . . . . . . . . . 8
8.2. Informative References . . . . . . . . . . . . . . . . . 8 8.2. Informative References . . . . . . . . . . . . . . . . . 8
8.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 8 8.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Appendix A. Incorrect Assumptions . . . . . . . . . . . . . . . 8 Appendix A. Incorrect Assumptions . . . . . . . . . . . . . . . 8
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 9 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 9
1. Introduction 1. Introduction
In addition to providing secure, multiplexed transport, QUIC In addition to providing secure, multiplexed transport, QUIC
[QUIC-TRANSPORT] includes the ability to negotiate a version. This [QUIC-TRANSPORT] includes the ability to negotiate a version. This
skipping to change at page 5, line 10 skipping to change at page 5, line 10
4.2. Short Header 4.2. Short Header
Short headers take the form described in Figure 2. Bits that have Short headers take the form described in Figure 2. Bits that have
version-specific semantics are marked with an X. version-specific semantics are marked with an X.
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
|0|X X X X X X X| |0|X X X X X X X|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Connection ID (0..144) ... | Destination Connection ID (*) ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ... |X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2: QUIC Short Header Figure 2: QUIC Short Header
A QUIC packet with a short header has the high bit of the first octet A QUIC packet with a short header has the high bit of the first octet
set to 0. set to 0.
A QUIC packet with a short header includes an optional Destination A QUIC packet with a short header includes a Destination Connection
Connection ID. The short header does not include the Connection ID ID. The short header does not include the Connection ID Lengths,
Lengths, Source Connection ID, or Version fields. Source Connection ID, or Version fields.
The remainder of the packet has version-specific semantics. The remainder of the packet has version-specific semantics.
4.3. Connection ID 4.3. Connection ID
A connection ID is an opaque field. A connection ID can be 0 octets A connection ID is an opaque field of arbitrary length.
in length, or between 4 and 18 octets (inclusive).
The primary function of a connection ID is to ensure that changes in The primary function of a connection ID is to ensure that changes in
addressing at lower protocol layers (UDP, IP, and below) don't cause addressing at lower protocol layers (UDP, IP, and below) don't cause
packets for a QUIC connection to be delivered to the wrong endpoint. packets for a QUIC connection to be delivered to the wrong endpoint.
The connection ID is used by endpoints and the intermediaries that The connection ID is used by endpoints and the intermediaries that
support them to ensure that each QUIC packet can be delivered to the support them to ensure that each QUIC packet can be delivered to the
correct instance of an endpoint. At the endpoint, the connection ID correct instance of an endpoint. At the endpoint, the connection ID
is used to identify which QUIC connection the packet is intended for. is used to identify which QUIC connection the packet is intended for.
The connection ID is chosen by each endpoint using version-specific The connection ID is chosen by each endpoint using version-specific
skipping to change at page 8, line 6 skipping to change at page 8, line 4
The Version Negotiation packet described in this document is not The Version Negotiation packet described in this document is not
integrity-protected; it only has modest protection against insertion integrity-protected; it only has modest protection against insertion
by off-path attackers. QUIC versions MUST define a mechanism that by off-path attackers. QUIC versions MUST define a mechanism that
authenticates the values it contains. authenticates the values it contains.
7. IANA Considerations 7. IANA Considerations
This document makes no request of IANA. This document makes no request of IANA.
8. References 8. References
8.1. Normative References 8.1. Normative References
[QUIC-TRANSPORT] [QUIC-TRANSPORT]
Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based
Multiplexed and Secure Transport", draft-ietf-quic- Multiplexed and Secure Transport", draft-ietf-quic-
transport-14 (work in progress), September 2018. transport-14 (work in progress), October 2018.
[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, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
8.2. Informative References 8.2. Informative References
[QUIC-TLS] [QUIC-TLS]
Thomson, M., Ed. and S. Turner, Ed., "Using Transport Thomson, M., Ed. and S. Turner, Ed., "Using Transport
Layer Security (TLS) to Secure QUIC", draft-ietf-quic- Layer Security (TLS) to Secure QUIC", draft-ietf-quic-
tls-14 (work in progress), September 2018. tls-14 (work in progress), October 2018.
[RFC5116] McGrew, D., "An Interface and Algorithms for Authenticated [RFC5116] McGrew, D., "An Interface and Algorithms for Authenticated
Encryption", RFC 5116, DOI 10.17487/RFC5116, January 2008, Encryption", RFC 5116, DOI 10.17487/RFC5116, January 2008,
<https://www.rfc-editor.org/info/rfc5116>. <https://www.rfc-editor.org/info/rfc5116>.
8.3. URIs 8.3. URIs
[1] https://mailarchive.ietf.org/arch/search/?email_list=quic [1] https://mailarchive.ietf.org/arch/search/?email_list=quic
[2] https://github.com/quicwg [2] https://github.com/quicwg
 End of changes. 10 change blocks. 
14 lines changed or deleted 12 lines changed or added

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