Subject: Datagrams and packets in invariants

From: "Martin Thomson" <[email-masked]>
Date: Tue, 26 May 2020 10:36:48 +1000

In https://github.com/quicwg/base-drafts/pull/3684 I am proposing language that is a little more careful about the distinction between packets and datagrams.

Previously the text said:

> A QUIC packet is the content of the UDP datagrams exchanged by QUIC endpoints. This document describes the contents of those datagrams.

What I have proposed is instead:

> QUIC endpoints exchange UDP datagrams that contain one or more QUIC packets. This section describes the invariant characteristics of a QUIC packet.  A version of QUIC could permit multiple QUIC packets in a single UDP datagram, but the invariant properties only describe the first packet in a datagram.

It was suggested that this changes the promise made in the invariants.  The point was to better align with what we are actually doing in version 1.  And to make clear the cardinality rules between datagrams and packets, which were previously unspecified.

Does anyone find the new language objectionable or incorrect?

---

From: "Lubashev, Igor" <[email-masked]>
Date: Tue, 26 May 2020 02:02:22 +0000

Since packet length is not a part of the Invariants, there is no way to locate a coalesced packet in a version-independent way. So any promises about the format of such coalesced packets are moot. Both the new text and the old text specify equally little, but the new text is just a bit more explicit and clear.

- Igor

On May 25, 2020 8:37 PM, Martin Thomson <[email-masked]> wrote:
In https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_quicwg_base-2Ddrafts_pull_3684&d=DwIBAg&c=96ZbZZcaMF4w0F4jpN6LZg&r=Djn3bQ5uNJDPM_2skfL3rW1tzcIxyjUZdn_m55KPmlo&m=2htiCUbu6d9s1os71kPSMJ9LBmdCsOMfovsl5piIry4&s=CqkKn4IY7-Gk6Qg4qcTccrb7wJzhQgaE6YfSwGIUfwM&e=  I am proposing language that is a little more careful about the distinction between packets and datagrams.

---

From: Mike Bishop <[email-masked]>
Date: Thu, 28 May 2020 18:34:58 +0000

+1 - there's no way to identify the other packets, and thus no way to describe them.  Clearer text for the same outcome is a win in my book.

From: QUIC <[email-masked]> On Behalf Of Lubashev, Igor
Sent: Monday, May 25, 2020 10:02 PM
To: [email-masked]; Martin Thomson <[email-masked]>
Subject: Datagrams and packets in invariants

- Igor

On May 25, 2020 8:37 PM, Martin Thomson <[email-masked]<mailto:[email-masked]>> wrote:
In https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_quicwg_base-2Ddrafts_pull_3684&d=DwIBAg&c=96ZbZZcaMF4w0F4jpN6LZg&r=Djn3bQ5uNJDPM_2skfL3rW1tzcIxyjUZdn_m55KPmlo&m=2htiCUbu6d9s1os71kPSMJ9LBmdCsOMfovsl5piIry4&s=CqkKn4IY7-Gk6Qg4qcTccrb7wJzhQgaE6YfSwGIUfwM&e=  I am proposing language that is a little more careful about the distinction between packets and datagrams.